본문 바로가기

전체보기236

딥러닝 프로젝트를 위한 클라우드 GPU 자원, Google Cloud Platform GPU Cloud 서비스무료 GPU 서버현재까지 알려진 가장 좋은 무료 GPU 서비스는 Google colab이 유일하다. 그러나 colab은 하루에 12시간까지밖에 GPU를 쓸 수 없는 제약이 있고, 데이터를 지속적으로 서버에 올려둘 수가 없어서 google drive에 데이터를 올리고 이를 mount해서 사용해야하는데 이게 매우 불편하다. 또한 command line interface를 제공하지 않아서, jupyter의 cell에 !을 입력해서 해야하는데, 이 또한 매우 불편하다. 그리고 jupyter notebook도 기존에 사용하던 jupyter와 단축키 및 기능이 조금씩 달라서 적응하는데 꽤 시간이 걸린다. 그럼에도 불구하고 한시간에 1000원정도 하는 T4 GPU를 무료로 쓸 수 있다는 것은 .. 2019. 12. 8.
Google API로 GDrive랑 Gspread 사용하기 구글 계정 접속 권한 얻기먼저 구글 계정의 접속 권한을 얻기 위한 credential생성이 필요하다. * 원칙적으로 oauth2client는 deprecated되고, 이제 google_auth_oauthlib을 사용해야한다.https://google-auth.readthedocs.io/en/latest/oauth2client-deprecation.html#replacement 1. 구글 계정 생성2. https://console.developers.google.com/apis/library? 에서 원하는 API선택3. 사용자 인증 정보 생성4. OAuth 동의에서 scope설정5. json credential 다운로드6. Flow를 이용해서 authorization_url얻기7. authorization.. 2019. 11. 22.
라즈베리파이 4 Model B 시작하기 작동을 위해 필요한 최소 주변기기 1. USB-C 전원 연결을 위한 충전기(라즈베리파이 공식 충전기 사용해야 안정적인 전원 공급이 가능함) 2. 8기가 이상의 microSD카드(라즈베리파이 공식 카드 사용) 및 리더기 3. 케이스(있는게 매우 좋음) 4. microHDMI 케이블 최소 연결 사항 microSD카드 삽입, 전원 연결, USB키보드 연결, USB마우스 연결, microHDMI연결 방열판 부착하기 은색, 검은색 칩에 붙여주면 된다. 그러나 실질적인 효과는 -1~2도라고 한다.... https://www.youtube.com/watch?v=E-4GaAz7XNM 기본 시작 방법 아래 링크를 천천히 따라합시다. https://projects.raspberrypi.org/en/projects/rasp.. 2019. 11. 8.
AMD CPU 가상화 옵션키기 # AMD에서는 CPU가상화 옵션이 살짝 숨겨져있다. 1. 컴퓨터를 부팅하면서 del키를 연타하여 BIOS setup에 들어간다. 2. M.I.T 에서 Advanced Frequency Settings 3. Advanced CPU Core Settings 4. SVM Mode을 enable https://forum.level1techs.com/t/solved-no-virtualization-support-with-gigabyte-ga-ab350-gaming-3/114171 2019. 11. 8.
WSL 2 특징 및 설치방법 WSL 2의 특징 WSL 2에서야 Windows 10은 진정한 ubuntu와의 결합이 이루어졌다고 말한다. WSL 1은 파일시스템이 제대로 통합되지 않아, 다수의 파일을 처리하는 작업이 매우 느렸는데, 이제 기존보다 훨씬 빠른 파일 시스템을 제공하고, 더 많은 커널함수를 구현하여 ubuntu native docker를 설치할 수가 있다. 그러나 아직까지는 CUDA를 지원하지 않고, 여러 안정화가 덜되어있어서 불편한 사항이 있다. 좋은 점은 모든 인터페이스가 WSL 1과 완전히 동일하여 적응하는 데 거의 코스트가 들지 않는다는 점이다. WSL 2 Public Release 소식(2020.05.21) 드디어 Windows 10에서 정식으로 WSL 2가 release되었다. 이제 불안정한 윈도우즈 참가자 프로.. 2019. 11. 8.
Residual connection 2019. 10. 22.
각종 Normalization technique • Batch Normalization: 개별 input feature에 대한 통계를 구한다.(mini-batch내의 모든 데이터와 모든 시공간 dimension을 across out) • Layer Normalization: 개별 instance에 대한 통계를 구한다.(모든 feature와 모든 시공간 dimension을 across out) 특히 각 seq마다 input feature의 스케일이 다를때 유용하다. ex) 시끄러운 wav 파일, 조용한 wav 파일 • Instance Normalization: 개별 instance에서, 개별 input feature의 통계를 구한다.(모든 시공간 dimension을 across out) 이것은 사실 통계라고 말하기 힘듦. 그냥 그 값 1개를 가져오는 것.. 2019. 10. 22.
물리학에 기반한 모델 # Ising Mode Ernst Ising에 의해 만들어진 모델로, 원자의 spin을 나타내는 수학적 통계 모형이다. 각각의 변수는 -1 or +1 의 값을 가지고, 일반적으로 격자 형태의 모양에 배열되어 있고, 인접한 이웃과만 서로 영향을 주고 받음 2019. 5. 15.
강화학습, Exponentially weighted average계산하기 https://gist.github.com/imcomking/b1acbb891ac4baa69f32d9eb4c221fb9 def exponentially_weighted_matrix(discount, mat_len): DisMat = np.triu(np.ones((mat_len, mat_len)) * discount, k=1) DisMat[DisMat==0] = 1 DisMat = np.cumprod(DisMat, axis=1) DisMat = np.triu(DisMat) return DisMat def exponentially_weighted_cumsum(discount, np_data): DisMat = exponentially_weighted_matrix(discount, np_data.shape[0.. 2019. 1. 22.
Matplotlib 사용 팁 Jupyter에서 Matplotlib를 이용한 Dynamic plotting거의 몇시간의 검색 끝에 working하는 예제를 찾을 수 있었다.핵심은 %matplotlib notebook 을 쓴다는 것과, fig1.canvas.draw()를 호출해주는 것이었다.그러나 이 방법의 한계는 매번 새로 drawing을 해서 속도가 느리다는 것이다.https://stackoverflow.com/a/55771526/7573626 그래서 아래의 방법으로 set_xdata를 사용하도록 수정해보았다. %matplotlib notebook import matplotlib.pyplot as plt fig1 = plt.figure(figsize=(15,5)) ax1 = fig1.add_subplot(111) ax1.set_xl.. 2018. 11. 27.
PID 제어 # PID Controller: 산업적으로 매우 넓게 사용되는 제어 시스템으로, 수학이나 물리학적으로 유래된 모델이기 보단, 순수히 실용적인 목적으로 만들어져서 널리 사용되고 있는 공학적인 모델이다.https://en.wikipedia.org/wiki/PID_controller#Proportional_term P, I, D 세가지 요소로 우리가 원하는 target value를 만들어내기 위해 최적의 제어 routine을 만들어낸다.예를 들어 에어컨을 틀어서 실내온도를 30도에서 20도로 만들려면 어떻게 해야할까? 너무 과하게 가동하면 자칫 온도가 18도까지 내려갈수도 있고, 너무 살살틀면 20도까지 가려면 한도끝도 없이 기다려야할 것이다.그래서 매우 빠르고 정확하게 20도를 만들어내기 위한 제어가 필요한.. 2018. 11. 13.
딥러닝에서 쓸만한 다양한 Ensemble Method # 앙상블- Soft voting: 각 Softmax확률의 평균을 낸다음 argmax- Hard voting: 각 softmax에서 argmax한 다음 아래와 같은 방법으로 voting* Unanimous voting: 만장일치일 때만 decision함* Majority voting: 다수결로 선택된 decision이 전체의 50%를 넘어야됨.* Plurality voting: 각각의 softmax에대해 argmax한다음 가장 다수의 의견을 따름.(50%를 넘지 않아도 됨)- Weighted voting: Soft 혹은 Hard voting에서 각 softmax에 임의의 weight를 주어서 사용.(확률에 대해선 weighted sum, Hard에 대해서는 2표를 행사할 수 있음)- Staking: 각각.. 2018. 11. 1.
Pandas Pandas 팁데이터 분석을 하다보면 numpy보다 pandas가 더 편한 경우가 종종있다. 물론 연산 속도는 numpy가 훨씬 빠르다. 1. SettingWithCopyWarning 해결하기 Pandas 에서 특정 row의 특정 column에 value를 집어 넣을 때 흔히 발생하는 에러이다. 이는 문법적으로 iloc함수에 대한 python에서 해석이 불분명하기 때문에 발생한다. Indexing and selecting data - pandas 0.25.0 documentation 해결 방법은 매우 간단하다. 아래와 같이 iloc대신 loc를 사용하면 된다. How to deal with SettingWithCopyWarning in Pandas? # Groupby특정 column을 지정하고, 해당 c.. 2018. 6. 29.
Javascript - 자바스크립트에서는 this가 매우 유용하다.- 모든 객체는 Window 밑에 존재하며, 그 밑에 document 와 body등의 children으로 존재한다.- .find() 등의 함수를 이용해 내가 원하는 element를 하위 children에 대해 검색할 수 있다.- 동적으로 모든 object들이 업데이트되므로, 과거에 console.log로 찍은 object도 나중에 업데이트되어 바뀐다. - Javascript에서 Undefined를 검출해내는 것은 쉽지 않은 일이다. https://martin-thoma.com/javascript-wtf/ 2018. 5. 9.
Windows10 에서 화면 녹화하기 # 윈도우10 유저라면 기본 설치된 Xbox 프로그램을 이용해 유료 소프트웨어를 쓰지 않고 화면을 쉽게 녹화할 수 있다.Windows 로고 키+G: 게임 표시줄 열기(또는 Xbox Game Bar를 검색해서 실행)Windows 로고 키+Alt+G: 게임 플레이의 마지막 순간들 녹화(게임 표시줄 > 설정에서 녹화되는 시간을 변경할 수 있습니다.)Windows 로고 키+Alt+R: 녹화 시작/중지Windows 로고 키+Alt+Print Screen: 게임 스크린샷 찍기Windows 로고 키+Alt+T: 녹화 타이머 표시/숨기기Windows 로고 키+Alt+M: 마이크 녹음 시작/중지http://it.donga.com/22257/ - 그러나 위 방식의 단점은.. 하나의 application에 대해서만 녹화를 .. 2018. 3. 12.
윈도우즈10 파일 탐색창 왼쪽 메뉴의 바로가기 수정하기 # Registry를 건드릴 수밖에 없다.1) Window+R 키를 누르고 regedit을 입력해서 실행한다. 2) 레지스트리 편집기에서 HKEY_CLASSES_ROOT\CLSID을 선택한 다음, 해당 디렉토리에 대해 ctrl+F 를 눌러 찾기를 실행 후 System.IsPinnedToNameSpace 을 검색한다. 3) System.IsPinnedToNameSpace 값이 1이면 탐색창 메뉴가 보이고, 0이면 보이지 않는다. 4) 어떤 key 값이 어떤 프로그램을 가리키는지 알기 어려우므로, 일일이 1로 되어있는 키를 0으로 바꿔보면서 탐색창에서 없어지는지 확인한다. 5) 레지스트리를 편집할 수 없다는 에러가 뜨면 무시하고 다른 F3을 눌러 다음찾기를 통해 다른 값을 바꿔본다. - NCS drive 키.. 2018. 3. 11.
Belief Propagation # Belief PropagationAcyclic PGM 모델을 학습하여 MLE나 MAP를 수행하기 위한 알고리즘이다. Cyclic PGM의 경우 수렴성이 보장되지 않고, 계속 확률분포가 진동하지만, Acyclic한 경우 수렴성이 이론적으로 증명되었다고 한다.어떤 임의의 parametric PGM모델을 Acyclic하게 만들고, 이것의 파라미터를 MLE나 MAP에 대해 최적화 하기 위해 각 그래프에서의 Node가 자기와 연결된 주변 Node로 Belief Propagation을 시키고, 이것들이 모여서 1번의 학습이 이뤄진다. 이러한 Belief Propagation을 계속해서 iteration하면서 학습을 수행하게 된다. 기본개념: https://en.wikipedia.org/wiki/Belief_pr.. 2018. 1. 5.
Thompson Sampling, Multi-armed bandit, Contextual bandit # Multi-armed bandit(=K-armed bandit) 여기서 armed는 action이고, K는 action의 개수를 의미함.- Multi-armed bandit = One-state MDP one-state MDP란 것은 state가 1가지로, 항상 고정된 상태를 의미함. 즉 state가 변하지 않기 때문에 이는 곧 state를 무시한다는 말과 동일함. 한마디로 state가 없는 MDP임 # Contextual bandit(=Associative Search) Multi-armed bandit에서 한발 나아가, context를 given condition으로 받아서 문제를 확장한것임. 이때 context는 state와 다른데, 원래의 MDP에서는 Transition probability에.. 2018. 1. 5.
Mac에서 압축한 파일의 제목이 깨질 때 Mac에서 압축한 파일을 window에서 압축 해제했더니 파일 제목이 깨질 때winarchiver lite를 사용해서 압축하면 됨 (압축할 때 setting에서 Korean window옵션 선택) 2017. 12. 18.
PPT로 포스터 인쇄하기, PPT에서 그림파일 추출하기 # A0 사이즈의 고해상도 출력물을 PPT로 만들어 인쇄할 때 주의사항.우선 [파일-옵션-고급-인쇄]에서 다음과 같이 체크박스를 할 것.https://m.blog.naver.com/PostView.nhn?blogId=radiobj5&logNo=220108065742&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2Fhttp://powerpoint.pe.kr/220079391846https://support.office.com/en-us/article/PowerPoint-Options-Advanced-bdbee278-4984-4c7d-88ad-6f493bd18343?omkt=en-US&ui=en-US&rs=en-US&ad=US # 시행착오 과정 여러가지 포맷으로 인쇄를 해본.. 2017. 11. 14.