Вопрос

Я делаю простую нейронную сеть, используя TensorFlow, с данными, которые я собирал сам, однако это не сотрудничает: PI столкнулся с ошибкой, которую я не могу исправить или найти исправление, и мне бы понравилась ваша помощь.

Errormessage:

TypeError: аргумент Fetch 2861.6152 из 2861.6152 имеет недопустимый тип, должен быть строка или тензор. (Не может преобразовать Float32 в тензор или операцию.)

Ошибка относится к следующей строке в моем коде:

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

Я уже понял, что ошибка не возникает, когда я прокомментирую следующие строки в своем коде:

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

Таким образом, где -то одна из этих строк - это то, что не выглядит так, как ожидается, это будет выглядеть. Я уже попробовал очевидное (удаление np.array () из batch_input и batch_output или заменить его на list ()), но это не решает проблему. Моя текущая гипотеза заключается в том, что вывод Neural_network_model (Champion_Data) каким -то образом является неправильной формой или типом, однако я не уверен, как проверить это или как это решить, если это оказывается.

Полный код можно найти здесь:https://gist.github.com/hasseiona/4bcaf9f95ae828e056d5210a2ea07f88

РЕДАКТИРОВАТЬ: Я подтвердил, что данные чемпиона, которые вводятся в Neural_network_model, прогноз и стоимость - все тензоры. Я пытался решить проблему, используя гипотезу о том, что проблема каким -то образом заключается в feed_dict = {} часть кода, но до сих пор никуда не добраться до

Это было полезно?

Решение

Проблема заключалась в использовании названия «стоимость» дважды, проблема была решена путем изменения этого:

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

к этому:

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

Таким образом, название переменной 'C' больше не сталкивается с [оптимизатором, стоимостью] частью кода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top