Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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

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 Tensorflow,程序卡在sess.run()函数上_Python_Tensorflow - Fatal编程技术网

Python Tensorflow,程序卡在sess.run()函数上

Python Tensorflow,程序卡在sess.run()函数上,python,tensorflow,Python,Tensorflow,我是Tensorflow的新手,遇到了一个问题。当我的程序到达x_batch=sess.run(x_mb)时,它被卡住了(因此,它可以打印1和2,但不能打印4。我想这是一个无休止的循环)。我打印xumb的值,结果是Tensor(“批处理:0”,shape=(32,39),dtype=float32)。有人能帮我吗?谢谢! mb_size=32,g的形状是[60366,39] 更新代码: X = tf.placeholder(tf.float32, shape=[None, X_dim]) de

我是Tensorflow的新手,遇到了一个问题。当我的程序到达
x_batch=sess.run(x_mb)
时,它被卡住了(因此,它可以打印1和2,但不能打印4。我想这是一个无休止的循环)。我打印
xumb
的值,结果是
Tensor(“批处理:0”,shape=(32,39),dtype=float32)
。有人能帮我吗?谢谢! mb_size=32,g的形状是[60366,39]

更新代码:

X = tf.placeholder(tf.float32, shape=[None, X_dim])

def sample_z(m, n):
    return np.random.uniform(-1., 1., size=[m, n])

g = tf.unstack(data, num = 60366, axis = 0)
X_mb, *_ = tf.train.batch(g ,mb_size, capacity = 60366)
sess = tf.train.MonitoredSession()


i = 0

for it in range(2000):
    #print(1)
    for _ in range(5):
        #print(2)       

        #print(X_mb)
        x_batch = sess.run(X_mb)
       # print(4)
        _, D_loss_curr, _ = sess.run(
            [D_solver, D_loss, clip_D],
            feed_dict={X: x_batch, z: sample_z(mb_size, z_dim)}
        )

    _, G_loss_curr = sess.run(
        [G_solver, G_loss],
        feed_dict={z: sample_z(mb_size, z_dim)}
    )
以下是错误消息:

runfile('/Users/franklan123/.spyder-py3/temp.py', wdir='/Users/franklan123/.spyder-py3')
Traceback (most recent call last):

  File "<ipython-input-4-6af95f06eb7f>", line 1, in <module>
    runfile('/Users/franklan123/.spyder-py3/temp.py', wdir='/Users/franklan123/.spyder-py3')

  File "/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 688, in runfile
    execfile(filename, namespace)

  File "/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 101, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "/Users/franklan123/.spyder-py3/temp.py", line 48, in <module>
    X = tf.placeholder(tf.float32, shape=[None, X_dim])

  File "/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py", line 1530, in placeholder
    return gen_array_ops._placeholder(dtype=dtype, shape=shape, name=name)

  File "/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/ops/gen_array_ops.py", line 1954, in _placeholder
    name=name)

  File "/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 767, in apply_op
    op_def=op_def)

  File "/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 2458, in create_op
    self._check_not_finalized()

  File "/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 2181, in _check_not_finalized
    raise RuntimeError("Graph is finalized and cannot be modified.")

RuntimeError: Graph is finalized and cannot be modified.
runfile('/Users/franklan123/.spyder-py3/temp.py',wdir='/Users/franklan123/.spyder-py3')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
运行文件('/Users/franklan123/.spyder-py3/temp.py',wdir='/Users/franklan123/.spyder-py3')
文件“/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site-packages/spyder/utils/site/site-customize.py”,第688行,在runfile中
execfile(文件名、命名空间)
文件“/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site-packages/spyder/utils/site/site-customize.py”,执行文件第101行
exec(编译(f.read(),文件名,'exec'),命名空间)
文件“/Users/franklan123/.spyder-py3/temp.py”,第48行,在
X=tf.placeholder(tf.float32,shape=[None,X_dim])
文件“/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site packages/tensorflow/python/ops/array_ops.py”,第1530行,在占位符中
返回gen\u数组操作。\u占位符(dtype=dtype,shape=shape,name=name)
文件“/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site packages/tensorflow/python/ops/gen_array_ops.py”,第1954行,在_占位符中
名称=名称)
文件“/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site packages/tensorflow/python/framework/op_def_library.py”,第767行,在apply_op
op_def=op_def)
文件“/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site packages/tensorflow/python/framework/ops.py”,第2458行,在create_op
self.\u check\u not\u finalized()
文件“/Users/franklan123/anaconda/envs/tensorflow/lib/python3.6/site packages/tensorflow/python/framework/ops.py”,第2181行,在检查中未完成
raise RUNTIMERROR(“图形已完成,无法修改”)
RuntimeError:图形已完成,无法修改。

没有无止境的循环,tf.train.batch创建队列,您必须运行队列运行程序才能获取任何数据。否则,当您执行sess.run时,您的代码将挂起queue.dequeue()操作(因为并没有线程实际将数据放入队列)

简单解决方案:

  • 在会话创建之前移动X_mb行(这修改了图形!)
  • 将tf.Session更改为tf.train.MonitoredSession(这将为您运行队列,否则您将不得不手动运行它们+MonitoredSession finalizes graph,这样您将避免将来出现上述错误)。完成此操作后,请删除带有全局初始化器的行(MonitoredSession也会为您进行初始化)

  • 您好,我按照您所说的做了,但是我得到了一个运行时错误(图已完成,无法修改),正如回答中所说的-这将完成您的图,之后您不能修改您的图(这是TF代码应该如何编写的)。也许您忘记删除初始值设定项了?这是我的代码:g=tf.unstack(data,num=60366,axis=0)X_mb,*=tf.train.batch(g,mb_size,capacity=60366)sess=tf.train.MonitoredSession()i=0范围内(2000):范围内(5):X_batch=sess.run(X_mb)u,D_loss_curr,u=sess.run([D_solver,D_loss,clip_D],feed_dict={X:X_batch,z:sample_z(mb_size,z_dim)})和什么是“sample_z”?我猜另一个修改图的东西是什么?def sample_z(m,n):返回np.random.uniform(-1,1,size=[m,n])