2017-08-25 25 views
1

私は、起動関数が呼び出されるたびに乱数が生成されるように、起動関数内に乱数を生成したいと考えています。私はrandom.uniformとtf.random_uniformで試しましたが、コンパイル時にはただ一つのランダムな値しか生成しませんし、もう変化しません。毎回更新するにはどうすればよいですか?テンソルフローのランダムな値

おかしい事実: 私はtf.Variable(random.uniform(1,2))を使用して変数を作成すると、すべての時間は、それが値と呼ばれる機能は、例えば、わずかに大きい:

1.22069513798 
1.22072458267 
1.22075247765 
1.22077202797 

編集: 機能は非常に簡単 機能である:

def activation(tensor): 
    alpha = tf.Variable(random.uniform(1,2)) 
    return alpha*tensor,alpha 

私は、ニューラルネットワーク内のすべての行を省略しますが、私は単にそれを呼び出す:

act,alpha = activation(dense_layer+bias) 

私は後で簡単にして、値を取得する:

[ts,c,alph]=sess.run([train_step,cost,alpha], feed_dict={xi: x_raw, yi: y_raw}) 

おかげ

答えて

0

ソースコードなしで伝えるのは難しいが、多分あなたはそのランダムな値を使用して変数を初期化し、同じ値を再利用していますか?

別の可能性:

enter image description here

+0

私は私の最後の試みのコードを追加しました。私は、私が同じ無作為な値を与えた繰り返しの何千ものものを印刷しているので、それが起こっているという図に描かれているものは考えていません: – kuonb

+1

はい、初期化中にあなたのランダム変数を変数alphaに保存しています。新しいランダム値で再初期化したい場合、 'sess.run(alpha.initializer)'を実行することができます。 –

+0

これは完璧に動作します!ありがとう:) – kuonb

関連する問題