Frage

Ich mache ein einfaches neuronales Netzwerk mit Tensorflow, mit Daten, die ich selbst gesammelt habe. Es ist jedoch nicht kooperierend: Pi ist auf einen Fehler gestoßen, für den ich die Lösung nicht beheben oder finde, und ich würde Ihre Hilfe lieben.

Die errormessage:

TypeError: Das Fetchargument 2861.6152 von 2861.6152 hat einen ungültigen Typ, muss eine Zeichenfolge oder einen Tensor sein. (Kann einen Float32 nicht in einen Tensor oder eine Operation umwandeln.)

Der Fehler bezieht sich auf die folgende Zeile in meinem Code:

_, cost = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

Ich habe bereits herausgefunden, dass der Fehler nicht auftritt, wenn ich die folgenden Zeilen in meinem Code kommentiere:

prediction = neural_network_model(champion_data)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(prediction, item_data))
optimizer = tf.train.AdamOptimizer().minimize(cost)
_, cost = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

Irgendwo ist eine dieser Zeilen etwas, das nicht genau so aussieht, wie es erwartet, dass es aussieht. Ich habe bereits das Offensichtliche ausprobiert (das NP.Array () aus batch_input und batch_output oder ersetzt durch list ()), aber das löst das Problem nicht. Meine aktuelle Hypothese ist, dass die Ausgabe von neural_network_model (Champion_Data) irgendwie von der falschen Form oder dem falschen Typ oder dem Typ ist, aber ich bin mir nicht sicher, wie ich das testet oder wie man es löst, wenn sich dies als der Fall herausstellt.

Der vollständige Code finden Sie hier:https://gist.github.com/hasseiona/4bcaf9f95ae828e056d5210a2ea07f88

Bearbeiten: Ich habe überprüft, ob die Championdaten, die in das neural_network_model eingegeben werden, die Vorhersage und die Kosten alle Tensoren sind. Ich habe versucht, das Problem mit der Hypothese zu lösen, dass das Problem irgendwie im Teil des Codes feed_dict = {} liegt, aber bisher nirgendwo hinkommt

War es hilfreich?

Lösung

Das Problem lag bei der Verwendung des Namens "Kosten" zweimal. Das Problem wurde gelöst, indem dies geändert wurde:

_, cost = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

dazu:

_, c = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

Auf diese Weise stößt der Name der Variablen 'C' nicht mehr mit dem Teil des Codes [Optimierer, Kosten].

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top