当前位置: 首页 > news >正文

常用的损失函数pytorch实现

梯度损失: 

先利用sobel算子计算梯度,然后计算计算出来梯度的一范数。

实现:
定义Sobelxy类。

class Sobelxy(nn.Module):
    def __init__(self):
        super(Sobelxy, self).__init__()
        kernelx = [[-1, 0, 1],
                  [-2,0 , 2],
                  [-1, 0, 1]]
        kernely = [[1, 2, 1],
                  [0,0 , 0],
                  [-1, -2, -1]]
        kernelx = torch.FloatTensor(kernelx).unsqueeze(0).unsqueeze(0)
        kernely = torch.FloatTensor(kernely).unsqueeze(0).unsqueeze(0)
        self.weightx = nn.Parameter(data=kernelx, requires_grad=False).cuda()
        self.weighty = nn.Parameter(data=kernely, requires_grad=False).cuda()
    def forward(self,x):
        sobelx=F.conv2d(x, self.weightx, padding=1)
        sobely=F.conv2d(x, self.weighty, padding=1)
        return torch.abs(sobelx)+torch.abs(sobely)

实例化类


http://www.mrgr.cn/news/70597.html

相关文章:

  • C++:探索AVL树旋转的奥秘
  • 基于SpringBoot+Vue的高校社团管理系统
  • 算法的空间复杂度
  • pdf文档动态插入文字水印,45度角,旋转倾斜,位于文档中央,多行水印可插入中文
  • Hive基础面试-如何理解复用率的
  • 使用docker另外一种形式containerd
  • Oracle OCP认证考试考点详解082系列18
  • 代码随想录算法训练营Day14 | 226.翻转二叉树、101. 对称二叉树、104.二叉树的最大深度、111.二叉树的最小深度
  • 信息安全数学基础(47)域的结构
  • PCL 点云分割 分割圆柱体模型
  • PCL 点云分割 分割指定平面
  • 功率板布局布线进阶【一】
  • 以太网的发展
  • 大数据学习12之HBase
  • Chrome如何查看保存的网站密码,如此简单!
  • 使用PsExec工具
  • java双向链表解析实现双向链表的创建含代码
  • 仅想要实现一个网站登录者之间可以进行临时会话的功能, 需要几张数据表? 人工ai替你回答(ai版)
  • 全网最详细的自动化测试(Jenkins 篇)
  • 算法学习第一弹——C++基础
  • 在线绘制带community的蛋白质-蛋白质相互作用(PPI)网络图
  • 【JAVA】-WEB开发基础
  • 牛客周赛 Round 67
  • UE5遇到问题记录
  • More Effective C++:异常
  • C++builder中的人工智能(21):Barabási–Albert model(BA)模型