Создание массива тензоров в tensorflow?

#python #arrays #numpy #tensorflow

#python #массивы #numpy #tensorflow

Вопрос:

Предположим, у меня есть две тензорные переменные, каждая размером 2×4:

 v1 = tf.logical_and(a1, b1)
v2 = tf.logical_and(a2, b2)
 

Вместо этого я хочу сохранить их в вызываемом массиве v размером 2x2x4. Как мне это сделать в Tensorflow? Идея была бы примерно такой:

 for i in range(2):
  v[i] = tf.logical_and(a[i],b[i])
 

Как мне выполнить инициализацию v ? Я попытался инициализировать v как массив numpy, который не сработал. Я также попытался инициализировать его как переменную tensorflow, т.е.. tf.Variable(tf.zeros([2])) но это тоже не работает.

Обратите внимание, a и b являются динамическими входными данными, т.Е.. они являются tf.placeholder переменными.

Ответ №1:

tf.pack() — это, вероятно, то, что вы ищете.

Комментарии:

1. Как мне сохранить каждый тензор v[i] , потому что я хочу запустить его через цикл for, и может быть более 2 тензоров.

2. поместите v [i] s в обычный список, передайте список в качестве первого аргумента в tf.pack(myListOfTensors)

Ответ №2:

В качестве потенциально важного обновления в TensorFlow 1.0 tf.pack() было переименовано в tf.stack() .