티스토리 뷰
Caffe at Windows #03
- 딥러닝프레임워크
Caffe로 윈10에서mnist예제를 실행해봅니다2018_05_22에 확인된Caffe기준입니다
준비
Caffe가 빌드된 상태를 가정하고 시작합니다- 즉 CPU 또는 GPU로 빌드된
Caffe가 준비되어야 합니다
LMDB 생성

Windows + S키를 입력합니다- 검색창에서
Windows PowerShell을 검색합니다
※pow만 입력해도 자동완성으로 등장합니다 Windows PowerShell을 실행합니다

caffe폴더 위치까지 이동합니다caffe폴더 위치는$CAFFE_ROOT라 명명하겠습니다- 글쓴이의 경우
$CAFFE_ROOT = C:\Library\caffe입니다
$CAFFE_ROOT에서./data/mnist/get_mnist.ps1을 입력합니다
mnist예제 이미지 파일을 다운로드 받기 시작합니다


- 위와 같은 문구들을 볼 수 있습니다
- 해당 폴더에
t10k...또는train...으로 시작하는 파일 8개가 추가됩니다

- 파일탐색기에서
($CAFFE_ROOT)\examples\mnist위치로 이동합니다 create_mnist.ps1을 우클릭한 뒤편집을 선택합니다


- 28행의 코드를 수정합니다
$BUILD\convert...→$BUILD\Release\convert...
- 30행의 코드를 수정합니다
$BUILD\convert...→$BUILD\Release\convert...

$CAFFE_ROOT에서./examples/mnist/create_mnist.ps1을 입력합니다get_mnist.ps1으로 다운로드 받은 이미지 파일들로lmdb파일을 생성합니다

lmdb폴더 2개가 생성된 것을 볼 수 있습니다
훈련시키기

lenet_solver.prototxt를 우클릭한 뒤편집을 선택합니다
- 학습에 사용할 프로세서를 선택합니다
CPU를 선택하려면CPU를 입력합니다GPU를 선택하려면GPU를 입력합니다
- 변경사항을 저장한 다음 파일을 닫습니다
※ CPU 로 학습하는 경우 GPU 에 비해 시간이 매우 오래 걸립니다
※ 따라서 CPU 로 학습한다면 max_iter 의 값을 낮추는 것을 추천합니다
train_lenet.ps1을 우클릭한 뒤편집을 선택합니다

- 10행의 코드를 수정합니다
$BuildDir\tools\caffe.exe...→$BuildDir\tools\Release\caffe.exe...


$CAFFE_ROOT에서./examples/mnist/train_lenet.ps1을 입력합니다- 훈련과정이 출력되고
max_iter의 값만큼 반복한 뒤 학습이 종료됩니다
lenet_iter...로 시작하는 파일 4개가 추가됩니다*.caffemodel- 신경망상태를 저장하는 파일입니다
- 이 파일을 기반으로 판별을 수행할 수 있습니다
*.solverstate- 훈련상태를 저장하는 파일입니다
- 이 파일을 기반으로 훈련을 이어갈 수 있습니다
※ lenet_solver.prototxt 의 snapshot 초기값은 5000으로 설정되어있습니다
※ 따라서 10000번 반복한 결과뿐만 아니라 중간결과인 5000번도 생성된 것입니다
판별시키기

$CAFFE_ROOT에서- 스크린샷과 동일하게 입력합니다
- 훈련용
LMDB를 기반으로 이미지 mean 파일을 생성합니다
($CAFFE_ROOT)\examples\mnist위치에서mean.binaryproto파일이 생성됨을 확인할 수 있습니다


label.txt라는 텍스트파일을 생성합니다- 입력값을 어떻게 분류하는지에 대해 명령하는 역할을 수행합니다
- 텍스트파일의 각 행을 0부터 9까지 채웁니다
※ mnist 파일은 손으로 작성한 숫자 이미지들입니다
※ 따라서 mnist 파일로 학습시킨 결과로는 숫자만 판별할 수 있습니다

Windows + R키를 눌러 실행창을 띄웁니다mspaint를 입력하고Enter를 누릅니다
- 그림판에서
크기 조정을 클릭합니다 28 * 28크기의 이미지로 조정합니다

- 적당한 도구로 숫자를 그립니다
- 이미지를
png파일로 저장합니다- 글쓴이는
number_0.png로 저장했습니다
- 글쓴이는


$CAFFE_ROOT에서- 스크린샷과 동일하게 입력합니다
- 입력값이 어떤 숫자로 판별되었는지 보여줍니다
1.0000 - "0"은 입력값이 0일 확률이 100%임을 의미합니다
※ 다른 숫자를 그린 png 파일을 입력값으로 전달하여
※ 다른 숫자들에 대해서도 판별해볼 수 있습니다
이상으로 Caffe 로 mnist 예제를 실행하는 과정을 알아보았습니다
감사합니다
'Computer Science > Artificial Intelligence' 카테고리의 다른 글
| Introduction to A.I. (2/5) (0) | 2018.10.13 |
|---|---|
| Introduction to A.I. (1/5) (0) | 2018.10.07 |
| Summary of Reinforcement Learning (0) | 2018.08.25 |
| Caffe at Windows #02 (1) | 2018.06.02 |
| Caffe at Windows #01 (23) | 2018.05.23 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- visualstudio
- PopeTV
- C/C++
- ATOM
- unreal
- csharp
- CUDA
- Game
- git
- A.I.
- visual-studio
- Python
- vscode
- shader
- DirectX
- windows
- unity
- cuDNN
- lib
- pclaf
- WindowAPI
- tensorflow
- Hashtable
- Slack
- Anaconda
- JIT
- CAFFE
- Docker
- NOX
- dll
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함