Question

Je fais un simple réseau de neurones en utilisant tensorflow, avec les données que je me collectionnais, cependant, il est de ne pas coopérer. PI se sont heurtées à une erreur que je ne peux pas fixer ou trouver le correctif et j'aimerais votre aide

Le errormessage:

TypeError: Fetch l'argument de 2861,6152 2861,6152 est de type non valide, doit être une chaîne ou Tensor. (Impossible de convertir un float32 en Tensor ou opération).

L'erreur fait référence à la ligne suivante dans mon code:

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

Je l'ai déjà compris que l'erreur ne se produit pas lorsque je commente les lignes suivantes dans mon code:

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})

Alors quelque part une de ces lignes est d'obtenir quelque chose qui ne ressemble pas exactement comme il l'attend à regarder. Je l'ai déjà essayé l'évidence (la suppression np.array () de batch_input et batch_output ou de le remplacer par liste ()) mais cela ne résout pas le problème. Mon hypothèse actuelle est que la sortie de neural_network_model (champion_data) est en quelque sorte de la mauvaise forme ou le type, mais je ne suis pas sûr comment tester ou comment résoudre si cela se avère être le cas.

Vous trouverez le code complet ici: https://gist.github.com/HasseIona/4bcaf9f95ae828e056d5210a2ea07f88

Edit: J'ai vérifié que les données de champion qui sont entrés dans la neural_network_model, la prédiction et le coût sont tous tenseurs. J'ai essayé de résoudre le problème en utilisant l'hypothèse que le problème en quelque sorte se trouve dans la partie feed_dict = {} du code, mais ne va nulle part jusqu'à présent

Était-ce utile?

La solution

Le problème réside dans l'utilisation du nom « coût » à deux reprises, le problème a été résolu en changeant ceci:

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

à ceci:

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

De cette façon, le nom de la variable « c » ne plus pas en conflit avec le [optimiseur, coût] partie du code.

Licencié sous: CC-BY-SA avec attribution
scroll top