首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何进行多头学习

如何进行多头学习
EN

Stack Overflow用户
提问于 2019-11-20 08:55:48
回答 2查看 1.5K关注 0票数 7

我有大约5种模式,它们各自训练得很好,但我想把它们融合在一起,以便有一个大型号。我正在研究它,因为一个大模型比许多小模型更容易更新(在生产中)--这是我想要实现的目标。

我的问题是,这样做可以吗?有一个人头模型的数据集,我该如何训练整个模型?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-24 00:16:47

我的问题是,这样做可以吗?

你当然能做到。这种方法称为多任务学习。取决于您的数据集和您想要做的事情,它甚至可能会提高性能。微软使用多任务模型来实现NLP基准测试的一些好结果,但他们也指出,通过细化每个单独任务的联合模型,可以进一步提高性能。

有一个人头模型的数据集,我该如何训练整个模型?

你所需要的只是火把ModuleList

代码语言:javascript
运行
复制
#please note this is just pseudocode and I'm not well versed with computer vision
#therefore you need to check if resnet50 import is correct and look 
#for the imports of the task specific stuff
from torch import nn
from torchvision.models import resnet50

class MultiTaskModel(nn.Module):
    def __init__(self):
        #shared part
        self.resnet50 = resnet50()

        #task specific stuff
        self.tasks = nn.ModuleList()
        self.tasks.add_module('depth', Depth())
        self.tasks.add_module('denseflow', Denseflow())
        #...

    def forward(self, tasktag, ...):
        #shared part
        resnet_output = self.resnet50(...)

        #task specific parts
        if tasktag == 'depth':
            return self.tasks.depth(resnet_output)
        elif tasktag == 'denseflow':
            return self.tasks.denseflow(resnet_output)
        #...
票数 4
EN

Stack Overflow用户

发布于 2019-11-20 11:04:26

只是为了一个想法,您可以检查Detectron2项目,特别是模型是如何加入的。

很有可能,他们使用的一些想法,你也可以使用。

将模型融合在一起意味着定义主模型(包含子模型)的输入和输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58950272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档