RuntimeError: Attempted to use a closed Session.
在练习tensorflow时,如下代码:
with tf.Session() as sess:init_op = tf.global_variables_initializer()sess.run(init_op)print(sess.run(w1)) print(sess.run(w2))#设定训练的轮数
STEPS = 5000
for i in range(STEPS):#每次选取一个样本进行训练start = (i * batch_size) % dataset_sizeend = min(start + batch_size,dataset_size)#通过选取的样本训练神经网络并更新参数sess.run(train_step,feed_dict = {x:X[start:end],y_:Y[start:end]})if i % 1000 == 0:#每隔一段时间计算在所有数据上的交叉熵并输出total_cross_entropy = sess.run(cross_entropy,feed_dict={x:X,y_:Y})print('After %d training step(s),cross_entropy on all data is %g ' % (i,total_cross_entropy))print(sess.run(w1))
print(sess.run(w2))
运行结果会出现Attempted to use a closed Session报错提示,原因是因为‘STEPS=5000’这步出现了问题。如果“STEPS=5000”与“with tf.Session() as sess1:”对齐就会有这样的提示。
解决办法:把“STEPS=5000”及以下的code整体向后移。
正确完整代码如下:
import tensorflow as tffrom numpy.random import RandomState
batch_size = 8w1 = tf.Variable(tf.random_normal([2,3],stddev = 1,seed=1))
w2 = tf.Variable(tf.random_normal([3,1],stddev = 1,seed=1))x = tf.placeholder(tf.float32,shape=(None,2),name='x-input')
y_= tf.placeholder(tf.float32,shape=(None,1),name='y-input')#定义神经网络前向传播过程
a = tf.matmul(x,w1)
y = tf.matmul(a,w2)#定义损失函数和前向传播算法
cross_entropy = -tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,1e-10,1.0)))
train_step = tf.train.AdamOptimizer(0.001).minimize(cross_entropy)#通过随机数生成一个模拟数据集
rdm = RandomState(1)
dataset_size = 128
X = rdm.rand(dataset_size,2)#定义规则给出样本标签
Y = [[int(x1 + x2 < 1)] for (x1,x2) in X ]#创建一个会话来运行程序
with tf.Session() as sess:init_op = tf.global_variables_initializer()sess.run(init_op)print(sess.run(w1)) print(sess.run(w2))#设定训练的轮数 STEPS = 5000for i in range(STEPS):#每次选取一个样本进行训练start = (i * batch_size) % dataset_sizeend = min(start + batch_size,dataset_size)#通过选取的样本训练神经网络并更新参数sess.run(train_step,feed_dict = {x:X[start:end],y_:Y[start:end]})if i % 1000 == 0:#每隔一段时间计算在所有数据上的交叉熵并输出total_cross_entropy = sess.run(cross_entropy,feed_dict={x:X,y_:Y})print('After %d training step(s),cross_entropy on all data is %g ' % (i,total_cross_entropy))print(sess.run(w1))print(sess.run(w2))
实际上是with机制帮你关闭了文件f,这样可以避免有些人读写文件后忘记关闭文件。所以with代码块里的内容运行完了,你的sess就自动由with机制帮你关闭了,因此再次使用sess就会报错。解决办法就是把代码块向后缩进,实际上就是指,所有与sess相关的操作都必须放在with代码块下,如果需要在外面再次使用,那你就需要重新开启一个sess
RuntimeError: Attempted to use a closed Session.相关推荐
- MySQL5.7 Attempted to use a closed or broken resource pool 处理过程
1,tomcat启动报错不能获取JDBC连接 mysql版本:5.6.10 tomcat版本:7.0 jdk版本:1.7.0_55 开发人员强调说是以前经历过重启下mysql数据库就好了,不过我不 ...
- log4j:ERROR Attempted to append to closed appender named [null].
最近用Velocity总是出现以下消息 log4j:ERROR Attempted to append to closed appender named [null]. 试了很多方法未果,最后到Vel ...
- 这个bug很简单-log4j:ERROR Attempted to append to closed appender named
最近调试log4j的时候,一直遇到这个错误: bug: log4j:ERROR Attempted to append to closed appender named 一直未找到原因,看了几篇博客后 ...
- log4j:ERROR Attempted to append to closed appender named 的问题
一.log4j源码解析 最近出现一个问题,弄得我不得不把log4j的源代码读了一篇. 如果自己不想写代码,可以下载此代码:https://github.com/lwwcl1314/atlantis ...
- log4j源码解析及一个log4j:ERROR Attempted to append to closed appender named 的问题
一.log4j源码解析 最近出现一个问题,弄得我不得不把log4j的源代码读了一篇. 如果自己不想写代码,可以下载此代码:https://github.com/lwwcl1314/atlantis/t ...
- tensorflow 运行报错 runtime error use a closed session
https://blog.csdn.net/weixin_39390732/article/details/76474294
- 3-Tensorflow-demo_1-Graph和Session
import tensorflow as tf import numpy as np""" 本节内容:1.Graph图的创建.2.使用tf.constant 和 tf.a ...
- TensorFlow调试常见问题(pycharm)
1. RuntimeError: Attempted to use a closed Session. 在pycharm下调用tensorflow库时,运行出现以下问题: RuntimeError: ...
- 模拟数据集上训练神经网络,网络解决二分类问题练习
#2018-06-24 395218 June Sunday the 25 week, the 175 day SZ ''' 模拟数据集上训练神经网络,网络解决二分类问题.'''import tens ...
最新文章
- CSS实现某元素hover时 所有兄弟节点样式改变
- shell学习(17)- shell中21的解释及输入输出重定向
- Mac OS X:在标题栏上显示目录完整路径
- window环境apache服务器在本地添加域名
- 停电造成的主板BIOS维修
- bzoj#2125. 最短路
- html里面怎么ul加高度,div里面嵌套了ul,为什么div的高度小于ul高度
- LTE网络测试仪器和监控系统
- OPPO Reno 3 Pro细节流出:同价位最轻薄的双模5G手机
- appium分层自动化的封装
- 访问权限java_Java访问权限
- Vysor Pro 手工破解-简单至极的方法
- 亚马逊中国发布2018图书排行榜
- 国内常见的日内CTA策略介绍以及实现
- c# .net Paypal支付Webhooks回调验证
- php有个schost.exe_全面认识Svchost.exe进程
- 工序排班问题数学模型
- 华为交换机做qos案例_经典案例:QoS实现交换机带宽控制(1)
- Windows多个桌面切换快捷键
- 市场复苏下:报复性消费,了解一下~