Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么对Keras model.predict()的单个调用使用1.3 GB内存?_Python_Tensorflow_Machine Learning_Memory Leaks_Keras - Fatal编程技术网

Python 为什么对Keras model.predict()的单个调用使用1.3 GB内存?

Python 为什么对Keras model.predict()的单个调用使用1.3 GB内存?,python,tensorflow,machine-learning,memory-leaks,keras,Python,Tensorflow,Machine Learning,Memory Leaks,Keras,我目前正在使用Keras和TensorFlow后端重新创建Deepmind的AlphaZero作为个人项目。在每个游戏模拟过程中,我使用的NN需要做出许多预测。NN正常工作,但使用了过多的CPU RAM 我正在使用psutil.Process(os.getpid()).memory_info().rss打印内存使用量,当第一次调用model.predict()时,内存使用量从大约0.3 GB跃升到1.6 GB。在连续调用时,不会分配新内存(或至少很少) 我不确定这是否是预期的行为,但我希望程序尽

我目前正在使用Keras和TensorFlow后端重新创建Deepmind的AlphaZero作为个人项目。在每个游戏模拟过程中,我使用的NN需要做出许多预测。NN正常工作,但使用了过多的CPU RAM

我正在使用
psutil.Process(os.getpid()).memory_info().rss
打印内存使用量,当第一次调用
model.predict()
时,内存使用量从大约0.3 GB跃升到1.6 GB。在连续调用时,不会分配新内存(或至少很少)

我不确定这是否是预期的行为,但我希望程序尽可能高效地运行,就像我希望在谷歌计算引擎上的TPU上运行一样

以下是我的Keras型号的代码:

main_input = Input(shape = self.input_dim, name = 'main_input', dtype="float32")

x = self.conv_layer(main_input, 256, (3,3))

for i in range(19): # AlphaZero used 19
    x = self.residual_layer(x, 256, (3, 3))

vh = self.value_head(x)
ph = self.policy_head(x)

model = Model(inputs=[main_input], outputs=[vh, ph])
model.compile(loss={'value_head': 'mean_squared_error', 'policy_head': softmax_cross_entropy_with_logits},
    optimizer=SGD(lr=self.learning_rate, momentum = MOMENTUM), #config.MOMENTUM
    loss_weights={'value_head': 0.5, 'policy_head': 0.5}
)

神经网络非常大,因此其大小可能会影响分配的RAM量,但1.6 GB似乎不合理。此外,如果我将模型减少到只有2个剩余层而不是19个,那么它仍然会分配大约1.54 GB,而不是以前使用的1.6 GB。

您的模型有多少个参数?批量大小可能需要大量内存?1.6Gb不是很多…您的模型有多少个参数?批量大小可能需要很多内存?1.6Gb不是很多。。。