首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的深度学习训练速度越来越慢?

搭建了一个卷积神经网络做时序数据的分类,上周五开始训练,历经一个双休周末,还没有跑完。batch_size为128,按照最开始的训练速度感觉应该很快可以完成,但是并不如我所愿。周一查看的时候,每一批次训练都耗时相当长。感觉是不正常的。那是什么原因导致训练越来越慢呢?

我尝试了以下方法,最终找到问题并解决:

1、记录每次迭代所花费时间。

然后尝试:

1、缩小网络规模

2、缩小batch_size

3、迭代中只处理数据,不进行训练

发现并没有改善训练速度,还是会越来越慢。

在google中搜索了一下,训练速度越来越慢的问题?得到如下启示:

因为在运行时的session里定义了tf的op导致的。这样每一次迭代都会在graph里增加新的节点,导致memory leak,程序越来越慢,最后强行退出。至于在运行时程序有没有增加节点,可以在session里定义graph.finalize()锁定graph,如果跑的时候报错就证明程序在动态添加节点导致的越来越慢。

检查训练循环的代码块中是否存在tf 的op节点,发现对label进行one_hot处理是采用的tf.one_hot方法。将其改成numpy的实现方式。训练越来越慢的速度就解决了。

另外可通过增加tf.get_default_graph().finalize() 锁图操作,快速定位和发现问题。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180723G1GFWP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券