이 방법이 효과가 있습니까?
는
import tensorflow as tf
import numpy as np
N = 10
T = 20
l = tf.constant(np.random.randn(1, N), dtype=tf.float32)
z = tf.constant(np.random.randn(N, T), dtype=tf.float32)
with tf.Session() as sess:
# swap axis for broadcasting to work
l = tf.transpose(l, [1, 0])
z_div_l = tf.divide(z, l)
z_div_l_2 = tf.divide(1.0 - z, 1.0 - l)
result = tf.reduce_sum(tf.add(z_div_l, z_div_l_2), axis=0)
eval_result = sess.run(result)
print('{}\n{}'.format(eval_result.shape, eval_result))
이 T-0에서 1까지의 모든 t
대한 상기 식을 계산하고, 그래서 스칼라하지만 (T,)
크기의 벡터 아니다. 귀하의 질문에 단지 하나의 스칼라를 계산하려는 경우, 합계는 N
이상이고 T
이상이 아니므로,이 표현식을 모든 t
에 대해 평가하기를 원한다고 가정했습니다.
이것이 원 라이너라고 올바르게 알고 있습니까? – kaufmanu
반드시 그렇지는 않습니다. 그것은 "one reduce function"일 필요는 없습니다. 나는 그 부분을 편집 할 것이다. 모든 솔루션을 환영합니다! – alpaca