前提・実現したいこと
720万手をディープラーニングで学習したオセロAIをChainerで作ってみた
を参考にKerasでオセロの碁面データを学習するネットワークを実装しようとしています。
8×8
の碁面を学習してオセロの盤面上の位置を整数で得る想定ですが、下記に示すエラーにハマりどなたかお助けいただきたく思います。。
発生している問題・エラーメッセージ
ValueError: Error when checking target: expected conv2d_1 to have 4 dimensions, but got array with shape (7133420, 1)
※7133420
とは学習するオセロの総手数です
該当のソースコード
python
1inputs = Input(shape = (8,8)) 2hidden = Reshape((8, 8, 1), input_shape = (8, 8))(inputs) 3predictions = Conv2D(50, (3, 3), activation='relu')(hidden) 4model = Model(inputs=inputs, outputs=predictions) 5model.compile(optimizer=Adam(), 6 loss='categorical_crossentropy', 7 metrics=['accuracy']) 8print(model.summary()) 9history = model.fit(train_x, train_y, epochs=100, batch_size=MINIBATCH_SIZE)
model.summary()
の結果
_________________________________________________________________ Layer (type) Output Shape Param # ================================================================= input_1 (InputLayer) (None, 8, 8) 0 _________________________________________________________________ reshape_1 (Reshape) (None, 8, 8, 1) 0 _________________________________________________________________ conv2d_1 (Conv2D) (None, 8, 8, 50) 500 ================================================================= Total params: 500 Trainable params: 500 Non-trainable params: 0 _________________________________________________________________ None
試したこと
入力のReshapeを色々試みましたがだめでした
補足情報(FW/ツールのバージョンなど)
windows10
Python v3.6.10
Keras v2.3.1
あなたの回答
tips
プレビュー