작성
·
254
0
(cv) pi@raspberrypi:~/rbp_dnn $ python3 RBP_DL15_MNIST_PiCamera.py 실행 에러
-------------------------------------------------
/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/picamera/encoders.py:544: PiCameraResolutionRounded: frame size rounded up from 300x300 to 304x304
width, height, fwidth, fheight)))
Traceback (most recent call last):
File "RBP_DL15_MNIST_PiCamera.py", line 78, in <module>
result = model.predict(np.array([num]))
File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 909, in predict
use_multiprocessing=use_multiprocessing)
File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 462, in predict
steps=steps, callbacks=callbacks, **kwargs)
File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 396, in _model_iteration
distribution_strategy=strategy)
File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 594, in _process_inputs
steps=steps)
File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 2472, in _standardize_user_data
exception_prefix='input')
File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_utils.py", line 565, in standardize_input_data
'with shape ' + str(data_shape))
ValueError: Error when checking input: expected conv2d_1_input to have 4 dimensions, but got array with shape (1, 28, 28)
에러 어디서 부터 참조해서 해결을 해야 하나요.
답변 4
0
안녕하세요?
보내주신 로그와 내용 잘 봤습니다.
제가 동일한 환경에서 다시 실행해 보니 잘 되고 있으므로 프로그램의 문제는 아닌 것 같고 텐서플로2를 확인하셨으니 환경의 문제도 아닌 것 같습니다.
그러면 현재 있는 digits_model.h5 모델파일을 다시 확인해 봐야 할 것 같습니다. 에러로 보면 텐서플로에서 처리하는 모델의 dimension과 model.predict에서 보내주는 형태가 다르다고 나오고 있으니까요.
이 파일을 다시 만드셨는지 이전에 제가 소스코드와 같이 넣어드린 파일을 쓰셨는지 모르겠지만 제 라즈베리파이에 있던 digits_model.h5파일을 다시 보내오니 아래 링크에서 다운로드하여 라즈베리파이 폴더로 옮기고 다시 실행해 보세요.
https://drive.google.com/file/d/1fNTkicaZCNoYZ1rrQxQ7c1Q-yEtf7YQy/view?usp=sharing
해결되길 바라면 문제가 계속되면 다시 연락주세요.
감사합니다.
0
0
0
안녕하세요?
보내주신 에러코드를 봐서는 일단 라즈베리파에 설치된 텐서플로의 버전을 확인할 필요가 있어보입니다.
저희는 텐서플로 2버전을 사용하고 있습니다. 그런데 이전 텐서플로2설치 장에서 설명드린 데로 그냥 설치하면 텐서플로1버전이 설치됩니다. 그러면 정상적으로 모델을 처리하지 못하는 경우가 있습니다.
아래 명령어로 텐서플로의 버전을 확인해보세요.
python3 -c 'import tensorflow as tf;print(tf.__version__)'
만약 2.0.0이라고 출력되지 않으면 이전 텐서플로2설치 단원으로가서 기존 텐서플로를 삭제하고 순서대로 설치를 진행해주세요.
설치된 텐서플로가 2버전이면 digits_model.h5 모델파일이 프로그램 실행위치에 같이 있는지 확인해 주세요.
감사합니다.