liux0614 / yolo_nano

Unofficial implementation of yolo nano
MIT License
254 stars 72 forks source link

较难收敛 #8

Closed mozpp closed 4 years ago

mozpp commented 5 years ago

up主有尝试训练吗? 我用coco2017练,iou0.5,mAP0.19

liux0614 commented 5 years ago

你的loss从多少降到多少 我还在跑 但是loss从200多到17多 这应该算收敛了

JsBlueCat commented 5 years ago

你的loss从多少降到多少 我还在跑 但是loss从200多到17多 这应该算收敛了吧

我用了BCEWITHLOGITHS 难以收敛 但是 BCE 下降到了 18 了 然后 使用了 adabound 作为训练 收敛速度更快

def init_func(m):
        classname = m.__class__.__name__
        if hasattr(m, 'weight') and (classname.find('Conv') != -1 or classname.find('Linear') != -1):
            init.xavier_normal_(m.weight.data, gain=0.02)
        elif classname.find('BatchNorm2d') != -1:
            init.normal_(m.weight.data, 1.0, 0.02)
            init.constant_(m.bias.data, 0.0)
model.apply(init_func)

然后初始化权重 使用 xavier

详细的可以看 https://2efffd44.ngrok.io/#scalars&_smoothingWeight=0 我觉得 pytorch 没有实现 dw

liux0614 commented 5 years ago

我用了BCEWITHLOGITHS 难以收敛 但是 BCE 下降到了 18 了 然后 使用了 adabound 作为训练 收敛速度更快

def init_func(m):
        classname = m.__class__.__name__
        if hasattr(m, 'weight') and (classname.find('Conv') != -1 or classname.find('Linear') != -1):
            init.xavier_normal_(m.weight.data, gain=0.02)
        elif classname.find('BatchNorm2d') != -1:
            init.normal_(m.weight.data, 1.0, 0.02)
            init.constant_(m.bias.data, 0.0)
model.apply(init_func)

然后初始化权重 使用 xavier

详细的可以看 https://2efffd44.ngrok.io/#scalars&_smoothingWeight=0 我觉得 pytorch 没有实现 dw

请问你adabound的参数是如何设置的呢

JsBlueCat commented 4 years ago

我用了BCEWITHLOGITHS 难以收敛 但是 BCE 下降到了 18 了 然后 使用了 adabound 作为训练 收敛速度更快

def init_func(m):
        classname = m.__class__.__name__
        if hasattr(m, 'weight') and (classname.find('Conv') != -1 or classname.find('Linear') != -1):
            init.xavier_normal_(m.weight.data, gain=0.02)
        elif classname.find('BatchNorm2d') != -1:
            init.normal_(m.weight.data, 1.0, 0.02)
            init.constant_(m.bias.data, 0.0)
model.apply(init_func)

然后初始化权重 使用 xavier 详细的可以看 https://2efffd44.ngrok.io/#scalars&_smoothingWeight=0 我觉得 pytorch 没有实现 dw

请问你adabound的参数是如何设置的呢

optimizer = adabound.AdaBound(model.parameters(), lr=1e-3, final_lr=0.1)