[Deep learning] Gradient Descent Optimizer

이미지
https://icim.nims.re.kr/post/easyMath/70 알기 쉬운 산업수학 알기 쉬운 산업수학 Gradient Descent Optimizer 2017년 12월 13일(수) | 김민중 URL  (1) 주어진 목적함수  f f 의 최솟값(minimum)을 찾아가는 알고리즘으로 다음과 같은 방식으로 최솟값을 찾아간다. 초기값  x 0 x 0 을 임의로 설정, 적당한 Learning rate  α α  설정 n ≥ 0 n ≥ 0 인 정수에 대해서  x n + 1 x n + 1 은 다음과 같이 정의한다. x n + 1 : = x n − α ⋅ ∇ f ( x n ) x n + 1 := x n − α ⋅ ∇ f ( x n ) 주의사항 함수 f f 의 모양이 convex가 아닌 경우 global minimum이 아닌 local minimum으로  x n x n 이 수렴할 가능성이 있다. Learning rate  α α  값이 큰 경우 최솟값으로  x n x n 이 수렴하는 것이 아니라 발산할 수 있다. Learning rate  α α  값이 작은 경우 수렴하는 속도가 지나치게 느릴 수 있다. 방정식  2 ⋅ x = 10 2 ⋅ x = 10  의 근을 Gradient Descent를 이용해서 찾아보자. 목적함수  f ( x ) : = ( 10 − 2 x ) 2 f ( x ) := ( 10 − 2 x ) 2 으로 설정하겠다( f f 의 최솟값인 0이 되게 하는  x x 값이 우리가 원하는 방정식의 근이다). 초기값  x 0 = 0 x 0 = 0 , Learning rate  α = 0.05 α = 0.05 으로 설정 f ′ ( x ) = 4 ( 2 x − 10 ) f ′ ( x ) = 4 ( 2 x − 10 ) 이므로  x 1 x 1 은 다음과 같이 구할 수 있다. x 1 = x 0 − α ⋅ f ′ ( x 0 ) = 0 − 0.05 ⋅ ( − 40 ) = 2 x

Install deep learning frameworks Caffe

The rest of this blog post will assume that you have already installed CUDA Toolkit and cuDNN , the appropriate Python bindings and OpenCV on your system.



Install Caffe 

1. Installing some dependencies


$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libboost-all-dev
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev


2. Create virtual environment for Caffe test

$ mkvirtualenv deepLab_caffe


3. Create sum-link for our opencv in virtual environment

$ cd ~/.virtualenvs/deepLab_caffe/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
$ ln -s /usr/local/lib/python2.7/site-packages/cv.py cv.py


4. Download Caffe repository and installing the required Python packages

requirements.txt has the dependencies list in python folder.

$ cd ~
$ workon deepLab_caffe
$ git clone https://github.com/BVLC/caffe.git
$ cd caffe/python
$ for req in $(cat requirements.txt); do pip install $req; done


5. Compile Caffe

$ cd ..
$ mkdir build
$ cd build
$ cmake ..
$ make all -j8
$ make runtest

Make sure you inspect the output of cmake to ensure cuDNN has been properly detected.


<Note>
make -jN ( N is cpu core count ,  $ cat /proc/cpuinfo | grep cores | wc -l )

<Note>
While running command "make runtest"  you have error message then check nvidia driver.
If you already properly installed  CUDA Toolkit and cuDNN  then check nvidia driver.
If the output error message has "nvidia-uvm" then try this method.
Below guide is from "UbuntuHandbook" ( thank you UbuntuHandbook )
s1> Run "Additional Drivers" utility from Unity Dash.
s2> check driver versions
s3> install the drivers
$ sudo apt-get install nvidia-current  or $ sudo apt-get install nvidia-[your nvidia version number ]
s4> If the system has dual graphics card then you may need install intel driver.
$ sudo apt-get install intel-microcode
s5> Run "Additional Deirver" utility from Unity Dash, again.
      and check "n proprietary drivers in use" on the bottom of the utility.
s6> $ sudo reboot
s7> Run "NVIDIA X Server Settings" utility from Unity Dash.
      and check NIVDIA is selected on PRIME Profiles tab.

6. Add CAFFE_ROOT into .bashrc

$ nano ~/.bashrc

add following line

# Caffe
export CAFFE_ROOT=~/deepLap_caffe

$ source ~/.bashrc



7. Add Caffe module into PYTHONPATH by creating a .pth file


$ nano  ~/.virtualenvs/deepLap_caff/lib/python2.7/site-packages/caffe.pth

Add the following line to it.

/home/[user account]/caffe/python


8. Test it in python

$ workon deepLab_caffe
$ python
>>> import caffe
>>>


댓글

이 블로그의 인기 게시물

@import' when modules are disabled

MagicaVoxel black screen

[Iphone][build error] pngcrush caught libpng error: PNG unsigned integer out of range.