목록전체 글 (40)
Zorba blog
Kobart를 사용하여 전이학습을 진행하려고 하는 도중 ImportError: cannot import name 'get_num_classes' from 'torchmetrics.utilities.data' torchmetrics 에서 에러 발생. 1. 에러 원인 Traceback (most recent call last): File "train.py", line 6, in import pytorch_lightning as pl File "/anaconda3/envs/kobart/lib/python3.7/site-packages/pytorch_lightning/__init__.py", line 20, in from pytorch_lightning import metrics # noqa: E402 File..
프로젝트를 진행하면 보통 많은 분들이 Git을 사용해서 Repo 관리를 합니다. 개발자들에게는 필수라고 할 수 있기에 자주 사용하는 명령어들을 정리해보겠습니다. 왜 Git을 사용하는가? - 뭔가를 만들고 프로젝트를 할 때 컴퓨터의 특정 폴더에 작업물들을 넣어놓는다. - git은 이 폴더 안에 시간 여행이 가능한 평행 우주를 만드는 것이다. - 혹시 수습하기 어려운 실수를 했거나 수정한 부분이 헷갈릴 때 특정 작업 시점으로 돌아갈 수 있다. - 다른 사람들과 하나의 프로젝트를 함께 진행할 때, 버전 관리 및 수정 사항등에 대해서 정보를 교환할 수 있다. status - 현재 git 프로젝트에서 파일들의 상태를 보여준다. - 특정 파일이 수정, 추가, 삭제 되었을 경우 status를 통해 해당 파일 리스트를..

요즘 KoBart 모델을 사용하여 요약문을 생성하는 작업을 하고있다. 원문을 입력으로 받고, 토크나이저로 인코딩 작업을 한 다음에 디코딩 과정에서 요약문을 생성하게 되는데 문장을 생성하는 과정에서 어떠한 전략들이 있는지 확인해보았다. 문장을 생성하는 작업을 할 때, 트랜스포머 아키텍처, 대용량의 비지도 학습 데이터 뿐만 아니라 디코딩 방법에 따라서도 문장 생성의 성능이 확연히 달라질 수 있다. 아래 소개하는 방법들은 아래와 같이 표현할 수 있는 Auto-Regressive 언어 모델에 적용이 가능하다. Auto-Regressive Auto-Regressive 언어 모델이란 Word Sequence의 확률 분포에 근거한다. 즉, 문장의 확률값을 연속적으로 구하듯이 이전의 단어들로 다음 단어의 확률을 예측하..

SVM은 선형이나 비선형 분류, 회귀, 이상치 탐색에도 사용할 수 있는 머신러닝 모델입니다. SVM은 특히 복잡한 분류 문제에 잘 들어맞으며 작거나 중간 크기의 데이터셋에 적합합니다. (왜 작거나 중간 크기의 데이터셋에 적합한지 궁금하네요.) 선형 SVM 분류 SVM의 기본 아이디어는 그림으로 설명하는 것이 가장 좋습니다. 아래 사진을 보시면 IRIS 데이터에 대해서 각각의 선형 분류기가 만든 결정 경계가 나오는데요. 어떤 분류기는 제대로 분류하지 못하기도 하고 또는 너무 한쪽에 가까이 붙어서 새로운 샘플에 대해서는 제대로 동작하기 어려운 경우도 있어 보입니다. 반면에 SVM 분류기의 결정 경계를 보면 이 직선은 두 개의 클래스를 나누고 있을 뿐만 아니라 제일 가까운 훈련 샘플로부터 가능한 한 멀리 떨어..

분류기의 성능 평가는 여러번 읽어지만 헷갈리는 것이 정말 많은 주제중에 하나입니다. 특히 정밀도, 재현율, 민감도 등 한글로 보았을 때 의미와 매칭되지 않기 때문에 볼 때 마다 헷갈리고는 합니다. 이번 기회에 다시 한번 정리해보고자 합니다. 이진 분류기의 성능 평가 이진 분류기의 성능을 평가하는 좋은 방법은 오차 행렬(Confusion Matrix)를 조사하는 것입니다. 오차 행렬의 행은 실제 클래스를 나타내고, 열은 예측한 클래스를 나타냅니다. 아래 표와같이 왼쪽 위는 실제 음성을 음성으로 올바르게 예측한 결과이고, 그 오른쪽은 실제 음성을 양성으로 잘못 예측한 경우 입니다. 오차 행렬이 많은 정보를 제공해주지만 가끔 더 요약된 지표가 필요할 때도 있습니다. 먼저 살펴볼 만한 것 하나는 양성 예측의 정..

Decision Tree(결정 트리)는 분류와 회귀 작업 그리고 다중출력 작업도 가능한 머신러닝 알고리즘입니다. 그리고 최근에 자주 사용되는 강력한 머신러닝 알고리즘 중 하나인 랜덤 포레스트의 기본 구성 요소이기도 합니다. 이번 글에서는 결정 트리의 훈련, 시각화, 예측 방법에 대해 먼저 살펴보겠습니다. 참고자료 : 핸즈온 머신러닝 2판 결정 트리를 이해하기 위해 모델 하나를 만들어서 어떻게 예측을 하는지 확인해보겠습니다. from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier iris = load_iris() x = iris.data[:, 2:] y = iris.target tree_clf = Decis..
한국어 STT를 사용할 일이 생겨서 구글, 네이버 등에서 제공하고 있는 한국어 STT API를 비교하였습니다. 혹시 잘못 기입된 정보가 있다면 댓글 부탁드립니다. 비교한 API는 구글, 네이버, 카카오, ETRI에서 제공하는 한국어 STT 입니다. Test 음성은 아래 3개의 동영상에서 추출하였습니다. API에 따라 유투브 영상으로부터 mp3형태로 추출하여 입력하거나, mp4 형식으로 입력하였습니다. Input 길이 제한이 있는 경우 음성을 1분씩 잘라서 처리하였습니다. 전기차 배터리(14:44) : https://www.youtube.com/watch?v=wlmd1w0i8z8 슈카월드(16:58) : https://www.youtube.com/watch?v=hAz0IFrGV2c 경제수학(27:56) :..
# 띄어쓰기 처리 sent = '김철수는 극중 두 인격의 사나이 이광수 역을 맡았다. 철수는 한국 유일의 태권도 전승자를 가리는 결전의 날을 앞두고 10년간 함께 훈련한 사형인 유연재(김광수 분)를 찾으러 속세로 내려온 인물이다.' from pykospacing import Spacing spacing = Spacing() kospacing_sent = spacing(new_sent) print(sent) print(kospacing_sent) https://zorba-blog.tistory.com/14 [Error] NotImplementedError: Cannot convert a symbolic Tensor 해결 방법 # 띄어쓰기 처리 sent = '김철수는 극중 두 인격의 사나이 이광수 역을 맡았..
# 띄어쓰기 처리 sent = '김철수는 극중 두 인격의 사나이 이광수 역을 맡았다. 철수는 한국 유일의 태권도 전승자를 가리는 결전의 날을 앞두고 10년간 함께 훈련한 사형인 유연재(김광수 분)를 찾으러 속세로 내려온 인물이다.' from pykospacing import Spacing spacing = Spacing() kospacing_sent = spacing(new_sent) print(sent) print(kospacing_sent) 자연어 처리중 띄어쓰기 처리를 하기위해 위 코드를 실행하는데 오류가 발생. 1. 에러 원인 numpy와 tensorflow의 버전이 맞지 않아서 생기는 문제. numpy의 버전이 높아 tensorflow에서 아직 구현을 못한 것이라고 한다. 2. 해결 방법 pip..