如何从keras模型中释放GPU内存?

时间:2018-07-23 10:17:32

标签: python tensorflow keras deep-learning

我正在加载一个之前训练过的keras模型,以用他的权重初始化另一个网络。不幸的是,我加载的模型充满了我的全部记忆,因此无法训练新模型。这是代码:

gc.collect()

我检查了多个帖子,通常clear_session()Theodosioss-MacBook-Pro:~ theo$ export M2_HOME=/Users/theo/apache- maven-3.5.4 可以解决问题,但对我来说,到目前为止还行不通。有想法吗?

PS:我正在使用tensorflow作为后端。

1 个答案:

答案 0 :(得分:0)

正如@MatiasValdenegro所说的,tensorflow分配了整个内存,这就是为什么删除模型后看不到差异的原因。因此,我基本上加载了预先训练的模型,创建了新模型,并使用预先训练的模型中的权重来初始化他的权重。之后,我使用del modelgc.collect()删除了预训练模型。由于新模型比经过预先训练的模型多一层,因此我不得不减小批处理大小,以免耗尽内存。