GridSearchCV
을 사용하여 tensorflow DNN 모델에서 하이퍼 매개 변수 최적화를 수행하는 데 몇 시간이 걸렸습니다. 실제로 a test in the tensorflow
library itself에서 촬영 한Tensorflow DNNClassifier 및 scikit-learn GridSearchCV 문제
import random
from tensorflow.contrib.learn.python import learn
from sklearn import datasets
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import accuracy_score
random.seed(42)
iris = datasets.load_iris()
feature_columns = learn.infer_real_valued_columns_from_input(iris.data)
classifier = learn.DNNClassifier(
feature_columns=feature_columns,
hidden_units=[10, 20, 10],
n_classes=3)
grid_search = GridSearchCV(
classifier, {'hidden_units': [[5, 5], [10, 10]]},
scoring='accuracy',
fit_params={'steps': [50]})
grid_search.fit(iris.data, iris.target)
score = accuracy_score(iris.target, grid_search.predict(iris.data))
: 내 코드의 최신 버전은 다음과 같다.
나는 내가 다음과 같은 오류 얻을 실행하면 : 나는 아이디어가 부족
$ pip3 freeze
numpy==1.12.1
scikit-learn==0.18.1
scipy==0.19.0
tensorflow==1.1.0
:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-dce950001f99> in <module>()
16 scoring='accuracy',
17 fit_params={'steps': [50]})
---> 18 grid_search.fit(iris.data, iris.target)
19 score = accuracy_score(iris.target, grid_search.predict(iris.data))
/home/nmiotto/Development/upday/hellseher/playground/lib/python3.5/site-packages/sklearn/model_selection/_search.py in fit(self, X, y, groups)
943 train/test set.
944 """
--> 945 return self._fit(X, y, groups, ParameterGrid(self.param_grid))
946
947
/home/nmiotto/Development/upday/hellseher/playground/lib/python3.5/site-packages/sklearn/model_selection/_search.py in _fit(self, X, y, groups, parameter_iterable)
548 n_candidates * n_splits))
549
--> 550 base_estimator = clone(self.estimator)
551 pre_dispatch = self.pre_dispatch
552
/home/nmiotto/Development/upday/hellseher/playground/lib/python3.5/site-packages/sklearn/base.py in clone(estimator, safe)
68 for name, param in six.iteritems(new_object_params):
69 new_object_params[name] = clone(param, safe=False)
---> 70 new_object = klass(**new_object_params)
71 params_set = new_object.get_params(deep=False)
72
TypeError: __init__() got an unexpected keyword argument 'params'
내가 Python 3.5.2
을 사용하고 더 정확하게 최신 버전에 모든 라이브러리를 업데이트를 , 내가 무엇을 놓치고 있는지 알 수 없다. 어떤 도움을 주시면 감사하겠습니다. 물론 기존 라이브러리에 원숭이 패치 나 해킹 할 필요가 없다고 가정합니다.
나는 현재 마스터 버전을 시도했지만 여전히 운이 없다 (같은 오류). 또한 테스트는 실제로 작동하지 않는 것으로 보입니다. 아마도 테스트는 아니지만 오래전에 시도해 보았던 해킹 스크립트와 같을 것입니다. –
@NicolaMiotto master 브랜치를 사용하여 체크 한 것을 havent합니다. 테스트 후 다시 연락 드리겠습니다. 동시에 ParameterGrid와 cross_val_score의 조합을 사용하여 동일한 효과를 얻을 수 있습니다. 필요한 경우 여기에 답변을 포함시켜 편집 할 수 있습니다. –