此篇文章主要是給大家介紹了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()
最后生成的圖表在上圖中已經顯示出來了。
綜上所述,這篇文章就給大家解答完畢了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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,具體的實例代碼,下面就給大家詳細的去做一個解答?! ?、雙向RNN 雙向RNN(Bidirectional RNN)的結構如下圖所示?! ? 雙向的RNN是同時考慮過去和未來的信息。上圖是一個序列長度為4的雙向RNN結構?! ‰p向RNN就像是我們做閱...
本文主要是給大家介紹了caffe的python插口形成solver文件詳細說明學習培訓實例,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的不斷進步,盡早漲薪 也有一些基本參數必須計算出來的,并不是亂設定?! olver.prototxt的文件參數設置 caffe在訓練的時候,需要一些參數設置,我們一般將這些參數設置在一個叫solver.prototxt的文件里面,如...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02