自动编码器的输出没有任何改善

时间:2020-08-01 04:48:40

标签: python tensorflow autoencoder

我正在训练使用梯度带进行神经样式传递的自动编码器。即使经过数千个纪元,我也看不出损失的任何区别。我尝试了不同的批次大小和学习率。值得一提的是,它是在训练时使用单幅图像进行训练的,而当我使用批量训练时,损失不会减少。我的问题是,如果单幅图像0.001很好,我们应该如何相对地改变学习率。对于批量训练,我应该增加还是减少它。请让我知道您的建议 这是我的火车踏步功能

AttributeError: 'Controller' object has no attribute 'Button'

这是损失函数

#gradient tape for training

def train_step(images,step):
  c=tf.Variable(initial_value=0,dtype="float32")
  with tf.GradientTape() as tape:
    for i in range(int(5)):
      w=(i+step)%lent
      content_targets=cont[w]
      outputs = extractor(model_(images[w]))
      loss = style_content_loss(outputs,content_targets)
      total_variation_weight=30
      loss += total_variation_weight*tf.image.total_variation(model_(images[w]))
      c=c+loss
    loss=tf.reduce_mean(c) 
    print("loss:",loss) 
  gradients = tape.gradient(loss, model_.trainable_variables)
  opt.apply_gradients(zip(gradients, model_.trainable_variables))

0 个答案:

没有答案