[問題] keras trainable 快速設定 500p

作者: znmkhxrw (QQ)   2018-11-20 04:52:33
想請問一個型如以下的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致謝
作者: jackwang01 (艾斯比那)   2018-11-21 01:32:00
嗯...block2多加一個參數控制trainable?
作者: germun (ger)   2018-11-21 04:10:00
trainable會影響model取weights的順序加name是最簡單啦...雖然我覺得改寫成model比較省事至育weights的問題你用model.weights檢查一下就知道了順序有變又不想重train的話,就list對照一下順序調整就好..

Links booklink

Contact Us: admin [ a t ] ucptt.com