※ Tensorflow1문법을 2로만 바꾸는것이기에, 코드분석 위주로 진행하고있습니다.
[Tensorflow1 링크종합] https://limitsinx.tistory.com/50
※ 이 전글에서 정리한 코드/문법은 재설명하지 않으므로, 참고부탁드립니다.
코드만 해석하고 넘어가기에 다소 불친절한 글 일수 있습니다..
개념적인 부분은 하기 링크에 따로 정리해두어, 참조 부탁드립니다.
https://limitsinx.tistory.com/34
학습할 데이터의 수가 엄청 많을때는 하나하나 기입할고 있을 수가 없기때문에
txt파일 혹은 csv파일을 불러와서 바로 읽어오는 방법에 대해 포스팅해보겠습니다.
[코드 전문]
import tensorflow as tf
import numpy as np
xy = np.loadtxt('../data-01-test-score.csv', delimiter=',', dtype=np.float32)
x_data = xy[:, 0:-1]
y_data = xy[:, [-1]]
# Make sure the shape and data are OK
print(x_data, "\nx_data shape:", x_data.shape)
print(y_data, "\ny_data shape:", y_data.shape)
# data output
'''
[[ 73. 80. 75.]
[ 93. 88. 93.]
...
[ 76. 83. 71.]
[ 96. 93. 95.]]
x_data shape: (25, 3)
[[152.]
[185.]
...
[149.]
[192.]]
y_data shape: (25, 1)
'''
tf.model = tf.keras.Sequential()
# activation function doesn't have to be added as a separate layer. Add it as an argument of Dense() layer
tf.model.add(tf.keras.layers.Dense(units=1, input_dim=3, activation='linear'))
# tf.model.add(tf.keras.layers.Activation('linear'))
tf.model.summary()
tf.model.compile(loss='mse', optimizer=tf.keras.optimizers.SGD(lr=1e-5))
history = tf.model.fit(x_data, y_data, epochs=2000)
# Ask my score
print("Your score will be ", tf.model.predict([[100, 70, 101]]))
print("Other scores will be ", tf.model.predict([[60, 70, 110], [90, 100, 80]]))
[코드 분석]
data-01-test-score.csv라는 파일을 읽어와서 학습시켜보는 코드입니다.
학습을 위해선 본인이 머신러닝 코드를 돌리는 경로 안에, 해당 csv파일이 존재해야합니다.
해당 csv파일의 내부에는 이렇게 생겼는데요
73,80,75,152가 한개의 학습용 데이터입니다.
코드에서 x_data=[:,0:-1]은 마지막끝에 1개를 빼고 x_data로 넣겠다는 뜻으로, 73,80,75를 x_data에 저장하겠다는 뜻입니다.
y_data=[:,-1]은 맨끝의 152를 y_data에 저장하겠다는 뜻입니다.
이것만 알게되면, 하기 코드는 기존에 작성했던 Regression코드와 동일합니다.(글 최상단 첨부참조)
[결과값]
이를 2000번 학습시키면, 다음과 같은 결과 값을 얻을 수 있습니다.
100,70,101을 맞았을때는 186으로 예측하고 있는 모습을 확인할 수 있습니다.
'DeepLearning Framework & Coding > Tensorflow 2.X' 카테고리의 다른 글
[코드로 이해하는 딥러닝 2-6] - Deep Neural Network/XOR (0) | 2021.01.10 |
---|---|
[코드로 이해하는 딥러닝 2-5] - Softmax Regression(multiple classification) (0) | 2021.01.09 |
[코드로 이해하는 딥러닝 2-4] - Logistic Regression(sigmoid) (3) | 2021.01.08 |
[코드로 이해하는 딥러닝2-2] - 다중선형회귀(Multiple Linear Regression) (0) | 2021.01.06 |
[코드로 이해하는 딥러닝2-1] - 선형 회귀(Linear Regression) (0) | 2021.01.05 |
댓글