2017-08-16 10 views
2

私は、この最も基本的な例をとてもいい花で試しました。この古い質問(https://stackoverflow.com/a/41380178/6444605)によれば、いくつかの変更がありました。しかし、この例も最新のものですか?私はこのエラーを取得するので、私は、頼む:Tensorflow - 花の例

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) 

答えて

3

私はあなたが機能がどこにあるか教えて必要があると思う:

あなたが定義する必要が
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_columnshidden_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

+0

かなり変化しました。 – gwf

0

これに対する別の解決策は次のようになります。それはtensorflowバージョン0.8およびない1>実際のです。したがって、この小さな例のバージョンを切り替えるだけです。

+0

別のtfバージョンに切り替えるには? – harrypotter0