2017-01-22 42 views
7

私は、回帰に関するkerasにこの小さなチュートリアルをやろうとしています: http://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/PythonのKerasのcross_val_scoreエラー

は、残念ながら、私は解決できないエラーに実行しています。 私はちょうどコピーして、このスニペットを実行しているとき、私は次のエラーを取得するコードを貼り付けた場合:

import numpy 
import pandas 
from keras.models import Sequential 
from keras.layers import Dense 
from keras.wrappers.scikit_learn import KerasRegressor 
from sklearn.model_selection import cross_val_score 
from sklearn.model_selection import KFold 
from sklearn.preprocessing import StandardScaler 
from sklearn.pipeline import Pipeline 
# load dataset 
dataframe = pandas.read_csv("housing.csv", delim_whitespace=True,header=None) 
dataset = dataframe.values 
# split into input (X) and output (Y) variables 
X = dataset[:,0:13] 
Y = dataset[:,13] 
# define base mode 
def baseline_model(): 
    # create model 
    model = Sequential() 
    model.add(Dense(13, input_dim=13, init='normal', activation='relu')) 
    model.add(Dense(1, init='normal')) 
    # Compile model 
    model.compile(loss='mean_squared_error', optimizer='adam') 
    return model 
# fix random seed for reproducibility 
seed = 7 
numpy.random.seed(seed) 
# evaluate model with standardized dataset 
estimator = KerasRegressor(build_fn=baseline_model, nb_epoch=100,batch_size=5, verbose=0) 

kfold = KFold(n_splits=10, random_state=seed) 
results = cross_val_score(estimator, X, Y, cv=kfold) 

エラーは言う:任意の助け

TypeError: get_params() got an unexpected keyword argument 'deep' 

感謝を。ここで

はフルトレースバックです:

Traceback (most recent call last): 


File "<stdin>", line 1, in <module> 
    File "C:\Users\myname\Anaconda3\lib\site-packages\sklearn\model_selection\_validation.py", line 140, in cross_val_score 
    for train, test in cv_iter) 
    File "C:\Users\myname\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 758, in __call__ 
    while self.dispatch_one_batch(iterator): 
    File "C:\Users\myname\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 603, in dispatch_one_batch 
    tasks = BatchedCalls(itertools.islice(iterator, batch_size)) 
    File "C:\Users\myname\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 127, in __init__ 
    self.items = list(iterator_slice) 
    File "C:\Users\myname\Anaconda3\lib\site-packages\sklearn\model_selection\_validation.py", line 140, in <genexpr> 
    for train, test in cv_iter) 
    File "C:\Users\myname\Anaconda3\lib\site-packages\sklearn\base.py", line 67, in clone 
    new_object_params = estimator.get_params(deep=False) 
TypeError: get_params() got an unexpected keyword argument 'deep' 
+2

ここにあなたの全体のコードを貼り付けてください! – Arman

+1

私は質問を編集しました。基本的に私はちょうどリンクのturotialから貼り付けをコピーします – user7454972

+1

最後のエラーメッセージだけでなく、完全なトレースバックを投稿してください。 –

答えて

1

EDIT(25/01/2017):conda環境にインストールされているKerasのバージョンは1.1.1ではないので、このソリューションは動作しますバグのある人(1.2.1)。ジェイソンの解決策は正しいです。 Jasonのソリューションが実際のソリューションである場合に備えて、私はここに私のソリューションを残しました。

Keras(1.2.1)をアップグレードした後も同じ問題がありました。私は問題がソフトウェアのバージョンにあると思う。私がお勧めするのは、Anacondaをインストールし、tensorflowをインストールする新しい環境を作成することです。基本的に次の手順に従います。https://www.tensorflow.org/get_started/os_setup#anaconda_installation

環境を有効にし、condaオプションを使用してインストールします。次に、必要とする他のライブラリをインストールすることができます。環境tensorflowが有効化されている場合は、conda install name_of_the_packageでインストールします。

Kera(https://keras.io/backend/)のバックエンドでtheanotensorflowの間で変更できます。

基本的に、conda環境では、必要なものをインストールしてアンインストールできる環境で、他のプログラムに影響を与えない、保護されたカプセル化された領域を作成しています。あなたがやっていることは、すべてのものを削除して再インストールするようなものです。

希望します。報告

14

特定のエラーは、次のとおりです。

TypeError: get_params() got an unexpected keyword argument 'deep' 

障害がKerasバージョン1.2.1のバグが導入されました。 Kerasラッパークラス(KerasClassifierやKerasRegressorなど)やscikit-learn関数cross_val_score()を使用すると発生します。

Keras GitHubプロジェクトのバグはidentifiedpatchedでした。

修正1:Kerasバージョン1.2.0へのロールバック

は、私が試した2つの修正があります。

タイプ:

sudo pip install keras==1.2.0 

修正2:修正とモンキーパッチKeras。あなたの輸入後

が、あなたの仕事の種類の前に:両方の修正は、(Pythonの2と3/sklearn 0.18.1)私のために働く

from keras.wrappers.scikit_learn import BaseWrapper 
import copy 

def custom_get_params(self, **params): 
    res = copy.deepcopy(self.sk_params) 
    res.update({'build_fn': self.build_fn}) 
    return res 

BaseWrapper.get_params = custom_get_params 

いくつかの追加候補修正:

  • Keras(1.2.2)の次のバージョンがリリースされるのを待ちます。
  • GithubのKerasをチェックアウトし、手動でビルドしてインストールしてください。
0

同じ問題がありました。 ケラスのバージョンを1.2.2にアップグレードした後、問題は解決しませんでした。

、あなたのパッケージを管理するためにピップ使用する場合は、次のコマンドでkerasをアップグレードすることができます

sudo pip install --upgrade keras 
関連する問題