发新帖

请教一个简单的iris训练的问题

[复制链接]
93 5

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
# coding: utf-8

import tensorflow as tf
import sklearn.datasets
import sklearn.model_selection
import numpy as np
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

# load data
iris_data, iris_target = sklearn.datasets.load_iris(True)
x_train, x_test, y_train, y_test = sklearn.model_selection.train_test_split(iris_data, iris_target,
                                                                            test_size=0.2, random_state=42)
# building 3 layer DNN with 10, 20, 10 units respectively
feature_columns = x_train.shape[1]
classifier = tf.estimator.DNNClassifier(hidden_units=[10, 20, 10], feature_columns=feature_columns,
                                        n_classes=3)

# fit and predict
X = {'a': x_train[:, 0], 'b': x_train[:, 1], 'c': x_train[:, 2], 'd': x_train[:, 3]}
train_input_fn = tf.estimator.inputs.numpy_input_fn(X, np.array(y_train), shuffle=False)
classifier.train(train_input_fn, max_steps=200)
predictions = list(classifier.predict(x_test, as_iterable=True))
score = sklearn.metrics.accuracy_score(y_test, predictions)
print('Accuracy: {0:f}'.format(score))

运行后报错:TypeError: 'int' object is not iterable,什么原因呢?
我知道答案 回答被采纳将会获得10 金币 + 5 金币 已有5人回答
本楼点评(0) 收起

精彩评论5

winter  TF荚荚  发表于 2018-7-11 17:23:03 | 显示全部楼层
请贴出完整的错误打印。不然不好定位到具体的位置。
本楼点评(0) 收起
qiudw  TF荚荚  发表于 2018-7-11 19:57:54 | 显示全部楼层
winter 发表于 2018-7-11 17:23
请贴出完整的错误打印。不然不好定位到具体的位置。

C:\Users\quebrada\AppData\Local\Programs\Python\Python36\python.exe D:/Python/PyCharm/tensorflow-stanford/myexercise/chap01_iris.py
WARNING:tensorflow:Using temporary folder as model directory: C:\Users\quebrada\AppData\Local\Temp\tmpak3tq1oc
Traceback (most recent call last):
  File "D:/Python/PyCharm/tensorflow-stanford/myexercise/chap01_iris.py", line 25, in <module>
    classifier.train(train_input_fn, max_steps=200)
  File "C:\Users\quebrada\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\estimator\estimator.py", line 363, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)
  File "C:\Users\quebrada\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\estimator\estimator.py", line 843, in _train_model
    return self._train_model_default(input_fn, hooks, saving_listeners)
  File "C:\Users\quebrada\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\estimator\estimator.py", line 856, in _train_model_default
    features, labels, model_fn_lib.ModeKeys.TRAIN, self.config)
  File "C:\Users\quebrada\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\estimator\estimator.py", line 831, in _call_model_fn
    model_fn_results = self._model_fn(features=features, **kwargs)
  File "C:\Users\quebrada\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\estimator\canned\dnn.py", line 342, in _model_fn
    feature_columns=tuple(feature_columns or []),
TypeError: 'int' object is not iterable

Process finished with exit code 1

本楼点评(0) 收起
ViolinSolo  TF豆豆  发表于 2018-7-11 22:18:01 | 显示全部楼层
本帖最后由 ViolinSolo 于 2018-7-11 22:20 编辑

有点晕。。 它提示你是
  1. classifier.train(train_input_fn, max_steps=200)
复制代码

这一行出错了,我怀疑是你的
  1. train_input_fn = tf.estimator.inputs.numpy_input_fn(X, np.array(y_train), shuffle=False)
复制代码
有点问题,,电脑坏了,就没法帮你运行了
本楼点评(0) 收起
qiudw  TF荚荚  发表于 2018-7-11 22:28:54 | 显示全部楼层
ViolinSolo 发表于 2018-7-11 22:18
有点晕。。 它提示你是

这一行出错了,我怀疑是你的有点问题,,电脑坏了,就没法帮你运行了 ...

我觉得也是,只是不知道怎么改?
本楼点评(0) 收起
qiudw  TF荚荚  发表于 4 天前 | 显示全部楼层
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

主题

帖子

18

积分
快速回复 返回顶部 返回列表