我在CPU上运行一个简单的带有TensorFlow的卷积神经网络,使用Python/Numpy从磁盘加载数据并进行准备。 Python/Numpy部分消耗的内存非常少,因为我只加载了32个1MB图像。内存高效的设计技巧TensorFlow NN
但是,在运行sess.run(AdamOptimizer)
内存使用率达到天文数字峰值时,可以看到在memory_profiler以下输出,显示了4个训练周期和一个测试周期。
12GB峰值限制了我批量的大小,同时训练网络的数量或我的图层大小。我相信这个峰值与从Python到TF或者正向激活的数据传输有关,因为它在sess.run(accuracy)
声明中等同存在。
我可能设计得不好CNN图吗?有人可以指出我应该记住的设计规则,特别是内存?有可能及时涂抹这个吗? - 如果12GB峰值增长了两倍并且是一半的话,这将是一个进步。最后是否有一种方法可以表示峰值开始和结束时间,以便我可以管理多个网络来进行隔行扫描? (请注意,在单个sess.run()
声明中发生的缩小的2秒钟峰值大约需要20秒)