将我的自定义损失函数添加到 torch

2023-12-11

我想在 torch 中添加一个损失函数来计算预测值和目标值之间的编辑距离。 有没有一种简单的方法来实现这个想法? 或者我必须编写自己的具有向后和向前函数的类吗?


如果您的标准可以表示为现有模块和标准的组合,那么最好使用容器简单地构造这样的组合。唯一的问题是标准容器被设计为仅与模块一起使用,而不是与标准一起使用。区别在于:forward方法签名:

module:forward(input)
criterion:forward(input, target)

幸运的是,我们可以自由定义自己的容器,它也可以使用标准。例如,顺序:

local GeneralizedSequential, _ = torch.class('nn.GeneralizedSequential', 'nn.Sequential')

function GeneralizedSequential:forward(input, target)
    return self:updateOutput(input, target)
end

function GeneralizedSequential:updateOutput(input, target)
    local currentOutput = input
    for i=1,#self.modules do
        currentOutput = self.modules[i]:updateOutput(currentOutput, target)
    end
    self.output = currentOutput
    return currentOutput
end

下面是如何实现的图解nn.CrossEntropyCriterion具有这个通用的顺序容器:

function MyCrossEntropyCriterion(weights)
    criterion = nn.GeneralizedSequential()
    criterion:add(nn.LogSoftMax())
    criterion:add(nn.ClassNLLCriterion(weights))
    return criterion
end

检查一切是否正确:

output = torch.rand(3,3)
target = torch.Tensor({1, 2, 3})

mycrit = MyCrossEntropyCriterion()
-- print(mycrit)
print(mycrit:forward(output, target))
print(mycrit:backward(output, target))

