본문 바로가기

Development113

TensorFlow Extreme Performance Tuning 텐서플로우는 잘못사용하면 정말 정말 정말 느리다. 기본적으로 주어지는 공식 예제는 속도 최적화를 전혀 고려하지 않은 예제이기 때문에, 내가 아무리 비싸고 좋은 GPU를 사용하더라도, 저렴한 GPU에 비해 심각하게 느릴 수 있다. 이에 대한 여러가지 분석과 해결법을 정리해본다. 1. GPU Utilization 분석 먼저 내가 만든 TensorFlow 모델이 과연 얼마나 최고의 효율로 GPU를 사용해서 돌아가고 있는지 확인하자. 그래서 nvidia-smi 혹은 nvidia-smi -a 를 입력하여 Volatile GPU-util 이라는 항목을 볼 수 있는데 이것의 의미는 최근 1 초동안 busy 상태였던 core의 비율을 의미한다. http://stackoverflow.com/questions/508681.. 2017. 1. 20.
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.
Windows Subsystem Linux(WSL)에서 TensorFlow 설치 및 실행하기 Windows Subsystem Linux(WSL)이란윈도우의 시스템콜을 우분투와 연결하여, 동시에 2개의 운영체제를 사용하는 가상환경http://www.itworld.co.kr/news/105480 그리고 WSL 1의 느린 파일 엑세스와 드라이버 문제 등을 해결한 WSL 2이 현재 진행형으로 개발중이다.WSL 2 특징 및 설치방법 WSL 1 설치방법- 설정 -> 업데이트 및 복구 -> 개발자용 -> 개발자 모드선택- 제어판 -> 프로그램 -> '프로그램 및 기능'의 'Windows 기능 켜기/끄기' -> 'Linux용 Windows 하위 시스템(베타)' 선택- 재부팅- Microsoft Store에서 ubuntu 16.04를 검색해서 다운로드하고 실행- ubuntu 설치가 완료되면, id와 passwd.. 2016. 11. 21.
Ubuntu 에서의 DNS 서버 구축 총 7대의 slave와 1대의 master로 구성된 클러스터 서버에서 IP주소를 일일이 외우지 않고, domain name으로 각 서버컴퓨터들을 사용하기 위해서 bind9을 이용한 DNS를 master서버에 구축하였다. * DNS의 원리 slave.dns.server.co.kr : 이런식으로 구성된 도메인은 역순으로 구성된 DNS서버들을 거쳐서 recursive하게 ip주소를 받아낸다. 즉, kr -> co -> server -> dns 순서로 DNS를 물어본다.보통의 경우 server.co.kr은 도메인을 구입해서 사용해야하고, 그 앞의 slave와 dns에 해당하는 부분을 서버 개발자가 구성하게 된다. # bind9 설정하기우선 아래의 링크만 정말 천천히 정독하면, 거의 한 번에 구현이 가능하다. 이.. 2016. 9. 28.
Ubuntu에서 FTP파일 서버 구축 - vsftpd 를 이용해 파일 공유하기 : ftp는 보안에 매우 취약하다. sftp는 보안은 강력한대신 속도가 느리다. vsftpd는 sftp 만큼 안전하면서 속도도 빨라서 가장 널리 이용되는 프로그램이다. - vsftp 설정하기sudo apt-get install vsftpd sudo vim /etc/vsftpd.conf # 원하는 대로 설정 변경. 그러나 우선은 default 상태로 실행시켜서 접속 테스트sudo service vsftpd restart # vsftd.conf 파일 수정하기http://blog.daum.net/99lib/27 http://isaac0448.iptime.org:8080/676http://webdir.tistory.com/199http://auctionpro.co.kr/.. 2016. 9. 27.
TensorFlow 프로그래밍 TensorFlow # flags 사용: https://stackoverflow.com/questions/33703624/how-does-tf-app-run-workflags로 지정된 변수들은, tf.app.run()을 이용해 실행할 경우 main.py 함수를 실행할 때 자동으로 커맨드 라인에 입력한 argument를 parsing하여 내부로 자동 전달해주는 역할을 한다. "Runs the program with an optional 'main' function and 'argv' list." The name 'conv_layer1/h_pool1' refers to an Operation, not a Tensor. Tensor names must be of the form ":". 아하.. 그냥 name.. 2016. 9. 13.
Ubuntu 다양한 CLI/bash script 사용 법 ## Bash script 튜토리얼 https://ryanstutorials.net/bash-scripting-tutorial/bash-if-statements.php#ifelse # Ubuntu 파일 경로 의미 /bin: core tools, some admin tools, contents controlled by package manager. /usr/bin: mostly end user tools, contents controlled by package manager as well. /usr/local/bin: yours to use and abuse. # Wildcard의 모든 subdirectory 인식 shopt -s globstar (.bashrc에 추가해주면 편하다.) ls data/**/.. 2016. 8. 22.
Windows 7과 10 설치 / 노트북 한영키 Windows 7 설치 및 복구옛날 노트북이나 컴퓨터에는 그냥 바로 usb로 설치 디스크 만든다음 CMOS에서 부팅 설정 바꿔서 하면 끝이었음. 근데 요즘에는 일단 윈도우7이 표준이 아니라, 그 위의 8이나 10이 표준이라 문제가 발생함. 1) 일단 기가바이트 메인보드에서는 usb를 인식하지 못해서 설치 디스크가 없다고 계속 뜸--> 기가바이트에서 제공하는 설치 파일 제작 프로그램을 다운 받은 후, usb 드라이버를 추가하여 다시 제작해야함.http://playwares.com/hwboard/47350801 2) 그다음 제조사에서 제공하는 BIOS 에서 win7으로 부팅하는 것이 표준 목록에서 빠져있는 경우가 있음.--> 이런 경우 BIOS설정을 세밀하게 조정하여 win7으로 부팅이 되도록 해줘야함.ht.. 2016. 8. 6.
Ubuntu GUI 관련 트러블슈팅. Gym, Xserver, pyglet, TeamViewer OpenAI Gym을 원격서버 IPython에서 렌더링하기# 주의 # 아래의 방법으로 하면, 결국 되기는 되는데, CUDA 드라이버가 뭔가에 의해서(아마 범블비) 지워져버려서 GPU컴퓨팅이 안된다....... 그래서 결론은 이 글 가장 아래부분의 TeamViewer를 사용하는 것을 추천한다.-----원격 서버에서 IPython을 통해 GYM의 렌더링 결과를 gif로 보여주기를 시도해보았다. 결국 다음 링크의 예제를 재현하는 것이 목표였으나 pyglet과 xvfb 설정에서 상당히 많은 어려움이 있었다. 재현할 대상 : http://nbviewer.jupyter.org/github/patrickmineault/xcorr-notebooks/blob/master/Render%20OpenAI%20gym%20as%.. 2016. 7. 26.
Python에서 유용한 라이브러리 설치 프로그램easy_install, pip : python package 설치 프로그램. 근데 pip가 최신임. easy_install은 곧 사라질 녀석임apt-get : 리눅스 터미널 명령어. 전역 프로그램 패키지를 다운로드하고 설치해줌. # 주의사항 : apt-get으로도 설치하고, pip로도 설치하면 둘이 서로 꼬여버린다. 둘중하나로만 깔아야함.(한쪽을 지우든지) pip와 easy_install의 관계는 모르겠음 꼬일지 안꼬일지. http://blog.outsider.ne.kr/346http://egloos.zum.com/mcchae/v/11023238 deb 파일 설치 방법: sudo dpkg -i 패키지.debhttp://jjeong.tistory.com/664 Scrapy쓰기 좋은 웹 크롤러.. 2016. 2. 23.
Ubuntu 서버 구입부터 설치 및 인터넷 설정까지 1. GPU 서버 구입 아래와 같이 고성능 GPU 컴퓨팅용 서버의 견적을 내고 주문한다. 아래 견적은 호환성이 검토되어 있다. 호환성은 다음의 4가지만 체크하면 큰 문제가 없다. 메인보드와 CPU의 소켓넘버가 같은지 / 메인보드가 RAM의 스펙을 지원하는지 / 메인보드의 PCI가 GPU를 지원하는지 / GPU의 전력용량을 파워가 충분히 만족시키는 지 (단, 하드디스크는 3TB이상일 경우 우분투에서 인식하지 못하는 버그가 있는 것으로 알려져있다.) 위의 견적에서 가격을 조금 내리고 싶다면, 다음을 고려할 수 있다. 1) 파워를 750W -> 650W 로 다운. (Titan X 는 권장 600W 을 요구하므로, 650W으로 충분할 수 있다.) 2) CPU와 메인보드를 다운그레이드 3) 케이스/키보드 구입 X.. 2016. 2. 12.
Ubuntu 설치하기 Ubuntu 설치 USB 만들기https://hiseon.me/linux/ubuntu/ubuntu-install-usb/1. ISO 이미지 다운로드https://ubuntu.com/download/desktop 2. Rufus 다운로드https://rufus.ie/ 3. Ubuntu 설치 USB 만들기https://hiseon.me/linux/ubuntu/ubuntu-install-usb/ Ubuntu 설치하기Ubuntu 설치 USB를 꽂고 컴퓨터를 켠다음, Try Ubuntu without installing 을 클릭한다. 설치를 진행하기 전에 확인해야하는 시스템 사항이 있기 때문이다.1. 내 디스크의 OS 설치방식 확인하기sudo parted -l 설치전에 위 명령어를 실행하여 GPT 디스크인지 여부.. 2015. 8. 28.
고정ip가 할당된 공유기에 리눅스 서버를 올릴 때, 포트포워딩 - 고정ip가 할당된 공유기에 리눅스 서버를 올릴 때 1) 공유기에 접속해서 dhcp 가 할당하는 내부 ip를 고정시킨다.(mac 주소에 내부 ip를 고정시킴)2) 포트포워딩을 통해, 고정ip로 들어오는 특정 포트(22)로의 접속을, 내부 포트(22)로 보낸다. ssh(푸티)와 sftp는 모두 22번 포트를 사용함. 프로토콜만 다름3) 리눅스서버에 sudo apt-get install openssh-server 를 설치하고 실행한다. - 리눅스 설치하고나서 할일sudo update로 모든 설치된 프로그램을 업데이트 apt-get install build-essential로 빌드 에센셜 깔기 sudo apt-get install vimsudo apt-get install openssh-server syst.. 2015. 8. 24.
무선 통신의 원리 먼저 무선 통신은 전자기파를 이용하는 방식과 음파를 이용하는 방식으로 크게 나눌 수 있다. 대부분의 우리가 산업에서 쓰는 무선 통신은 전자기파를 이용한 통신 방식이며, 음파를 이용하는 통신은 일상생활에서 우리가 대화할 때 이외에는 크게 쓰이는 경우를 찾진 못하였다. 다만 통신이 아닌 음파의 응용으로는 보통 초음파진단이나, 초음파비파괴 검사, 수중음파탐지, 박쥐와 돌고래의 음파 통신 및 탐지 등이 있다. 물론 전자기파도 x-lay나 투사전자현미경 등에서 탐지를 위해 사용한다.https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%84%A0_%ED%86%B5%EC%8B%A0 여기서 다시 전자기파는 주파수에 따라, 다양한 이름을 가지며 통신과 탐지에 사용이 된다. 그럼 우선 전자기파의 주.. 2015. 8. 10.
Ubuntu - virtualenv, scrapy 사용법 # GPU 모니터링 : watch -0.5 nvidia-smi (0.5는 시간) watch -n 0.5 "nvidia-smi | grep MiB" # CPU 모니터링 : top (또는 ps? 근데 top이 더 맞는듯) # GPU를 사용중인 Python 프로세스 종료 : 이 방식으로 해야만, 안전하게 다른 프로그램에 영향을 미치지 않음.nvidia-smi python process의 PID확인 kill -9 PID # 모든 GPU 프로세스 종료 : 이 명령을 사용하면, X window도 죽어버려서 위험하다. 위 방법을 추천kill -9 $(nvidia-smi | sed -n 's/|\s*[0-9]*\s*\([0-9]*\)\s*.*/\1/p' | sort | uniq | sed '/^$/d')https://.. 2015. 7. 31.
IPython Notebook 사용법 http://ipython.org/ipython-doc/1/install/install.html#installation-using-easy-install-or-pip IPython server 설치 및 설정.Ipython notebook 설치 1) easy_install ipython[all] (pip 로 uninstall하면 충돌함) 2) sudo pip install "ipython[notebook]" 3) sudo pip install "ipython[notebook]==3.2.1" (2 번 방식은 최신 버전이 설치됨. 3번은 3.2.1 버전이 설치됨.)Ipython profile 생성 ipython profile create nbserverIpython profile 수정: 링크 참조, pem k.. 2015. 6. 2.
빅데이터 플랫폼 - CRM(Customer relationship management) : 빅데이터가 있기 전, 고객 정보를 분석하여 경영 상 의사결정에 도움을 주는 분석 기술http://ko.wikipedia.org/wiki/%EA%B3%A0%EA%B0%9D_%EA%B4%80%EA%B3%84_%EA%B4%80%EB%A6%AC - DW(Data Warehouse) : 마찬가지로 빅데이터가 있기 전, 데이터를 분석하여 경영 상 의사결정에 도움을 주는 분석 기술을 의미http://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%9B%A8%EC%96%B4%ED%95%98%EC%9A%B0%EC%8A%A4 - Hadoop : 빅데이터를 처리하는 오픈소스 분산 파일 시스템. 아래 블.. 2015. 4. 13.
오픈소스 라이센스 및 개발 가이드 BSD 3-Clause LicenseA permissive license similar to the BSD 2-Clause License, but with a 3rd clause that prohibits others from using the name of the project or its contributors to promote derived products without written consent.매우 관대한 라이센스로, 본 프로젝트의 원래 이름 또는 contributor에 대한 copyright 문구를 삽입하는 한 대부분의 이용이 가능하다. https://github.com/NVIDIA/nv-wavenet/blob/master/LICENSE.TXThttps://en.wikipedia.org/w.. 2015. 4. 13.
openFramework, ofxFenster 버그 수정 오픈소스 개발에 기여하였다. I found a little bug on the latest version "of_v0.8.4_vs_release". The 'glfw3' library is old or wrong. so some addons using the latest 'glfw3' doesn't work. I found on "ofxFenster". And there are some more bugs on ofxFenster...http://forum.openframeworks.cc/t/glfw3-library-has-some-problem/18889 --------ofxFenster 사용하기1. 오픈 프레임워크 0.8.4 다운로드 http://openframeworks.cc/download/ 에서 .. 2015. 3. 15.