Domanda

sto facendo una rete neurale semplice utilizzando tensorflow, con i dati di me stesso ho raccolto, però, non è collaborare:. PI hanno eseguito in un errore che non riesco a risolvere o trovare la correzione per e mi piacerebbe il vostro aiuto

L'errormessage:

TypeError: Fetch argomento 2861,6152 di 2861,6152 è di tipo valido, deve essere una stringa o Tensor. (Non è possibile convertire un float32 in un Tensor o di funzionamento.)

L'errore si riferisce alla seguente riga nel mio codice:

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

ho già capito che l'errore non si verifica quando io commento le seguenti righe nel mio codice:

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

Quindi, da qualche parte una di queste linee sta ottenendo qualcosa che non sembra esattamente come si aspetta di guardare. Ho già provato l'ovvio (rimuovendo il np.array () da batch_input e batch_output o sostituzione di elenco ()) ma che non risolve il problema. La mia ipotesi attuale è che l'uscita di neural_network_model (champion_data) è in qualche modo la forma o il tipo sbagliato, ma io non sono sicuro di come test che o il modo di risolverlo se che risulta essere il caso.

Il codice completo può essere trovato qui: https://gist.github.com/HasseIona/4bcaf9f95ae828e056d5210a2ea07f88

Edit: Ho verificato che i dati campione che vengono immessi nel neural_network_model, la previsione e il costo sono tutti i tensori. Ho cercato di risolvere il problema utilizzando l'ipotesi che il problema in qualche modo sta nel feed_dict = {} parte del codice, ma non arrivare da nessuna parte finora

È stato utile?

Soluzione

Il problema era utilizzando il nome 'costo' due volte, il problema è stato risolto modificando questo:

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

a questo:

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

In questo modo il nome della variabile 'c' non si scontra più con la parte [ottimizzatore, costo] del codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top