Tensorflow neural network TypeError: Fetch argument has invalid type
The problem lay in using the name 'cost' on two occasions, the problem was solved by changing this:

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


to this:

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


This way the name of the variable 'c' doesn't clash anymore with the [optimizer, cost] part of the code.