1
나는 tensorflow에 익숙하지 않다. n을 계산하는 함수를 찾고있다. 나는 theano에서 가능한 감마 함수를 사용할 수 있지만 tensorflow에서는 작동하지 않는다는 것을 알았습니다.tensorflow에서 계승을 계산하는 방법은 무엇입니까?
factorial = theano.tensor.gamma(v)
for 루프를 사용하여 n에서 1까지의 숫자를 곱합니다.하지만 더 쉽고 빠름을 가정합니다. 나는 감마 분포와 관련된 함수를 보았지만 계승을 계산하는 방법을 알 수 없었다. 사람이 어떤 문서를 가르쳐 주시면 고맙겠습니다. 여기
내가 지금 그것을 할 방법입니다import tensorflow as tf
factorial = tf.Variable(1, "factorial")
recursion = tf.Variable(1, "recursion")
# calculate factorial
mult = tf.multiply(recursion, factorial)
assign_fact = tf.assign(factorial, mult)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for i in range(2,10):
counter = tf.assign(recursion, tf.constant(i))
sess.run(counter)
sess.run(assign_fact)
print(i,"factorial is", sess.run(factorial))
sess.close()
출력
2 factorial is 2
3 factorial is 6
4 factorial is 24
5 factorial is 120
6 factorial is 720
7 factorial is 5040
8 factorial is 40320
9 factorial is 362880
감사합니다. 그것은 tensorflow에 대한 간단한 감마 함수가 없다는 것을 의미합니까? 루프 곱셈 대신 lgamma의 exp를 사용하는 것이 더 낫습니까? – AintheT
사실, tf에서 원시 감마 함수를 발견 할 수 없었습니다. 차후 버전에서 추가 될 가능성이 상당히 높습니다. 두 개의 수학 연산으로 계산하는 것은 루프보다 빠릅니다. 그러나 큰 입력에 대한 계승을 계산하고 싶지는 않습니다. 어쨌든, 그것은 더 짧습니다. – Maxim