我正在训练使用梯度带进行神经样式传递的自动编码器。即使经过数千个纪元,我也看不出损失的任何区别。我尝试了不同的批次大小和学习率。值得一提的是,它是在训练时使用单幅图像进行训练的,而当我使用批量训练时,损失不会减少。我的问题是,如果单幅图像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))