kerasを用いて機械学習の勉強をしており、1次元の畳み込み層を導入したいと考えております。
Conv1Dの層の導入の際にdimensionsのエラーがでて進まずに困っております。
学習させるデータのshapeが以下の場合に
train_X.shape:(5408, 270, 1)
train_y.shape:(5408, 1)
test_X.shape:(1352, 270, 1)
test_y.shape:(1352, 1)
以下の畳み込み層を設定してみると
python
1 2model = Sequential() 3model.add(Conv1D(270, 8, padding='same', input_shape=(270, 1), activation='relu')) 4model.add(MaxPooling1D(2, padding='same')) 5model.add(Conv1D(270,8,padding='same',activation='relu')) 6model.add(MaxPooling1D(2, padding='same')) 7model.add(Conv1D(135,8,padding='same', activation='relu')) 8model.add(Conv1D(1,8,padding='same', activation='tanh')) 9model.compile(loss='mse', optimizer='adam') 10history = model.fit(train_X, train_y, validation_data=(test_X,test_y))
では、
ValueError: Error when checking target: expected conv1d_21 to have 3 dimensions, but got array with shape (5408, 1)
と表示されてしまいます。
filtersとkernel_sizeの設定がうまくいっていないとおもうのですが、解決方法がわかりません。
上記のConv1Dの層の64,8の部分のfilters,kernel_sizeの数値の設定についてkerasのドキュメンテーションなどを調べているのですが、わからずにおります。
kerasのドキュメンテーションを見ると
filters: 整数,出力空間の次元(つまり畳み込みにおける出力フィルタの数).
kernel_size: 整数か単一の整数からなるタプル/リストで,1次元の畳み込みウィンドウの長さを指定する。
となっているのですが、出力空間の次元を決めるためのfiltersとkernel_sizeの数値設定や
maxPooling1Dの層の2の部分の数値設定についてはどのような考えで設定していくことが望ましいのか、アドバイスを教えていただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/03 09:55