用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()
  • 绘制好的图
    用Python在训练好的log文件中提取出数据并画图_第1张图片
    这是选择了其中30个点进行绘制后的图

你可能感兴趣的:(Python)