2016-07-16 3 views
1

私は、TF v0.9でskflowに基づいてDNN予測(0または1)モデルを構築しています。 TensorFlowDNNClassifierのコードはこのようです。私は約26,000件のレコードを訓練し、6,500件をテストします。DNNClassifierはTensorFlowDNNClassifierと比較して不安定ですか?

classifier = learn.TensorFlowDNNClassifier(hidden_units=[64, 128, 64], n_classes=2) 
classifier.fit(features, labels, steps=50000) 
test_pred = classifier.predict(test_features) 
print(classification_report(test_labels, test_pred)) 

約1分で結果が得られます。

   precision recall f1-score support 
      0  0.77  0.92  0.84  4265 
      1  0.75  0.47  0.58  2231 
avg/total  0.76  0.76  0.75  6496 

しかし、私は

WARNING:tensorflow:TensorFlowDNNClassifier class is deprecated. 
Please consider using DNNClassifier as an alternative. 

だから私は単にDNNClassifierで自分のコードを更新しました。

でもうまくいきます。しかし結果は同じではありませんでした。

   precision recall f1-score support 
      0  0.77  0.96  0.86  4265 
      1  0.86  0.45  0.59  2231 
avg/total  0.80  0.79  0.76  6496 

1の精度がを向上させることができます。 もちろん、これは私にとっては良いことですが、なぜ改善されていますか? そして約2時間かかります。 これは、前の例より約120倍遅いです。

私は間違っていますか?またはいくつかのパラメータを逃した? またはDNNClassifierがTF v0.9で不安定ですか?

答えて

0

私はhereと同じ答えを出します。 max_stepsの代わりにstepsパラメーターを使用したことが原因です。実際にmax_stepsを実行したのは、TensorFlowDNNClassifierの手順でした。今、あなたが実際にあなたのケースで50000ステップを望むか、それとも早く自動停止するかを決めることができます。

関連する問題