2016-10-06 4 views
1

私は、LSTM RNNがどのように動作し、どのようにそれらをKerasで実装してバイナリ分類の問題を解決できるかを理解しようとしています。私のコードと私が使用しているデータセットは下に表示されています。私はcompilrコードを私はエラーTypeError: __init__() got multiple values for keyword argument 'input_dim'を得る、誰も助けることができますか?ケラスでのLSTMの実装特定のデータセットの使用

from keras.models import Sequential 
from keras.layers import LSTM 
from keras.layers.embeddings import Embedding 
from keras.layers import Dense 
from sklearn.cross_validation import train_test_split 
import numpy 
from sklearn.preprocessing import StandardScaler # data normalization 

seed = 7 
numpy.random.seed(seed) 
dataset = numpy.loadtxt("sorted output.csv", delimiter=",") 
X = dataset[:,0:4] 
scaler = StandardScaler(copy=True, with_mean=True, with_std=True) #data normalization 
X = scaler.fit_transform(X) #data normalization 
Y = dataset[:4] 
# split into 67% for train and 33% for test 
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, random_state=seed) 
# create model 
model = Sequential() 
model.add(Embedding(12,input_dim=4,init='uniform',activation='relu')) 
model.add(Dense(4, init='uniform', activation='relu')) 
model.add(LSTM(100)) 
model.add(Dense(1, init='uniform', activation='sigmoid')) 
# Compile model 
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) 
# Fit the model 
model.fit(X_train, y_train, validation_data=(X_test,y_test), nb_epoch=150, batch_size=10) 

enter image description here

+0

これはニューラルネットワーク、theanoまたはkerasとは関係ありません。 'numpy.loadtxt(" sorted output.csv "、delimiter ="、 ")'はファイル 'sorted output.csv'を見つけることができないという唯一の問題です。あなたはアプリケーションを起動したときにディレクトリに存在していると確信していますか?また、絶対パスを試してください、そして、それがファイル名のスペースを削除しようとしないならば。私はあなたの "しかし、私がインポートしようとしているデータセットは、あなたがPythonコードを持っている場合は、このファイルがnumpy関数が呼び出される前に存在することを確認していると信じるだろう... – example

+0

私は確かに私のデータセットは、私は別のNN(再発しないもの)を同じデータセットで試してみると、うまく動作します。したがって、唯一の選択肢は、自分のRNNネットワークが正しく実装されていないことです。 – Adriano10

+0

NNはファイル名を認識しません。したがって、提供されるエラーは発生しません。通常は、Pythonでエラーが発生したときにスタックトレースを取得します。それを使ってエラーがどこで発生したのか把握し、発生した行を提供してください。 – example

答えて

0

ここでは2つの別々の質問のように見えます。

LSTM/Kerasの使用方法については、いくつかの良いチュートリアルがあります。バイナリ分類の問題についても説明しているthis oneを試してください。あなたが理解できない特定の問題または領域がある場合は、教えてください。

ファイルのオープンに関する問題は、おそらくファイル名の空白が問題の原因です。役立つかどうかはthis answerをご覧ください。

+0

私はあなたが提供したチュートリアルを知っていて、実際に多くのフィードフォワードNNを作成しました。しかし、問題は、私は(私がフィードフォワードのものに使用したのと同じデータセットの)リカレントNNを構築しようとすると、特にLSTM NN – Adriano10

0

実際には、取得しているエラーメッセージが完全にポイントになるケースです。 keras.layers.embeddings.Embedding(input_dim, output_dim, ...)

しかし、あなたが使用して構築されています: Embedding(12,input_dim=4,...)

Keras' 埋め込み層コンストラクタはthis signatureを持っている(私は...、これは常にPythonとKerasとケースになりたいです)

これはそれぞれ入力ディメンションと出力ディメンションを決定し、パラメータの順序と名前を修正します。あなたが質問に含まれているテーブルに基づいて、私は4を入力次元、12を出力次元と推測しています。それはEmbedding(input_dim=4, output_dim=12, ...)になります。

関連する問題