Я везде искал этот чрезвычайно простой вопрос, но безуспешно. У меня есть следующий код:
@tf.function
def parTest():
for i in tf.range(tf.constant(10)):
insideFunc(0,i)
@tf.function
def insideFunc(x_in,j):
for i in tf.range(tf.random.uniform([],0,1000,dtype=tf.int32)):
x_in += tf.cast(i,tf.int32)
tf.print(j)
return x_in
И когда я запускаю его, он не запускается параллельно, даже если нет зависимости между l oop итерациями. Я пробовал запустить insideFun c с помощью tf.map_fn, и он запускает его параллельно (все отпечатки смешиваются), однако tf.map_fn не может обрабатывать входы / выходы переменной длины, поэтому я не могу его использовать: (Должен быть способ построить график с использованием al oop, который работает параллельно.
Исходная проблема у меня проста: у меня есть список тензоров разной длины, и мне нужно выполнить те же операции с тензорами в списке, но поскольку они имеют разную длину, мне нужно сделать это в al oop, и черт знает, по какой причине это делает невозможным выполнение этих операций параллельно.