Giter VIP home page Giter VIP logo

Comments (4)

yatengLG avatar yatengLG commented on May 27, 2024

在初始化模型之后,先导入模型参数即可。
以 Retinanet-Pytorch/Demo_train.py 文件为例,按照以下修改即可

`

# 初始化模型
net = RetainNet(cfg)

# 这里先导入你的已经训练好的模型权重文件
net.load_state_dict(torch.load("XXX"))

# 将模型移动到gpu上,cfg.DEVICE.MAINDEVICE定义了模型所使用的主GPU
net.to(cfg.DEVICE.MAINDEVICE)

# 初始化训练器,训练器参数通过cfg进行配置;也可传入参数进行配置,但不建议
trainer = Trainer(cfg)

# 训练器开始在 数据集上训练模型
trainer(net, train_dataset)

`

from retinanet-pytorch.

mur909 avatar mur909 commented on May 27, 2024

已试成功,非常感谢。那如果训练集类别个数与原先训练的权重类别不一样,那如何抑制后面的几层

from retinanet-pytorch.

yatengLG avatar yatengLG commented on May 27, 2024

由于你类别数都不一样,必须更改模型结构。

你可以这样更改,先初始化模型 -> 导入参数 -> 然后更改模型中的predictor 结构,也就是最后的分类和回归的几层。

这样的做法流程是:
`

# 初始化模型
net = RetainNet(cfg)

# 这里先导入你的已经训练好的模型权重文件
net.load_state_dict(torch.load("XXX"))

# 导入 predictor 结构,并进行初始化。
from Model.struct import predictor  
# 将模型中的predictor替换为新的predictor
net.predictor = predictor(num_anchors=anchor数(如果没有更改anchor,那就是9), num_classes=新类别数)

# 将模型移动到gpu上,cfg.DEVICE.MAINDEVICE定义了模型所使用的主GPU
net.to(cfg.DEVICE.MAINDEVICE)

# 初始化训练器,训练器参数通过cfg进行配置;也可传入参数进行配置,但不建议
trainer = Trainer(cfg)

# 训练器开始在 数据集上训练模型
trainer(net, train_dataset)

`

这样做,模型前面的参数均是你训练好的参数,只有predictor 是随机初始化的,你可以使用这种方法进行迁移。

from retinanet-pytorch.

mur909 avatar mur909 commented on May 27, 2024

我原本的思路是只改predictor中分类的最后一个卷积层然后训练,但是现在想想那样可能效果并不好,还是应该像你这样,重新训练head部分。

from retinanet-pytorch.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.