반응형
아래 keras
문서 페이지에서 샘플 keras
코드를 시도하고 있습니다.
아래 코드에서 keras
모듈의 preprocess_input (x)
기능은 무엇입니까? preprocess_input ()
메서드에 전달되기 전에 expand_dims (x, axis = 0)
를 수행해야하는 이유는 무엇입니까?
from keras.applications.resnet50 import ResNet50
from keras.preprocessing import image
from keras.applications.resnet50 import preprocess_input
import numpy as np
model = ResNet50(weights='imagenet')
img_path = 'elephant.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
이러한 기능에 대한 좋은 설명이있는 문서가 있습니까?
감사!
해결 방법
Keras는 이미지 배치와 함께 작동합니다. 따라서 첫 번째 차원은 보유한 샘플 (또는 이미지) 수에 사용됩니다.
단일 이미지를로드하면 하나의 이미지 모양 인 (size1, size2, channels)
를 얻게됩니다.
이미지 배치를 생성하려면 추가 차원이 필요합니다. (samples, size1, size2, channels)
preprocess_input
함수는 모델에 필요한 형식에 이미지를 적절하게 맞추기위한 것입니다.
일부 모델은 0에서 1까지의 값을 가진 이미지를 사용합니다. 다른 모델은 -1에서 +1까지입니다. 다른 사람들은 정규화되지 않았지만 중앙에있는 "caffe"스타일을 사용합니다.
preprocess_input
의 내부 세부 사항에 대해 걱정할 필요가 없습니다. 하지만 이상적으로는이를 위해 keras 함수를 사용하여 이미지를로드해야합니다 (로드하는 이미지가 preprocess_input
과 호환되도록 보장).
참조 페이지 https://stackoverflow.com/questions/47555829
반응형
'파이썬' 카테고리의 다른 글
파이썬 "x for x in"구문은 무엇을 의미합니까? (0) | 2020.10.14 |
---|---|
파이썬 Python에서 기본 클래스 메서드 호출 (0) | 2020.10.14 |
파이썬 Python에서 이미지의 exif 데이터를 어떻게 읽습니까? (0) | 2020.10.14 |
파이썬 for 루프 감소 (0) | 2020.10.14 |
파이썬 How to break a line of chained methods in Python? (0) | 2020.10.14 |
댓글