【发布时间】:2018-07-07 18:18:56
【问题描述】:
我正在尝试使用 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 转换为 Tensor 或 Operation。)
关于如何解决这个问题的任何想法?
【问题讨论】:
标签: python pandas tensorflow