如何从张量流中的其他张量分配张量元素

时间:2017-12-12 14:32:00

标签: python tensorflow

我想从其他张量中分配张量。我将给出简单的演示如下:

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

1 个答案:

答案 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)