나는 tensorflow에서 두 개의 텐서를 가지며 첫 번째 텐서는 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)를 계산하는 것이 어렵습니다. –
Btw 타일 입력은 텐서가 될 수 있으므로 tf.shape (w)에서 동적으로 쉐이프 arg를 생성 할 수 있습니다. –
tensorflow 1.0에서는 tf.matmul 대신에 'tf.batch_matmul'. – holdenlee