tensorflow/keras에 입력영상채널개수를 3채널이 아닌 다른 채널수(예: 6개)로 입력시켜주는 방법
Deep Learning/TensorFlow 2023. 9. 7. 14:34vgg = vgg16.VGG16(include_top=False, weights='imagenet', input_shape=(224, 224, 3))
단일 컬러영상(3채널)을 입력시킬 때는 보통 위와 같이 vgg16아키텍처를 불러오고 이미지넷 웨이트도 복사해온다.
아래 코드는 3채널이 아닌 영상의 아키텍처를 불러올 때 사용한다.
vgg = vgg16.VGG16(include_top=False, weights=None, input_shape=(224, 224, 6))
위 코드는 vgg16의 아키텍처의 입력영상의 채널수가 6일 경우이다. 이렇게 하면 에러가 나지 않고 아키텍처가 생성된다. weights=None이라고 입력해주는 게 중요하다. 이 옵션을 넣지 않으면 에러가 발생한다. 대신 weights=None을 설정하면 imagenet에서 학습된 웨이트는 복사되지 않는다. 아래의 레이어 정보를 보면 입력영상의 채널이 6개이다. 0번 레이어만 shape이 (채널수가) 다르고 나머지 레이어는 원래 vgg16과 같은 shape의 레이어들이다.