Как получить тензор потока для оценки формы во время выполнения?
Я хотел бы оценить форму тензора во время выполнения. Я рассчитываю пересечение между двумя наборами. Количество пересечений есть размерность тензора x
, При определении графика форма тензора устанавливается на [Dimension(None)]
, Таким образом, обычный x.get_shape()
метод просто вернет None
, Есть ли способ оценить форму None
во время выполнения? я мог бы сделать sess.run(x)
и получить форму массива numpy, но я бы хотел, чтобы это был скомпилированный оператор, чтобы возвращалась только форма. Спасибо!
0 ответов
Этому вопросу уже год, поэтому я считаю, что вы, возможно, уже нашли ответ, который искали. Но на случай, если его будут искать, я выложу здесь.
Ответ довольно прост - используйте tf.shape
( см. документацию) для оценки формы входного тензора во время выполнения сеанса.
Пример:
import numpy as np
import tensorflow as tf
input_data = np.zeros((4, 1, 2, 3), np.float32)
with tf.Graph().as_default():
input_tensor = tf.placeholder(tf.float32, (None, None, None, 3))
input_tensor_shape = tf.shape(input_tensor)
with tf.Session() as session:
shape = input_tensor_shape.eval({input_tensor: input_data}, session)
print(shape)
Вывод:
[4 1 2 3]