print(batch_features.shape[0]) : 1
print(batch_features.shape[3]) : 2048
print(batch_features.shape) : (1, 64, 2048)
Efficient net 을 사용하기 위해선. preprocess를 어떻게 해야할 것인가?
preprocss_inpjut 메서드의 역할이 무엇일까?
Keras는 이미지 배치와 함께 작동합니다. 따라서 첫 번째 차원은 보유한 샘플 (또는 이미지) 수에 사용됩니다.
단일 이미지를로드하면 하나의 이미지 모양 인 .(size1,size2,channels)
이미지 배치를 생성하려면 추가 차원이 필요합니다. (samples, size1,size2,channels)
이 preprocess_input기능은 모델에 필요한 형식에 이미지를 적절하게 맞추기위한 것입니다.
일부 모델은 0에서 1까지의 값을 가진 이미지를 사용합니다. 다른 모델은 -1에서 +1까지입니다
tf.keras.applications.efficientnet.preprocess_input
print(batch_features.shape[0]) : 1
print(batch_features.shape[3]) : 1280
print(batch_features.shape) : (1, 49, 1280)
(128,128)로 이미지를 변환시 (1, 16, 1280)
https://keras.io/examples/vision/image_classification_efficientnet_fine_tuning/
https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet
https://www.pyimagesearch.com/2019/06/24/change-input-shape-dimensions-for-fine-tuning-with-keras/