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