我想从其他张量中分配张量。我将给出简单的演示如下:
import tensorflow as tf
input = tf.constant([1.,2.,3.],dtype=tf.float32)
test = tf.zeros(shape=(3,),dtype = tf.float32)
test[0] = input[0]
#tf.assign(test[0],input[0])
with tf.Session() as sess:
sess.run(test)
我希望测试的第一个元素的结果可以等于输入'
错误为Tensor object does not support item assignment
。
答案 0 :(得分:1)
只有变量支持切片赋值,而tf.zeros
创建一个常量值张量;您需要将test
声明为变量:
sess = tf.Session()
test = tf.Variable(tf.zeros(shape=(3,),dtype = tf.float32))
init_op = tf.global_variables_initializer()
sess.run(init_op)
sess.run(test)
# array([ 0., 0., 0.], dtype=float32)
assign_op = tf.assign(test[0], input[0])
sess.run(assign_op)
# array([ 1., 0., 0.], dtype=float32)
sess.run(test)
# array([ 1., 0., 0.], dtype=float32)