windows下輸出訓練caffemodel的log日誌並畫出accuracy和loss曲線

1、在訓練的指令後加入將日誌導入文件的指令:

"..\caffe.exe" train --solver=E:/caffe/caffe-master/Build/x64/Release/lenet/lenet_solver.prototxt >./log/lenet_mnist.log 2>&1

會在log文件下生成:lenet_mnist.log.test lenet_mnist.log.train兩個文件


2、將E:\caffe\caffe-master\tools\extra目錄下的:

plot_training_log.py.example

parse_log.py

extract_seconds.py

文件拷貝到log文件下,然後重命名plot_training_log.py.example爲plot_training_log.py


3、修改plot_training_log.py

下面修改的部分是爲了和生成的文件格式對應,如下圖


3.1 修改函數load_data,分割符號爲','

def load_data(data_file, field_idx0, field_idx1):
    data = [[], []]
    line_index = 0
    with open(data_file, 'r') as f:
        for line in f:
            if line_index == 0:
                line_index += 1
                continue
            line = line.strip(',')
            if line[0] != '#':
                fields = line.split(',')
                data[0].append(float(fields[field_idx0].strip()))
                data[1].append(float(fields[field_idx1].strip()))
    return data

3.2 修改解析的文件爲python版本

def get_log_parsing_script():
    dirname = os.path.dirname(os.path.abspath(inspect.getfile(
        inspect.currentframe())))
    return dirname + '/parse_log.py'

3.3 修改執行python解析日誌文件的程序parse_log.py

def plot_chart(chart_type, path_to_png, path_to_log_list):
    for path_to_log in path_to_log_list:
        os.system('%s %s %s %s' % ('F:/wxf/Anaconda2/python.exe', 
                                   get_log_parsing_script(), 
                                   path_to_log, 
                                   'E:/caffe/caffe-master/Build/x64/Release/lenet/log/'))
        ...

然後就ok了


4、Supported chart types:
    0: Test accuracy  vs. Iters
    1: Test accuracy  vs. Seconds
    2: Test loss  vs. Iters
    3: Test loss  vs. Seconds
    4: Train learning rate  vs. Iters
    5: Train learning rate  vs. Seconds
    6: Train loss  vs. Iters
    7: Train loss  vs. Seconds


5、執行的腳本

F:\wxf\Anaconda2\python.exe plot_training_log.py 4 save.png lenet_mnist.log lenet_mnist_dropout.log


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章