亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法使用反卷積層訓練 VAE

無法使用反卷積層訓練 VAE

肥皂起泡泡 2021-06-03 17:39:09
我正在 Tensorflow 中為 MNIST 數據集試驗 VAE 實現。首先,我訓練了一個基于 MLP 編碼器和解碼器的 VAE。它訓練得很好,損失減少了,它生成了看似合理的數字。下面是這個基于 MLP 的 VAE 解碼器的代碼:x = sampled_zx = tf.layers.dense(x, 200, tf.nn.relu)x = tf.layers.dense(x, 200, tf.nn.relu)x = tf.layers.dense(x, np.prod(data_shape))img = tf.reshape(x, [-1] + data_shape)下一步,我決定添加卷積層。只改變編碼器工作得很好,但是當我在解碼器(而不是 fc 層)中使用反卷積時,我根本沒有得到任何訓練。損失函數永遠不會減少,輸出總是黑色的。這是反卷積解碼器的代碼:x = tf.layers.dense(sampled_z, 24, tf.nn.relu)x = tf.layers.dense(x, 7 * 7 * 64, tf.nn.relu)x = tf.reshape(x, [-1, 7, 7, 64])x = tf.layers.conv2d_transpose(x, 64, 3, 2, 'SAME', activation=tf.nn.relu)x = tf.layers.conv2d_transpose(x, 32, 3, 2, 'SAME', activation=tf.nn.relu)x = tf.layers.conv2d_transpose(x, 1, 3, 1, 'SAME', activation=tf.nn.sigmoid)img = tf.reshape(x, [-1, 28, 28])這看起來很奇怪,代碼對我來說看起來很好。我把它縮小到解碼器中的反卷積層,那里有一些東西打破了它。例如,如果我在最后一次解卷積后添加一個全連接層(即使沒有非線性?。挚梢怨ぷ髁?!這是代碼:x = tf.layers.dense(sampled_z, 24, tf.nn.relu)x = tf.layers.dense(x, 7 * 7 * 64, tf.nn.relu)x = tf.reshape(x, [-1, 7, 7, 64])x = tf.layers.conv2d_transpose(x, 64, 3, 2, 'SAME', activation=tf.nn.relu)x = tf.layers.conv2d_transpose(x, 32, 3, 2, 'SAME', activation=tf.nn.relu)x = tf.layers.conv2d_transpose(x, 1, 3, 1, 'SAME', activation=tf.nn.sigmoid)x = tf.contrib.layers.flatten(x)x = tf.layers.dense(x, 28 * 28)img = tf.reshape(x, [-1, 28, 28])在這一點上我真的有點卡住了,有沒有人知道這里可能會發生什么?我使用 tf 1.8.0,Adam 優化器,1e-4 學習率。
查看完整描述

1 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

可能是您在最終的 deconv 層中使用了 sigmoid 將輸出限制為 0-1,您不在基于 MLP 的自動編碼器中這樣做,或者在 deconvs 后添加完全連接時可能會出現數據范圍問題?


查看完整回答
反對 回復 2021-06-09
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號