此篇文章主要是给大家介绍了caffe的python插口制作loss和accuracy曲线图实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪
前言
使用python插口来运行caffe程序流程,根本原因是python很容易数据可视化。所以才建议大家在cmd下边运行python程序流程。如果一定要在cmd下边运作,不如直接用c++算了。
强烈推荐使用jupyternotebook,spyder等设备来运行python编码,这样也和它数据可视化完美融合在一起。
anaconda库
我属于用anaconda来组装一连串python三方库的,因此我所使用的是spyder,与matlab页面类似的这款在线编辑器,在运行中,可以看一下各自变量数值,有利于了解,如下图所示:
只要安装了anaconda,运行方式也非常方便,直接在终端输入spyder命令就可以了。
python接口实现
在caffe的训练过程中,我们如果想知道某个阶段的loss值和accuracy值,并用图表画出来,用python接口就对了。
#-*-coding:utf-8-*- """ Created on Tue Jul 19 16:22:22 2016 author:root """ import matplotlib.pyplot as plt import caffe caffe.set_device(0) caffe.set_mode_gpu() #使用SGDSolver,即随机梯度下降算法 solver=caffe.SGDSolver('/home/xxx/mnist/solver.prototxt') #等价于solver文件中的max_iter,即最大解算次数 niter=9380 #每隔100次收集一次数据 display=100 #每次测试进行100次解算,10000/100 test_iter=100 #每500次训练进行一次测试(100次解算),60000/64 test_interval=938 #初始化 train_loss=zeros(ceil(niter*1.0/display)) test_loss=zeros(ceil(niter*1.0/test_interval)) test_acc=zeros(ceil(niter*1.0/test_interval)) #iteration 0,不计入 solver.step(1) #辅助变量 _train_loss=0;_test_loss=0;_accuracy=0 #进行解算 for it in range(niter): #进行一次解算 solver.step(1) #每迭代一次,训练batch_size张图片 _train_loss+=solver.net.blobs['SoftmaxWithLoss1'].data if it%display==0: #计算平均train loss train_loss[it//display]=_train_loss/display _train_loss=0 if it%test_interval==0: for test_it in range(test_iter): #进行一次测试 solver.test_nets[0].forward() #计算test loss _test_loss+=solver.test_nets[0].blobs['SoftmaxWithLoss1'].data #计算test accuracy _accuracy+=solver.test_nets[0].blobs['Accuracy1'].data #计算平均test loss test_loss[it/test_interval]=_test_loss/test_iter #计算平均test accuracy test_acc[it/test_interval]=_accuracy/test_iter _test_loss=0 _accuracy=0 #绘制train loss、test loss和accuracy曲线 print'nplot the train loss and test accuracyn' _,ax1=plt.subplots() ax2=ax1.twinx() #train loss->绿色 ax1.plot(display*arange(len(train_loss)),train_loss,'g') #test loss->黄色 ax1.plot(test_interval*arange(len(test_loss)),test_loss,'y') #test accuracy->红色 ax2.plot(test_interval*arange(len(test_acc)),test_acc,'r') ax1.set_xlabel('iteration') ax1.set_ylabel('loss') ax2.set_ylabel('accuracy') plt.show()
最后生成的图表在上图中已经显示出来了。
综上所述,这篇文章就给大家解答完毕了,希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128756.html
此篇文章主要是详细介绍了caffe的python插口形成环境变量学习培训,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪 caffe是C++语言表达所写的,可能大家不太熟,所以想要更方便的编程语言来达到。caffe给予matlab接口和python插口,这几种语言表达就比较简单,并且很容易开展数据可视化,导致学习培训更为迅速,了解更加深刻。 一年前,我在...
文中主要是给大家介绍了caffe的python插口之手写数字识别mnist案例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪 论文引言 机器学习第一个案例一般都是是mnist,只需这个案例彻底搞懂了,其他的便是触类旁通的事了。因为字数缘故,文中不简单介绍环境变量里边每一个指标的具体函义,如果要搞明白的,请参考我之前的微博文章: 数据访问层及主...
本文主要是给大家介绍了caffe的python插口生成deploy文件学习培训及其用练习好一点的实体模型(caffemodel)来归类新的图片实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪 caffe的python插口生成deploy文件 假如要将练习好一点的实体模型用于检测新的图片,那必然必须得一个deploy.prototxt文件,这一...
小编写这篇文章的一个主要目的,主要是给大家做一个详细的介绍,介绍的内容主要是利用Python知识,利用Python去实现RNN与堆叠的RNN,具体的实例代码,下面就给大家详细的去做一个解答。 1、双向RNN 双向RNN(Bidirectional RNN)的结构如下图所示。 双向的RNN是同时考虑过去和未来的信息。上图是一个序列长度为4的双向RNN结构。 双向RNN就像是我们做阅...
本文主要是给大家介绍了caffe的python插口形成solver文件详细说明学习培训实例,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的不断进步,尽早涨薪 也有一些基本参数必须计算出来的,并不是乱设定。 solver.prototxt的文件参数设置 caffe在训练的时候,需要一些参数设置,我们一般将这些参数设置在一个叫solver.prototxt的文件里面,如...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 684·2023-01-14 10:48
阅读 1887·2023-01-14 10:34
阅读 891·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 479·2023-01-14 10:09
阅读 519·2023-01-14 10:02