[問題] keras trainable 快速設定 500p
想請問一個型如以下的model:
input = Input(shape = (None, None, 3))
y = block_1(input)
y_1 = block_2(y)
y_2 = block_3(y)
y_3 = Concatenate()([y_1, y_2])
model = Model(input, y_3)
有沒有辦法不用summary算層數在model build起來後
直接設定y_1 = block_2(y)的trainable為False
其中 block_1,2,3 都不是 Model class
會有這問題是因為當初因為block_1,2,3很複雜就沒逐一設name
原本想要硬算層數,但是summary出來發現因為y_2, y_3都有吃到y,所以summary的layer
是平行對稱下來的,但是又有不對稱的地方,算完也不太確定是否正確
不知道是否有一勞永逸的方法?
雖然把block改寫成 Model class是一解,但是原本的架構已經train完了
嘗試改寫成 Model class就load不進去原本train好的weights....
因為 Model class會被當成一整大層的layer,整體變一層 就對不上了QQ
感謝幫忙~第一個解決的500p致謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.68.160.241
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1542660755.A.94C.html
※ 編輯: znmkhxrw (219.68.160.241), 11/20/2018 04:53:09
→
11/21 01:32,
5年前
, 1F
11/21 01:32, 1F
這個我試過了,好像有BUG,應該說是keras自己的設定
當初我train時全部的layer都是True
而晚上我就故意建一個一模一樣的model,只是block_2裡面layer都給trainable = False
之後再load_weights應該就可以了
結果是失敗的!
整個超不合理的,等於是說我用全部trainable = True的model下去train,
之後建回來一樣的model時連trainable都要設定一樣才能load_weights...
但是明明毫無關係阿
後來上google找,有人有相同的問題:https://goo.gl/1v8rYz
他是model = Res50 + self_layer, train時把Res50的trainable改成False
之後要load回來fine tune時,必須建一個Res50的trainable = False的同model才能load
這個能解掉的話也是一個方法...
或是 #1Rz40vk6 (DataScience) 的問題如果有解也是一種方法
※ 編輯: znmkhxrw (219.68.160.241), 11/21/2018 01:42:02
推
11/21 04:10,
5年前
, 2F
11/21 04:10, 2F
→
11/21 04:19,
5年前
, 3F
11/21 04:19, 3F
→
11/21 04:20,
5年前
, 4F
11/21 04:20, 4F
→
11/21 04:21,
5年前
, 5F
11/21 04:21, 5F
原來順序會變....所以真的當時train前的default tranability setting是怎樣時
load_weights時所建的model也要跟當初save weights有相同的default tranability??
不過因為block_2涵蓋超多layer 逐個調weight順序好像有點血尿XDDD
學了一課 THX~
→
11/21 14:28,
5年前
, 6F
11/21 14:28, 6F
→
11/21 14:29,
5年前
, 7F
11/21 14:29, 7F
→
11/21 14:29,
5年前
, 8F
11/21 14:29, 8F
→
11/21 14:30,
5年前
, 9F
11/21 14:30, 9F
→
11/21 14:30,
5年前
, 10F
11/21 14:30, 10F
所以,假設一個model有3個layer:
(1)trainable 分別為 T F T
(2)trainable 分別為 T T T
這兩個在save_weights時,存的順序順序是不一樣的
如果是在(1)的情況下存
之後要load_weights時,即便建同樣的model,trainable 一定也要先給 T F T 後
才能load成功?
※ 編輯: znmkhxrw (220.128.169.29), 11/21/2018 14:39:27