【发布时间】:2017-11-21 10:12:45
【问题描述】:
我正在使用带有 tf 的 python,并在为 mnist 数据训练自动降噪编码器时寻找适当的方法来屏蔽一些输入。
我尝试对输入层使用 dropout,就像我对隐藏层使用它一样,结果不是很好,很难知道自动编码器的问题是什么,因为很难调试所有深度学习架构
我用于 dropout 的代码,包括输入层:
def encoder_2(x):
global dims #list of dimensions including the input
layers = [x]
dropouts = []
for i,dim in list(enumerate(dims))[:-1]:
dropouts.append(tf.nn.dropout(layers[-1], keep_prob=keep_prob))
try:
layers.append(tf.nn.relu(tf.add(tf.matmul(dropouts[-1], weights["encoder_h%d"%(i+1)]), biases["encoder_b%d"%(i+1)])))
except:
pass
return layers[-1]
我找到了here 一些输入屏蔽的实现,但我很难相信 tf 中没有内置函数。
屏蔽输入的正确方法是丢失吗?如果没有,是否有在输入上使用掩码(dropout)的内置方法?
谢谢
【问题讨论】:
标签: python tensorflow deep-learning autoencoder unsupervised-learning