达到输出大小限制后,缓冲数据被截断
Posted
技术标签:
【中文标题】达到输出大小限制后,缓冲数据被截断【英文标题】:Buffered data was truncated after reaching the output size limit 【发布时间】:2018-12-29 23:54:21 【问题描述】:当我使用 Colaboratory 运行我的 NIN 模型时,它在训练过程的输出中出现错误,提示“缓冲数据在达到输出大小限制后被截断”。在第 61 个时代。我不知道这次崩溃。我的代码还在运行吗?我该如何解决这个问题?
以下是关于我的训练过程输出的一些信息:
Epoch 57/200
391/391 [==============================] - 53s 135ms/step - loss: 0.8365 - acc: 0.7784 - val_loss: 0.9250 - val_acc: 0.7625
Epoch 58/200
28/391 [=>............................] - ETA: 46s - loss: 0.8356 - acc: 0.7835391/391 [==============================] - 53s 136ms/step - loss: 0.8288 - acc: 0.7811 - val_loss: 0.8977 - val_acc: 0.7608
Epoch 59/200
326/391 [========================>.....] - ETA: 8s - loss: 0.8309 - acc: 0.7789391/391 [==============================] - 53s 136ms/step - loss: 0.8297 - acc: 0.7798 - val_loss: 0.9030 - val_acc: 0.7628
Epoch 60/200
391/391 [==============================] - 53s 134ms/step - loss: 0.8245 - acc: 0.7825 - val_loss: 0.8378 - val_acc: 0.7767
Epoch 61/200
28/391 [=>............................] - ETA: 46s - loss: 0.8281 - acc: 0.7879390/391 [============================>.] - ETA: 0s - loss: 0.8177 - acc: 0.7851Buffered data was truncated after reaching the output size limit.
【问题讨论】:
【参考方案1】:我认为这个错误是因为内存不足。您的 RAM 或 GPU 内存已满,无法处理新数据。 你可以做两项工作: 1. 减少批量大小。 2. 将模型保存在例如第 60 个 epoch 并关闭当前程序并运行新程序并将保存的模型和训练模型从 61 epoch 恢复到 120 epoch 并保存并关闭程序并为您感兴趣的 epoch 重复此工作
【讨论】:
【参考方案2】:即使内存 |显卡 | colab 上的 DISK 是免费的,但仍然会出现此错误,因为在 colab 上显示单元格输出的内存有限。假设当我们在训练期间运行许多 epoch(148+)时内存限制在 2Mb 到 5Mb 左右,它往往会填满该内存,因此输出被截断,因为没有更多可用内存来显示缓冲的 epoch。但是,机器在后台继续运行,并且输出已处理但由于缓冲限制而未显示。你仍然会得到你想要的输出。
一种解决方案是不使用verbose=1(改为使用0)。
【讨论】:
或者改为设置verbose=2。 @greentec 随时在此处添加答案,在原始问题中而不是在其他重复项中。 我也遇到了这个问题,当我将详细程度更改为 2 并将日志保存到 csv 文件时,我不再收到错误消息。我拟合了具有 100 个 epoch 的模型,批次大小为 1。 这太漂亮了。每次我得到这个时,我都会重新启动运行时。假设有一些错误【参考方案3】:这与硬件 RAM 或 GPU 容量无关。
Keras 框架在控制台中显示输出信息方面存在限制。
当您看到此消息时,您的进程正在后台进行,但您看不到它。
如果您使用 tensorflow 作为后端,请在您的 Keras 中编写 Tensorboard 回调以查看网络的详细输出。
https://keras.io/callbacks/#tensorboard
【讨论】:
以上是关于达到输出大小限制后,缓冲数据被截断的主要内容,如果未能解决你的问题,请参考以下文章