๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
Model(), compile(), fit(), predict(), save() ๋ณธ๋ฌธ
Model(), compile(), fit(), predict(), save()
์ง์ง์ํ์นด 2022. 9. 14. 15:41220914 ์์ฑ
<๋ณธ ๋ธ๋ก๊ทธ๋ handuelly ๋์ ๋ธ๋ก๊ทธ์ wikidocs์ ์ผ๋ผ์ค ํฌ์คํธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-) >
https://blog.naver.com/handuelly/221822938182
Keras - ๋ค์ธต Sequential Model(), compile(), fit()
# Sequention Model(๋ค์ธต) # 5๋ฒ ๋ผ์ธ, dense_1 : ์ ๊ฒฝ๋ง ํ๋๋น 3๊ฐ์ ํ๋ผ๋ฏธํฐ(2๊ฐ์ Input + 1๊ฐ์ ...
blog.naver.com
07) ์ผ๋ผ์ค(Keras) ํ์ด๋ณด๊ธฐ
์ด ์ฑ ์์๋ ๋ฅ ๋ฌ๋์ ์ฝ๊ฒ ํ ์ ์๋ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ ์ผ๋ผ์ค(Keras)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ผ๋ผ์ค๋ ์ ์ ๊ฐ ์์ฝ๊ฒ ๋ฅ ๋ฌ๋์ ๊ตฌํํ ์ ์๋๋ก ๋์์ฃผ๋ ์์ ๋ ๋ฒจ์ ์ธํฐ ...
wikidocs.net
๐ complie()
: ๋ชจ๋ธ์ ๋น๋ํ๊ณ ์คํํ๊ธฐ ์ ์ ์ปดํ์ผ ํ๋ ํ๋ จ ์ค๋น ๋จ๊ณ
model.compile(
optimizer='adam',
loss='mean_squared_error',
metrics=[
metrics.MeanSquaredError(),
metrics.AUC(),
]
)
model.compile(
optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=[
metrics.MeanSquaredError(name='my_mse'),
metrics.AUC(name='my_auc'),
]
)
- loss
- ์ต์ ํ ๊ณผ์ ์์ ์ต์ํ๋ ์์คํจ์๋ฅผ ์ค์
- MSE(ํ๊ท ์ ๊ณฑ ์ค์ฐจ)
- binary_crossentropy
- categorical_crossentropy ํจ์
- sparse_categorical_crossentropy ํจ์
- ํฌ์์ก ํจ์
- KL๋ค์ด๋ฒ์ ์ค ํด๋์ค
- optimizer
- ํ๋ จ ๊ณผ์ ์ ์ค์
- Adam
- ํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ (Stochastic Gradient Descent, SGD)
- RMSProp
- Adagrad
- Adadelta
- metrics
- ํ๋ จ์ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํด ์ฌ์ฉ
- Accuracy class
- BinaryAccuracy class
- CategoricalAccuracy class
๋ํ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์์ค ํจ์์ ํ์ฑํ ํจ์์ ์กฐํฉ
๋ฌธ์ ์ ํ | ์์ค ํจ์๋ช | ์ถ๋ ฅ์ธต ํ์ฑํ ํจ์ | ์ฐธ๊ณ ์ค์ต |
ํ๊ท ๋ฌธ์ | mean_squared_error | - | ์ ํ ํ๊ท ์ค์ต |
๋ค์ค ํด๋์ค ๋ถ๋ฅ | categorical_crossentropy | ์ํํธ๋งฅ์ค | ๋ก์ดํฐ ๋ด์ค ๋ถ๋ฅํ๊ธฐ |
๋ค์ค ํด๋์ค ๋ถ๋ฅ | sparse_categorical_crossentropy | ์ํํธ๋งฅ์ค | ์๋ฐฉํฅ LSTM๋ฅผ ์ด์ฉํ ํ์ฌ ํ๊น |
์ด์ง ๋ถ๋ฅ | binary_crossentropy | ์๊ทธ๋ชจ์ด๋ | IMDB ๋ฆฌ๋ทฐ ๊ฐ์ฑ ๋ถ๋ฅํ๊ธฐ |
๐ fit()
: ์ฃผ์ด์ง epoch ์ ๋งํผ ๋ชจ๋ธ์ ํ์ต์ํค๋ ๋ฉ์๋
: ๋ชจ๋ธ์ด ์ค์ฐจ๋ก๋ถํฐ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ๋ฐ์ดํธ ์ํค๋ ๊ณผ์ ์ ํ์ต, ํ๋ จ, ๋๋ ์ ํฉ(fitting)
model.fit(X_train, y_train, epochs=10, batch_size=32, verbose=0, validation_data(X_val, y_val))
- ์ฒซ๋ฒ์งธ ์ธ์
- ํ๋ จ ๋ฐ์ดํฐ์ ํด๋น
- ๋๋ฒ์งธ ์ธ์
- ์ง๋ ํ์ต์์ ๋ ์ด๋ธ ๋ฐ์ดํฐ์ ํด๋น
- epochs
- ์ํฌํฌ 1์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ํ ์ฐจ๋ก ํ๊ณ ์ง๋๊ฐ์์ ์๋ฏธ = ์ด ํ๋ จ ํ์
- batch_size
- ๋ฐฐ์น ํฌ๊ธฐ (๊ธฐ๋ณธ๊ฐ์ 32. ๋ฏธ๋ ๋ฐฐ์น ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ์ฌ์ฉํ๊ณ ์ถ์ง ์์ ๊ฒฝ์ฐ์๋ batch_size=None)
- validation_data(x_val, y_val)
- ๊ฒ์ฆ ๋ฐ์ดํฐ(validation data)๋ฅผ ์ฌ์ฉ
- ๊ฒ์ฆ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ ์ํฌํฌ๋ง๋ค ๊ฒ์ฆ ๋ฐ์ดํฐ์ ์ ํ๋๋ ์ค์ฐจ๋ฅผ ํจ๊ป ์ถ๋ ฅํ๋๋ฐ, ์ด ์ ํ๋๋ ํ๋ จ์ด ์ ๋๊ณ ์๋์ง๋ฅผ ๋ณด์ฌ์ค ๋ฟ์ด๋ฉฐ ์ค์ ๋ก ๋ชจ๋ธ์ด ๊ฒ์ฆ ๋ฐ์ดํฐ๋ฅผ ํ์ตํ์ง๋ ์์
- ๊ฒ์ฆ ๋ฐ์ดํฐ์ ์ค์ฐจ(loss)๊ฐ ๋ฎ์์ง๋ค๊ฐ ๋์์ง๊ธฐ ์์ํ๋ฉด ์ด๋ ๊ณผ์ ํฉ(overfitting)์ ์ ํธ
- validation_split
- ๊ฒ์ฆ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ์ฉ๋๋ก validation_data ๋์ ์ฌ์ฉ
- ๊ฒ์ฆ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํ๋ ๊ฒ์ด ์๋๋ผ ํ๋ จ ๋ฐ์ดํฐ์ ํ๋ จ ๋ฐ์ดํฐ์ ๋ ์ด๋ธ์ธ X_train๊ณผ y_train์์ ์ผ์ ๋น์จ ๋ถ๋ฆฌํ์ฌ ์ด๋ฅผ ๊ฒ์ฆ ๋ฐ์ดํฐ๋ก ์ฌ์ฉ
- verbose
- ํ์ต ์ค ์ถ๋ ฅ๋๋ ๋ฌธ๊ตฌ๋ฅผ ์ค์
- 0 : ์๋ฌด ๊ฒ๋ ์ถ๋ ฅํ์ง ์์
- 1 : ํ๋ จ์ ์งํ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ ์งํ ๋ง๋๋ฅผ ๋ณด์ฌ์ค
- 2 : ๋ฏธ๋ ๋ฐฐ์น๋ง๋ค ์์ค ์ ๋ณด๋ฅผ ์ถ๋ ฅ
- ํ์ต ์ค ์ถ๋ ฅ๋๋ ๋ฌธ๊ตฌ๋ฅผ ์ค์
# verbose = 1์ผ ๊ฒฝ์ฐ.
Epoch 88/100
7/7 [==============================] - 0s 143us/step - loss: 0.1029 - acc: 1.0000
# verbose = 2์ผ ๊ฒฝ์ฐ.
Epoch 88/100
- 0s - loss: 0.1475 - acc: 1.0000
๐ evaluate()
: ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ํตํด ํ์ตํ ๋ชจ๋ธ์ ๋ํ ์ ํ๋๋ฅผ ํ๊ฐ
# ์์ fit() ์ฝ๋์ ์ฐ์ฅ์ ์์ธ ์ฝ๋
model.evaluate(X_test, y_test, batch_size=32)
- ์ฒซ๋ฒ์งธ ์ธ์
- ํ ์คํธ ๋ฐ์ดํฐ์ ํด๋น
- ๋๋ฒ์งธ ์ธ์
- ์ง๋ ํ์ต์์ ๋ ์ด๋ธ ํ ์คํธ ๋ฐ์ดํฐ์ ํด๋น
- batch_size = ๋ฐฐ์น ํฌ๊ธฐ.
๐ predict()
: ์์์ ์ ๋ ฅ์ ๋ํ ๋ชจ๋ธ์ ์ถ๋ ฅ๊ฐ์ ํ์ธ
# ์์ fit() ์ฝ๋์ ์ฐ์ฅ์ ์์ธ ์ฝ๋
model.predict(X_input, batch_size=32)
- ์ฒซ๋ฒ์งธ ์ธ์
- ์์ธกํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ
- batch_size
- ๋ฐฐ์น ํฌ๊ธฐ
๐ save()
: ์ธ๊ณต ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ hdf5 ํ์ผ์ ์ ์ฅ
model.save("model_name.h5")
๐ load_model()
: ์ ์ฅํด๋ ๋ชจ๋ธ์ ๋ถ๋ฌ์ค๊ธฐ
from tensorflow.keras.models import load_model
model = load_model("model_name.h5")
'๐ฉโ๐ป ์ธ๊ณต์ง๋ฅ (ML & DL) > ML & DL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
3. NLTK๋ก ํ ์คํธ ์์ฝํ๊ธฐ โ โํต์ฌ ๋ฌธ์ฅ์ ๋ฝ์๋ด๊ณ ๋จ์ด ๊ตฌ๋ฆ์ ๋ง๋ค์ด๋ณด์โ (0) | 2022.10.17 |
---|---|
2. NLTK๋ก ๋ฌธ์ ๊ฐ ์ ์ฌ๋ ์ธก์ ํ๊ธฐ โ์ด ์์ค์ ์์์๋ ๋๊ตฌ์ผ๊นโ (0) | 2022.10.17 |
Batch Normalization (0) | 2022.09.14 |
ํ์ดํผํ๋ผ๋ฏธํฐ Learning rate & batch size & iteration ์ต์ ํ (0) | 2022.09.05 |
[Mask R-CNN] ์ดํด ๋ฐ ํ์ต (0) | 2022.05.10 |