多标签分类,数据,模型,训练输入输出

DataFountain-天气以及时间分类:CNN多标签分类 准确率0.92

数据:
	dataset返回: img   标签1 标签2 标签3

模型 backbone 
              + fc1
              + fc2
              + fc3
      
	    def forward(self, x):
	        out = self.backbone(x)
	        # 同时完成类别1 和 类别2 分类
	        logits1 = self.fc1(out)
	        logits2 = self.fc2(out)
	        return logits1, logits2
训练:
    # 模型训练
    model.train()
    for i, (x, y1, y2) in enumerate(train_loader): #图片x  标签  y1 y2
        pred1, pred2 = model(x)   # 模型返回对应,标签属性下的多分类头,加入标签计算损失函数

        # 类别1 loss + 类别2 loss 为总共的loss  ,多个损失就变成多个分类损失相加
        loss = criterion(pred1, y1) + criterion(pred2, y2)
        Train_Loss.append(loss.item())
        loss.backward()
        optimizer.step()
        optimizer.clear_grad()

        Train_ACC1.append((pred1.argmax(1) == y1.flatten()).numpy().mean())
        Train_ACC2.append((pred2.argmax(1) == y2.flatten()).numpy().mean())
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LSTM模型输入和输出格式可以根据具体问题的需求进行定义和调整。以下是一般情况下LSTM模型输入和输出格式的描述: 输入: 1. 形状:LSTM模型输入是一个三维张量,通常为 (样本数, 时间步长, 特征数) 的形式。其中,样本数表示输入数据的样本数量,时间步长表示序列数据的长度或时间步数,特征数表示每个时间步的特征数量。 2. 特征:输入特征可以是各种类型的数据,如数字、文本、图像等。在处理文本序列时,常用的表示方法是将文本转换为词嵌入向量。在处理数字序列时,可以直接使用原始数值。 3. 归一化:在训练LSTM模型之前,通常需要对输入数据进行归一化或标准化处理,以确保数据的相对范围一致。 输出: 1. 预测值:根据具体的任务,LSTM模型的输出可以是一个或多个预测值。例如,在时序预测任务中,输出可以是下一个时间步的预测值;在分类任务中,输出可以是类别标签的概率分布。 2. 形状:输出通常与输入数据的形状相匹配。对于时序预测任务,输出的形状通常是 (样本数, 预测步长, 目标特征数);对于分类任务,输出的形状通常是 (样本数, 类别数)。 需要注意的是,具体模型输入和输出格式可能因具体问题而有所不同。在实际应用中,根据具体需求和任务目标,可能需要对输入和输出进行调整和适配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值