【问题标题】:Items of feature_columns must be a _FeatureColumn. Given (type <class 'str'>): sepal length (cm)feature_columns 的项必须是 _FeatureColumn。给定(类型 <class 'str'>):萼片长度(cm)
【发布时间】:2021-02-19 16:22:16
【问题描述】:

我正在 iris 数据集上训练一个 NN 模型

*from sklearn.datasets import load_iris

iris = load_iris()

X = iris['data']

y = iris['target']

from sklearn.model_selection import train_test_split

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3)

import tensorflow.contrib.learn as learn

classifier.fit(X_train,y_train,steps=200,batch_size=32)*

**在执行上面的步骤时,它显示了这个错误

它显示此错误:

**Items of feature_columns must be a _FeatureColumn. Given (type <class 'str'>): sepal length (cm).**

另外,我正在使用 Google Colaboratory,并且我是 NN 和 Tensor Flow 的新手。 有人可以回答这个疑问吗?**

我也在谷歌上搜索,但注意到很多可以帮助我的东西。

【问题讨论】:

  • 你的classifier是什么?
  • 分类器 = learn.DNNClassifier(hidden_​​units=[10,20,10],n_classes=3) 。实际上,当我运行它时,它说 __init__() 缺少 1 个必需的位置参数:'feature_columns' 不知道如何解决这个问题。 @aminrd 。之后在线分类器.fit(X_train,y_train,steps=200,batch_size=32)
  • 表示feature_columns的Items必须是_FeatureColumn。给定(类型 ):萼片长度(cm)。但我对此很陌生,所以无法弄清楚。

标签: python tensorflow machine-learning nlp artificial-intelligence


【解决方案1】:

你可以传递如下参数:

input_train = tf.estimator.inputs.numpy_input_fn(
                  x = {'x': X_train},
                  y = y_train,
                  num_epochs = 200,
                  shuffle = True)

feature_columns = [tf.feature_column.numeric_column(key='x', shape=(X_train.shape[1],))]

classifier = tf.estimator.DNNClassifier(
                       hidden_units=[10, 20, 10],
                       n_classes=3,
                       optimizer='Adagrad'
                       feature_columns=feature_columns)

# Instead of fit, you should use .train() and pass intput_train
classifier.train(input_train)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多