2017-10-02 11 views
0

私はTensorFlow(Python)を使い始めていて、関数内でプレースホルダを使用するとき、プレースホルダではなくTensorFlow定数を与える関数を引数に持たないのはなぜですか?TensorFlow:プレースホルダの代わりに関数を使用するのはなぜですか?

def sigmoid(z): 
    x = tf.constant(z, dtype=tf.float32, name = "x") 
    sigmoid = tf.sigmoid(x) 
    with tf.Session() as sess: 
     result = sess.run(sigmoid) 
    return result 

の代わり:ここ

は例(差がxである)である

def sigmoid(z): 
    x = tf.placeholder(tf.float32, name = "...") 
    sigmoid = tf.sigmoid(x) 
    with tf.Session() as sess: 
     result = sess.run(sigmoid, feed_dict={x:z}) 
    return result 
+0

一般的なテンソルフローの使用例はありません – Aaron

答えて

3

Tensorflowとの考え方は、大量のデータに対して同じ計算を繰り返すということです。コードを記述すると、後でデータを実行する計算グラフが設定されます。最初の例では、データを定数にハードコードしています。これは典型的なテンソルフローの使用例ではありません。 2番目の例は、同じ計算グラフを異なるデータで再利用できるため、より優れています。

+1

また、プレースホルダを使用するとGPUを使用するときの計算時間が向上します。したがって、必要なメモリは、関数内で必要とされるときだけでなく、事前に割り当てられます – Kev1n91

関連する問題