전공 공부 22

NER 프로젝트 개요

개괄적인 개발 단계1. KoBERT-NER-mastergit: https://github.com/monologg/KoBERT-NER데이터셋: Naver NER 데이터셋 (tsv 파일, 비문으로 구성)코드 특성: 단순히 띄어쓰기 기준으로 문장 파싱목표:- 코드 분석- 법률 데이터를 tsv 파일로 전처리하여 해당 코드로 훈련 2. pytorch-bert-crf-nergit: https://github.com/eagle705/pytorch-bert-crf-ner데이터셋: 해양대학교 데이터셋 (txt 파일, 품사 정보 추가, 뉴스나 소설에서 발췌)코드 특성: 전용 토크나이저를 기반으로 문장 파싱목표:- 코드 분석- 모델 고도화 3. pytorch-ko-nergit: https://github.com/ai2-ne..

우분투에 Chrome Remote Desktop 설치하기

우분투에 크롬 데스크탑을 설치하면, 원격 접속하는 PC에서 검은 스크린에 'select a session to launch within your chrome remote desktop environment'라는 문구만이 뜬다. 구글링을 통해 문제를 해결했는데, 일련의 과정을 잊지 않도록 정리 해둔다. 며칠동안 헤맸기 때문에 우분투에서 크롬 데스크탑을 삭제한 후, 처음 설치하는 것부터 전부 적어둔다. 1. 우선 상단의 링크를 따라 크롬 데스크탑을 설치해준다. https://remotedesktop.google.com/access/ 2. 터미널에 해당 명령어를 넣어 폴더를 생성해준다. mkdir ~/.config/chrome-remote-desktop 3. 크롬 창을 모두 닫은 뒤 다시 열어 데스크탑에 접속..

파이토치 기초

차원 증가 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_..

VS code 단축키

빠르게 코드 수정하기 ctrl+shift+K: 해당 줄 삭제 블럭 설정 없이 ctrl+C: 해당 라인 전체 복사 블럭 설정 없이 ctrl+X: 해당 라인 전체 잘라내기 alt+shift+방향키: 해당 라인 복사 alt+여러 줄게 커서 찍기: 여러 줄에 동시에 입력. ctrl+alt+방향키: 다중 커서로 여러 줄 동시 입력. alt+방향키: 해당 라인을 통째로 이동. shift+방향키: 여러 행 동시 선택. ctrl+enter: 커서가 코드 중간에 있어도 무시하고 아래에 빈 줄 삽입. ctrl+shift+enter: 위에 빈 줄 삽입. ctrl+space: 트리거 제안. pri("Hello")에서 pri 앞에 커서를 대고 해당 키를 누르면 자동완성 목록을 보여준다. ctrl+shift+space: 함수의 ..

데이터 전처리와 관련된 유용한 함수들

이미지 파일을 불러와 넘파이 배열로 만들어주는 함수 def read_image(image_path): # 이미지 파일을 바이트로 읽어옵니다. with open(image_path, 'rb') as f: # 텍스트 파일이 아니므로 rb, 즉 이진 코드로 읽어온다. # 만약 이미지가 PNG 형식이고, pyspng 라이브러리가 설치되어 있다면 if pyspng is not None and image_path.endswith('.png'): # pyspng를 사용하여 PNG 이미지를 읽어옵니다. image = pyspng.load(f.read()) else: # 그 외의 경우에는 PIL 라이브러리를 사용하여 이미지를 NumPy 배열로 읽어옵니다. image = np.array(PIL.Image.open(f)) ..