前提・実現したいこと
初心者です。
Colaboratoryを使っています。
CNNを構築中に以下のエラーメッセージが発生しました。
https://qiita.com/mafunity_/items/464d70915c1815e9a628というサイトを参考にしています。
発生している問題・エラーメッセージ
ValueError: Error when checking input: expected conv2d_173_input to have 4 dimensions, but got array with shape (21, 1)というエラーがでます。
該当のソースコード
model = Sequential()
model.add(Conv2D(32, (3, 3), padding='same',
input_shape=(32,32,1)))
model.add(Activation('relu'))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), padding='same'))
model.add(Activation('relu'))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(2)) # クラスは2個
model.add(Activation('softmax'))
model.summary()
print("Model compiling...")
model.compile(loss='binary_crossentropy',
optimizer='SGD',
metrics=['accuracy'])
print("fitting...")
print("Model saving... at ./drive/My Drive/model.json")
from keras.utils import plot_model
model_json = model.to_json()
with open("./drive/My Drive/model.json", mode='w') as f:
f.write(model_json)
print("Weight saving... at ./drive/My Drive/weights.hdf5")
model.save_weights("./drive/My Drive/weights.hdf5")
history = model.fit(X_train, Y_train, batch_size=30, epochs=10,
validation_split=0.2, shuffle=True, verbose = 1)
print("plotting...")
plt.plot(history.history['acc'])
plt.plot(history.history['val_acc'])
plt.title('model accuracy')
plt.xlabel('epoch')
plt.ylabel('accuracy')
plt.legend(['acc', 'val_acc'], loc='lower right')
plt.show()
補足情報(FW/ツールのバージョンなど)
エラーの原因がよくわかりません。
あなたの回答
tips
プレビュー