一文详解L1-loss和L2-loss(pytorch版本)

import torch.nn as nn
import torch
pixelwise_loss = nn.L1Loss(reduction='mean')  #平均绝对误差,L1-损失
loss2=nn.MSELoss()  #L2-损失
x1=torch.zeros([2,2])
x2=torch.ones([2,2])
x3=torch.tensor([[0.125,0.5],[0.5,0.5]])
y=pixelwise_loss(x3,x2)
print('L1Loss:',y.item())
print(((1-0.125)+0.5*3)/4)
y1=loss2(x3,x2)
print('L2Loss:',y1.item())
print(((1-0.125)**2+(0.5**2)*3)/4)
AMC-loss (Adversarial Mutual Contrast) 是一种在深度学习中用于增强模型对对抗样本鲁棒性的损失函数。它结合了对抗训练(adversarial training)和对比学习的思想,通过同时优化模型的正向预测和负向区分能力。在PyTorch中实现AMC-loss,你需要定义一个新的损失函数,并可能在训练循环中使用`nn.Module`或自定义优化器。 以下是一个简单的AMC-lossPyTorch代码概述: ```python import torch import torch.nn as nn class AMCContrastLoss(nn.Module): def __init__(self, base_loss, device='cuda'): super(AMCContrastLoss, self).__init__() self.base_loss = base_loss self.device = device self.criterion = nn.CrossEntropyLoss() def forward(self, outputs, targets, adversarial_samples): # 假设outputs是模型的预测,targets是真实标签,adversarial_samples是生成的对抗样本 real_pred, adv_pred = outputs[0], outputs # 分离原始输出和对抗输出 # 正向预测 real_loss = self.base_loss(real_pred, targets) # 负向区分(对比学习) contrast_logits = torch.cat((real_pred, adv_pred), dim=0) contrast_labels = torch.cat((torch.zeros_like(targets), torch.ones_like(targets)), dim=0).to(self.device) contrast_loss = self.criterion(contrast_logits, contrast_labels) # 总损失 total_loss = real_loss + contrast_loss return total_loss # 使用示例 model = MyModel().to(device) optimizer = torch.optim.Adam(model.parameters()) amc_loss = AMCContrastLoss(nn.CrossEntropyLoss()) for inputs, targets in train_loader: inputs, targets = inputs.to(device), targets.to(device) adversarial_inputs = generate_adversarial(inputs) # 假设这个函数能生成对抗样本 outputs = model(inputs, adversarial_inputs) loss = amc_loss(outputs, targets, adversarial_inputs) optimizer.zero_grad() loss.backward() optimizer.step() ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值