0
我是Tensorflow的新手,遇到问题。当我的程序达到x_batch = sess.run(X_mb)
时,它卡住了(所以,它可以打印1和2,但不能打印4.我想这是一个无限循环)。我打印X_mb
的值,结果为Tensor("batch:0", shape=(32, 39), dtype=float32)
。任何人都可以帮助我吗?谢谢! mb_size = 32,g的形状是[60366,39]。Tensorflow,程序卡在sess.run()函数
更新的代码:
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.
嗨,我做了你说的,但我得到了一个RuntimeError(图已定稿,无法修改) – FRANKfisher
正如在答案中所说 - 这将最终确定你的图,你**不能**以后修改你的图(这就是TF代码的写法)。也许你忘了删除初始化程序? – lejlot
这是我的代码: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) _,D_loss_curr,_ = sess.run( [D_solver ,D_loss,clip_D], feed_dict = {X:x_batch,z:sample_z(mb_size,z_dim)} ) – FRANKfisher