#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()
.