- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
[First Contact with TensorFlow] Multi-Layer 신경망 예제 에러[Solved] 본문
5. MULTI-LAYER NEURAL NETWORKS IN TENSORFLOW
http://www.jorditorres.org/first-contact-with-tensorflow/
https://tensorflowkorea.wordpress.com/5-텐서플로우-다중-레이어-뉴럴-네트워크-first-contact-with-tensorflow/
[실행환경]
Windows 10, Docker Toolbox 에서 실행
docker run -it --name tf -p 8888:8888 -p 6006:6006 -v /c/Users/Heeseok:/root/Heeseok gcr.io/tensorflow/tensorflow:latest-devel
[소스]
https://github.com/jorditorresBCN/LibroTensorFlow
Docker Toolbox 안에서 다음과 같이 실행
# python CNN.py
Train 다 실행하고, Test Set의 Accuracy 를 계산할 때 Killed 라고 나오면서 Test Set의 Accuracy 가 출력되지 않습니다.
결과가 나오지 않는 이유가 뭘까요?
TensorFlow의 버전은 0.8.0 입니다.
root@0455a864f3a9:~/Heeseok/python/LibroTensorFlow# python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> print tf.__version__
0.8.0
Facebook 에서 First Contact with TensorFlow 번역을 https://tensorflowkorea.wordpress.com 블로그에 올려놓으신 박해선(Park Ricky) 님에게 문의하였더니 메모리 문제일 것이라고 답변을 주셔서 VirtualBox에서 메모리를 5GB로 늘려서 테스트 했더니 에러 안나고 성공하였습니다.
cf) https://www.facebook.com/permalink.php?story_fbid=167403393689992&id=100012609973068
OS: Windows 10
Docker Toolbox: TensorFlow(CPU 모드) 0.8.0
Ubuntu Bash Shell(Windows 10에 내장된 Linux용 Windows 하위 시스템): TensorFlow(CPU 모드) 0.10.0rc0
여러 환경에서 테스트 해 봤는데, 공통적으로 Train Set 학습은 잘 되고, Test Set 계산할 때 에러가 납니다.
Docker Toolbox (메모리 1024MB) Free Memory: 725MB
- Killed 라고 출력.
Docker Toolbox (메모리 2048MB)
- W tensorflow/core/framework/op_kernel.cc:900] Resource exhausted: OOM when allocating tensor with shape[10000,28,28,32]
Docker Toolbox (메모리 5120MB) Free Memory: 4.49 GB
- Test Set 계산할 때 4.06 GB 메모리 사용하고 test accuracy 0.9137 출력
Windows 10 Ubuntu Bash Shell 에서는 시스템에 통합되어 있어서 따로 메모리 설정을 할 수는 없습니다.
- Free Memory 가 3.3 GB 일 때는 아래와 같이 에러납니다.
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
중지됨 (core dumped)
- 재부팅하고 나서 Free 메모리가 6.11GB 상태에서 실행하였더니 5.63GB의 메모리를 사용하면서 정상적으로 실행되었습니다.
TensorFlow에 포함되어 있는 MNIST 예제(convolutional.py)는 테스트 할 때도 Mini Batch를 64개씩 돌리는데, Jordi Torres 교수님의 MULTI-LAYER NEURAL NETWORKS 예제는 Training할 때만 Mini Batch를 50개씩 돌리고, Test 할 때는 10000개를 한꺼번에 계산해서 메모리 에러가 나는군요!!
그래서 TensorFlow에 포함되어 있는 MNIST 예제(convolutional.py)는 Docker Toolbox(메모리 1024MB)에서도 잘 실행되었습니다.
top 명령으로 메모리를 체크했구요. Docker Toolbox (메모리 5120MB)으로 테스트한 동영상을 아래 첨부합니다.
Docker Quickstart Terminal을 2개 띄워서
위에서는
$ docker start -ia tf
라고 실행한 후 # python CNN.py 실행
밑에 창에서는
$ docker exec -it tf bash
라고 실행한 후 top 명령 실행.
'머신러닝' 카테고리의 다른 글
RNN 에 categorical 변수를 어떻게 입력해야 하는가? (0) | 2016.08.26 |
---|---|
[도서] Think Bayes (0) | 2016.08.26 |
How to get TensorFlow version (0) | 2016.08.20 |
AWS 서버리스 챗봇 경진대회 (0) | 2016.08.17 |
Docker 에서 Time Zone 바꾸기 (0) | 2016.08.12 |