Keras在fit过程中(verbose=1)会使Jupyter单元格输出过多。

7
在Jupyter笔记本中运行keras模型时,使用“verbose=1”选项,我开始得到不是单行进度状态更新,而是一堆在批处理中更新的状态行。请参见附图。重新启动jupyter或浏览器没有帮助。 Jupyter笔记本服务器为:5.6.0,keras为2.2.2,Python为Python 3.6.5。 请帮忙解决问题。 单元格内容: history = model.fit(x=train_df_scaled, y=train_labels, batch_size=BATCH_SIZE, epochs=EPOCHS, verbose=1, validation_data=(validation_df_scaled, validation_labels), shuffle=True)
输出示例(有数千行类似于此的输出): loss: 217.5794 - mean_absolute_error: 11.166 - ETA: 32:42 - loss: 216.9500 - mean_absolute_error: 11.165 - ETA: 32:21 - loss: 216.6378 - mean_absolute_error: 11.164 - ETA: 32:00 - loss: 216.0345 - mean_absolute_error: 11.164 - ETA: 31:41 - loss: 215.6621 - mean_absolute_error: 11.166 - ETA: 31:21 - loss: 215.4639 - mean_absolute_error: 11.171 - ETA: 31:02 - loss: 215.1654 - mean_absolute_error: 11.173 - ETA: 30:44 - loss: 214.6583 - mean_absolute_error: 11.169 - ETA: 30:27 - loss: 213.8844 - mean_absolute_error: 11.164 - ETA: 30:10 - loss: 213.3308 - mean_absolute_error: 11.163 - ETA: 29:54 - loss: 213.1179 - mean_absolute_error: 11.167 - ETA: 29:37 - loss: 212.8138 - mean_absolute_error: 11.169 - ETA: 29:25 - loss: 212.7157 - mean_absolute_error: 11.174 - ETA: 29:11 - loss: 212.5421 - mean_absolute_error: 11.177 - ETA: 28:56 - loss: 212.1867 - mean_absolute_error: 11.178 - ETA: 28:42 - loss: 211.8032 - mean_absolute_error: 11.180 - ETA: 28:28 - loss: 211.4079 - mean_absolute_error: 11.179 - ETA: 28:15 - loss: 211.2733 - mean_absolute_error: 11.182 - ETA: 28:02 - loss: 210.8588 - mean_absolute_error: 11.179 - ETA: 27:50 - loss: 210.4498 - mean_absolute_error: 11.178 - ETA: 27:37 - loss: 209.9327 - mean_absolute_error: 11.176 - ETA: 27:

嗯...你忘记问问题了。另外,如果你不想要冗长的输出,也许就不要将 verbose 设为 1。 - meissner_
3个回答

4

经过几次测试,我发现错误与tqdm导入相关。一段代码中使用了tqdm,后来该代码被重新编写而没有使用它。即使我在这个笔记本中没有使用tqdm,但仅仅导入它也会影响keras的输出结果。 为了解决它,我只需将这行代码注释掉: from tqdm import tqdm 然后一切都很好,有漂亮的keras进度条。不确定它如何与keras发生冲突...


标记自己为答案! - Worthy7
1
我也遇到了同样的问题,但是我无法不导入tqdm(它已经包含在tensorflow/datasets中了)。我还在寻找解决方案。 - AniSkywalker

1

verbose=2应该用于交互式输出。


我尝试了_verbose = 2_,但它只显示了时期编号,没有损失数据或ETA。让我困惑的是,就在两天前,我还能得到正常的输入。我的软件没有进行任何重大更改 - 不知道哪里出了问题。 - Poe Dator
听起来像是您的安装出了问题(很可能是Jupyter或某个浏览器问题)。通常输出应该是相同的,但是会覆盖一行而不是逐行写入。 - Martin Krämer

1

我建议您尝试以下两件事情:

  • 尝试重新启动Jupyter Notebook服务器。
  • 尝试使用其他浏览器,可能您当前使用的浏览器已经更新导致出现问题!(通常,Chrome不太适合Notebooks!)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接