1. 程式人生 > >keras學習筆記3——Merge、GPU呼叫、快速開始及常見問題

keras學習筆記3——Merge、GPU呼叫、快速開始及常見問題

1. Merge層

Merge層主要是用來合併多個model的,例子如下:

from keras.layers import Merge,Dense
from keras.models import Sequential
first_model=Sequential()
first_model.add(Dense(3,input_dim=5))
second_model=Sequential()
second_model.add(Dense(4,input_dim=4))
merged=Merge(layers=[first_model,second_model],mode='concat')
model=Sequential()
model.add(merged)
model.add(Dense(3))

2. GPU呼叫

TensorFlow做為後端時,會自動呼叫GPU,但使用Theano時,需要手動載入。
幫助文件:http://keras-cn.readthedocs.io/en/latest/getting_started/FAQ/#GPU中給出了三種呼叫GPU的方式,前兩種未測試是否可用(不方便),第三種經測試判斷不可用。因為在匯入theano時,裝置就已固定,無法更改,所以需在匯入前更改裝置。解決方式:

import os    
os.environ['THEANO_FLAGS'] = "device=gpu1"    
import theano

3. keras快速開始

4. 若干常見問題

參考:http://keras-cn.readthedocs.io/en/latest/getting_started/FAQ/
- 如何引用Keras?
- 如何使Keras呼叫GPU?
- 如何儲存Keras模型?
- 為什麼訓練誤差(loss)比測試誤差高很多?
- 如何觀察中間層的輸出?
- 如何利用Keras處理超過機器記憶體的資料集?
- 當驗證集的loss不再下降時,如何中斷訓練?
- 驗證集是如何從訓練集中分割出來的?
- 訓練資料在訓練時會被隨機洗亂嗎?
- 如何在每個epoch後記錄訓練/測試的loss和正確率?
- 如何使用狀態RNN(statful RNN)?
- 如何使用Keras進行分散式/多GPU運算?