此篇文章主要是給大家介紹了caffe的python插口制作loss和accuracy曲線圖實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪
前言
使用python插口來運行caffe程序流程,根本原因是python很容易數(shù)據(jù)可視化。所以才建議大家在cmd下邊運行python程序流程。如果一定要在cmd下邊運作,不如直接用c++算了。
強烈推薦使用jupyternotebook,spyder等設(shè)備來運行python編碼,這樣也和它數(shù)據(jù)可視化完美融合在一起。
anaconda庫
我屬于用anaconda來組裝一連串python三方庫的,因此我所使用的是spyder,與matlab頁面類似的這款在線編輯器,在運行中,可以看一下各自變量數(shù)值,有利于了解,如下圖所示:
只要安裝了anaconda,運行方式也非常方便,直接在終端輸入spyder命令就可以了。
python接口實現(xiàn)
在caffe的訓(xùn)練過程中,我們?nèi)绻胫滥硞€階段的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,即最大解算次數(shù) niter=9380 #每隔100次收集一次數(shù)據(jù) display=100 #每次測試進行100次解算,10000/100 test_iter=100 #每500次訓(xùn)練進行一次測試(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) #每迭代一次,訓(xùn)練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()
最后生成的圖表在上圖中已經(jīng)顯示出來了。
綜上所述,這篇文章就給大家解答完畢了,希望可以給大家?guī)韼椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/128756.html
此篇文章主要是詳細介紹了caffe的python插口形成環(huán)境變量學(xué)習(xí)培訓(xùn),感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪 caffe是C++語言表達所寫的,可能大家不太熟,所以想要更方便的編程語言來達到。caffe給予matlab接口和python插口,這幾種語言表達就比較簡單,并且很容易開展數(shù)據(jù)可視化,導(dǎo)致學(xué)習(xí)培訓(xùn)更為迅速,了解更加深刻?! ∫荒昵?,我在...
文中主要是給大家介紹了caffe的python插口之手寫數(shù)字識別mnist案例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪 論文引言 機器學(xué)習(xí)第一個案例一般都是是mnist,只需這個案例徹底搞懂了,其他的便是觸類旁通的事了。因為字數(shù)緣故,文中不簡單介紹環(huán)境變量里邊每一個指標的具體函義,如果要搞明白的,請參考我之前的微博文章: 數(shù)據(jù)訪問層及主...
本文主要是給大家介紹了caffe的python插口生成deploy文件學(xué)習(xí)培訓(xùn)及其用練習(xí)好一點的實體模型(caffemodel)來歸類新的圖片實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪 caffe的python插口生成deploy文件 假如要將練習(xí)好一點的實體模型用于檢測新的圖片,那必然必須得一個deploy.prototxt文件,這一...
小編寫這篇文章的一個主要目的,主要是給大家做一個詳細的介紹,介紹的內(nèi)容主要是利用Python知識,利用Python去實現(xiàn)RNN與堆疊的RNN,具體的實例代碼,下面就給大家詳細的去做一個解答?! ?、雙向RNN 雙向RNN(Bidirectional RNN)的結(jié)構(gòu)如下圖所示?! ? 雙向的RNN是同時考慮過去和未來的信息。上圖是一個序列長度為4的雙向RNN結(jié)構(gòu)?! ‰p向RNN就像是我們做閱...
本文主要是給大家介紹了caffe的python插口形成solver文件詳細說明學(xué)習(xí)培訓(xùn)實例,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的不斷進步,盡早漲薪 也有一些基本參數(shù)必須計算出來的,并不是亂設(shè)定?! olver.prototxt的文件參數(shù)設(shè)置 caffe在訓(xùn)練的時候,需要一些參數(shù)設(shè)置,我們一般將這些參數(shù)設(shè)置在一個叫solver.prototxt的文件里面,如...
閱讀 1170·2023-01-14 11:38
閱讀 1160·2023-01-14 11:04
閱讀 987·2023-01-14 10:48
閱讀 2538·2023-01-14 10:34
閱讀 1241·2023-01-14 10:24
閱讀 1124·2023-01-14 10:18
閱讀 736·2023-01-14 10:09
閱讀 818·2023-01-14 10:02