전공 공부/데이터 분석 4

파이토치 기초

차원 증가 unsqueeze() 메소드 사용 unsqueeze() 메소드는 지정된 위치에 새로운 차원을 추가합니다. 이 메소드는 차원을 추가할 위치의 인덱스를 인자로 받습니다. PyTorch에서 차원의 인덱스는 0부터 시작합니다. 따라서, 배치 차원을 가장 앞에 추가하려면 인덱스 0의 위치에 차원을 추가하면 됩니다. import torch # [3, 256, 256] 차원을 가지는 텐서 생성 image_tensor = torch.randn(3, 256, 256) # 배치 차원을 추가하여 [1, 3, 256, 256]으로 변경 image_tensor_unsqueezed = image_tensor.unsqueeze(0) print(image_tensor_unsqueezed.shape) # 결과: torch...

이미지 시각화 함수

필요한 라이브러리 임포트 import cv2 import torch import numpy as np from torch import nn import torch.nn.functional as F import matplotlib.pyplot as plt 이미지를 마스크 경부에 따라 넘파이 어레이로 읽어오기 def img_read(data_path, is_mask = False): if is_mask: img = cv2.imread(data_path, cv2.IMREAD_GRAYSCALE) # (256, 256) else: img = cv2.imread(data_path) # (256, 256, 3) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # BGR -> RGB ret..

유사한 이미지 삭제하기

폴더에 너무 유사한 이미지가 많다면, 이를 삭제 import os import PIL import json import glob import numpy as np from PIL import Image import cv2, numpy as np import matplotlib.pyplot as plt from matplotlib import font_manager, rc def similar_image_deletion(dir_path: str, index: int): dir_path = dir_path #img_dirs = [이미지 디렉토리 전부 저장] img_dirs = [] for path in os.listdir(dir_path): img_dir = os.path.join(dir_path, path..

다양한 파일을 읽어와 이미지 분류하기

images 폴더와 labels 폴더에 동일한 이름의 파일이 존재 labels 폴더의 txt 파일 맨 앞에는 대응하는 이미지의 클래스를 기록 import os import shutil images_folder = './train/images' labels_folder = './train/labels' output_folder = './train/classes' for label_file in os.listdir(labels_folder): if label_file.endswith('.txt'): # 동일한 이름의 이미지 파일 경로 생성 image_name = label_file.replace('.txt', '.jpg') image_path = os.path.join(images_folder, image_..