我正在尝试使用Tensorflow创建一个神经网络,并且正在尝试使用pandas数据框作为数据。这给了我一个错误,说我无法将数据帧转换为张量。我以为通过numpy.asarray()
传递数据帧应该可以解决此错误,但是我仍然会收到错误。
这是我的代码:
import numpy as np
import tensorflow as tf
import pandas as pd
dataframe = pd.read_csv('data.csv')
dataframe.drop(dataframe.columns.difference(["Happiness.Score", "Freedom", "Family", "Generosity"]), 1, inplace=True)
train = dataframe[1:11]
test = dataframe[12:22]
test.pop("Happiness.Score")
dataY = np.asarray(train["Happiness.Score"])
dataX = np.asarray(train.drop(["Happiness.Score"], axis=1))
inputX = tf.placeholder(tf.float32, [10, 3])
inputY = tf.placeholder(tf.float32, [10])
W = tf.Variable(tf.zeros([3, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(inputX, W) + b)
cross_entropy = tf.reduce_sum(y * tf.log(inputY))
optimizer = tf.train.GradientDescentOptimizer(.01)
trainer = optimizer.minimize(cross_entropy)
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for step in range(1000):
sess.run(train, feed_dict={inputX: dataX, inputY: dataY})
print(sess.run(cross_entropy, feed_dict={inputX: dataX, inputY: dataY}))
sess.close()
这会引发错误
的类型无效,必须为字符串或张量。 (无法将DataFrame转换为张量或操作。)
关于如何解决此问题的任何想法?
答案 0 :(得分:0)
您是要使用此行吗?
sess.run(trainer, feed_dict={inputX: dataX, inputY: dataY})
您正在使用此行。
sess.run(train, feed_dict={inputX: dataX, inputY: dataY})