达到输出大小限制后,缓冲的数据将被截断

lyc*_*ter 7 python deep-learning keras google-colaboratory

当我使用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.
Run Code Online (Sandbox Code Playgroud)

nim*_*adi 9

它与硬件 RAM 或 GPU 容量无关。

Keras 框架在控制台中显示输出信息方面存在限制。

当您看到此消息时,您的进程正在后台进行,但您看不到它。

如果您使用 tensorflow 作为后端,请在您的 Keras 中编写一个 Tensorboard 回调以查看您网络的详细输出。

https://keras.io/callbacks/#tensorboard
Run Code Online (Sandbox Code Playgroud)


Pra*_*mar 7

即使RAM | GPU | 在colab上的DISK是免费的,由于在colab上显示单元格输出的内存有限,因此仍然会出现此错误。假设在训练过程中运行多个纪元(148+)时内存限制在2Mb到5Mb左右,它往往会填满该内存,因此输出将被截断,因为没有更多的可用内存来显示缓冲的纪元。但是,机器保持在后台运行,并且处理了输出,但是由于缓冲的限制,它不显示。您仍将获得所需的输出。

一种解决方案是不使用verbose = 1(改为使用0)。


Far*_*d.H -12

我认为这个错误是因为内存不足。您的 RAM 或 GPU 内存已满,无法处理新数据。你可以做两件事: 1. 减少批量大小。2. 将模型保存在例如第 60 个 epoch 中并关闭当前程序并运行新程序并恢复保存的模型并将模型从 61 epoch 训练到 120 epoch 并保存并关闭程序并为您感兴趣的 epoch 重复此工作