반응형


Ubuntu 20.04에 CUDA Toolkit와 cuDNN, Tensorflow를 설치하는 방법을 다룹니다.


제가 참고하여 진행한 방법보다 더 간단한 방법이 존재할 수도 있습니다.

그렇다면 제대로 동작하도록 검증하며 진행해본 것에 만족해야 할듯합니다^^


homebrew를 사용하면 패키지 설치시 번거로운 점이 있어 homebrew를 사용하지 않고 pyenv를 설치하는 방법을 찾아 적용했습니다. 

기존에 homebrew를 사용하여 설치한걸 제거하고 다시 설치하고 싶으시면 아래 명령으로 homebrew를 제거하세요

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"


그리고 다음 명령으로 .pyenv 폴더를 삭제해야 합니다.

rm -rf  ~/.pyenv




글작성 시점에서 Tensorflow GPU 버전이 CUDA 10.1를 요구하기 때문에 필요한 설치 방법입니다. 

Tensorflow에서 상위 버전의 CUDA를 지원하게 되면 설치 방법이 바뀌어야 합니다. 


설치하기 전에 다음 링크에서 Tensorflow가 요구하는 CUDA 버전이 10.1인지 확인해보세요. 

버전이 다르다면 본 포스팅을 보고 진행시 문제가 생길 수 있습니다. 

https://www.tensorflow.org/install/gpu?hl=ko




2020. 7. 19  최초 작성

2020. 8. 31  최종 작성




1. gcc를 준비합니다.  

CUDA 10.1을  설치하려면 gcc 8을 사용해야 하지만 GPU 드라이버를 설치하기 위해 gcc 9가 필요합니다.

사실 Ubuntu 20.04의 디폴트 gcc 버전이 9이기 때문에 build-essential 패키지 설치시 gcc 9가 같이 설치됩니다. 


gcc 8과 gcc 9를 모두 설치한 후, 필요에 따라 원하는 gcc 버전을 선택할 수 있도록 준비합니다. 

마지막으로 지금은 gcc 9를 사용하도록 설정합니다. 


$ sudo apt update

$ sudo apt -y install build-essential
$ sudo apt -y install gcc-8 g++-8 gcc-9 g++-9

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 8 --slave /usr/bin/g++ g++ /usr/bin/g++-8
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 --slave /usr/bin/g++ g++ /usr/bin/g++-9

$ sudo update-alternatives --config gcc




마지막 명령을 실행하면 다음처럼 사용할 gcc 버전을 선택하라고 물어봅니다. 

GPU 드라이버를 설치하기 위해 필요한 버전인 gcc 9를 사용하도록 0을 입력하고 엔터키를 누릅니다. 


webnautes@webnautes-pc:~$ sudo update-alternatives --config gcc

대체 항목 gcc에 대해 (/usr/bin/gcc 제공) 2개 선택이 있습니다.


  선택       경로          우선순� 상태

------------------------------------------------------------

* 0            /usr/bin/gcc-9   9         자동 모드

  1            /usr/bin/gcc-8   8         수동 모드

  2            /usr/bin/gcc-9   9         수동 모드


Press <enter> to keep the current choice[*], or type selection number: 0




2. python을 준비합니다. 

글작성 시점에서 Tensorflow가 지원하는 버전은 Python 3.7이지만 Ubuntu 20.04의 디폴트 파이썬은 Python 3.8이기 때문에 필요에 따라 원하는 버전을 사용할 수 있도록 해줘야 합니다.   



Ubuntu 20.04에는 디폴트로 Python 3.8이 설치되어 있습니다. 


webnautes@webnautes-pc:~$ python3

Python 3.8.2 (default, Mar 13 2020, 10:14:16) 

