[问题] 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