(整理) 網路上常見較為簡單的Transfer Learning 作法 (tensorflow)

LUFOR129
4 min readMar 16, 2019

目前網路上的遷移學習(Transfer Learning)的做法也是百百種,這邊整理一下我嘗試過三種方法與做法,供未來使用。

一、 Slim 做遷移

使用 tensorflow.contrib.slim 做遷移 :

  1. 下載Inception_v3. ckpt 下載連結https://github.com/tensorflow/models/tree/master/research/slim

2. 詳細看這兩篇

二、用Keras做Transfer Learning

用Keras做Transfer Learning 會比用slim做更為簡單一點,並且在網路上已經有豐富的資料了,十分推 !

自己的model做transfer作法也相當簡單,將Keras model訓練完成後save成h5檔。接著在其他地方load_model,並且重新fit即可。

#保存model
model.save("./model/LSTM_model.h5")
#其他地方load
model = load_model("./model/LSTM_model.h5")
model.summary()
#重新fit新的資料
history = model.fit(
x=x_train,
y=y_train,
batch_size=BATCH_SIZE,
epochs=NUM_EPOCHS,
validation_data=(x1_val, y_val),
callbacks = [callback],
shuffle=True
)

三、Tensorflow 官方網站

tensorflow 官方的作法,用的好的話甚至不需要寫程式,就能自動做出機器學習了。

官方那一大串英文,大致做法是這樣 :

  1. 將tensorflow_hub clone下載下來 https://github.com/tensorflow/hub
  2. 載入要做遷移的Model並解壓
  3. 要訓練的資料集格式為 EX: data/class_name(按class分)/各種訓練圖片
  4. hub/examples/image_retraining/retrain.py 找出來。
  5. 訓練是使用cmd的方式訓練的 EX:

仔細看看retrain.py最後一百行可以知道傳入的參數有哪些,藉由調整 cmd的參數來達到訓練模型。

四、總結

好用度 : Keras > Slim > 用cmd訓練

--

--