전체 글
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbnCC8%2FbtrikMEPGsG%2FgLBe7n61d1If4cuZFnVQuK%2Fimg.png)
[mac_M1] . ImportError: dlopen - regex error
import regex 할때 에러 발생 ImportError: dlopen(/opt/homebrew/Caskroom/miniforge/base/envs/tf/lib/python3.8/site-packages/regex/_regex.cpython-38-darwin.so, 2): no suitable image found. Did find: /opt/homebrew/Caskroom/miniforge/base/envs/tf/lib/python3.8/site-packages/regex/_regex.cpython-38-darwin.so: code signature in (/opt/homebrew/Caskroom/miniforge/base/envs/tf/lib/python3.8/site-packages/regex/..
[전처리]. 핸드폰 번호 , 계좌번호 , 주소 필터링(Python 정규표현식)
def number_fillter(self,input_text): # 연속된 숫자 필터 nf = re.compile("(\d{8,20})") # 휴대폰번호 필터 pn = re.compile("(\d{2,6}[ -]-?\d{2,6}[ -]-?\d{2,6})") # 계좌번호 필터 ac = re.compile("(\d{2,6}[ -]-?\d{2,6}[ -]-?\d{2,6}[ -]-?\d{2,6})") #검색 if pn.search(input_text): return 1 elif ac.search(input_text): return 1 elif nf.search(input_text): return 1 else: return 0 주소 personal_patterns = { "ad1": r"(\S+[시,도])\s?..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnWkCB%2FbtrhJsfdnST%2FI4OnZSCKDKkYmRhUsbBZn1%2Fimg.png)
[전처리]. 한국어 존댓말과 반말을 구별하는 방법(feat. komoran)
한국어는 영어와 다르게 존댓말(높힘말)과 반말(낮춤말)이 존재한다. 그래서 존댓말을 반말로 바꿔주고 반말을 존댓말로 바꿔주는 모델이 있으면 좋겠지만 (실제로 연구가 많이 진행되었지만 정확도가 높은 편은 아님) 존댓말과 반말을 구분하는 방법을 공유하고자 한다. 방법은 간단하다. 형태소 분석기를 통해 나온 토큰들 중 존댓말에 사용되는 토큰들의 갯 수를 구해서 판단하면 된다. 형태소 분석기는 한나눔 , 코모란 , okt 등이 있지만 코모란 형태소 분석기를 사용했다. 이유는 코모란은 존댓말 토큰을 normalize 하게 잡아주기 떄문이다. okt 의 경우는 습니다, 됩니다 , 합니다 로 토크나이즈 하는 반면 코모란은 ㅂ니다. 로 통일해주기 때문에 적은 토큰들을 가지고 많은 존댓말을 판단할 수 있게된다. *존댓말..
[Docker] . 설치 부터 배포까지 초간단 (feat.Flask)
도커 설치하기 Linux curl -s https://get.docker.com/ | sudo sh 명령어를 입력하고 패스워드를 입력하면 리눅스 배포판에 따라 자동으로 최신번전의 도커를 설치 ubuntu 유저 권한 추가 sudo usermod -aG docker ubuntu 도커 권한 변경 sudo chmod 666 /var/run/docker.sock error : Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock Mac OS or Windows - Docker for mac / Docker for windows - 가장 쉽고 빠르게 사용할 수 있는 방법 GUI 의 ..
[Docker] . 도커 기본 명령어 정리
도커 기본 명령어 이미지 다운로드 docker pull ubuntu:20.04 *docker run 할때 이미지가 없으면 자동으로 찾아서 다운로드함.(도커 허브에 있는 이미지의 경우) 이미지 목록 출력 docker images 이미지 삭제 docker rmi ubuntu:20.04 # 컨테이너도 같이 삭제(-f) docker rmi -f ubuntu:20.04 컨테이너 생성 docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] docker run --name "컨테이너이름" "이미지" docker run -it --name test-ubuntu ubuntu:20.04 /bin/bash 컨테이너 내부에 들어가기 위해 sh를 실행하고 키보드 입력을 위해 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9Cliu%2Fbtrfp2RFBk3%2FT4Jir0fGnL24cniT822y3K%2Fimg.png)
[PyTorch]. Dataset 과 Dataloader 사용하여 전처리하기
딥러닝 프로젝트를 진행할 때 데이터 샘플을 처리하는 코드는 지저분하고 유지보수가 어려울 수 있다. 더 나은 가독성과 모듈성을 위해 데이터셋 코드를 모델 학습 코드로부터 분리하는 것이 이상적입니다. 파이토치는 Dataset 과 Dataloader를 사용하여 학습 모델에 맞게 train & test set 을 변경해주는 도구입니다. PyTorch 공식 홈페이지 발취 공감되는 부분이다. 전에는 동작만 되면 상관없다는 마인드로 코드를 짰다. 하지만 정리가 되지 않아서 미래의 내가 알아볼 수 없는 것이다.(어케 짠거야 도대체...) 지금은 코드를 구조화 하고 모듈화하여 가독성을 생각하며 코딩한다.(겪어보지 않으면 모른다.) 파이토치는 이런 부분(data Input preprocessing)을 간결하게 구현할 수 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlnViA%2FbtrfA2oGSTC%2FKC3Psv7rL8bYrttRMzdcJK%2Fimg.png)
[DeepLearning]. GPU 메모리와 배치사이즈(Batch_size)의 관계
사건의 발단 : PyTorch 모델 학습 중 에러 발생 RuntimeError: CUDA out of memory KcBERT-Large모델을 학습시키는 도중 이러한 에러가 발생했고 KcELECTRA-base 모델 학습시에는 발생하지 않았던 에러가 발생해서 당황 스러웠다. 나는 바로 구글링을 했고 해결점을 찾았다. https://twinparadox.tistory.com/606 TensorFlow, Keras GPU 메모리 문제(Out of Memory) 발생 시 시도해볼 방법 빅데이터 처리나 딥러닝을 하다보면 자연스럽게 마주하는 문제가 바로 메모리 문제다. 빅데이터 처리 같은 경우 그냥 파이썬에서 Numpy나 Dataframe을 사용하는 과정에서 발생하는 일이 흔하고, 그 twinparadox.tist..
[PyTorch] . Tensorflow(텐서플로) PyTorch(파이토치) 차이점 비교
딥러닝 튜토리얼에 등장하는 FashionMNIST 데이터 셋을 통해서 Tensorflow.Keras 와 PyTorch 모델링의 차이점을 정리해 보았습니다. 모델 정의 * 이해를 돕기 위해 subclass 형식으로 모델을 정의하였습니다. Tensorflow.Keras tf.debugging.set_log_device_placement(True) class MyModel(tf.keras.Model): def __init__(self): super(MyModel,self).__init__() self.flatten = tf.keras.layers.Flatten(input_shape=(28,28)) self.fc1 = tf.keras.layers.Dense(512,activation='relu') self.dr..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlawI2%2Fbtrd2w6P6sg%2FfypoT3HFHbEocpoqi8Mk6k%2Fimg.png)
[NLP] . 자연어처리 프로젝트 파일 구조 ( 인공지능 디자인 패턴 )
파란선은 파일참조 빨간선은 파일생성 인공지능 프로젝트를 여럿 진행하면서 파일관리의 중요서을 깨달았다. 파일관리 방법은 누가 가르쳐주지도 않고 Django 나 flask 처럼 약속된 파일 구조가 인공지능엔 딱히 없다. 그래서 github를 살펴보다가 인공지능 프로젝트(BERT-chatbot)를 깔금하게 정리하신 분을 참고하여 구조를 정리해보았다. 보는 입장에서 이 구조로 개발하면 불편한 점도 있다. 한 파일에 몰아서 하는게 아니라 파일들이 얽히고 섥히는 관계 ( 복잡함 ) 하지만 이런 구조로 프로젝트 관리를 하는 것이 유지보수하기 좋고 익숙해져야한다. (디자인 패턴의 필요성) 프로젝트를 하면 이 게시글을 두고두고 보면서 구현해야겠다. https://github.com/nawnoes/WellnessConve..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgIPDC%2FbtrdZWrHNYU%2Ft53P9xUszL21Tih1Mo7MJ0%2Fimg.png)
[NLP] BERT - (1).구조와 개념
BERT Bidirectional Encoder Representations from Transformer - 트랜스 포머의 인코더를 양방향(마스킹)으로 사용한 모델 Task1 . Masked language model (MLM): 임의의 순서의 해당하는 위치를 마스킹[Mask]을 해놓고 마스킹된 부분을 예측하도록 하는 모델 선행하는 단어와 후행하는 단어를 모두 사용하여 예측하겠다는 것(양방향이라고 할 수 있다.) Task2 . Next Sentence Prediction (NSP): 특정의 두 쌍의 문장이 들어왔을 때 두 번째 문장이 첫 번째 문장과 의미가 이어지는 가 (두 번째 문장이 첫 번째 문장 다음에 등장했던 문장인가)를 판단하는 Task 판단은 input 으로 넣었던 copus를 기준으로 함...