【问题标题】:Tensorflow, errors with dataset: "Cannot convert a DataFrame into a Tensor or Operation."Tensorflow,数据集错误:“无法将 DataFrame 转换为张量或操作。”
【发布时间】: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


    【解决方案1】:

    你的意思是用这条线吗?

        sess.run(trainer, feed_dict={inputX: dataX, inputY: dataY})
    

    你现在正在使用这条线。

        sess.run(train, feed_dict={inputX: dataX, inputY: dataY})
    

    【讨论】:

      猜你喜欢
      • 2018-07-25
      • 1970-01-01
      • 2021-01-30
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多