美文网首页
如何用标签信息做半监督学习

如何用标签信息做半监督学习

作者: heishanlaoniu | 来源:发表于2021-12-02 11:25 被阅读0次
# 主要是用索引信息 用监督样本来做训练
    def train(model, epochs):
        model.train()
        optimizer.zero_grad()
        output, att, emb1, com1, com2, emb2, emb= model(features, sadj, fadj)
        loss_class =  F.nll_loss(output[idx_train], labels[idx_train])
        #  !!!主要是这里 监督损失的索引只用idx_train的!!!
        loss_dep = (loss_dependence(emb1, com1, config.n) + loss_dependence(emb2, com2, config.n))/2
        loss_com = common_loss(com1,com2)
        loss = loss_class + config.beta * loss_dep + config.theta * loss_com
        acc = accuracy(output[idx_train], labels[idx_train])
        loss.backward()
        optimizer.step()
        acc_test, macro_f1, emb_test = main_test(model)
        print('e:{}'.format(epochs),
              'ltr: {:.4f}'.format(loss.item()),
              'atr: {:.4f}'.format(acc.item()),
              'ate: {:.4f}'.format(acc_test.item()),
              'f1te:{:.4f}'.format(macro_f1.item()))
        return loss.item(), acc_test.item(), macro_f1.item(), emb_test

    def main_test(model):
        model.eval()
        output, att, emb1, com1, com2, emb2, emb = model(features, sadj, fadj)
        acc_test = accuracy(output[idx_test], labels[idx_test])
        #  !!!这里测试的时候就用了测试的索引!!!
        label_max = []
        for idx in idx_test:
            label_max.append(torch.argmax(output[idx]).item())
        labelcpu = labels[idx_test].data.cpu()
        macro_f1 = f1_score(labelcpu, label_max, average='macro')

相关文章

  • 如何用标签信息做半监督学习

  • ml chapter1机器学习的分类

    1,监督学习:数据与标签的2,非监督学习:只有数据没有标签3,半监督学习:监督学习+半监督学习4,强化学习:训练中...

  • Introduction of Machine Learning

    解释 监督学习:有标签数据 半监督学习:部分有标签 非监督学习:无标签 迁移学习:用非相关数据(含标签)来优化目标...

  • 阅读笔记:半监督学习方法

    论文:半监督学习方法 关键词:半监督;有监督学习;半监督学习;无监督学习;SSL;无类标签样例;Semi-Supe...

  • Semi-supervised Learning

    我们知道监督学习就是使用带标签的数据进行学习,无监督学习就是使用无标签的数据进行学习,那么顾名思义,半监督学习就是...

  • 儿童科学实验套装

    ​机器学习可以分为监督学习,半监督学习,非监督学习,强化学习,深度学习等。监督学习是先用带有标签的数据集合学习得到...

  • 伪标签半监督学习

    之前在训练YoutubeNet和DCN的时候,我都发现平台用户中基础用户的信息数据缺失率特别高,比如性别一栏准确填...

  • 【百面机器学习】非监督学习-K均值聚类

    相对于监督学习,非监督学习的输入数据没有标签信息,需要通过算法模型来挖掘数据内在的结构和模式。非监督学习主要...

  • 【机器学习与R语言】11- Kmeans聚类

    1.理解Kmeans聚类 1)基本概念 聚类:无监督分类,对无标签案例进行分类。 半监督学习:从无标签的数据入手,...

  • Graph Random Neural Networks for

    前言 NIPS2020中关于图半监督学习的研究:本文研究图的半监督学习问题,当标签节点稀缺时,大多数已有的广义神经...

网友评论

      本文标题:如何用标签信息做半监督学习

      本文链接:https://www.haomeiwen.com/subject/eweyxrtx.html