

現在、tensorflowを用いてサンプリング実装を試みています。  
複数回サンプリングを行い結果を保存したいのですが以下のような感じで困っています。

簡単な例を出します。

[code]

    x = tf.Variable(0)
    step = tf.assign_add(x, 1)
    
[/code]

以上を用意しておき(絶対に上記を使う)、たとえばstepを3回繰り返して`y=[1 2 3]`を得ようとして、

[code]

    y=[step for _ in range(3)]
    
[/code]

として、`y`を実行しても`[1 1 1]`として帰ってきます。  
run一回でstepを複数回順番(同時ではなく)に実行することは可能なんでしょうか？


CC BY-SA 3.0
2018-01-19T02:23:52.883
41076
2018-01-19T04:08:42.917
27058
question
python tensorflow
tensorflowの繰り返しについて

[code]

    x = tf.Variable(0)
    y = tf.Variable([0] * 3)
    def fun(i):
        step = tf.assign_add(x, 1)
        assign = tf.assign(y[i], step)
        with tf.control_dependencies([assign]):
            return i + 1
    
    with tf.Session() as sess:
        tf.global_variables_initializer().run()
        result = tf.while_loop(lambda i: i<3, fun, [0])
        sess.run(result)
        print(y.eval())
    
[/code]

これで思っていたことができました。


CC BY-SA 3.0
2018-01-19T04:08:42.917
41080
2018-01-19T04:08:42.917
27058
41076
answer