tf.Variable
を使用してテンソルを作成すると、テンソルが訓練可能かどうかを判断できます。しかし、どのように私は次のようにそれを定義した場合untrainableするテンソルBを設定することができます。Tensorflow - テンソルを非可逆化する
A=tf.placeholder(tf.int32,shape=[None,100])
B=tf.zeros_like(A)
tf.Variable
を使用してテンソルを作成すると、テンソルが訓練可能かどうかを判断できます。しかし、どのように私は次のようにそれを定義した場合untrainableするテンソルBを設定することができます。Tensorflow - テンソルを非可逆化する
A=tf.placeholder(tf.int32,shape=[None,100])
B=tf.zeros_like(A)
A=tf.placeholder(tf.int32,shape=[None,100])
Aはプレースホルダではなく、変数です。プレースホルダはではなく、が訓練可能です。
あなたは文句を言わないトレーニング可能なる変数を作成し、trainable
False
へ
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
)の属性をコピーする便利な関数を使用することはありません。
このように、Bテンソルは既に訓練可能ではありません。 Bを訓練可能にし、ゼロで初期化する場合は、例を使用します。 'tf.Variable(tf.zeros_like(A))' –
ありがとう、それを得ました。 –