作者znmkhxrw (QQ)
看板DataScience
标题[问题] keras model.trainable一问
时间Mon Jun 11 01:37:34 2018
问题类别: ML
使用工具: python,keras
问题内容:
想以以下例子问trainable的
影响范围
def generator():
input = Input(shape=(100,))
y = Dense(300,activation = "relu")(input)
y = Dense(500,activation = "relu")(y)
y = Dense(784,activation = "relu")(y)
return Model(input,y)
【Case I】
gen_model = generator()
gen_model.trainable=False
model = Model(gen_model.input, gen_model(gen_model.input))
model.summary()
【Case II】
gen_model = generator()
gen_model.trainable=False
model = Model(gen_model.input, gen_model.output)
model.summary()
结果:
Case I的model会被gen_model的trainable=False影响到
但是 Case II的model
并不会
起初我是先知道Case II,然後觉得很合理
把
model = Model(gen_model.input, gen_model.output) 解释成:
只会使用gen_model的
架构,trainable与否的设定不会继承
但是突然发现Case I後就发现这套说法无法解释了...
虽然我知道正解是:module本身就是这样设计 背起来(?
但是有没有理解性的说法可以给我参考
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.68.160.241
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1528652257.A.334.html
2F:推 siscon: 我的keras版本是2.1.6 06/11 02:21
我来公司用keras 2.1.6跑没错耶,附上code:
from keras.models import Model
from keras.layers import Input, Dense
def generator():
input = Input(shape=(100,))
y = Dense(300,activation = "relu")(input)
y = Dense(500,activation = "relu")(y)
y = Dense(784,activation = "relu")(y)
return Model(input,y)
gen_model = generator()
gen_model.trainable=False
model = Model(gen_model.input, gen_model(gen_model.input))
model.summary()
gen_model = generator()
gen_model.trainable=False
model = Model(gen_model.input, gen_model.output)
model.summary()
※ 编辑: znmkhxrw (210.242.52.37), 06/11/2018 10:16:03
3F:→ znmkhxrw: 已有答案 谢谢 06/11 11:34