---
# System prepended metadata

title: Day13

---

# 使用 Keras 建立 LSTM 模型 - 2

### 訓練模型
在Keras中使用model.fit()方法來訓練模型，方法需要傳入訓練資料(x_train, y_train)、batch_size、epochs等參數。
```python=
model.fit(x_train, y_train, batch_size=32, epochs=100)
```
代表32筆資料為一個batch，訓練100次（epochs），兩者皆可根據需求而調整。

x_train是輸入對話的訊息，y_train是對應的回答薰習。

Keras會自動計算損失函數值(loss)並印出來，可透過觀察loss來判斷模型是否已經達到最佳效果。若loss不再下降，或者達到一定的訓練週期數後，loss不再明顯下降，就認為訓練已經達到最好效果。

### 評估模型
使用model.evaluate()方法來評估模型的性能。
需要傳入測試資料(x_test, y_test)作為參數，並且可以選擇性地傳入batch_size以及verbose參數。
```python=
test_loss, test_acc = model.evaluate(x_test, y_test, batch_size=64, verbose=1)
print('Test accuracy:', test_acc)
```
test_loss越小，test_acc越高時模型就越好。

### 保存模型
用model.save()方法來將模型保存到指定的檔案中。
```python=
model.save('my_model.h5')
```
存為檔名my_model.h5

載入使用
```python=
from keras.models import load_model
loaded_model = load_model('my_model.h5')
```

若要儲存權重則增加weights。
```python=
model.save_weights("model_weights.h5")
```

載入使用
```python=
from keras.models import load_model
model.load_weights("model_weights.h5")
```
此模型會將模型結構，權重和訓練配置儲存在一個檔案中。

### 部署模型
使用model.save()方法將訓練好的模型儲存到磁碟中。之後用keras.models.load_model()來載入模型。

