用Python在訓練好的log檔案中提取出資料並畫圖
阿新 • • 發佈:2019-01-29
- 在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個點進行繪製後的圖