-
TEST IMAGE Sequence 상속 받아서 예측하기 (CNN Baseline 연계)딥러닝/딥러닝 Baseline 2022. 11. 10. 12:38
제목과 같이 테스트 이미지도 단순 for문을 통해서 image -> tensor 변형이 어려울 때 , sequence 를 사용할 수 있다.
이때 train data에서 사용한 sequence 그대로 쓰면 안되고 약간 변형만 해주면 된다.
(label 내용들만 빼면 된다.)
# TEST 데이터를 불러온다 (당연히 label은 right answer라서 없다) PATH_TEST = 'test data 경로' glob(PATH_TEST + "/*/*") # *를 바꿔가며 이미지 경로 .jpg 단위확장자까지 잘들어가는지 확인 후 test = pd.DataFrame([]) test["image_files"] = glob(PATH_TEST + "/*/*") test_image_path = test["image_files"].values # TEST 데이터용 Sequence 선언 class test_data_set(Sequence): def __init__(self , image_filenames , batch_size = BATCH_SIZE , augmentor = None , pre_func = None , shuffle = None): self.image_filenames = image_filenames # label 내용 삭제 self.batch_size = BATCH_SIZE self.augmentor = augmentor self.pre_func = pre_func self.shuffle = shuffle def __len__(self): return int(np.ceil(len(self.labels)/self.batch_size)) def __getitem__(self, index): image_name_batch = self.image_filenames[index * self.batch_size : (index+1)* self.batch_size] image_batch = np.zeros((image_name_batch.shape[0],IMAGE_SIZE , IMAGE_SIZE , 3)) for image_index in range(image_name_batch.shape[0]): image = cv2.cvtColor(cv2.imread(image_name_batch[image_index]) , cv2.COLOR_BGR2RGB) image = image/ 255.0 image = cv2.resize(image , (IMAGE_SIZE , IMAGE_SIZE)) if self.augmentor is not None: image = self.augmentor(image = image)["image"] if self.pre_func is not None: image = self.pre_func(image) image_batch[image_index] = image return image_batch # return 은 image batch만 def on_epoch_end(self): if(self.shuffle): self.image_filenames, self.labels = sklearn.utils.shuffle(self.image_filenames , self.labels) else: pass ### TEST data 인스턴스 생성 test_ds = data_set(test_image_path) ## label 넣을 필요 없어요 헷갈리지 않기 pred_sequence = model.predict(test_ds) # 학습모델은 baseline 참조 #pred_sequence.shape 결과 (전체 이미지 크기 , 라벨숫자) 차원이면 제대로 된 것 result = [np.argmax(value) for value in pred_sequence] categories = pd.factorize(train["image_labels"])[1] # 이미지 크기 작을때와 동일 final_result = categories[result] # to_csv로 제출하면 완료 # submission file 활용
위와 같이 참조해서 진행하면 된다.
'딥러닝 > 딥러닝 Baseline' 카테고리의 다른 글
시계열 이미지 처리 Baseline(RNN + CNN) (0) 2024.06.27 5분이면 끝내는 RNN 모델 문제 풀기 (0) 2022.11.10 CNN 신경망 Baseline (0) 2022.11.10