crit = nn.CrossEntropyCriterion()
-- print(crit)
print(crit:forward(output, target))
print(crit:backward(output, target))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将我的自定义损失函数添加到 torch 的相关文章

  • PyTorch:torch.zeros_like()的用法

    作用 xff1a 产生一个与a相同shape的Tensor 举例 xff1a import torch a 61 torch rand 3 4 产生一个3行4列的0 1的随机Tensor b 61 torch zeros like a 产生
  • PyTorch:torch.Tensor.repeat()、expand()

    目录 1 torch Tensor repeat 2 torch Tensor expand 1 torch Tensor repeat 函数定义 xff1a repeat sizes Tensor 作用 xff1a 在指定的维度上重复这个
  • torch.triu 与 numpy.triu 函数

    triu 61 tri angle u p xff08 我猜的 xff09 顾名思义 xff0c 这个函数的作用相同 xff0c 都是返回上三角矩阵 xff0c 定义分别如下 xff1a numpy triu m k torch triu
  • torch.ge,torch.gt,torch.le

    torch ge torch ge input other out 61 None Tensor 逐元素比较input和other xff0c 即是否 input gt 61 otherinput gt 61 other 如果两个张量有相同
  • NumPy、Torch和Tensorflow 代码对比

    深度学习 在深入学习的基本单位上实施初级到高级操作 gt Excerpts 我习惯于为不同的问题创建新的深度学习架构 xff0c 但选择哪个框架 xff08 Keras Pytorch TensorFlow xff09 通常比较困难 由于其
  • torch在ubuntu16.04下的搭建(cuda9.0+cudnn7.0)

    希望外婆身体越来越好 参考 xff1a http blog csdn net chenhaifeng2016 article details 68957732 http www 52nlp cn E6 B7 B1 E5 BA A6 E5 A
  • 【pytorch函数笔记(二)】torch.nn.Sigmoid()

    import torch nn as nn torch nn Sigmoid 一 sigmoid介绍 sigmoid是激活函数的一种 它会将样本值映射到0到1之间 sigmoid的公式如下 1 1 e
  • pytorch计算模型参数量报错:size mismatch for module.conv1.weight: copying a param with shape torch.Size([16, 3

    错误 RuntimeError Error s in loading state dict for DataParallel size mismatch for module conv1 weight copying a param wit
  • conda环境中配置cuda+cudnn+pytorch深度学习环境

    本文参考 在conda虚拟环境中配置cuda cudnn pytorch深度学习环境 新手必看 简单可行 conda安装cudnn 江江ahh的博客 CSDN博客 一 创建虚拟环境 conda create n mytorch python
  • 【机器学习】PyTorch如何选择最优初始学习率

    众所周知 机器学习尤其是现在的深度学习 大量的工作都集中在调参上 一个模型能否很好的解决问题 调参占了很大的比重 而学习率又是模型众多超参数中最重要和最容易调节的一个 1 什么是学习率 目前深度学习优化的基本思想是梯度下降法 已经有很多优秀
  • 【torch】如何把把几个 tensor 连接起来?(含源代码)

    一 cat 在 PyTorch 中 要向一个 tensor 中添加元素 你通常需要创建一个新的 tensor 然后将元素添加到新的 tensor 中 PyTorch tensors 是不可变的 所以不能像列表一样直接追加元素 以下是如何实现
  • TorchServe环境构建+模型更新+新模型注册

    目录 1 背景 2 torchserve环境搭建 2 1jdk环境搭建 2 2 python 环境搭建 2 3 启动服务 2 3 1 注册模型 2 3 2 模型查看 2 3 3 接口调用 3 进阶功能 3 1 模型多版本管理 3 2 新模型
  • 将我的自定义损失函数添加到 torch

    我想在 torch 中添加一个损失函数来计算预测值和目标值之间的编辑距离 有没有一种简单的方法来实现这个想法 或者我必须编写自己的具有向后和向前函数的类吗 如果您的标准可以表示为现有模块和标准的组合 那么最好使用容器简单地构造这样的组合 唯
  • 端到端训练 CNN-LSTLM?

    已经有许多论文 特别是图像字幕 联合使用 CNN 和 LSTM 架构来执行预测和生成任务 然而 它们似乎都独立于 LSTM 来训练 CNN 我正在研究 Torch 和 TensorFlow 使用 Keras 但找不到为什么不能进行端到端训练
  • 使用 TorchText (PyTorch) 进行语言翻译

    我最近开始使用 PyTorch 进行 ML DL 下面的 pytorch 示例解释了我们如何训练一个简单的模型来将德语翻译成英语 https pytorch org tutorials beginner torchtext translat
  • Pytorch 已安装但在 ubuntu 18.04 上无法运行

    我正在尝试在 ubuntu 18 04 上通过 pip 安装 Pytorch 我有 python 3 6 我的笔记本电脑是 HP Pavilion 笔记本 15 安装似乎是正确的 因为我收到消息 成功安装收集的软件包 torch torch
  • 如何基于二值掩模裁剪图像

    我使用 torch 和一些语义分割算法来生成分割图像的二进制掩码 然后我想根据该蒙版裁剪图像 为了清楚起见 我需要在每个像素的基础上裁剪它 这似乎是一个简单的问题 但我能想到的唯一解决方案是反转draw mask类似于 Coco API 中
  • 如何使用Torch生成的模型进行预测?

    我已经执行了神经网络 tutorial lua https github com nicholas leonard dp blob master examples neuralnetwork tutorial lua 现在我有了模型 我想用
  • torch数据集的结构是怎样的?

    我开始使用 torch 7 我想制作我的数据集进行分类 我已经制作了像素图像和相应的标签 但是 我不知道如何将这些数据提供给火炬 我阅读了其他人的一些代码 发现他们使用的是扩展名为 t7 的数据集 我认为它是张量类型 这样对吗 我想知道如何
  • Raspberry 上的 Libtorch 无法加载 pt 文件,但可以在 ubuntu 上运行

    我正在尝试在 Raspberry PI 上使用 libtorch 构建 C 程序 该程序在 Ubuntu 上运行 但在 Raspberry 上构建时出现以下错误 error use of deleted function void torc

随机推荐