레이블이 tensorflow인 게시물을 표시합니다. 모든 게시물 표시
레이블이 tensorflow인 게시물을 표시합니다. 모든 게시물 표시

2018년 1월 31일 수요일

Tyan server에 Ubuntu server 16.04.03 LTS설치, 그래픽드라이버, docker, deep learning 이미지 설치하기

목록
- 1. Ubuntu server 설치
- 2. 그래픽드라이버 설치(NVIDIA)

- 3. docker 설치
- 4. Nvidia docker 설치
- 5. Deep Learning용 image설치

1. Ubuntu server
1. ubuntu 사이트(https://ubuntu.com/download/server)에 서버버전 iso파일 다운로드하여 DVD에 굽기(16.04.3-server amd64 bit 사용함)
2. BIOS화면에서 F2/Del을 눌러 BIOS진입 -> 부팅순서를 DVD로 변경 후, 재부팅
3. ubuntu설치하기
  a. 언어는 English.
  b. network의 경우, enp13s0f0과 0f1이 있었는데, 0f0은 부팅용이라서 0f1을 LAN 케이블에 물리고 작업함.

  c. Hostname은 컴퓨터의 이름, User name은 사용자 이름이므로 주의해서 입력.
  d. Partition disk는 디스크를 지우고, auto로 할당함.
  e. 자동업데이트는 No automatic updates선택
  f. Server유형은 OpenSSH만 추가설치 (총 2개가 선택됨)
  g. 나머지는 모두 default값 사용함.
4. network 설정하기
  a. ifconfig -a로 네트워크 이름 확인(우리의 경우는 3.b.의 것 2개)
  b. sudo vi /etc/network/interfaces를 열고
    auto <네트워크이름>
    iface <네트워크이름> inet static
    address <IP주소입력>
    netmask <서브넷마스크>
    gateway <게이트웨이>
    dns-nameservers <DNS, 두개 이상은 공백으로, 주로 168.126.63.1 168.126.63.2 8.8.8.8 씀>
  c. /etc/init.d/networking restart 입력 후, 네트워크 적용안되면 reboot입력하여 재부팅
  d. ping 8.8.8.8로 동작확인
5. 프로그램 설치
  sudo apt-get update
  sudo apt-get install openssh-server

6. 원격접속용 컴퓨터에 putty설치(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) 후, IP넣고 접속.

2. 그래픽드라이버 설치(NVIDIA)
<참고: http://www.linuxandubuntu.com/home/how-to-install-latest-nvidia-drivers-in-linux>
1. 기존 NVIDIA 드라이버 삭제
 sudo apt-get purge nvidia*
2. 최신 그래픽 드라이버  버전 확인
 https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa
 위 사이트에서 nvidia-graphics-drivers-*** 의 숫자 확인 (ctrl+f활용)
 http://www.nvidia.com/object/unix.html 에서 소유한 GPU가 위 버전 지원하는지 확인(해당버전 클릭 후, Supported Product tab누르면 됨.
  ex) TITAN Xp는 390가능
3. repository update
  sudo add-apt-repository ppa:graphics-drivers (시간 오래 걸림, 약 10분)
  sudo apt-get update
4. 그래픽카드 다운로드 및 설치
  sudo apt-get install nvidia-390 (390대신 2에서 찾은 번호 입력, 시간 오래 걸림, 약 1시간)
  * 만약, Unable to locate package nvidia-390이 나온다면,https://hiseon.me/linux/ubuntu/install_nvidia_driver/의 방법을 따라함.
5. reboot 후, 버전 확인
  reboot 혹은 sudo reboot(putty로 원격 접속한 경우)
  lsmod | grep nvidia 혹은 lsmod | grep nouveau
  위 명령어로 뭐라도 뜨면 됨.
6. 그래픽 드라이버 자동 업데이트 방지
  sudo apt-mark hold nvidia-390

3. docker 설치
<참고: https://subicura.com/2017/01/19/docker-guide-for-beginners-3.html>
o docker 이해하기
<참고: https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html>
- docker란 container가 동작하게끔 하는 가상화 플랫폼
- 가상화 방식
  -- OS가상화 - VMware나 VirtualBox; host OS위에 guest OS를 돌리기에 편하지만 느림.
  -- 프로세스 격리를 통한 가상화 - linux container; host OS위에 docker platform이 존재하고, 그 위에 library와 app이 개별적으로 돌아감. OS별도 설치는 불가능하지만 빠름.
- container: 이 안에서 실행하는 프로세스 들은 서로 영향을 주지 않고 동작. apt-get, yum등 자유롭게 설치가능. 설치시간도 매우 빠름(~10초).
- image: 특정 시점의 상태를 저장해놓은 변하지 않는 상태(가상CD의 image같은 것), image는 그것만으로 동작가능함(즉, 다운받아서 쓰면 돌아감)
- layer: image A에서 특정 lib B설치시 image C = A + B로 구성되어 효율적으로 동작하도록 만든 체계.
- client와 server(host): client에서 명령어 실행 -> docker daemon이 받아서 container에 toss -> 실행 결과 docker daemon에 toss -> client에 출력

o docker 다운로드 및 설치
<참고: https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html>
1. docker 설치 및 버전확인 - 너무 최신버전이면 nvidia-docker가 설치되지 않기에 다음을 추천
  <참고: https://docs.docker.com/install/linux/docker-ce/ubuntu/>
  a. 옛날꺼 지우기
  sudo apt-get remove docker docker-engine docker.io

  b. repository를 이용한 설치
  sudo apt-get update
  apt가 HTTPS사용토록 허락
  sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  c. docker GPG키 추가
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

  d.
  sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  sudo apt-get update

  e. 그냥 최신버전을 설치하고프면(비추)
  sudo apt-get install docker-ce

  e. 만약 특정버전을 설치하고프다면
  sudo apt-get install docker-ce=17.12.0~ce-0~ubuntu
  apt-cache madison docker-ce
  으로 가능 버전 확인(nvidia-docker2는 docker 17.09.0까지만 지원)

  f. 버전확인
  sudo docker run hello-world
  docker version

  g. root아닌 user로 docker실행하기
  sudo usermod -aG docker 현재사용자ID

