본문 바로가기

Development109

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.
Practical Theano Tutorial theano는 아주 강력하고 편리한 병렬처리 딥러닝 연구 라이브러리이다. 파이썬 기반이며 gpu 병렬프로그래밍을 할 줄 몰라도 쓸 수 있으며, 심볼릭 연산기반으로 사용이 편리하다. 들으면서 소스코드 및 메모등을 정리하였다. 2015. 3. 11.
추천하는 소프트웨어 스택 - GPU 병렬처리CUDATheano - 분산 병렬 처리용 머신러닝 라이브러리아파치 머하웃 - 분산 병렬 처리스파크카산드라하둡MapReduce - OS리눅스 우분투 - 웹Node JS : 자바스크립트로 서버사이드개발이 가능하도록 한 것(자바스크립트의 JSP기능을 코딩) -> 자바스크립트로 통일된 언어로 서버와 클라를 모두 개발할 수 있음. -> 트위터나 페이스북 등 대규모 서비스를 처리할 정도로 매우 빠른속도를 가짐: 기본적으로 JS가 요청에 대해 콜백함수로 처리하는 멀티 스레딩이라서 구조자체가 대규모 서비스에 적합하다고 함. Angular JS : 주로 클라이언트를 개발하는 데 쓰인다고함. Node JS는 서버Jquery : 자바스크립트 라이브러리PHP - 데이터베이스 매니지먼트NoSQL(Not onl.. 2015. 3. 3.
Sampling, Detailed Balance, Gibbs Sampling, Rejection Sampling MCMC, Dirichlet Process, RBM, Particle Filtering Sampling - C.D.F , P.D.F샘플링을 하려면 P.D.F 가 아닌 C.D.F 의 역함수를 알아야한다. PDF는 확률이 아니다. 확률의 미분값이다(적분한 값이 확률이므로). 따라서 0~1 사이의 확률에 대해 uniform distribution을 가지고 샘플링을 하려면, y축에 대해 [0,1]로 샘플링을 한 다음, C.D.F에서 그 y축에 해당하는 x값을 알아내는 것이 바로 샘플링이다.당연히 이를 위해서는 CDF의 역함수를 알아야 한다. (y축의 값이 어떤 x에 해당하는지 알아야함.)그러나 CDF의 역함수는 일반적으로 구하기가 매우 어렵다.가우시안 분포에서도 CDF가 적분으로 정의만 되어있지 계산이 안된다. 그러나 가우시안 분포는 엔지니어링적으로 샘플링이 거의 가능해서 proposal로 많이사.. 2015. 1. 27.
Theano 사용법 - Theano 에서 심볼릭 변수 print하기단, 반드시 최종 theano.function을 하는 computation graph에 해당 변수가 포함되어있어야 만 함.# this is the optimal solution for the checking the real shape outputs = Print(' outputs shape: ', attrs=['shape'])(outputs) http://deeplearning.net/software/theano/library/printing.html아래의 것들은 최적화가 아닌 여러 방법들.#print (outputs.get_value(borrow=True, return_internal_type=True).shape) # get_value is exist i.. 2015. 1. 20.