그 후 아래 내용을 vimrc파일에 입력하고 저장해주면 코드들이 전보다 보기 훨씬 좋아진다!
set number
set ai
set si
set cindent
set shiftwidth=4
set tabstop=4
set ignorecase
set hlsearch
set expandtab
set background=dark
set nocompatible
set fileencodings=utf-8,euc-kr
set bs=indent,eol,start
set history=1000
set ruler
set nobackup
set title
set showmatch
set nowrap
set wmnu
syntax on
여기까지는 직접 설정을 해본 것이고 github를 찾아보니 vimrc 설정 끝판왕이 있는 것 같다.
명령어 두줄이면 바로 적용된다. 만약 git이 안 깔려있다면 sudo apt install git 명령어로 설치해주자.
git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh
다음으론 가상 환경을 만들어야 된다. 필수는 아니지만 가상 환경을 사용하지 않으면 아나콘다를 삭제했다가 다시 깔아야 되는 매우 귀찮은 상황이 벌어지기 때문에 매우 매우 권장한다... 그리고 가상 환경을 사용하는 게 프로젝트 진행할 때도 그렇고 여러모로 편리하다. 그냥 쓰자!
내가 사용하는 머신러닝과 관련된 라이브러리들을 모두 설명하는 것은 의미가 없는 것 같아 대표적인 것만 대충 설명하고 넘어가겠다. 그리고 라이브러리 설치하고 중간에 ipython이라 치고 들어가서 import <라이브러리 이름>을 쳐서 오류가 안 나고 잘 import 되는지 확인하면서 넘어가자. 종종 설치는 했는데 import가 안될 때가 있어서 짜증이 날 수도 있다!
나는딥러닝 관련해서 케라스를 주로 사용하는데 케라스는 텐서플로우 안에 들어있기 때문에 텐서플로우를 설치하면 사실상 깐 거나 다름없다. 2.0.0 이상의 버전으로 했을 때 뭔가 오류가 많이 나서 그냥 2.0.0으로 설치해서 사용하고 있다.
pytorch 라이브러리도 있지만 나는 아직 사용하지 않는다.
tensorflow, keras, pyrotch 셋다 장단점? 이 있을 거니까 잘 보고 사용하고 싶은걸 설치하자!
pip install tensorflow==2.0
딥러닝은 행렬 계산을 엄청나게 많이 하는데 파이썬 내에서 그 행렬은 다 numpy 행렬이다...
이거 없으면 사실 아무것도 못한다. numpy를 꼭 깔아주자!
테이블 데이터를 처리할 때 정말 편리한 pandas, 다양한 머신러닝 모델을 쉽게 사용할 수 있게 해주는 scikit-learn,
이미지 전처리 관련 갑인 OpenCV이나 이미지 관련해서 언젠가 한 번쯤은 볼 수도 있는 라이브러리인 dlib,
데이터 시각화 관련 갑인 matplotlib과 seaborn 등등이 있다.
# OpenCV 설치
pip install opencv-python
위에 걸로 안될 시
pip install opencv-contrib-python
# Dlib 설치
conda install -c conda-forge dlib
설치할 때 종종 Proceed ([y]/n)?라는 말이 뜨는데 yes는 y, no는 n이니까 다 y를 누르고 엔터를 쳐주도록 하자.
나머지는 명령어가 같아서 그냥 한 번에 쳐도 된다. numpy는 텐서플로우 설치할 때 자동으로 설치돼서 안 해도 된다.
tensorflow-gpu, keras, Cuda가 최신 버전으로 잘 설치되어있다면 이 글을 통해 성공적으로 GPU를 사용할 수 있을 것이다.
import tensorflow
import keras
from keras.backend.tensorflow_backend import set_session
# 사용할 수 있는 GPU를 gpus에 저장
gpus = tensorflow.config.experimental.list_physical_devices('GPU')
# 나는 2번 GPU만 사용하도록 설정했다.
# EX) 0번 GPU가 사용하고 싶다면 gpus[2]를 gpus[0]으로 바꿔주면 된다.
tensorflow.config.experimental.set_visible_devices(gpus[2], 'GPU')
위의 코드를 통해 성공적으로 GPU를 사용할 수 있는지 확인해보자.
코드를 실행한 후에 nvidia-smi 명령어를 통해 GPU가 어떻게 사용되고 있는지 확인해 볼 수 있다.
nvidia-smi
1, 3번 GPU는 다른 사용자가 사용하는 것이고, 2번 GPU를 성공적으로 사용하고 있는 것을 확인할 수 있다.
그런데 지금 메모리를 쓸데없이 엄청나게 많이 사용하고 있는데(11893MiB/12196iB) 그 이유는 tensor flow에서 기본적으로 사용 가능한 모든 GPU 메모리를 사용하기 때문이다.
필요한 만큼만 메모리를 사용하도록 코드를 추가해주자.
if gpus:
try:
tensorflow.config.experimental.set_memory_growth(gpus[2], True)
except RuntimeError as e:
print(e)
나는 2번 GPU만 사용하기 때문에 2번 GPU만 필요한 만큼만 메모리를 사용하도록 코드를 추가해줬다. 추가해주고 다시 코드를 실행하면