IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Pyotorch自定义损失函数 -> 正文阅读

[人工智能]Pyotorch自定义损失函数

pytorch教程之nn.Module类详解——使用Module类来自定义模型

pytorch教程之nn.Module类详解——使用Module类来自定义网络层

1.损失函数知识总结参考:

深度学习笔记总结_GoAI的博客-CSDN博客

PyTorch 笔记.常见的PyTorch损失函数 - 知乎

2.自定义损失函数学习参考:

  1. Loss Function Library - Keras & PyTorch | Kaggle
  2. Pytorch如何自定义损失函数(Loss Function)? - 知乎
  3. pytorch系列12 --pytorch自定义损失函数custom loss function_墨流觞的博客-
  4. 自定义损失函数 - image processing
  5. pytorch教程之损失函数详解——多种定义损失函数的方法

3.定义原始模版:

使用torch.Tensor提供的接口实现:

  1. 继承nn.Module类
  2. 在__init__函数中定义所需要的超参数,在foward函数中定义loss的计算方法。

例子:

    1 	class myLoss(nn.Module):
    2 	    def __init__(self,parameters)
    3 	        self.params = self.parameters
    4 	
    5 	    def forward(self)
    6 	        loss = cal_loss(self.params)
    7 	        return loss

使用:

    1 	criterion=myLoss()
    2 	loss=criterion(……)

4.自定义函数方法

方法一:新建一个类

方案1:只定义loss函数的前向计算公式

在pytorch中定义了前向计算的公式,在训练时它会自动帮你计算反向传播。

class My_loss(nn.Module):

? ? def __init__(self):

? ? ? ? super().__init__()

? ??def forward(self, x, y):

? ? ? ? return torch.mean(torch.pow((x - y), 2))

使用:

criterion = My_loss()

loss = criterion(outputs, targets)

方案2:自定义loss函数的forward和backward

from numpy.fft import rfft2, irfft2

class BadFFTFunction(Function):

? ? def forward(self, input):

? ? ? ? numpy_input = input.numpy()

? ? ? ? result = abs(rfft2(numpy_input))

? ? ? ? return input.new(result)

? ? def backward(self, grad_output):

? ? ? ? numpy_go = grad_output.numpy()

? ? ? ? result = irfft2(numpy_go)

? ? ? ? return grad_output.new(result)

方法二:?自定义函数

看一自定义类中,其实最终调用还是forward实现,同时nn.Module还要维护一些其他变量和状态。不如直接自定义loss函数实现:

# 直接定义函数 , 不需要维护参数,梯度等信息

# 注意所有的数学操作需要使用tensor完成。

def my_mse_loss(x, y):

? ? return torch.mean(torch.pow((x - y), 2))

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:33:38  更:2022-03-04 15:34:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 18:33:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码