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

问题描述 投票:0回答:3

当我使用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.
python keras deep-learning google-colaboratory
3个回答
3
投票

即使RAM | GPU | colab上的DISK是免费的,这个错误仍然存​​在,因为在colab上显示输出的内存有限。假设当我们运行长历元训练时内存限制大约为2Mb到5Mb,它往往会过多地填充内存,因此输出会被截断。但是,机器在后台继续运行并且输出已处理但由于缓冲限制而未显示。您仍然可以获得所需的输出。

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


2
投票

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

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

当您看到此消息时,您的进程将在后台进行,但您无法看到它。

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

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

1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.