如何在Keras模型训练时通过TensorBoard查看损失随轮次变化曲线
解决Keras TensorBoard中查看损失曲线的问题
嗨,你已经做对了大部分工作,只需要调整几个小地方就能看到损失随轮次下降的曲线啦,具体步骤如下:
1. 确保训练有足够的轮次
你当前的model.fit()调用没有指定epochs参数,Keras默认只训练1轮,这样自然没有足够的数据生成曲线。修改你的fit代码,添加足够的训练轮次,比如:
model.fit(X_train, y_train, epochs=50, callbacks=[tensorboard])
2. (可选但推荐)添加验证数据,对比训练/验证损失
如果想同时观察训练损失和验证损失的变化(这对判断过拟合很有用),可以在fit时传入validation_data参数:
model.fit(X_train, y_train, epochs=50, validation_data=(X_val, y_val), callbacks=[tensorboard])
3. 确认TensorBoard回调的配置
你的TensorBoard初始化已经包含了write_graph=True等参数,其实默认情况下Keras的TensorBoard回调就会自动记录训练损失(以及你指定的metrics),所以不需要额外修改回调的参数。
4. 正确启动TensorBoard并查看曲线
确保你在终端中指定了正确的日志目录启动TensorBoard:
tensorboard --logdir=logs/
然后在浏览器打开输出的地址(通常是http://localhost:6006),切换到Scalars标签页,就能看到训练损失(loss)以及验证损失(val_loss,如果加了验证数据的话)随训练轮次变化的曲线了。
额外小提示
如果想更清晰地追踪损失,也可以在model.compile()时显式指定metrics(虽然回归任务常用MSE作为损失,但也可以添加相同的metrics方便查看):
model.compile(loss='mse', optimizer='rmsprop', metrics=['mse'])
这样在Scalars页面还能看到mse指标的曲线,和损失曲线是一致的。
内容的提问来源于stack exchange,提问作者Debdeep Basu
相关产品推荐
相关产品推荐

