问题
我正在谷歌实验室上训练一个简单的人工神经网络(ANN),并收到一条错误消息:
"缓冲数据在达到输出大小限制后被截断。">
调用GridSearch时,此错误消息出现在最后一个代码块处。
笔记本链接:https://colab.research.google.com/drive/1TDYumLOoKA1VhrDlW38ztSbBPFmijIDz
此链接包含正在运行的完整代码。
Symptons
我第一次尝试执行步骤1(导入数据)到步骤6(评估ANN),结果Chrome崩溃了,可能是由于资源不足。我在这里研究并发现了一个关于限制输出日志的线程:
Google Colab内存不足,无法打开此页面
在谷歌上搜索了如何做到这一点后,我在笔记本上插入了"步骤0",这似乎解决了Chrome崩溃的问题。
ANN的训练现在进行了几个小时,并到达步骤6,在那里我收到以下输出(请在最后一行向右滚动查看错误):
Epoch 105/500
7200/7200 [==============================] - 0s 56us/step - loss: 0.4021 - acc: 0.8353
Epoch 106/500
7200/7200 [==============================] - 0s 59us/step - loss: 0.4019 - acc: 0.8351
Epoch 107/500
7200/7200 [==============================] - 0s 59us/step - loss: 0.4019 - acc: 0.8354
Epoch 108/500
7200/7200 [==============================] - 0s 58us/step - loss: 0.4019 - acc: 0.8347
Epoch 109/500
7200/7200 [==============================] - 0s 58us/step - loss: 0.4019 - acc: 0.8351
Epoch 110/500
1825/7200 [======>.......................] - ETA: 0s - loss: 0.3930 - acc: 0.8400Buffered data was truncated after reaching the output size limit.
我试过什么
除了插入步骤0,限制输出日志记录外,我还尝试过在谷歌和StackOverflow上搜索,但没有成功。唯一相关的线程是:
缓冲数据在达到输出大小限制后被截断
然而,作者没有回应,给出的建议也不适用,因为培训是在谷歌Colab上进行的,而不是本地的。因此,"关闭程序并重新运行"并不能真正起作用,我多次关闭和重新打开应用程序也不可行。
最后,如果Google Colab未能训练出这个简单的ANN,那么除了在深度学习中执行"Hello world"类型的示例之外,我们还应该如何将其用于其他任何事情呢?
结论
我仍然坚持限制输出大小的限制。我不需要看到整个输出,最好只看到前5行和最后5行左右…
终止的是缓冲数据的显示,它必须被显示,而不是计算本身,所以它无论如何都不会影响你的模型,你可以继续你的模型并继续进行,而不必太担心这一点。
如果你对互联网上的陌生人持怀疑态度,并想亲自验证,你可以做这个简单的实验。
你可以限制历元的数量并使用多个train语句,因为你使用的是GridSearchCV,它不会在多个运行中保留最佳超参数,所以你必须手动处理,你可以使用列表来存储所有超参数并存储它们的值,也可以为每个运行创建局部最优值,然后在其中选择全局最优值,然后你可以将其与你现在运行它的方式得到的结果进行比较。
限制输出日志记录或任何其他类似机制都不起作用,重新启动笔记本也不起作用——因为问题不在于它计算什么,而在于它显示什么。如果输出缓冲区溢出,那么下次必须显示输出时,它会自动处理。