windows 10
准备好数据文件output.out
数据格式为:
loading from saved model ./results/contrast_acdc_pcl_temp01_thresh035_lr01_epochs200_sa_nomovev1_bs32_4thf_2022-06-27_13-29-36/model/epoch_200.pth
number of parameters: 17462016
train_keys:[73, 18, 1, 15, 95, 6]
val_keys:[ 5 10 14 21 26 29 34 36 41 43 50 52 61 64 66 70 76 79 87 89]
dataset length: 118
dataset length: 360
Using cos LR Scheduler!
Training epoch:0, batch:0/30, lr:0.001500, loss:1.7975, mean Dice:0.0186
…
Validation epoch:0, batch:0/90, mean Dice:0.2478105182139975
…
Epoch: 0 Training Loss 0.5768 Validation Dice 0.0788
…
需要提取出其中“Epoch: 0”那一行的“0”“Dice”“0.0788”位置的数据,方便进行统计和对照。
步骤如下:
1.创建一个process.bat文件,在其中输入如下代码(注意,如下面注释所示,"tab="后面需要接一个制表符(tab键输入)):
@echo off
set name=output_sa_m6_bs2_lr1e-3_bs32_4thf
set tab=
:: 注意,上面"tab="后面需要接一个制表符(tab键输入)
for /f "tokens=1,2,7,8" %%i in (%name%.out) do if %%i==Epoch: echo %%j%tab%%%k%tab%%%l>>%name%.txt
将数据文件output.out和脚本文件process.bat放在同一个文件夹里,然后双击process.bat运行bat脚本(也可以在cmd中运行),就获得了output.txt。
打开Excel,“数据”-“从文本/CSV获取数据”-“加载”(或者,直接把output.txt的内容复制到Excel里面),即可获得初步整理后的数据(按照Epoch排列),接下来即可进行方便的统计和比较了。
参考文献
怎么用bat取文件中某一行中某一特定的内容
BAT中在批量LOG文件中将含有特定字符串的行找出来并保存
bat脚本:快速入门
BAT脚本编写教程(比较易懂和全面)