Ich bin ein TensorFlow noob. Ich habe ein TensorFlow-Modell aus der Open-Source-Implementierung von Deeppose trainiert und muss nun das Modell gegen eine neue Reihe von Bildern ausführen.Tensorflow Assign erfordert die Anpassung der beiden Tensoren. lhs shape = [20] rhs shape = [48]
Das Modell wurde auf Bilder der Größe 100 * 100
trainiert, also habe ich die Größe der neuen Bilder auf die gleiche Größe geändert. Ich habe 149
neue Bilder, um das Modell gegen zu laufen. Wenn ich das Modell ausführe, erhalte ich den folgenden Fehler.
InvalidArgumentError (see above for traceback): Assign requires shapes
of both tensors to match. lhs shape= [20] rhs shape= [48]
Auf der Linie
saver = tf.train.Saver(tf.all_variables())
Ich vermute, dass die gelernte Modellgröße und die Testbildgrößen nicht entsprechen. Ich bin mir nicht sicher, wie ich dieses Problem beheben kann. Ich habe die Liste der Variablen aus dem tf.all_variables()
Aufruf ausgedruckt. Hier ist es
Tensor("Placeholder:0", shape=(128, 100, 100, 3), dtype=float32)
(11, 11, 3, 20)
conv1/weights:0
(20,)
conv1/biases:0
(5, 5, 20, 35)
conv2/weights:0
(35,)
conv2/biases:0
(3, 3, 35, 50)
conv4/weights:0
(50,)
conv4/biases:0
(3, 3, 50, 75)
conv5/weights:0
(75,)
conv5/biases:0
(300, 1024)
local1/weights:0
(1024,)
local1/biases:0
(1024, 1024)
local2/weights:0
(1024,)
local2/biases:0
(1024, 0)
softmax_linear/weights:0
(0,)
softmax_linear/biases:0
Ich bin nicht sicher, wo der RHS-Parameter herkommt. Ich habe alle Konfigurationsdateien angeschaut und es scheint keinen Parameter zu geben, der diese Konfiguration spezifiziert.
Jede Hilfe bei der Lösung dieses Problems wird sehr geschätzt.
Probieren Sie 'saver = tf.train.Saver (tf.all_variables(), reshape = True)' – yuefengz
Können Sie größere Stacktrace zeigen? – sygi
@Fake - Die Umformung hat nicht funktioniert, aber ich habe das Problem gelöst. Danke Kumpel –