2017-10-05 4 views
1

テンソルフローでf(2) + f(10)を計算することです。方法の一つはテンソルフロー内の2点の関数値の合計

x = tf.placeholder(tf.float32) 
f = x ** 2 

sess = tf.Session() 
init = tf.global_variables_initializer() 
sess.run(init) 
a = sess.run(f, feed_dict={x: 2}) 
b = sess.run(f, feed_dict={x: 10}) 
c = a + b 
print(c) 

しかしa + bはPythonの操作ではなく、tensorflowです。問題は、tfでその操作を定義する方法です。私は、異なる点で同じ関数の値に対応する計算グリフで2つのノードを定義する方法を理解できません。

答えて

3

f(2) + f(10)のために、あなたは2つのパラメータを養うために必要があるので、あなたにも2つのプレースホルダを定義する必要があります:

# define two placeholders 
a = tf.placeholder(tf.float32) 
b = tf.placeholder(tf.float32) 
​ 
def f(x): 
    return x ** 2 
​ 
c = f(a) + f(b)        # this is the tf operation 

sess = tf.Session() ​ 
c = sess.run(c, feed_dict={a: 2, b: 10}) 
print(c) 
# 104.0 
+0

感謝を!それは機能を定義することなくそれを行うことが可能ですか?私の仕事はもっと難しく、私はそうした方法でそれを再構成する。 – AlexKoz

+0

関数を定義する必要はありません。あなたの本当の設定が何であるか分かりませんが、ここでは 'c = a ** 2 + b ** 2'もうまくいくはずです。 – Psidom

関連する問題