GTZANデータセットに CNN + LSTM アーキテクチャを実装しようとしています。以下のトレーニングと検証セットについて説明します。
X_train.shape #(10000, 64, 173, 1)
Y_train.shape #(10000, 10, 1)
X_valid.shape #(2000, 64, 173, 1)
Y_valid.shape #(2000, 10)
私のモデルは以下のようなものです:
input_shape = (10000, 64, 173, 1)
model = Sequential()
model.add(TimeDistributed(Conv2D(24, 5, 5, activation='relu', subsample=(5, 4),
border_mode='valid'), input_shape=input_shape))
model.add(TimeDistributed(MaxPooling2D(pool_size = (2,2))))
model.add(TimeDistributed(Flatten()))
model.add(LSTM(64, return_sequences=True))
model.add(Dense(output_dim=1, activation = "softmax"))
model.summary()
モデルのコンパイル:
from keras.optimizers import Adam
model.compile(optimizer=Adam(lr = 1e-5), loss="categorical_crossentropy", metrics=['accuracy'])
モデルフィット:
from keras.callbacks import EarlyStopping
early_stopping = EarlyStopping(monitor='val_loss', patience=20, verbose=2)
history = model.fit(X_train, Y_train, epochs=90, batch_size=32, validation_data= (X_valid, Y_valid), callbacks=[early_stopping])
しかし、私はエラーが発生します。
ValueError: 入力チェック時のエラー: time_distributed_126_input は 5 次元であると予想されましたが、形状 (10000, 64, 173, 1) の配列を取得しました
私は何を間違っていますか?私はこれが初めてです