Tworzę prostą sieć neuronową za pomocą tensorflow, z danymi, które sam zebrałem, ale to nie współpracuje: PI napotkał błąd, którego nie mogę naprawić lub znaleźć dla, a chciałbym za twoją pomoc.
Błąd:
Błąd typu: argument pobierania 2861.6152 z 2861.6152 ma niepoprawny typ, musi być łańcuchem lub tensorem. (Nie można przekształcić float32 w tensor lub operację.)
Błąd odnosi się do następującego wiersza w moim kodzie:
_, cost = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})
Już zorientowałem się, że błąd nie występuje, gdy komentuję następujące wiersze w moim kodzie:
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})
Więc gdzieś jedna z tych linii otrzymuje coś, co nie wygląda dokładnie tak, jak się spodziewa. Próbowałem już oczywistego (usunięcie np.array () z batch_input i batch_output lub zastąpienie go list ()), ale to nie rozwiązuje problemu. Moja obecna hipoteza jest taka, że wyjście neural_network_model (champion_data) jest w jakiś sposób niewłaściwym kształtem lub typem, jednak nie jestem pewien, jak to przetestować lub jak rozwiązać, jeśli tak się stanie.
Pełny kod można znaleźć tutaj: https://gist.github.com/HasseIona/4bcaf9f95ae828e056d5210a2ea07f88
Edycja: Sprawdziłem, że dane bohatera, które są wprowadzane do modelu neuronowego_sieci, prognozy i kosztu są tensorami. Próbowałem rozwiązać problem, używając hipotezy, że problem leży w części feed_dict = {} kodu, ale jak dotąd nie dotarłem