작성
·
200
0
예제 fashion-mnist-practice 의 모델 생성하는 부분을 참조했습니다.
dataset의 경우 fashion_mnist를 쓰지 않고 숫자 mnist 파일을 사용했습니다.
이걸 기본으로 model을 따로 저장했고, 저장된 model을 불러오고 별로도 이미지 파일을 만들었습니다.
이렇게 코드를 작성했는데 하나 이해가 가지 않는 부분이 Faltten() 에서
input_shape = IMAGE_SIZE (28), IMAGE_SIZE(28) 이부분입니다.
input _shape(28, 28) 로 했다면
업로드한 이미지 파일도 3차원 image.reshape(28, 28, 1)이 들어가야 하는 것 같은데..
무조건 3차원 만들어줘야 하는 거 아닌가요ㅠ
그래서 그렇게 입력하니깐 오류가 떠서, (1, 28, 28,1)로 넣으니깐 오류가 나지 않습니다.
저 부분이 왜 저렇게 되는지 잘 이해가 가지 않아서 질문 드립니다.
그리고 또 하나는 . model.summary() 를 했을 때 output shape에 None는 크게 신경쓰지 않아도 되는 것 인가요?
아래 이미지 처럼 (None, 28, 28)이 나왔다면 그냥 28행 28열로 구성된 tensor라고만 생각하면 되는 걸까요
질문이 길어서 죄송합니다 ㅠ
input_1 (InputLayer) [(None, 28, 28)] 0
flatten (Flatten) (None, 784) 0
dense (Dense) (None, 100) 78500
dense_1 (Dense) (None, 30) 3030
output (Dense) (None, 10) 310
답변 1
0
안녕하십니까,
답변을 빨리 달아드려야겠다고 생각했는데, 바쁜일 때문에 살짝 늦어졌습니다.
기본적으로 Tensorflow Deep learning 모델은 학습 시 입력데이터의 shape의 첫번째 인자가 batch size입니다. 마찬가지로 predict() 입력 데이터 세트 shape의 첫번째 인자도 batch size 입니다.
image.reshape(28, 28, 1)가 아니라 image.reshape(1, 28, 28)로 변경해서 수행해 보시지요.
감사합니다.