Re: [問題] keras自編碼

看板DataScience作者 (優良)時間5年前 (2018/12/08 22:08), 編輯推噓1(100)
留言1則, 1人參與, 5年前最新討論串2/2 (看更多)
先前推文寫太簡短 底下寫我認為可能的解法 簡單來說: Step 1. 獨立定義decoder的每個layer Step 2. 讓auto encoder跟decoder共用Step 1.的decoder layer 這樣做可以共享auto encoder訓練好的權重給decoder ※ 引述《nqj (黑貓)》之銘言: : input_img = Input(shape=(784,)) : code = Input(shape=(2,)) 這行改成 code_input = Input(shape=(encoding_dim,)) 改的原因是因為要跟後面的code區隔開來 (原文讀下來2應該就是encoding_dim,如果不是再改回2) : # encode layers : encoded = Dense(128, activation='relu')(input_img) : encoded = Dense(16, activation='relu')(encoded) : encoded = Dense(10, activation='relu')(encoded) : code = Dense(encoding_dim)(encoded) : # decode layers Step 1. 獨立定義decoder的每個layer decoder_layer_1 = Dense(10, activation='relu') decoder_layer_2 = Dense(16, activation='relu') decoder_layer_3 = Dense(128, activation='relu') decoder_layer_4 = Dense(784, activation='tanh') Step 2. 讓auto encoder跟decoder共用Step 1.的decoder layer # 定義 auto encoder decoded = decoder_layer_1(code) decoded = decoder_layer_2(decoded) decoded = decoder_layer_3(decoded) decoded = decoder_layer_4(decoded) : autoencoder = Model(inputs=input_img, outputs=decoded) : encoder = Model(inputs=input_img, outputs=code) # 定義 decoder x = decoder_layer_1(code_input) x = decoder_layer_2(x) x = decoder_layer_3(x) x = decoder_layer_4(x) decoder = Model(inputs=code_input, outputs=x) 定義完畢,先訓練好autoencoder之後 decoder也跟著完成了 如果有誤再請各位指正 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.13.94 ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1544278100.A.8D2.html

12/10 09:48, 5年前 , 1F
成功了,非常感謝!!
12/10 09:48, 1F
文章代碼(AID): #1S2z1KZI (DataScience)
文章代碼(AID): #1S2z1KZI (DataScience)