3. nvidia-docker설치
   <참고: https://github.com/NVIDIA/nvidia-docker>
    # 기존 nvidia-docker삭제
  docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
  sudo apt-get purge -y nvidia-docker

# repo설정
  curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
  curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
  sudo apt-get update

# 설치
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

** 만약 위에 것을 하다가 nvidia-docker2가 docker-ce 버전이 맞지않아 설치안된다고 나오면, docker와 nvidia-docker 버전이 서로 맞지않기에 이전 docker를 삭제, 재설치해야됨.
아래는 설치한 docker 삭제방법
<참고: https://stackoverflow.com/questions/31313497/how-to-remove-docker-installed-using-wget>
sudo apt-get purge -y docker-engine
sudo apt-get autoremove -y --purge docker-engine
sudo apt-get autoclean
sudo apt-get purge -y docker-engine docker docker.io docker-ce
sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce

sudo rm -rf /var/lib/docker
sudo rm /etc/apparmor.d/docker
sudo groupdel docker
sudo apt-get autoclean
** 잘되면 위의 것은 넘어가기

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

4. Deep Learning용 image설치
a. CUDA, cudnn, tensorflow, caffe, theano, pytorch, keras, opencv가 설치된 image
  https://github.com/ufoym/deepo << CUDA, cudnn, tf, caffe, theano, pytorch, keras, opencv

- image 다운로드
docker pull ufoym/deepo 혹은
docker pull ufoym/deepo:py27

- 동작테스트
nvidia-docker run --rm ufoym/deepo:py27 nvidia-smi
==> nvidia-smi결과인 GPU상태들이 나옴.
nvidia-docker run -it ufoym/deepo:py27 bash
python
import tensorflow
import keras
==> 문제없이 되면 사용하면 됨.

참고:
pyTorch의 경우 shared memory를 사용함. 이 경우 늘려줘야 됨.
nvidia-docker run -it --ipc=host ufoym/deepo:py27 bash

참고: 저장공간 share between host machine and container
nvidia-docker run -it -v /host/data:/data - /host/config:/config ufoym/deepo:py27 bash
container의 /data 에서 host의 /host/data가 보이게 됨.

참고:
python commandline에서 Ctrl+D <== exit from python commandline

참고:
--rm 옵션으로 container가 종료 후, 삭제됬음.
interactive하게 쓰는 건 다음과 같이 입력
nvidia-docker run -it ufoym/deepo:py27 bash

b. caffe, opencv만 설치하고싶다면
https://github.com/w102060018w/caffe-opencv-cuda8.0-docker 의 이미지 사용

2017년 6월 8일 목요일

tensorflow windows버전 설치하기

문제: tensorflow를 windows에 설치해보자.

해결(2017.06.09일자):
<참고: http://dongjinlee.tistory.com/entry/Tensorflow-windows-%EB%B2%84%EC%A0%84-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0>

0. windows 8.1 64bit에 설치함. python이 설치되어있다면 삭제후 진행.

1. CUDA 8.0과 cuDNN 5.1(cuDNN 6.0은 안됨)을 설치.(GPU버전을 설치할 경우만 설치)
  - https://developer.nvidia.com/cuda-downloads에서 해당 OS선택 후, 다운로드/실행
  - https://developer.nvidia.com/cudnn (cudnn은 설치 후, CUDA의 폴더에 옮겨주면 됨)
    -- windows버전의 경우는 win10과 win7의 경우만 있는데, win8의 경우 win7버전다운.
    -- 받고 압축을 풀어서 CUDA폴더(c:/program files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/)에 옮김(동일 폴더는 동일 폴더가 되도록).

2. python 3.5.x 버전 설치(linux는 python 2.x버전도 지원하나 windows는 3.x만 지원)
 - https://www.python.org/downloads/release/python-353/ 아래쪽에 다운받고 설치.
 - custum으로 설치하여, 위치는 C:/Python35에, Add Python to env variable은 체크할 것.

3. cmd창을 관리자 권한으로 연 후,
tensorflow 홈페이지 install 부분을 따라함.
  - https://www.tensorflow.org/install/install_windows

2017.06.09일 작성
-CPU버전
pip3 install --upgrade tensorflow
pip3 install opencv-python

-GPU버전
pip3 install --upgrade tensorflow-gpu
pip3 install opencv-python

만약에 pip3가 실행이 안된다면 python3.x버전이 잘못설치되었거나, 설치 후 경로가 안잡힌 것이므로 python의 모든버전을 삭제 후, 2번다시할 것.

아래는 2017.02.22에 올라온 설치명령어임.
" CPU버전
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_x86_64.whl

" GPU버전
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.0.0-cp35-cp35m-win_x86_64.whl

" GPU버전2
pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.0.0rc2-cp35-cp35m-win_amd64.whl --ignore-installed

4. 정상적 동작여부 확인
cmd창에서 python입력 후,

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

에러없이 Hello, TensorFlow!를 출력하면 설치 성공.

기타. Pycharm 설치
  - https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC

에러
windows tensorflow importError dll load failed
 -> 참고: https://github.com/tensorflow/tensorflow/issues/7995
 -> MS VC++ 2015 redistributalbe update 3 x64 설치하면 됨.