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

时间:2018-07-22 08:39:29

标签: python keras deep-learning 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.

3 个答案:

答案 0 :(得分:2)

即使RAM | GPU |在colab上的DISK是免费的,由于在colab上显示输出的内存有限,因此仍然会出现此错误。假设当我们进行长时间训练时内存限制在2Mb到5Mb左右,它往往会占用很多内存,因此输出会被截断。但是,机器保持在后台运行,并且处理了输出,但是由于缓冲的限制,它不显示。您仍然会得到所需的输出。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

Keras框架在控制台中显示输出信息有一个限制。

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

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

https://keras.io/callbacks/#tensorboard