A=tf.placeholder(tf.int32,shape=[None,100])
A ein Platzhalter ist, nicht eine Variable. Ein Platzhalter ist nicht trainierbar.
Wenn Sie eine Variable erstellen und setzen Sie das Attribut trainable
zu False
x = tf.Variable(0, trainable=False)
Ihre Variable wird nicht trainierbar sein. Wenn Sie eine neue Variable mit tf.zeros_like(x)
erstellen, hat diese neue Variable die gleichen Attribute wie x
.
y = tf.zeros_like(x)
Sie können überprüfen, ob die 2 Variablen nicht trainierbar sind, schaut in die GraphKeys.TRAINABLE_VARIABLES
Sammlung, die Funktion Bequemlichkeit mit tf.trainable_variables
.
Hier ist der Beispielcode:
import tensorflow as tf
x = tf.Variable(0, trainable=False)
assert [] == tf.trainable_variables()
y = tf.zeros_like(x)
assert [] == tf.trainable_variables()
Also, wenn Sie eine neue Variable mit der gleichen Form und Art des Platzhalter erstellt werden sollen, und Sie wollen es trainierbar machen, müssen Sie es manuell definieren ohne Verwendung der Komfortfunktion, die auch das trainable
(immer False
für einen Platzhalter) Attribut kopiert.
Auf diese Weise ist der B-Tensor bereits nicht trainierbar. Wenn Sie möchten, dass B trainierbar und mit Nullen initialisiert werden kann, verwenden Sie z. 'tf.Variable (tf.zeros_like (A))' –
Danke, hab es. –