tensorflow-内存泄漏?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了tensorflow-内存泄漏?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1659字,纯文字阅读大概需要3分钟。
内容图文
![tensorflow-内存泄漏?](/upload/InfoBanner/zyjiaocheng/949/e84ccdc1db424c7f92d581f89efeeefa.jpg)
我在OSX 10.9.5 Mavericks上运行tensorflow 0.10.0rc0.
大约有25,000个训练示例,250个特征(x),15个类(y_),而预测(y)是单隐藏层NN感知器.
下面的简单训练循环片段似乎有大量内存泄漏(在=?200次迭代中,大约10 s GB的内存-降低了我的MBP :():
import tensorflow as tf
# Initialize placeholders and variables etc...
...
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y,y_))
train_step = tf.train.GradientDescentOptimizer(lrate).minimize(cost)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for i in range(niter):
# Train
_,c=sess.run([train_step,cost])
correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
sess.run(correct_prediction)
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
print sess.run(accuracy)
# EDIT: Calculate test error
ytest=sess.run(y[itrain:itrain+itest,:])
ytest_=sess.run(y_[itrain:itrain+itest,:])
test_prediction = tf.equal(tf.argmax(ytest,1), tf.argmax(ytest_,1))
test_accuracy=tf.reduce_mean(tf.cast(test_prediction,tf.float32))
print sess.run(test_accuracy)
sess.close()
我是否做错了明显的事情,还是偶然的错误?谢谢!
PS:如果此问题在以后的tensorflow构建中得到解决,请注意bazel需要Yosemite或更高版本,因此我无法从源代码生成自己的.whl文件(AFAIK);每晚有空吗?我宁愿现在不被迫进行操作系统升级.
解决方法:
>不必运行sess.run(correct_prediction)-它是一个tensorflow图变量,精度变量取决于该变量.这意味着无论如何都将在调用sess.run(accuracy)时对其进行评估.
>您可能通过在每次迭代中创建新的correct_prediction和precision变量来修改图形.这也是不必要的-可以将它们移到循环外,并且每次调用sess.run时都可以简单地对其求值.所以你的内循环就像
for i in range(niter):
# Train
_, c = sess.run([train_step, cost])
print sess.run(accuracy)
内容总结
以上是互联网集市为您收集整理的tensorflow-内存泄漏?全部内容,希望文章能够帮你解决tensorflow-内存泄漏?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。