ipythonでは、私はtensorflow as tf
とnumpy as np
をインポートし、TensorFlow InteractiveSession
を作成しました。私が実行しているか、numpyの入力といくつかの正規分布を初期化していた場合 、すべてが正常に動作します:TensorFlow:ランダム定数を生成する
some_test = tf.constant(np.random.normal(loc=0.0, scale=1.0, size=(2, 2)))
session.run(some_test)
戻り値:
array([[-0.04152317, 0.19786302],
[-0.68232622, -0.23439092]])
期待と同じように。
(...)
TypeError: List of Tensors when single Tensor expected
が、私はここで何をしないのです:?それは言っ型エラーを発生
some_test = tf.constant(tf.random_normal([2, 2], mean=0.0, stddev=1.0, dtype=tf.float32))
session.run(some_test)
...:
...しかし、私はTensorflow正規分布関数を使用しますか
の出力: - 正規分布から取られた値を持つ形状(2, 2)
の>マトリックス単独
sess.run(tf.random_normal([2, 2], mean=0.0, stddev=1.0, dtype=tf.float32))
はnp.random.normal
が生成全く同じものを返します。
説明をありがとう!ですから、ランダムな「定数」を得るために、GPUアクセラレーションを別名「純粋な」テンソルフローにしたいときは、 'tf.Variable'を使用する必要があります。 – daniel451
はい、直観に反しますね。 :)問題は実際には、TFで、 "可変"と "初期化可能"という概念が同じ型で結合されていることです - 時には初期化を行うためのより良い方法について議論しました(例えばC-似たような言語)が、デザインにはまだ解決していません。(定数フォールディングなどの最適化にどのように役立つのか想像することができます) – mrry
応答@mrryをありがとう。私は同じことをしようとしているが、 'some_test'をその後も一定にしたくない場合は、オプション2と同じことをしますが、' sess.run(some_test.initializer) 'は含めません。 – bnorm