请参见代码段:
import tensorflow as tf
import numpy as np
z = tf.placeholder(tf.float32, [None, 100], name='z')
uc = tf.placeholder(tf.float32, [None, 2], name='uc')
sc = tf.placeholder(tf.int32, [None], name='sc')
sc_one_hot = tf.one_hot(sc, 10)
zc = tf.concat([z, uc, sc_one_hot], axis=1)
sample_z = np.random.normal(size=[32, 100])
sample_uc = np.random.uniform(0., 1., size=[32, 2])
sample_sc1 = np.random.randint(10, size=32)
sample_sc2 = np.mod(np.arange(32), 10)
with tf.Session() as sess:
sess.run(zc, feed_dict={z: sample_z, uc: sample_uc, sc: sample_sc1}) # works well
sess.run(zc, feed_dict={z: sample_z, uc: sample_uc, sc: sample_sc2}) # raises an error
sample_sc1
和sample_sc2
均为ndarray
,其中size
的{{1}}和32
的{{1}},以及所有数字它们的范围从dtype
到int32
。
0
是9
,其中sc
的{{1}}和tf.placeholder
的{{1}}。
当我将dtype
喂入tf.int32
时,效果很好,但是当我将size
喂入[None]
时,它会提升sample_sc1
。
这是一个了不起的错误,这是张量流的错误吗?