Tensorflow: как преобразовать скалярный тензор в скалярную переменную в python?
в Tensorflow я хотел бы преобразовать скалярный тензор в целое число. Можно ли это сделать?
Мне нужно создать цикл, а индекс цикла-скалярный Тензор, и внутри тела цикла я хочу использовать индекс для доступа к записи в тензорном массиве.
например:
idx = tf.constant(0)
c = lambda i : tf.less(i, 10)
def body(idx) :
i = # convert idx to int
b = weights[i] # access an entry in a tensor array, tensor cannot be used directly
....
return idx+1
tf.while_loop(c, body, [idx])
3 ответов
вам нужно оценить тензор, чтобы получить значение.
Если вы хотите сделать это:
i = # convert idx to int
вы можете сделать sess.run () или idx.eval ():
i = sess.run(idx)
вам нужно создать tf.Session () для приведения тензора к скалярному
with tf.Session() as sess:
scalar = tensor_scalar.eval()
Если вы используете ноутбуки IPython, вы можете использовать Interactive Session
:
sess = tf.InteractiveSession()
scalar = tensor_scalar.eval()
# Other ops
sess.close()
попробуйте использовать tf.reshape ()
# tensor 't' is [7]
# shape `[]` reshapes to a scalar
reshape(t, []) ==> 7