2016-07-19 6 views
0

tf.Variableを使用してテンソルを作成すると、テンソルが訓練可能かどうかを判断できます。しかし、どのように私は次のようにそれを定義した場合untrainableするテンソルBを設定することができます。Tensorflow - テンソルを非可逆化する

A=tf.placeholder(tf.int32,shape=[None,100]) 

B=tf.zeros_like(A) 
+0

このように、Bテンソルは既に訓練可能ではありません。 Bを訓練可能にし、ゼロで初期化する場合は、例を使用します。 'tf.Variable(tf.zeros_like(A))' –

+0

ありがとう、それを得ました。 –

答えて

3

A=tf.placeholder(tf.int32,shape=[None,100]) Aはプレースホルダではなく、変数です。プレースホルダはではなく、が訓練可能です。

あなたは文句を言わないトレーニング可能なる変数を作成し、trainableFalse

x = tf.Variable(0, trainable=False) 

あなたの変数属性を設定した場合。

tf.zeros_like(x)で新しい変数を作成すると、この新しい変数の属性は同じxになります。

y = tf.zeros_like(x) 

あなたは2つの変数は便利な機能tf.trainable_variablesを使用して、GraphKeys.TRAINABLE_VARIABLESコレクションに見て、トレーニング可能でないことを確認することができます。ここで

は、サンプルコードを示します:

import tensorflow as tf 

x = tf.Variable(0, trainable=False) 
assert [] == tf.trainable_variables() 
y = tf.zeros_like(x) 
assert [] == tf.trainable_variables() 

プレースホルダの同じ形状およびタイプの新しい変数を作成したい、とあなたはそれが学習可能なようにしたいのであれば、あなたはそれを手動で定義する必要がありますtrainable(プレースホルダーの場合は常にFalse)の属性をコピーする便利な関数を使用することはありません。

関連する問題