Open Whu-wxy opened 5 years ago
训练几轮测试一次的结果,与保存的模型文件单独进行测试的结果不一致。解决:train.py的eval里,加了一句“if max(h, w) > long_size:”,但是在eval.py中没有这一句,意思是训练后的test中,图片不进行放大,因此得到的f值较小。把这个if注释掉后f值从60多提高到80多。
# if max(h, w) > long_size:
scale = long_size / max(h, w)
img = cv2.resize(img, None, fx=scale, fy=scale)
pytorch1.1之后,scheduler.step()要放到optimizer.step()之后?改变位置之后没有warning了,效果未知。
epoch信息没有正确保存?加载模型需要手动赋值?
很赞 有时间提个pr吧
赞
@Whu-wxy 请问你调节到了多少哦
@GYxiaOH decode的threshold调到0.58,达到79.x,后来手动调低学习率继续训练,到了80.8。用的optimizer是ranger。
@Whu-wxy 好的,谢谢。另外我觉得train里那个图片没必要放大,因为validation的时候主要是看看结果好不好,不要求最高结果,train里图片要放大的话validation的速度就变慢了不少
@GYxiaOH 嗯,主要是我有看最高结果的需要,这个可以在config里设置个开关
@Whu-wxy python 3.7 重新编译pse在eval的时候会出现段错误,你遇到过这个问题吗
没有,我编译挺顺利的
@Whu-wxy 我把decode的阈值调到0.58 f确实涨了,但是召回率掉了好多,这我没想通,理论上更多点了不应该召回率下降精确度升高吗。。。奇了怪了
楼主,我在训练了一半之后,停电了,想继续训练,修改如下:
#checkpoint = '' checkpoint = '/dahuafs/userdata/01_PDF/01_PSENet/output/psenet_icd2015_resnet152_4gpu_author_crop_adam_MultiStepLR_authorloss/PSENet_36_loss0.055750.pth'
restart_training = False
#start_epoch = 0
start_epoch = 37
但是在训练的时候碰到,
PermissionError: [Errno 13] Permission denied: 'train_log'
请问怎么解决一下
第八点不能放到optimizer.step()之后,这样每个epoch学习率都会变化,不会按照设定的阶段走。文档上面例子也是在批次训练之后调用。
另外有一点不明,这里###这样没有打标签的不应该设置为False吗,为什么代码里面是True?
if label == '*' or label == '###': tags.append(True) else: tags.append(False)
作者的代码很棒,但是这几天我在实际的实验中遇到了一些问题并进行了其他几处改进,在这里分享一下。
eval失败。解决:script.py文件中16,17行改为 'GT_SAMPLE_NAME_2_ID': 'gtimg([0-9]+).txt', 'DET_SAMPLE_NAME_2_ID': 'resimg([0-9]+).txt'
其他python版本编译pse.so出错。我修改makefile文件编译成功了。详情见:https://blog.csdn.net/ab0902cd/article/details/88352417
训练过程中writer保存了很多图片,但是我感觉用不到,而且保存图片后log文件会很大,可以添加一个if条件。例如添加: if config.display_input_images:
scale设置2或4时报错,尺寸不匹配。原因是模型得到的图是160x160,但是label图是640x640的。 解决:看了一下原作者的代码,train时不设置scale,test时设置scale。
加载模型出错。解决:train.py文件,main的 start_epoch = load_checkpoint(config.checkpoint, model, logger, device) ,load_checkpoint的参数optimizer是None时,不加载文件中记录的optimizer,不是None时,加载文件中记录的optimizer,但是文件中保存的不知道是sgd还是adam,在前面设置optimizer时如果不匹配会报错。这里我感觉最好是参数None,就不会报错。 然后后面的MultiStepLR(optimizer, config.lr_decay_step, gamma=config.lr_gamma,last_epoch=-1),最后的参数设置-1,这个是我在其他issue里看到的。
6.保存太多模型文件。main这里我稍微改了一下,改成如果出现test结果更高的,就把以前存的所有文件删除。