양말을 주세요

반응형

0. 들어가기

-. tensorflow내 keras 프레임워크 사용법 익히기

-. 생활코딩 keras 강의 들으면서 정리함. tensorflow 버전에 따른 설명이 좀 부족하긴 하네..

1. keras 사용법 예제

-. tensorflow 버전에 따라 keras 사용법이 조금 다르다. 정확히는 넣어줄 수 있는 data type에 차이가 있는 것 같다. 

-. 어떻게 알았냐면... 묻지마라 한참 삽질하다 알게됐으니까 ㅠㅠ

1) tensorflow1.x (나는 1.8.0 버전)

-. data input이 series (list)만 넣을 수 있다. pandas의 데이터를 series (혹은 list)로 바꿔서 넣어줘야 한다.

#python 3.6.0 tensorflow 1.8.0
data = pd.read_csv("data.txt")

#dataframe -> series로 '만'데이터 input 가능
A = data["A"]
B = data["B"]
print(type(A))

X = tf.keras.layers.Input(shape=[1])
Y = tf.keras.layers.Dense(1)(X)
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse', optimizer="sgd")

model.fit(A, B, epochs=1000, verbose=0)

print(model.predict(A))
print(model.predict(np.array([7,8,9]))) #마찬가지로 input을 np.array (or series)로 넣어줘야함.

----
<class 'pandas.core.series.Series'>
[[2.00724  ]
 [4.0044665]
 [6.001693 ]
 [7.998919 ]
 [9.996145 ]]
[[13.990598]
 [15.987824]
 [17.98505 ]]

 

2) keras 2.x (나는 2.4.1)의 경우 / 생활코딩 예제 동일.

-. pandas dataframe으로도 바로 input이 가능함.

#python 3.8.0 tensorflow 2.4.1
data = pd.read_csv("data.txt")

#dataframe 그대로 데이터 사용 가능
A = data[["A"]] 
B = data[["B"]]
print(type(A))

X = tf.keras.layers.Input(shape=[1])
Y = tf.keras.layers.Dense(1)(X)
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse', optimizer="sgd")

model.fit(A, B, epochs=1000, verbose=0)

print(model.predict(A))
print(model.predict([[7]])) #list로도 data input 가능

----
<class 'pandas.core.frame.DataFrame'>
[[2.011519 ]
 [4.0071063]
 [6.002693 ]
 [7.9982805]
 [9.993868 ]]
[[13.985042]]
<class 'list'>

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band

본문과 관련 있는 내용으로 댓글을 남겨주시면 감사하겠습니다.

비밀글모드