본문 바로가기

기타9

Q-learning 기반 틱택토 강화학습 모델 개발 들어가기 전에...여태까지  강화학습 전반에대해 학습한 내용을 기반으로 틱택토 게임을 플레이하는 강화학습 모델을 개발해보았습니다. 틱택토 게임을 선택한 이유는 다음과 같습니다.1. 틱택도 게임특성상 가능한 경우의수가 많지않아 모든 Q value를 Q table에 표시할수있습니다.2. 나중에 구현하고자 하는 오목 강화학습 모델이나 바둑 강화학습 모델과 마찬가지로 1대1 보드게임이라는 환경적인 유사성이 있어 향후 프로젝트에 도움이 될것이라 판단했습니다. 전체코드는 포스팅말미의 깃허브주소를 참고해주세요.구현 목표1. 실제 틱택토 게임을 만든후, 강화학습모델과 연동시켜 사람과 틱택토 모델간의 대국이 가능하게 구현하는것(play기능).2. 에피소드가 진행되며 발전하는 에이전트를 확인할수있도록 구현하는것(repla.. 2023. 12. 15.
코랩 셀 실행 끝날때 소리로 알림받는방법 별건아니구... tts라이브러리를 이용해서 셀실행이 완료되었을때 알림을 받을수있는 코드 공유입니다중간에 오디오파일이 저장되지만 어차피 런타임종료되면 자동으로 사라지기때문에 큰 상관은 없을것이라고 생각합니다# !pip install gttsfrom gtts import gTTSimport IPython.display as ipd# 한글 텍스트text = "모델 학습이 완료됐습니다"# 한글 텍스트를 음성으로 변환tts = gTTS(text=text, lang='ko')# 저장할 음성 파일의 이름filename = "example_ko.mp3"# 음성 파일로 저장tts.save(filename)print('작업중')# 음성 파일을 Colab에서 재생ipd.Audio(filename=filename, autop.. 2023. 9. 15.
okt형태소분석기 사전 업데이트 konlpy에 있는 여러 형태소 분석기중 okt의 사전을 업데이트하는 코드이다okt에서 코드를 통한 사전수정을 지원하지않아파일의 직접적인 수정을 통한 사전업데이트만 가능한것으로 알고있다그리고 이방식은 수작업으로 여러번하기에는 꽤나 귀찮은일이다  코드는 okt사전을 수정하는 목적의 코드이지만적당히 수정하면 konlpy속 다른 형태소분석기 사전을 업데이트하는데도 쓸수있다고 생각한다 import zipfile, os'''파일경로는 환경에 맞게 수정이 필요합니다 추가적으로 운영체제 환경에맞는 파일경로작성이 중요합니다'''jar_filename = r'C:\Users\dodo7\miniconda3\Lib\site-packages\konlpy\java\open-korean-text-2.1.0.jar'output_f.. 2023. 4. 28.
facenet 임베딩 모델 구조의 구현 잘못되었거나 확실하지않은 내용이 있다면 알려주시면 정말 감사하겠습니다  목표facenet의 핵심 모델구조를 구현해보자    유명한 임베딩모델과 임베딩 모델의 활용법 유명한 임베딩 모델로는 FaceNet이 있다160*160크기의 컬러 얼굴 이미지를 입력으로 받아 128차원의 임베딩 백터를 출력한다128 차원 벡터는 입력 이미지의 얼굴 특성을 충분히 담고있다그러므로 유사한 두사진은 백터공간속에서 가깝게 위치하고있다이런점을 이용하여 좌표간 유사도를 구하는 방식으로 이미지의 유사도를 측정할수있다    Triplet Loss를 이용한 Metric Learning  Metric Learning은 객체 간의 유사성이나 거리를 고려하여 임베딩을 학습하는 방식이며Triplet Loss는 Metric Learning의 한.. 2023. 4. 28.
FL STUDIO 첫번째 곡(기초조작법 익히기) 갑자기 왜죠내가 좋아하는 아티스트중 한명인 Hinkik이어떤 작곡툴을 이용하냐는 한 일본인의 질문에 flstudio를 이용한다고 직접 댓글을 달았다!다만 포스트 작성을 목적으로 hinkik이 작곡툴을 언급한부분을 다시 찾으려했으나 못찾겠다일단 내기억속에는 확실히 있다(하하) 나도 hinkik처럼 나만의 멋진 전자음악을 만들고싶다는 생각에 flstudio에 입문하게 되었다  이글을 쓰면서 나도 배우는 과정이기때문에 정확하지않은 정보가 다수 있을수있다아 참고로 나는 그 200달러짜리 구매했다 참고바란다  교과서 암기하는것처럼 지루하게 모든 기능을 처음부터 알필요는 없다고 생각한다어쨋든 취미 아닌가 철저히 재미 위주로 간다나중에 정말 재미를 느낀다면 알아서 알게되는게 세상의 이치다  그래서 정말 필요한것 오늘.. 2023. 4. 16.
넘파이에서 리스트처럼 곱하기 적용하고싶을때 import numpy as nparr1 = np.array([1])arr2 = np.repeat(arr1, 4)print(arr2) # [1 1 1 1] 2023. 2. 25.
re.search 위치 여러개 찾기 TL;DRimport re[(m.start(0), m.end(0)) for m in re.finditer('match', text)]세부내용re.search를 이용해 내가 찾고자 하는 단어의 위치를 알수있다 하지만 하나밖에 찾지못한다s = 'cat cat cat cant cat'm = re.search('cat', s)print(m.span())>>> (0, 3)re.finditer은 정규식과 매칭되는 모든 문자열을 반복가능한 객체로 return한다for i in re.finditer('python', '3python3, python'): print(i) >>>  출처https://stackoverflow.com/questions/3519565/find-the-indexes-of-all.. 2023. 2. 23.
numpy where 기능소개 넘파이 array를 대상으로만 사용가능하다 두가지 기능이있다첫번째 인덱스 반환조건식이 주어졌을때 말그대로 어디(where)있는지 알려준다 (출력이 튜플인건 맘에에 안든다)형식은 np.where(조건) 이며, 조건에 부합하는 인덱스를 출력한다import numpy as nparray=np.arange(17,27)print(array)print(np.where(array>20))>>> [17 18 19 20 21 22 23 24 25 26]>>> (array([4, 5, 6, 7, 8, 9]),)인덱스가 깔끔한 형태로는 출력되지않아 재가공이 필요하다array = np.array( [[ [1001,2],[3,4] ], [ [1087,2],[1,1]] ] )print(array)print(np.where(arr.. 2023. 2. 21.
pytorch summary() 기능 pytorch conv3d모델이다class BaseModel(nn.Module): def __init__(self, num_classes=13): super(BaseModel, self).__init__() # super().__init__()->python 3 에서만 작동 # super(자기자신,self).__init__()->python 2,3 모두 작동 # 성능차이는 없음 self.feature_extract = nn.Sequential( nn.Conv3d(3, 8, (1, 3, 3)), nn.ReLU(), nn.BatchNorm3d(8), nn.Max.. 2023. 2. 21.