Ich versuche, dieses Stück Code auszuführen:Einstellen der Form eines Tensor wie die Form eines anderen Tensor
def somefunc(x, rows, n_hidden):
vectors = tf.contrib.layers.embed_sequence(nodes, vocab_size=vocab_size, embed_dim=n_hidden)
batch_size = tf.shape(vectors)[0]
state = tf.zeros([batch_size, rows, n_hidden])
bias = tf.Variable(tf.constant(0.1, shape=[batch_size,1]) # Error here!
...
x = tf.placeholder(tf.int32, shape=[None, 200])
pred = somefunc(x, 200, 40)
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=target))
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss)
ich diesen Fehler, wenn die Funktion aufgerufen wird (Fehler ist für Bias-Form):
TypeError: int() argument must be a string, a bytes-like object or a number, not 'Tensor'
ich versuchte dabei b = tf.Variable(0.1, validate_shape=False)
, aber dann bekam ich diesen Fehler bei optimizer
:
ValueError: as_list() is not defined on an unknown TensorShape.
Wenn ich validate_shape=False
entferne, erhalte ich einen Formfehler.
Es tut mir sehr leid, wenn ich etwas offensichtlich übersehen habe, aber könnte mir jemand sagen, wo ich falsch liege?
Vielen Dank!
Vielen Dank für die Beantwortung meiner Frage! Allerdings bekomme ich diesen Fehler, als ich Ihren Vorschlag ausprobierte: 'ValueError: initial_value muss eine Form haben: Tensor (" Fill: 0 ", shape = (?, 1), dtype = float32)'. Ich brauche die erste Dimension des Platzhalters, um keine zu sein, da ich unterschiedliche Losgrößen habe. – AnnaR
Sorry! Ich habe die Antwort aktualisiert, um 'validate_shape = False' hinzuzufügen ... funktioniert das für dich? (Beachten Sie, dass dies die Initialisierung des Modells schwieriger macht, da Sie beim Ausführen der Initialisierungen einen Datenstapel einspeisen müssen.) – mrry
Dieser Fehler ist verschwunden! Aber dann hat der Optimierer jetzt einen Fehler: 'ValueError: as_list() ist nicht auf einer unbekannten TensorShape definiert.', da pred 'shape = [None, 200]' zurückgibt. Wie gibt man normalerweise Daten weiter, wenn sie nicht wissen, wie groß die Batchgröße sein wird? – AnnaR