0

我正在使用python和tf并寻找正确的方法来屏蔽某些输入,同时训练mnist数据的自动去噪编码器。python tensorflow在输入图层上使用丢失

我尝试使用输入图层的缺失,与隐藏图层使用相同的方式,结果并不好,很难知道自动编码器的问题,因为它很难调试所有深度学习架构

,我使用的辍学,包括输入层上的代码:

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输入屏蔽一些实现,但我觉得很难相信,有没有为此建立了功能。

屏蔽输入的正确方法是丢失?如果没有,是否有内置的方式来使用输入上的掩码(丢失)?

谢谢

回答

1

通常输入层的保持概率是不同的。首先,尽量保留所有的输入keep_prob=1.0,看看你是否得到类似的结果没有辍学。如果你尝试keep_prob=0.0,你应该只听到噪音(没有输入)。这是你如何调试这种系统。当你确定限制工作时,试试像keep_prob=0.8这通常对mnist有好处。

+0

谢谢!你能推荐任何精确度> 97%的好工作mnist自动编码器吗? – thebeancounter