唐宇迪深度学习框架Caffe系列-10

绘制LOSS曲线

安装matplotlib库(这个库需要安装python-tk)

sudo apt-get install python-tk

sudo pip install matplotlib

import numpy as np
import matplotlib.pyplot as plt
import sys,os
caffe_root = '/home/apple/caffe/'  # this file should be run from {caffe_root}/examples (otherwise change this line)
sys.path.insert(0, caffe_root + 'python')
import caffe

#caffe.set_device(0)
caffe.set_mode_cpu()
solver = caffe.SGDSolver('/home/apple/caffe/examples/mnist/lenet_solver.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)  # SGD by Caffe
    
    # store the train loss
    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 accuracy')
plt.show()

如果你使用的是GPU
caffe.set_mode_gpu()
caffe.set_device(0)


这种操作相当于一边训练网络,一遍记录loss值,在网络的最后,绘制loss曲线

蓝色的线表示 train loss 

红色的线表示 test accuracy

猜你喜欢

转载自blog.csdn.net/baidu_40840693/article/details/85028481