Skip to main content
 首页 » 编程设计

python之带花的 Tensorflow 示例

2024年08月19日30lori

我已经用非常漂亮的花尝试了这个最基本的例子。根据这个较旧的问题(https://stackoverflow.com/a/41380178/6444605),发生了一些变化。但是这个例子现在也是最新的吗?我问,因为我得到这个错误:

classifier = skflow.DNNClassifier(hidden_units=[10, 20, 10], n_classes=3) TypeError: _ _ init _ _() takes at least 3 arguments (3 given)

这是代码:

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) 

请您参考如下方法:

我认为你需要说出特征在哪里:

classifier = skflow.DNNClassifier(feature_columns=..., hidden_units=[10, 20, 10], n_classes=3) 

您需要在其中定义特征列,例如 feature_columns = [tf.contrib.layers.real_valued_column("", dimension=4)] 告诉分类器它应该有 4 列里面有实数。

由于 skflow 已移至 tf.contrib.learn,您可能会发现这很有帮助:https://www.tensorflow.org/api_docs/python/tf/contrib/learn/DNNClassifier 无论如何,feature_columns 和 hidden_​​units 在函数调用中是必须的。

我在使用 metrics.accuracy_score() 时遇到了一些错误,因此我将其替换为 classifier.evaluate() 并最终使其正常运行。

查看下面的完整示例:

import tensorflow as tf 
import tensorflow.contrib.learn as skflow 
from sklearn import datasets 
 
iris = datasets.load_iris() 
feature_columns = [tf.contrib.layers.real_valued_column("", dimension=4)] 
# made a change in the next line 
classifier = skflow.DNNClassifier(feature_columns=feature_columns, hidden_units=[10, 20, 10], n_classes=3) 
 
classifier.fit(iris.data, iris.target, steps=50) 
 
score = classifier.evaluate(iris.data, iris.target, steps=1)["accuracy"] 
print("Accuracy: {}".format(score)) 

可以在此处找到更扩展的示例:https://www.tensorflow.org/get_started/tflearn