본문 바로가기

프로그래밍74

가장 효율적인 ML 프로젝트 개발 환경 절대 규칙1. 무조건 editor가 아니라 IDE를 사용해야한다.pycharm을 쓸 때랑 sublimetext를 사용할 때의 생산성 차이는 압도적이다.(특히 refactor) 1. 무조건 local에서 바로 실행할 수 있어야한다.즉시 응답하는 빠른 run이 가능해야만 손쉽게 디버깅을 할 수 있다. local run은 단순히 pytorch cpu에서 실행해도 전혀 상관이 없다.서버에서 실행해야하는 경우도 가능하면 toy환경을 local로 가져오는 것이 좋고, 그마저도 힘들다면 sftp를 이용해서 remote의 코드를 pycharm으로 수정하도록 한다. 1. 내가 사용하는 환경을 docker로 한번 감싼다.그래야 다른 환경에 쉽게 옮길 수 있다. docker commit을 이용해서 현재 환경을 복사하면 되기.. 2020. 1. 17.
Z-shell ( zsh ) 사용하기 zsh ( z-shell ) zsh은 bash shell에서는 제공하지 않는 사소하지만 정말 편리하고 우아한 기능들을 제공하는 shell이다. zsh 설치과정1. sudo apt-get install zsh 2. oh-my-zsh 설치 sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 3. zsh-syntax-highlighting git clone echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc source ./zsh-syntax-hig.. 2020. 1. 17.
Python Concurrency Programming Concurrency Programming Python에서 asyncio를 이용한 concurrency에 대해 알아본다. 아래의 문서를 참고하여 내용을 작성하였다. Async IO in Python: A Complete Walkthrough - Real Python Parallelism은 concurrency의 하위 개념이다. 즉 동시성을 구현하는 방법 중 하나가 병렬화라고 얘기할 수 있을 것이다. 또는 threading이 concurrency에 보다 가까운 개념이다.Concurrency의 핵심은 single cpu에서 동작하는 것 처럼 보이는 코딩을 통해 동시성을 구현할 수 있다는 것이다. 즉 짜기가 쉽다. 그리고 여기에는 coroutine이라는 핵심 개념이 등장한다.이러한 concurrency를 설명.. 2020. 1. 9.
Python 프로젝트의 패키지화 개발한 python 프로젝트를 패키지화 하는 방법들1. pip install로 설치할 수 있게 한다.2. submodule로 사용할 수 있게 한다.3. git clone으로 사용할 수 있게 한다. setup.py 와 requirements.txt의 차이- setup.py : pip install로 사용하는 일반 사용자를 위한 최소 설치 요구사항- requirements.txt : 개발자를 위한 설치 요구사항 https://stackoverflow.com/questions/14399534/reference-requirements-txt-for-the-install-requires-kwarg-in-setuptools-setup-pyhttps://packaging.python.org/discussions/in.. 2020. 1. 9.
Python coding convention: PEP 8 # PEP 8https://www.python.org/dev/peps/pep-0008/ ## 이름 짓기 - 클래스: ClassName- 예외 처리: WrongNameError- 상수: CONSTANT_VALUE- public 함수나 변수: lower_case- private 함수나 변수: _lower_case- 패키지나 모듈: lower_short - __이름: 은 특별한 python의 기능이 생긴다. 상속된 다른 class의 변수와 이름이 겹치지 않기위한 것으로, 다른이름으로 자동 변경된다. ## 이름 금지사항- mixedCase - Capitalized_Words_With_Underscores # Class와 Instance의 차이어떤 class를 정의한 다음, 해당 클래스를 initialize하면 .. 2019. 12. 17.
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_url에 접속 후 로그인하여 a.. 2019. 11. 22.
라즈베리파이 4 Model B 시작하기 # 작동을 위해 필요한 최소 주변기기 1. USB-C 전원 연결을 위한 충전기(라즈베리파이 공식 충전기 사용) 2. 8기가 이상의 microSD카드(라즈베리파이 공식 카드 사용) 및 리더기 3. 케이스(있는게 매우 좋음) 4. microHDMI 케이블 # 방열판 부착하기 은색, 검은색 칩에 붙여주면 된다. 그러나 실질적인 효과는 -1~2도라고 한다.... https://www.youtube.com/watch?v=E-4GaAz7XNM # 기본 시작 방법: 아래 링크를 천천히 따라합시다. https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up # 운영체제 설치하기 아래 링크에서 원하는 이미지를 다운받는다. https://www.raspber.. 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.
WSL2 설치하기 # WSL2의 특징 진정한 ubuntu와의 결합이 이루어졌다. 기존보다 훨씬 빠른 파일 시스템을 제공하고, 더 많은 커널함수를 구현하여 ubuntu native docker를 설치할 수가 있다. 그러나 아직 GPU를 지원하지 않고, 안정화가 덜되어있어서 설치 등에서 불편한 사항이 있다. 사용 인터페이스는 WSL 1과 완전히 동일하여 적응하는 데 문제는 없다. # 약 2주간 사용후기 WSL2자체에도 아직 몇가지 문제가 있었고, Windows Insider Program에 가입해서 강제로 beta버전의 빌드를 써야해서 윈도우즈 자체가 매우 심각하게 불안정해지는 문제가 있었다. 업데이트를 롤백을 하고 싶었으나 업그레이드 후 1주일이 지나면 롤백을 할 수도 없었다. beta가 아니라 정식 출시하면 사용하길 권한.. 2019. 11. 8.
Matplotlib 에서 한글 font로 출력하기 1. 한글 폰트를 다운받고 압축을 푼다. https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%82%98%EB%88%94%ED%8F%B0%ED%8A%B8_%EC%84%A4%EC%B9%98 2. 해당 경로로 matplotlib font를 설정해준다. https://financedata.github.io/posts/matplotlib-hangul-for-osx.html import matplotlib.font_manager as fmfont_list = font_manager.findSystemFonts(fontpaths='/nfs/user/DonghyunKwak_NFS/DonghyunKwak/NanumFont', fontext='ttf')print(font.. 2018. 11. 27.
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 # 시행착오 과정 PPT를 PDF로 변환하는 것.. 2017. 11. 14.
Python game programming. Pygame + PyBox2D Python으로 2차원 게임 환경을 구현하여 강화학습을 실험하기http://projectlog.ferranfabregas.info/python-box-2d-pygame-demo-bumper-cars/ 1. Pygame : 파이썬 게임 엔진, rendering을 담당한다.(필요에 따라 pygame 대신 opencv나 pyglet등으로 대체 가능)sudo pip install pygame 2. PyBox2D : 파이썬 게임 물리 엔진swig 최신 버전 설치 : http://www.linuxfromscratch.org/blfs/view/7.6/general/swig.htmlsudo apt-get install libpcre3 libpcre3-dev wget https://downloads.sourceforge.. 2017. 1. 16.
IP타임 공유기 스위치 허브 모드 스위치 허브 모드 : 공유기를 단순히 포트의 확장으로 사용하기(각 컴퓨터에 할당된 고정아이피 사용) 1. 내부아이피 주소 끝을 1에서 200으로변경2. 인터넷 연결을 끊었다가 재접속3. DHCP중지4. WAN을 빼서 LAN으로 이동5. 컴퓨터의 네트워크를 갱신-고정아이피로 설정변경6. 그럼이제 모든 컴퓨터가 각자 고정아이피모드임http://m.blog.naver.com/michaelrodri/120184371244 2016. 12. 15.
연구용 파이썬 에디터 찾기 : IPython, Notepad++, PyCharm, Atom, Sublime Text 3 서버에 있는 python 코딩을 IPython으로만하다가 한계를 느끼고 PyCharm을 도입하기로 했다. 우선 IPython을 사용해서 웹으로만 하면, 스크립트 코딩시 찾기 기능이 잘 안되고, 한번에 이름을 못바꾸고, 탭키 사용이 제한적인 등 많은 불편함이 있다. Notepad++의 경우 직관적이고 쉬운 사용법이 강점이지만 체계적인 프로젝트 관리와 ssh를 직접실행할 수 없는 단점이 있다. 이에 PyCharm의 경우 제대로 설정만 한 번 해놓으면 거의 모든 작업을 다 할수가 있다. 1) PyCharm 유료/무료 : 유료버젼의 경우 가격이 1년에 90달러로 상당히 비싸다. 그리고 유료(Professional)버전을 사용해야만 원격 서버에 있는 파이썬 코딩을 할 수 있기 때문에 반드시 필요하다. https:.. 2016. 11. 29.
Windows 10 Subsystem Linux, WSL(ubuntu) bash에서 TensorFlow 설치 및 실행하기 # WSL이란윈도우의 시스템콜을 우분투와 연결하여, 동시에 2개의 운영체제를 사용하는 환경http://www.itworld.co.kr/news/105480 # Windows 10에서 ubuntu 사용하기- 설정 -> 업데이트 및 복구 -> 개발자용 -> 개발자 모드선택- 제어판 -> 프로그램 -> '프로그램 및 기능'의 'Windows 기능 켜기/끄기' -> 'Linux용 Windows 하위 시스템(베타)' 선택- 재부팅- Microsoft Store에서 ubuntu를 검색해서 다운로드하고 실행- ubuntu 설치가 완료되면, id와 passwd를 입력하고 ubuntu를 사용 https://docs.microsoft.com/en-us/windows/wsl/install-win10http://sanghak.. 2016. 11. 21.