728x90
코딩을 하다보면 아주 간단한 문제인데도 불구하고 오랜시간을 매달리게 되는 경우가 많다.
이것 역시 간단한 문제...
모델을 학습시킬 때는 많은 차원의 데이터들이 트레이닝 데이터로 활용된다.
하지만 우리가 실제로 사용할 때는 하나의 데이터를 넣고 모델을 거쳐 결과를 뽑아낸다.
여기서 차원이 맞지 않는 문제가 발생한다.
*어떤 예측모델인지에 따라 다르지만 예측할때 들어가는
input 데이터의 shape를 확인해서 shape을 맞춰주는 작업이 필요하다.
이미지는 행렬로 변환하면 3차원 데이터이다.
하지만 예측할 때 이 데이터를 넣으면 에러가 발생한다.
왜냐하면 예측에 필요한 데이터는 4차원 데이터 이기 때문이다.
그래서 서론이 길었지만 차원을 하나 추가해주어야한다.
testimg_resized = np.expand_dims(testimg_resized, axis=0)
print(testimg_resized.shape)
np.expand_dims() :
함수 이름말대로 차원을 추가해주는 함수이다.
이제 차원을 맞춰주었으니 결과도 잘 나올 것이다.
여기서 reshape() 을 사용해도 되는지 궁금한데
알아보니 reshape()은 기존 행렬에 대해서 바꾸는 것이다 총량이 초과할 수 없다.
( 3 x 3 ) 을 ( 9 x 1 ) 로 바꾸는 것이지 ( 3 x 3 )을 ( 3 x 4 )로 바꿀 순 없다.
반응형
'Computer Vision' 카테고리의 다른 글
[이미지 전처리]. ImageDataGenerator 클래스 : 이미지 제너레이터 (0) | 2020.12.07 |
---|---|
[이미지 전처리] Pillow PIL , Opencv cv2 , 이미지 형태 정규화(RGB, RGBA) (0) | 2020.12.04 |
[이미지 전처리] Url to image , url 주소를 통한 이미지 처리 (0) | 2020.11.25 |
[이미지 전처리]. image to base64 , base64 to image 변환하는 방법 (2) | 2020.11.25 |
[이미지 전처리]. 이미지 크기 한꺼번에 변경하기 ( image preprocessing) (0) | 2020.11.25 |