Caffe中画Accuracy和Loss的曲线

Caffe中需要Accuracy和Loss曲线图,比较直观,下面是Python代码:


# coding=UTF-8
import numpy as np
import matplotlib.pyplot as plt
import sys
import os

"""
绘制Loss和Accuracy曲线
"""
caffe_root="/home/pcb/caffe/"
sys.path.insert(0,caffe_root+"python")
import caffe


#caffe.set_device(0)       #设置使用第几个GPU
#caffe.set_mode_gpu()
caffe.set_mode_cpu()
solver=caffe.SGDSolver("/home/pcb/caffe/examples/mnist/lenet_solver1.prototxt")

niter=1000
test_interval=200
train_loss=np.zeros(niter)
test_acc=np.zeros(int(np.ceil(niter/test_interval)))

#the main solver loop
for it in range(niter):
    solver.step(1)

    train_loss[it]=solver.net.blobs["loss"].data
    solver.test_nets[0].forward(start="conv1")

    if it % test_interval==0:
        acc=solver.test_nets[0].blobs["accuracy"].data
        print "Iteration",it, "testing...","accuracy:",acc
        test_acc[it//test_interval]=acc


print test_acc
_,ax1=plt.subplots()
ax2=ax1.twinx()
ax1.plot(np.arange(niter),train_loss)
ax2.plot(test_interval*np.arange(len(test_acc)),test_acc,"r")
ax1.set_xlabel("iteration")
ax1.set_ylabel("train loss")
ax2.set_ylabel("test acuracy")
plt.savefig("Accuracy_Loss.png")
plt.show()

进入python所在的文件目录
在Ubuntu的终端中输入:sudo python Accuracy_Loss.py(python文件的名字)

最终生成的曲线图如下图所示:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/pcb931126/article/details/81396018