[GCC 9.3.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> 




우선 의존성 있는 패키지를 설치합니다.


$ sudo apt install -y zlib1g-dev libbz2-dev libreadline-dev libssl-dev libsqlite3-dev libffi-dev curl file git python3-pip make build-essential

$ sudo pip3 install virtualenvwrapper




pyenv, pyenv-virtualenv 등을  설치합니다. 원하는 버전의 Python을 설치하고  파이썬 버전별로 가상 환경을 만들기 위해 사용합니다. 


$ curl https://pyenv.run | bash

$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc

$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc

$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc

$ source ~/.bashrc




이제 파이썬 3.7.7을 설치합니다. 글 작성 시점에서 Tensorflow에서 지원하는 파이썬 버전은 3.5~3.7입니다. 

Tensorflow에서 지원하는 Python 버전은 아래 링크에서 확인가능합니다.

https://www.tensorflow.org/install/pip?hl=ko


$  pyenv install 3.7.7




파이썬 3를 디폴트로 사용하도록 합니다. 변경된 가상환경에 따라 python 버전이 올바로 바뀌게 하려면 필요한 작업입니다. 


$ sudo apt install python-is-python3




이제 python 명령으로 python3를 사용할 수 있습니다.  


webnautes@webnautes-pc:~$ python -V

Python 3.8.2




파이썬 3.7.7을 사용하도록 tf2라는 가상환경을 만듭니다. 

가상환경을 만들고 삭제하는 것은 경로에 상관없이 어디서든 가능합니다. 


$ pyenv virtualenv 3.7.7 tf2




가상 환경을 변경하는 것을 테스트해봅니다다.



현재 사용 중인 환경과 파이썬 버전을 확인해봅니다. 

환경으로 system을 사용하고 있고(system은 Ubuntu 20.04의 기본 환경입니다. 사용중인 환경 앞에 *가 추가됩니다.)  

Python 3.8.4를 사용하고 있습니다. 


webnautes@webnautes-pc:~$ pyenv versions

* system (set by /home/webnautes/.pyenv/version)

  3.7.7

  3.7.7/envs/tf2

  tf2


webnautes@webnautes-pc:~$ python -V

Python 3.8.4




현재 사용자가 tf2 가상 환경을 사용하도록 변경 합니다. 


$ pyenv global tf2


webnautes@webnautes-pc:~$ pyenv global tf2




가상환경으로 바뀌면 가상환경 이름이 쉘 프롬프트 맨 앞에 추가됩니다. 


(tf2) webnautes@webnautes-pc:~$




사용중인 환경과 파이썬 버전을 확인합니다.

tf2 가상환경을 사용하고 있고 파이썬 버전은 3.7.7입니다. 



(tf2) webnautes@webnautes-pc:~$ pyenv versions

  system

  3.7.7

  3.7.7/envs/tf2

* tf2 (set by /home/webnautes/.pyenv/version)



(tf2) webnautes@webnautes-pc:~$ python -V

Python 3.7.7




다시 시스템 디폴트 환경으로 돌아가려면 다음 명령을 사용합니다. 

앞에 붙었던 가상환경 이름 tf2가 사라졌습니다. 


(tf2) webnautes@webnautes-pc:~$ pyenv global system

webnautes@webnautes-pc:~$ 



사용중인 환경과 파이썬 버전을 확인합니다.

Ubuntu 20.04 디폴트 상태로 돌아왔습니다. 


webnautes@webnautes-pc:~$ pyenv versions

* system (set by /home/webnautes/.pyenv/version)

  3.7.7

  3.7.7/envs/tf2

  tf2


webnautes@webnautes-pc:~$ python -V

Python 3.8.2


파이썬 시스템 환경에서 작업을 이어서 진행합니다. 




3. NVIDIA 드라이버를 설치합니다. 



다음 명령으로 현재 사용중인 그래픽 카드에 설치할 수 있는 드라이버를 확인합니다. 


$ ubuntu-drivers devices




현재 PC에서 GeForce GTX 1660 Ti를 사용중이고 추천하는 드라이버는 nividia-driver-440임을 알 수 있습니다. 

driver 항목 중 recommended가 붙은 드라이버를 선택하면 됩니다. 


webnautes@webnautes-pc:~$ ubuntu-drivers devices

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==

modalias : pci:v000010DEd00002191sv000017AAsd00003FFCbc03sc00i00

vendor   : NVIDIA Corporation

model    : TU116M [GeForce GTX 1660 Ti Mobile]

driver   : nvidia-driver-418-server - distro non-free

driver   : nvidia-driver-440-server - distro non-free recommended

driver   : nvidia-driver-435 - distro non-free

driver   : nvidia-driver-440 - distro non-free

driver   : xserver-xorg-video-nouveau - distro free builtin



해당 버전의 드라이버를 설치합니다.


$ sudo apt install nvidia-driver-440




다음처럼 이미 설치되어 있다고 나올 수도 있습니다. 

Ubuntu 설치 과정에서 독점 드라이버를 사용한다고 선택한 경우입니다. 


webnautes@webnautes-pc:~$ sudo apt install nvidia-driver-440

[sudo] webnautes의 암호: 

패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다       

상태 정보를 읽는 중입니다... 완료

패키지 nvidia-driver-440는 이미 최신 버전입니다 (440.100-0ubuntu0.20.04.1).

0개 업그레이드, 0개 새로 설치, 0개 제거 및 234개 업그레이드 안 함.




시스템에서 NVIDIA 드라이버를 사용하고 있는지 확인합니다. 

왼쪽 아래에 보이는 프로그램 표시 아이콘을 클릭하여 소프트웨어 & 업데이트를 실행합니다. 





스크린샷처럼 이미 NVIDIA 드라이버를 사용하고 있지 않으면 선택을 합니다. 

우분투를 재부팅해야 반영이 됩니다. 


이미 NVIDIA 드라이버를 사용하고 있다면 재부팅할 필요가 없습니다. 





터미널에서 nvidia-smi 명령을 실행하여 설치한 드라이버 버전이 맞는지 확인하세요.

여기에선 nvidia-driver-440에 맞는 440이 보입니다.  





4. CUDA Toolkit을 설치합니다. 


우선 gcc 버전을 9에서 8로 변경해야 합니다. CUDA Toolkit 10.1에서 gcc 8을 요구하기 때문입니다. 


다음 명령을 실행한 후, gcc-8에 해당하는 번호를 입력하고 엔터를 누릅니다. 

여기에서는 1번입니다.


webnautes@webnautes-pc:~$ sudo update-alternatives --config gcc

[sudo] webnautes의 암호: 

대체 항목 gcc에 대해 (/usr/bin/gcc 제공) 2개 선택이 있습니다.


  선택       경로          우선순� 상태

------------------------------------------------------------

* 0            /usr/bin/gcc-9   9         자동 모드

  1            /usr/bin/gcc-8   8         수동 모드

  2            /usr/bin/gcc-9   9         수동 모드


Press <enter> to keep the current choice[*], or type selection number: 1

update-alternatives: using /usr/bin/gcc-8 to provide /usr/bin/gcc (gcc) in manual mode




다음처럼 gcc 버전을 확인하여 8.x가 나와야 합니다. 


webnautes@webnautes-pc:~$ gcc --version

gcc (Ubuntu 8.4.0-3ubuntu2) 8.4.0

Copyright (C) 2018 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.




 다음 링크에 접속하여 10.1 update2를 클릭합니다. 

https://developer.nvidia.com/cuda-toolkit-archive





Linux > x86_64 > Ubuntu > 18.04 > runfile (local)을 차례대로 선택합니다. 

CUDA Toolkit 10.1에서는 Ubuntu 20.04를 공식적으로 지원하지 않기 때문에 Ubuntu 18.04용 패키지를 설치해야 합니다.





다음처럼 설치 명령을 얻을 수 있습니다. 





설치 프로그램을 다운로드 및 실행합니다. 다음 화면이 보일때 까지 조금 시간이 걸립니다. 

글작성 시점과 버전이 달라질 수 있으니 NVIDIA 홈페이지에서 설치 명령을 확인해보세요. 


$ wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run

$ chmod +x cuda_10.1.243_418.87.00_linux.run 


$ sudo ./cuda_10.1.243_418.87.00_linux.run 




기존에 설치된 드라이버가 있다고 제거후 진행할 것을 권고합니다.  

아래 화살표키를 눌러 Continue를 선택하고 엔터를 누릅니다.





accept를 입력하고 엔터를 누릅니다. 





Driver 항목이 선택된 상태에서 Space바를 눌러 체크를 해제하고 

아래 화살표키를 눌러 Install로 이동 후, 엔터를 누릅니다. 다음 화면이 보일 때까지 잠시 기다려야 합니다. 





문제 없이 설치가 되면 다음과 같은 화면이 보입니다. 





CUDA Toolkit 관련 설정을 환경 변수에 추가하고  바로 적용합니다. 

 

$ echo 'export PATH=$PATH:/usr/local/cuda-10.1/bin' >> ~/.bash_profile
$ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64' >> ~/.bash_profile
$ echo 'export CUDADIR=/usr/local/cuda-10.1' >> ~/.bash_profile
$ source ~/.bash_profile




5. cuDNN을 설치합니다. 


아래 링크에 접속하여 Download cuDNN을 클릭합니다. 

https://developer.nvidia.com/cudnn





NVIDIA 홈페이지에 로그인해야 진행할 수 있습니다. 





CUDA 10.1를 위한 cuDNN v7.6.5 항목을 클릭합니다.

Archived cuDNN Releases를 클릭해야 아래 스크린샷처럼 보입니다. 

 




cuDNN Library for Linux를 클릭하면 다운로드가 시작됩니다. 





다운로드 받은 cuDNN 파일을 압축 풀어 CUDA Toolkit가 설치된 경로에 복사합니다.

참고로 현재 /usr/local/cuda 디렉토리는  /usr/local/cuda-10.1/ 디렉토리를 가리키는 링크입니다. 


webnautes@webnautes-pc:~$ ls -l /usr/local/ 

합계 36

drwxr-xr-x  2 root root 4096  4월 23 16:32 bin

lrwxrwxrwx  1 root root   21  7월 19 17:09 cuda -> /usr/local/cuda-10.1/

drwxr-xr-x 17 root root 4096  7월 19 17:09 cuda-10.1




경로 때문에 실수하지 않도록 cd ~ 명령으로 홈디렉토리로 이동후 진행합니다. 


webnautes@webnautes-pc:~$ pwd

/home/webnautes




다운로드 받은 파일을 홈디렉토리로 가져와 압축을 풀어줍니다. 


webnautes@webnautes-pc:~$ mv ~/다운로드/cudnn-10.1-linux-x64-v7.6.5.32.tgz .

webnautes@webnautes-pc:~$ tar -xzvf cudnn-10.1-linux-x64-v7.6.5.32.tgz




cuDNN 파일을 CUDA Toolkit가 설치된 디렉토리에 복사해줍니다. 


webnautes@webnautes-pc:~$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include

webnautes@webnautes-pc:~$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

webnautes@webnautes-pc:~$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*



파일 복사 과정에 링크 파일이 실제 파일의 복사본이 된것을 올바로 잡아줍니다.


$ cd /usr/local/cuda-10.1/targets/x86_64-linux/lib/
$ sudo rm libcudnn.so.7 libcudnn.so
$ sudo ln -s libcudnn.so.7.6.5 libcudnn.so.7
$ sudo ln -s libcudnn.so.7 libcudnn.so




새로 추가된 라이브러리를 시스템에서 찾을 수 있도록 하고 루트 디렉토리로 이동합니다.  


$ sudo ldconfig

$ cd




6. 이제 설치된 버전을 확인해봅니다. 


CUDA Toolkit


nvcc 명령을 사용하여 확인합니다. 

다음처럼 버전이 10.1이어야 합니다. 


webnautes@webnautes-pc:~$ nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2019 NVIDIA Corporation

Built on Sun_Jul_28_19:07:16_PDT_2019

Cuda compilation tools, release 10.1, V10.1.243




cuDNN


다음 명령을 실행하여 버전이 7.6.5가 보여야 합니다.


webnautes@webnautes-pc:~$ ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn

libcudnn.so.7 -> libcudnn.so.7.6.5





7. Tensorflow GPU 버전을 설치합니다. 


진행하기전에 앞에서 만든 tf2 가상환경으로 변경합니다. 


webnautes@webnautes-pc:~$ pyenv global tf2

(tf2) webnautes@webnautes-pc:~$ 




Tensorflow GPU 버전을 설치합니다. 

글 작성 시점에서는 Tensorflow 2.3.0이 설치되었습니다. 





설치가 문제없이 진행되었다면 다음처럼 보입니다. 

마지막에 노란색 경고는 무시해도 됩니다. pip를 업그레이드하라는 메시지입니다. 





다음처럼 텐서플로우에서 GPU를 사용할 수 있는지 체크합니다. 


(tf2) webnautes@webnautes-pc:~$ python3

Python 3.7.7 (default, Aug 30 2020, 20:58:43) 

[GCC 8.4.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import tensorflow as tf

2020-08-31 20:11:51.414221: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1

>>> tf.config.list_physical_devices('GPU')

2020-08-31 20:12:02.267673: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcuda.so.1

2020-08-31 20:12:02.334678: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero

2020-08-31 20:12:02.335083: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties: 

pciBusID: 0000:01:00.0 name: GeForce GTX 1660 Ti computeCapability: 7.5

coreClock: 1.59GHz coreCount: 24 deviceMemorySize: 5.80GiB deviceMemoryBandwidth: 268.26GiB/s

2020-08-31 20:12:02.335108: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1

2020-08-31 20:12:02.336490: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcublas.so.10

2020-08-31 20:12:02.337730: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcufft.so.10

2020-08-31 20:12:02.337951: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcurand.so.10

2020-08-31 20:12:02.339354: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusolver.so.10

2020-08-31 20:12:02.340129: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusparse.so.10

2020-08-31 20:12:02.343028: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudnn.so.7

2020-08-31 20:12:02.343126: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero

2020-08-31 20:12:02.343524: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero

2020-08-31 20:12:02.343807: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0

[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

>>> 




CUDA Toolkit와 cuDNN 라이브러리를 성공적으로 로드한 것을 볼 수 있습니다. 


2020-08-31 20:12:02.335108: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1

2020-08-31 20:12:02.336490: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcublas.so.10

2020-08-31 20:12:02.337730: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcufft.so.10

2020-08-31 20:12:02.337951: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcurand.so.10

2020-08-31 20:12:02.339354: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusolver.so.10

2020-08-31 20:12:02.340129: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusparse.so.10

2020-08-31 20:12:02.343028: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudnn.so.7



다음 메시지가 마지막에 보이면 Tensorflow에서 GPU를 사용할 수 있는 것입니다. 


[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]



다음과 같은 메시지가 같이 보일 수도 있습니다. 커널에서 NUMA를 지원하지 않기 때문에 보이게 되는 경고라고 합니다. 

참고[1]에서 무시해도 된다는 언급이 있어 사용하는 데에는 지장이 없는 듯한데 정확한 관련 글을 아직 찾지는 못했습니다. 


successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 



이제 텐서플로우를 사용할 준비가 완료되었습니다. 




8. 가상 환경에 현재 설치된 패키지를 확인해보면 tensorflow-gpu 패키지를 발견할 수 있습니다. 


(tf2) webnautes@webnautes-pc:~$ pip list | grep tensorflow

tensorflow-estimator   2.3.0    

tensorflow-gpu         2.3.0   




하지만 시스템 디폴트 환경으로 돌아오면 tensorflow-gpu 패키지를 발견할 수 없습니다. 

tensorflow-gpu 패키지를 tf2 가상환경에서 설치했기 때문에 해당 가상환경에서만 사용할 수 있습니다. 

하나 주의할 점은 패키지 확인시 pip 대신에 pip3를 사용해야 합니다. 


(tf2) webnautes@webnautes-pc:~$ pyenv global system


webnautes@webnautes-pc:~$ pip3 list | grep tensorflow


webnautes@webnautes-pc:~$ 




이유는 알 수 없지만 디폴트 시스템 환경에서는 pip로 pip3가 실행되지 않는데

tf2 가상환경에서는 pip로 pip3가 실행됩니다. 


webnautes@webnautes-pc:~$ pip -V

pyenv: pip: command not found


The `pip' command exists in these Python versions:

  3.7.7

  3.7.7/envs/tf2

  tf2


Note: See 'pyenv help global' for tips on allowing both

      python2 and python3 to be found.


webnautes@webnautes-pc:~$ pyenv global tf2


(tf2) webnautes@webnautes-pc:~$ pip -V

pip 19.2.3 from /home/webnautes/.pyenv/versions/3.7.7/envs/tf2/lib/python3.7/site-packages/pip (python 3.7)




텐서플로우 사용시에는 tf2 가상환경으로 변경하여 사용하면됩니다. 




9. Visual Studio Code에서 “hello world”를 출력하는 간단한 텐서플로우 예제를 실행해봅니다.  


다음 포스트를 참고하여 Visual Studio Code를 설치합니다. 


Visual Studio Code 설치하는 방법( Windows / Ubuntu )

http://webnautes.tistory.com/1197 




Visual Studio Code의 메뉴에서 File > Open Folder를 선택합니다. 



탐색기가 열립니다. 소스코드를 저장할 디렉토리를 생성할 원하는 디렉토리로 이동한 후, 오른쪽 위에 보이는 폴더 아이콘을 클릭하여 새로운 디렉토리 생성후, 해당 디렉토리로 이동하고 확인 버튼을 클릭합니다. 


포스트에서는 /home/webnautes로 이동하여 work 디렉토리를 생성했습니다. 





Visual Studio Code 왼쪽에 선택한 디렉토리 이름이 보입니다. 

마우스 커서를 가져가면 보이는 New File 아이콘을 클릭합니다. 





파이썬 코드 파일 이름을 적고 엔터를 누릅니다. 





해당 파이썬 코드 파일이 에디터창에 열리면서 오른쪽 아래에 Python 확장을 설치할지 물어보는 대화상자가 보입니다. 

Install을 클릭하여 설치하도록 합니다. 





다음 처럼 설치가 완료되길 기다립니다.





코드창에 보이는 파이썬  파일에 다음 코드를 복사하여 붙여넣기하고 

Ctrl + S를 눌러 저장합니다.


import tensorflow as tf

hello = tf.constant("hello world")

print(hello)
print(hello.numpy())





Ctrl + Shift + P를 누른 후, python:select를 입력하여 보이는 Python:Select Interpreter를 선택합니다. 





사용가능한 파이썬 인터프리터 목록이 보입니다. 

텐서플로우를 사용하려면 tf2가 표시되어 있는 Python 3.7.7 64-bit (‘tf2’:env)를 선택해야 합니다.

참고로 시스템 디폴트 파이썬 인터프리터는 Python 3.8.2 64-bit 입니다. 





Visual Studio Code 왼쪽 아래에 현재 사용중인 인터프리터 정보가 보입니다. 

tf2 가상환경을 사용중인 것을 볼 수 있습니다. 





선택한 파이썬 인터프리터는 VIsual Studio Code를 종료했다가 다시 실행하거나

해당 폴더를 닫았다가 다시 열어도 유지됩니다. 



파이썬 파일을 열어 놓은 상태에서 마우스 오른쪽 버튼을 눌러 보이는 메뉴에서 

Run Python File in Terminal을 선택합니다. 





다음처럼 터미널 창에서 실행 결과를 볼 수 있습니다. 





결과외에도 텐서플로우에서 많은 메시지를 보여줍니다. 

필요한 결과만 보고 싶으면 다음 코드를 기존 코드 맨 위에 붙여넣기 하세요.


import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' 




터미널에 실행결과만 보이게 됩니다. 





10. 마지막으로 시스템에서 사용하는 디폴트 gcc 버전을 다시 9로 바꾸어 줍니다. 

Ubuntu 20.04의 디폴트 gcc 버전이 9이기 때문에 원래대로 바꾸어 두는게 좋을듯 합니다.


gcc 8을 유지해두는게 좋을 듯합니다.




참고


[1] https://illya13.github.io/RL/tutorial/2020/04/26/installing-tensorflow-on-ubuntu-20.html


[2] https://www.osradar.com/install-homebrew-ubuntu-20-04-debian-10/


[3] https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-20-04-focal-fossa-linux


[4] https://code.visualstudio.com/docs/python/environments 


[5] https://stackoverflow.com/questions/40426502/is-there-a-way-to-suppress-the-messages-tensorflow-prints 

반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요.

  1. ubuntu 2020.07.27 16:31

    우분투 20.04를 설치 할때 자동으로 nvidia 드라이버와 쿠다도 같이 설치가 되었습니다.
    파이토치와 파이스파크를 run 할때는 gpu를 사용하는데

    케라스와 텐서플로를 사용할때는 gpu를 사용하지 않아 질문 드립니다.

    터미널을 통해 /usr/local를 살펴봤는데 아무리 봐도 cuda라는 폴더가 나오지 않습니다. 이런 경우는 어떻게 cudnn를 설치 해야 합니까

  2. Favicon of https://gbox3d.tistory.com BlogIcon 밥을먹는선비 2020.10.24 20:23 신고

    따라해보니 단한번의 실패도 없이 바로 잘되네요.
    너무 세세하게 쓰신거같아 글읽는제가 너무 공짜로 먹는거같아 미안해집니다.(미안해서 책이라도 주문 했습니다.)
    한가지단점이 있다면 원래 저는 구글 검색을 해서 자료를 모은후 여러가기 자료를 취합해서 작업을 하곤했는데...
    이렇게 한방에 끝내버리니 여기를 자주오게되면 제가 게을러질거같습니다^^(농담입니다.)

    정말감사합니다.

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.10.24 23:49 신고

      감사합니다^^
      저도 뭔가 막히면 구글을 검색해본답니다.

  3. Favicon of https://gbox3d.tistory.com BlogIcon 밥을먹는선비 2020.10.27 13:26 신고

    macosx 에서 zsh 터미널로 ssh 접속할때는 source ~./bashrc를 매번 해줘야하네요. 터미널을 bash로 바꾸면 잘되긴합니다.

+ Recent posts