【问题标题】:AttributeError: module 'tensorflow.contrib.learn' has no attribute 'TensorFlowDNNClassifier'AttributeError:模块“tensorflow.contrib.learn”没有属性“TensorFlowDNNClassifier”
【发布时间】:2017-05-13 08:18:40
【问题描述】:

这是我正在尝试执行的 ml tensorflow 代码 -

import tensorflow.contrib.learn as skflow
from sklearn import datasets, metrics
iris = datasets.load_iris()
classifier = skflow.TensorFlowDNNClassifier(hidden_units=[10, 20, 10], n_classes=3)
classifier.fit(iris.data, iris.target)
score = metrics.accuracy_score(iris.target, classifier.predict(iris.data))

print("Accuracy: %f" % score)

它给出以下错误 -

Traceback(最近一次调用最后一次):

文件“C:\Users\admin\test3.py”,第 5 行,

分类器 = skflow.TensorFlowDNNClassifier(hidden_​​units=[10, 20, 10], n_classes=3) AttributeError: module 'tensorflow.contrib.learn' 没有属性“TensorFlowDNNClassifier”

[在 69.3 秒内完成,退出代码为 1]

[shell_cmd: python -u "C:\Users\admin\test3.py"]

【问题讨论】:

  • TensorFlow 的哪个版本?

标签: python machine-learning scikit-learn tensorflow


【解决方案1】:
import tensorflow.contrib.learn.python

from tensorflow.contrib.learn.python import learn as learn

【讨论】:

  • contrib 在 tensorflow2 中不可用
【解决方案2】:

TensorFlow 项目中似乎进行了重大重构,所有 skflow 代码已移至 tensorflow 主存储库下。

尝试将TensorFlowDNNClassifier 替换为DNNClassifier。可以在here 找到新课程。您更正后的代码如下所示,

import tensorflow.contrib.learn as skflow
from sklearn import datasets, metrics
iris = datasets.load_iris()
# made a change in the next line
classifier = skflow.DNNClassifier(hidden_units=[10, 20, 10], n_classes=3)
classifier.fit(iris.data, iris.target)
score = metrics.accuracy_score(iris.target, classifier.predict(iris.data))

print("Accuracy: %f" % score)

【讨论】:

  • 感谢它的工作!问题还在于 tensorflow 的版本,因为我使用的语法已经过时,即使恢复到以前的版本也解决了问题
  • 如何恢复到以前的版本??
猜你喜欢
  • 1970-01-01
  • 2018-04-14
  • 2019-02-18
  • 1970-01-01
  • 2020-01-01
  • 2019-07-20
  • 2021-11-05
  • 2021-11-04
相关资源
最近更新 更多