【发布时间】:2018-08-31 23:07:17
【问题描述】:
在 Python 中使用 Tensorflow,我想使用占位符的形状作为 for 循环的边界。但是,当我尝试执行此操作时,出现错误:“张量”对象不能被解释为整数。这个形状在数据中不是一个常数值,所以我们不能使用 tf.constant。我们如何解决这个问题?
这是我们代码的一部分:
def Model(M, v_a, weights, biases, d, N):
c = multilayer_perceptron((tf.slice(M, [0, 0], ([d, 1]))), v_a, weights,
biases)
for i in range(1, N):
c = tf.concat([c, multilayer_perceptron((tf.slice(M, [0, i], [d, 1])),
v_a, weights, biases)], axis=0)
alpha = tf.nn.softmax(tf.reshape(c, [-1]))
v_ns = tf.matmul(M, tf.reshape(alpha, [N, 1]))
layer_3 = tf.add(tf.matmul(weights['W4'], v_ns), biases['b2'])
v_ms = tf.nn.tanh(layer_3)
layer_4 = tf.add(tf.matmul(weights['W5'], v_ms), biases['b3'])
pred = tf.nn.softmax(tf.reshape(layer_4, [-1]))
return pred
M = tf.placeholder(tf.float32)
我需要 N 是一个整数,但它需要等于占位符 M 的列数,这在训练示例中不是恒定的。
【问题讨论】:
标签: python tensorflow deep-learning tensor