训练模型时,将loss值保存进log,随后使用tensorboard --logdir=log,查看loss曲线。
出现tags and values not the same shape这个错误的原因,是因为对tf.summary.scalar()函数没有理解。
解决办法:
tf.summary.scalar(loss.op.name,loss)有两个参数。第一个参数表示loss保存如log在tensorboard中显示的名字,第二个参数loss应为一个标量,即是一个数值。比如loss.shape()为(16,),是一个tensor,则需要在此处加上一行代码
loss = tf.reduce_mean(loss, name = 'loss')
就可以将loss由张量变为一个batch的loss标量值。
若想保存tensor值即一个权重矩阵,则可以使用tf.summary.tensor_summary(loss.op.name, loss)。