2017년 12월 3일 일요일

Caffe의 plot_training_log.py 수행하기 (Caffe 수행 후 로그로 그래프 그리기)

Caffe-bvlc, caffe-nv 등 오픈소스를 보면 tools/extra/ 경로에 로그 그래프를 그릴 수 있는 스크립트를 기본으로 제공합니다. PowerAI에 포함된 caffe, caffe-nv, caffe-ibm에는 해당 스크립트는 없지만, github에 올라온 코드를 사용하여 동일한 plotting 을 수행할 수 있습니다.

우선 Github에서 caffe-bvlc 를 복제합니다.
b7p284za@p10login1:/gpfs/gpfs_gl4_16mb/b7p284za/imsi$ git clone https://github.com/BVLC/caffe.gitb7p284za@p10login1:/gpfs/gpfs_gl4_16mb/b7p284za/imsi$ cd bvlc_caffe

/usr/bin/python2.7 버전을 사용하여 tools/extra/plot_training_log.py.example 을 수행합니다. 이미 PYTHONPATH로 설정되어 있다면 python 명령어로 사용할 수 있습니다.

이때 plot_training_log.py.example을 수행하는 포맷은 다음과 같습니다.
Usage:
./plot_training_log.py.example chart_type[0-7] /where/to/save.png(저장할이미지명/경로) /path/to/first.log(읽어올 로그경로)
Notes:
1. Supporting multiple logs.
2. Log file name must end with the lower-cased ".log".
Supported chart types:
0: Test accuracy vs. Iters
1: Test accuracy vs. Seconds
2: Test loss vs. Iters
3: Test loss vs. Seconds
4: Train learning rate vs. Iters
5: Train learning rate vs. Seconds
6: Train loss vs. Iters
7: Train loss vs. Seconds

아래 수행의 경우, /usr/bin/python2.7 로 bvlc_caffe/tool/extra/plot_training_log.py.example을 실행시켰으며, 6번(Train loss vs Iters) 그래프를 그려서 bvlc_caffe/image_results/caffe_gnet_128b_4G.png 라는 이름의 이미지 파일로 저장합니다. 읽어올 로그 경로는 가장 마지막에 있는 ../../benchmark/caffe/log/output_inception_v1_iter50045_b64_4gpu.11160529.log <- 이 로그를 불러옵니다.

b7p284za@p10login1:/gpfs/gpfs_gl4_16mb/b7p284za/imsi/bvlc_caffe$ /usr/bin/python2.7 ./tools/extra/plot_training_log.py.example 6 ./image_results/caffe_gnet_128b_4G.png ../../benchmark/caffe/log/output_inception_v1_iter50045_b64_4gpu.11160529.log
/usr/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')

잠시간의 시간이 걸리고(수초-수분 내외), 아래와 같이 MATLAB을 사용하여 그래프를 그려줍니다.



댓글 없음:

댓글 쓰기