[問題] keras model.trainable一問(solved)
問題類別: 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://www.ptt.cc/bbs/DataScience/M.1528652257.A.334.html
推
06/11 02:17,
6年前
, 1F
06/11 02:17, 1F
推
06/11 02:21,
6年前
, 2F
06/11 02:21, 2F
我來公司用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
→
06/11 11:34,
6年前
, 3F
06/11 11:34, 3F
DataScience 近期熱門文章
PTT數位生活區 即時熱門文章