看板 DataScience 關於我們 聯絡資訊
問題類別: 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
siscon: https://i.imgur.com/cvXMXZK.png 跑code有錯耶 06/11 02:17
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
znmkhxrw: 已有答案 謝謝 06/11 11:34