2017-12-14 4 views
0

テンソルフローにディープコピーがありますか? Tensorflowのディープコピー

tt = tf.get_variable('t',shape=[2,2]) 
tt1= tf.identity(tt[0].assign([1,1])) 
tt2 = tf.identity(tt[1].assign([2,2])) 

私はTT1だけTTの最初の行を編集したい、とTT2は唯一の二行を編集し、次の操作を考慮してください。ご覧のとおり

[[ 1.   1.  ] 
    [-1.15554953 -0.78545022]] 

[[ -0.31531231 1.6651651] 
    [ 2. 2.]]. 

、第二の可変にも影響を受けます、私のような何かをしたい代わりに

[[ 1.   1.  ] 
    [-1.15554953 -0.78545022]] 

[[ 1. 1.] 
    [ 2. 2.]]. 

:出力する

with tf.Session() as sess: 
    sess.run(tf.global_variables_initializer()) 
    print(sess.run(tt1)) 
    print(sess.run(tt2)) 

:これは私が今得るものです最初に割り当てます。テンソルへの参照をコピーせずに、独立したコピーを作成する方法はありますか?次のように

答えて

1

はtensorflowであなたのdeepcopyを行います

tt = tf.get_variable('t',shape=[2,2]) 
deepcopy = tf.Variable(tt.initialized_value())  
tt1= tf.identity(tt[0].assign([1,1])) 
tt2 = tf.identity(deepcopy[1].assign([2,2])) 

これはあなたに所望の出力与える:

[[ 1.   1.  ] 
[-1.01704359 -1.16236985]] 
[[-0.44483608 1.1660043 ] 
[ 2.   2.  ]] 
関連する問題