Я хочу сделать для циклов с динамическими входами в тензорном потоке.переменная длина для цикла - тензорный поток
Я знаю, что для кода ниже reduce_sum
достаточно, но я хочу, чтобы иметь возможность формулировать код так, как описано ниже. Поэтому, учитывая, что у меня есть массив с разными размерами, я хочу пройти этот массив.
Как я могу перемещать массивы динамической длины?
Проблема:
TypeError: range() integer end argument expected, got Tensor
Как я могу оценить get_sum, что находится вне сессии?
sum = get_sum(x, xshape)
не должен быть в курсе for
внутри сессии
Например:
import tensorflow as tf
import numpy as np
x = tf.placeholder(tf.float32, shape=[None])
xshape = tf.placeholder(tf.float32, shape=[])
def get_sum(x, xshape):
sum = 0
for i in range(xshape):
sum += x[i]
init = tf.initialize_all_variables()
sum = get_sum(x, xshape)
with tf.Session() as sess:
sess.run(init)
for i in range(100):
length = np.random.randint(0,10)
a = np.random.randint(0, 10, length)
print sess.run(sum,feed_dict={x:a, xshape:length})
Если число итераций неизвестно раньше времени, не будет ли более подходящим другой цикл? –
какой цикл? – user2776945
Возможно, цикл while. – zondo