컨볼 루션 네트워크를 훈련시키기 위해 jpeg 파일에서 데이터를로드하려고합니다. 이미지는 2,400 만 픽셀로 크기 때문에 전체 해상도를로드하고 사용하는 것은 실용적이지 않습니다.
이미지를 더 유용한 형식으로 만들기 위해 각 이미지를로드하고 크기를 조정 한 다음 목록에 추가하려고합니다. 이 작업이 완료되면 목록을 numpy 배열로 변환하고 평소처럼 훈련을 위해 네트워크에 공급할 수 있습니다.
내 문제는 내 데이터 세트가 매우 크고 모든 이미지의 크기를 조정하는 데 약 1 초가 걸린다는 것입니다. 즉, 현재 구현 한 방식으로 모든 이미지의 크기를 조정할 수 없다는 것을 의미합니다.
length_training_DF = 30000
for i in range(length_training_DF):
im = plt.imread(TRAIN_IM_DIR + trainDF.iloc[i]['image_name'] + '.jpg')
image = block_reduce(im, block_size=(10, 10, 1), func=np.max)
trainX.append(image)
또한 다음을 사용했습니다.
length_training_DF = 30000
from keras.preprocessing import image
for i in range(50):
img = image.load_img(TRAIN_IM_DIR + trainDF.iloc[0]['image_name'] + '.jpg', target_size=(224, 224))
trainX.append(ima)
이러한 이미지를 네트워크 훈련을위한 형식으로 더 빨리로드 할 수있는 방법이 있습니까? tf.keras.preprocessing.image_dataset_from_directory ()를 사용하여 keras 데이터 세트를 사용하는 것에 대해 생각했지만 이미지 데이터가 저장된 디렉토리가이 방법에서 요구하는 것과 동일한 대상을 포함하는 폴더로 올바르게 형식화되지 않았습니다.
이미지는 이진 분류 문제에 대한 것입니다.
일반적인 방법은 큰 이미지를로드하고 크기를 조정하고 필요한 경우 다른 작업을 적용한 다음 각 클래스를에서 요구하는대로 별도의 디렉터리에 저장하는 전처리 스크립트를 작성하는 것 ImageDataGenerator
입니다.
그렇게해야하는 이유는 최소한 세 가지입니다.
ImageDataGenerator
훈련 데이터 세트를 보강하기위한 중요한 방법을 제공합니다.이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다