缓冲数据在达到输出大小limi后被截断

2024-03-28 14:00:17 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用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.

Tags: 数据代码模型信息过程step错误val
3条回答

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

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

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

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

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

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

即使colab上的RAM | GPU |磁盘是空闲的,这个错误仍然会出现,因为colab上显示单元输出的内存有限。当我们在训练中运行多个epoch(148+)时,假设内存限制在大约2Mb到5Mb之间,它往往会填满该内存,因此输出会被截断,因为没有更多的可用内存来显示缓冲的epoch。但是,机器仍在后台运行,并处理输出,但由于缓冲限制而不显示输出。你仍然会得到你想要的结果。

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

相关问题 更多 >