系统滞后或 TensorFlow 中可能存在错误?
Lagging System or a possible bug in TensorFlow?
我目前正在 TensorFlow(CPU 版本)中研究 RnD,但无法决定我的系统在大型数据集上进行训练的基本要求,或者我可能偶然发现了 TensorFlow 库中的一个可能错误.
Official TensorFlow documentation 没有任何地方表明对要构建的系统和 运行ning TensorFlow 程序有任何具体要求。据我所知,如果可以 运行 超过 Windows、Linux、Mac 以及 Android、iOS 以及超过嵌入式像 RaspberryPi 这样的系统,我想不应该有任何这样的硬件要求。
然而,在初步研究过程中,我尝试了 运行ning TensorFlow Seq2Seq 模型(将英语翻译成法语 https://www.tensorflow.org/tutorials/seq2seq),其中训练和测试数据集最终占用了大约 7 -8 GB 的磁盘 space 最初和整体 20-22Gb。一旦 translate.py python 脚本被执行,它最终会阻塞内存并将磁盘利用率分别推至 98% 和 100%。
我当前的系统 运行s Windows 8.1 64 位 OS,主频为 2.2 GHz 的 Core i5 5200U,8GB RAM 和大约 70GB 可用空间 space 硬盘(专门分配给 TensorFlow 使用)。但即使在允许我的系统 运行 超过 7-8 小时(没有其他应用程序 运行ning)之后,它也会卡住多次,而且通常是在对数据集进行标记后内存利用率达到 100% 左右之后。
虽然我不确定,但我想 TensorFlow 学习图是在 RAM 中创建的,一旦它扩展到所有内存 space,程序就会进入无限循环等待清除内存然后增加学习图。
所以整个问题归结为 3 个问题:
- TensorFlow 是否使用 RAM 来构建和保存学习图?如果是这样,是否有可能以类似的方式窒息?
- 从业务角度来看,训练这样的系统是否有最低硬件要求?
- 如果这不是系统要求,这是否可能是 TensorFlow 库中的一个错误,将其推入无限循环等待内存被清除?
更新
在连续 运行 运行 python 脚本 30 多个小时后,在 "Reading development and training data" 的过去 14 小时里,进程似乎一直停留在同一个地方。请参考下图进行进一步调查:
我刚要关闭程序,它又开始响应了,我又等了 15-20 分钟,最后我从 OS 本身得到了答案。确实是内存不足导致了问题。附上 Windows 系统 运行 内存不足警报的屏幕截图以供参考,以防有人遇到同样的情况。
更新
我尝试在 Google Cloud Platform 上使用 VM 实例。这台机器有 2 个 Intel Xeon (R),每个 运行ning 频率为 2.23 GHZ,具有 13GB RAM 和 50GB 存储空间。但在这种情况下,即使应用程序使用了超过 10.5 GB 的 RAM,结果也是一样的。似乎这个教程脚本需要一个非常强大的系统,可能是一台超级计算机,至少有 32 GB RAM 到 运行 并完全执行。我现在可能会查看 write/arrange 我自己的数据集。然而,这必须被视为未来使用持久存储(HDD/SSD)创建图形而不是 RAM 的增强,以避免内存阻塞。
我目前正在 TensorFlow(CPU 版本)中研究 RnD,但无法决定我的系统在大型数据集上进行训练的基本要求,或者我可能偶然发现了 TensorFlow 库中的一个可能错误.
Official TensorFlow documentation 没有任何地方表明对要构建的系统和 运行ning TensorFlow 程序有任何具体要求。据我所知,如果可以 运行 超过 Windows、Linux、Mac 以及 Android、iOS 以及超过嵌入式像 RaspberryPi 这样的系统,我想不应该有任何这样的硬件要求。
然而,在初步研究过程中,我尝试了 运行ning TensorFlow Seq2Seq 模型(将英语翻译成法语 https://www.tensorflow.org/tutorials/seq2seq),其中训练和测试数据集最终占用了大约 7 -8 GB 的磁盘 space 最初和整体 20-22Gb。一旦 translate.py python 脚本被执行,它最终会阻塞内存并将磁盘利用率分别推至 98% 和 100%。
我当前的系统 运行s Windows 8.1 64 位 OS,主频为 2.2 GHz 的 Core i5 5200U,8GB RAM 和大约 70GB 可用空间 space 硬盘(专门分配给 TensorFlow 使用)。但即使在允许我的系统 运行 超过 7-8 小时(没有其他应用程序 运行ning)之后,它也会卡住多次,而且通常是在对数据集进行标记后内存利用率达到 100% 左右之后。
虽然我不确定,但我想 TensorFlow 学习图是在 RAM 中创建的,一旦它扩展到所有内存 space,程序就会进入无限循环等待清除内存然后增加学习图。
所以整个问题归结为 3 个问题:
- TensorFlow 是否使用 RAM 来构建和保存学习图?如果是这样,是否有可能以类似的方式窒息?
- 从业务角度来看,训练这样的系统是否有最低硬件要求?
- 如果这不是系统要求,这是否可能是 TensorFlow 库中的一个错误,将其推入无限循环等待内存被清除?
更新
在连续 运行 运行 python 脚本 30 多个小时后,在 "Reading development and training data" 的过去 14 小时里,进程似乎一直停留在同一个地方。请参考下图进行进一步调查:
我刚要关闭程序,它又开始响应了,我又等了 15-20 分钟,最后我从 OS 本身得到了答案。确实是内存不足导致了问题。附上 Windows 系统 运行 内存不足警报的屏幕截图以供参考,以防有人遇到同样的情况。
更新
我尝试在 Google Cloud Platform 上使用 VM 实例。这台机器有 2 个 Intel Xeon (R),每个 运行ning 频率为 2.23 GHZ,具有 13GB RAM 和 50GB 存储空间。但在这种情况下,即使应用程序使用了超过 10.5 GB 的 RAM,结果也是一样的。似乎这个教程脚本需要一个非常强大的系统,可能是一台超级计算机,至少有 32 GB RAM 到 运行 并完全执行。我现在可能会查看 write/arrange 我自己的数据集。然而,这必须被视为未来使用持久存储(HDD/SSD)创建图形而不是 RAM 的增强,以避免内存阻塞。