1. 程式人生 > >用Python在訓練好的log檔案中提取出資料並畫圖

用Python在訓練好的log檔案中提取出資料並畫圖

  • 在caffe框架下,對訓練好的log0檔案用Python中正則表示式進行匹配,提取出每一次顯示的accuracy,並對其進行在Spyder中運用pyplot進行畫圖。
  • 程式碼
    這是拿訓練資料為3000000個進行繪圖的程式碼。每10000次顯示一次,總共有300個值,我們每10個值取一次進行畫圖即對資料進行視覺化。
import re
import string
import matplotlib.pyplot as plt
import numpy as np
if __name__=='__main__':
    file=open('/home/cheam/caffe_3/log.txt','r')
    display=[]
    List=[]
    max_iter=[]
    for
line in file: m=re.search('accuracy',line) if m: n=re.search('[0]\.[0-9]+',line)#正則表示式 if n is not None: List.append(n.group()) dis=re.match('display',line) if dis: d=re.search('[0-9]+',line)#正則表示式 if d is not
None: display.append(d.group()) max=re.match('max_iter',line) if max: x=re.search('[0-9]+',line)#正則表示式 if x is not None: max_iter.append(x.group()) file.close() display[0]=int(display[0]) max_iter[0]=int(max_iter[0]) max_iter[0
]=max_iter[0]/display[0] display[0]=display[0]/display[0] count=np.linspace(10,max_iter[0],30) accuracy=[] for i in range(0,300): if i%10==0: accuracy.append(float(List[i])) plt.plot(count,accuracy,'b*') plt.plot(count,accuracy,'r') plt.xlabel('count') plt.ylabel('accuracy') plt.title('Accuracy') plt.legend() plt.show()
  • 繪製好的圖

    這是選擇了其中30個點進行繪製後的圖