linrock / chessboard-recognizer

Uses neural networks to extract chess positions from images

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

conv2d_input to have shape (32, 32, 3) but got array with shape (32, 32, 1)

yura opened this issue · comments

Can't recognize FEN from the image:

./recognize.py in2.png  
Tensorflow 2.1.0
Predicting chessboard in2.png
Traceback (most recent call last):
  File "./recognize.py", line 139, in <module>
    print(predict_chessboard(chessboard_image_path, args))
  File "./recognize.py", line 91, in predict_chessboard
    (fen_char, probability) = predict_tile(tile_img_data)
  File "./recognize.py", line 115, in predict_tile
    probabilities = list(model.predict(np.array([tile_img_data]))[0])
  File "/usr/local/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 1013, in predict
    use_multiprocessing=use_multiprocessing)
  File "/usr/local/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 498, in predict
    workers=workers, use_multiprocessing=use_multiprocessing, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 426, in _model_iteration
    use_multiprocessing=use_multiprocessing)
  File "/usr/local/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 646, in _process_inputs
    x, y, sample_weight=sample_weights)
  File "/usr/local/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 2383, in _standardize_user_data
    batch_size=batch_size)
  File "/usr/local/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 2410, in _standardize_tensors
    exception_prefix='input')
  File "/usr/local/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_utils.py", line 582, in standardize_input_data
    str(data_shape))
ValueError: Error when checking input: expected conv2d_input to have shape (32, 32, 3) but got array with shape (32, 32, 1)

Thanks for reporting, I got a similar error when using tensorflow 2.1.0 just now (with python 3.8.5).

Can you try again with tensorflow 2.3.1? I just retrained a new NN on 2.3.1 and this seems to work for me:
https://github.com/linrock/chessboard-recognizer/releases/download/v0.5/nn.zip

works just fine, thanks

awesome! closing this issue since it appears fixed