python 학습 노트 (3) 훈련 과정의 loss 와 accuracy 곡선 그리 기
2893 단어 python 학습 노트
[1] http://blog.csdn.net/u013078356/article/details/51154847
[2] http://blog.csdn.net/YhL_Leo/article/details/51774966
1. 훈련 일지 기록
훈련 과정 에서 명령 에 인 자 를 한 줄 추가 하여 로그 로그 기록 을 실현 합 니 다.
이 디 렉 터 리 는 자신의 프로젝트 디 렉 터 리 로 바 뀌 었 습 니 다. 이렇게 훈련 이 끝나 면 Log 폴 더 에 매번 훈련 하 는 Log 로 그 를 생 성 합 니 다.
#!/bin/bash
GLOG_logtostderr=0 GLOG_log_dir=fine-grained/Log/ caffe.bin train --solver fine-grained/solver.prototxt --weights fine-grained/bvlc_googlenet.caffemodel
2. 그림 그리 기
생 성 된 로 그 를 log. txt 로 이름 바 꾸 고 Jupyter notebook 으로 그림 을 그립 니 다. 코드 는 다음 과 같 습 니 다.
import os
import sys
import numpy as np
import matplotlib.pyplot as plt
import math
import re
import pylab
from pylab import figure, show, legend
from mpl_toolkits.axes_grid1 import host_subplot
# read the log file
fp = open('log.txt', 'r')
train_iterations = []
train_loss = []
test_iterations = []
test_accuracy = []
for ln in fp:
# get train_iterations and train_loss
if '] Iteration ' in ln and 'lr = ' in ln:
arr = re.findall(r'ion \b\d+\b,',ln)
train_iterations.append(int(arr[0].strip(',')[4:]))
if 'iters),' in ln and 'loss = ' in ln:
train_loss.append(float(ln.strip().split(' = ')[-1]))
# get test_iteraitions
if '] Iteration' in ln and 'Testing net (#0)' in ln:
arr = re.findall(r'ion \b\d+\b,',ln)
test_iterations.append(int(arr[0].strip(',')[4:]))
# get test_accuracy
if '#8:' in ln and 'loss3/top-5' in ln:
test_accuracy.append(float(ln.strip().split(' = ')[-1]))
fp.close()
host = host_subplot(111)
plt.subplots_adjust(right=0.8) # ajust the right boundary of the plot window
par1 = host.twinx()
# set labels
host.set_xlabel("iterations")
host.set_ylabel("log loss")
par1.set_ylabel("validation accuracy")
# plot curves
p1, = host.plot(train_iterations, train_loss, label="training log loss")
p2, = par1.plot(test_iterations, test_accuracy, label="validation accuracy")
# set location of the legend,
# 1->rightup corner, 2->leftup corner, 3->leftdown corner
# 4->rightdown corner, 5->rightmid ...
host.legend(loc=5)
# set label color
host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())
# set the range of x axis of host and y axis of par1
host.set_xlim([-200, 5200])
par1.set_ylim([-0.1, 1.1])
plt.draw()
plt.show()
결과:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
파이썬 학습노트 5편(제6장) 함수(2) 함수 세 가지 요소: 매개 변수, 함수체, 반환값.① 매개 변수는 형식 매개 변수 정의 함수 안의 매개 변수가 형식 매개 변수이고 실참은 함수를 호출할 때 함수체에 입력한 실제 데이터를 말한다.② 함수체: 함...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.