У меня есть два тензора в тензорном потоке, первый тензор 3-D, а второй - 2D. И я хочу их размножить следующим образом:Эффективный способ тензорного потока для умножения тензоров
x = tf.placeholder(tf.float32, shape=[sequence_length, batch_size, hidden_num])
w = tf.get_variable("w", [hidden_num, 50])
b = tf.get_variable("b", [50])
output_list = []
for step_index in range(sequence_length):
output = tf.matmul(x[step_index, :, :], w) + b
output_list.append(output)
output = tf.pack(outputs_list)
Я использую цикл для многократной работы, но я думаю, что это слишком медленно. Какой был бы лучший способ сделать этот процесс максимально простым и чистым?
Благодарим вас за ответ, но у меня есть вопрос, после использования tf.tile размер переменной b изменяется, потому что в нем есть бесполезные данные. Поэтому трудно вычислить tf.nn.l2_loss (b) –
Ввод черепицы может быть тензором, поэтому вы можете динамически строить форму arg из tf.shape (w) –
В tensorflow 1.0 используйте 'tf.matmul' вместо 'tf.batch_matmul'. – holdenlee