文档反馈

问题文档片段

问题文档片段包含公式时,显示为空格。

提交类型
issue

有点复杂...

找人问问吧。

请选择提交类型

问题类型
规范和低错类

- 规范和低错类:

- 错别字或拼写错误,标点符号使用错误、公式错误或显示异常。

- 链接错误、空单元格、格式错误。

- 英文中包含中文字符。

- 界面和描述不一致,但不影响操作。

- 表述不通顺,但不影响理解。

- 版本号不匹配:如软件包名称、界面版本号。

易用性

- 易用性:

- 关键步骤错误或缺失,无法指导用户完成任务。

- 缺少主要功能描述、关键词解释、必要前提条件、注意事项等。

- 描述内容存在歧义指代不明、上下文矛盾。

- 逻辑不清晰,该分类、分项、分步骤的没有给出。

正确性

- 正确性:

- 技术原理、功能、支持平台、参数类型、异常报错等描述和软件实现不一致。

- 原理图、架构图等存在错误。

- 命令、命令参数等错误。

- 代码片段错误。

- 命令无法完成对应功能。

- 界面错误,无法指导操作。

- 代码样例运行报错、运行结果不符。

风险提示

- 风险提示:

- 对重要数据或系统存在风险的操作,缺少安全提示。

内容合规

- 内容合规:

- 违反法律法规,涉及政治、领土主权等敏感词。

- 内容侵权。

请选择问题类型

问题描述

点击输入详细问题描述,以帮助我们快速定位问题。

mindflow.loss

class mindflow.loss.MTLWeightedLossCell(num_losses, bound_param=0.0)[源代码]

计算MTL策略自动加权多任务损失。请参考 自动加权进行多任务学习

参数:
  • num_losses (int) - 多任务损失的数量,应为正整数。

  • bound_param (float) - 当边界值大于某个给定常数时,对权重和正则项的增加。

输入:
  • input (tuple[Tensor]) - 输入数据。

输出:

Tensor。多任务学习自动加权计算出的损失。

支持平台:

Ascend GPU

样例:

>>> import numpy as np
>>> from mindflow.loss import MTLWeightedLossCell
>>> import mindspore
>>> from mindspore import Tensor
>>> net = MTLWeightedLossCell(num_losses=2)
>>> input1 = Tensor(1.0, mindspore.float32)
>>> input2 = Tensor(0.8, mindspore.float32)
>>> output = net((input1, input2))
>>> print(output)
2.2862945
class mindflow.loss.RelativeRMSELoss(reduction='sum')[源代码]

相对均方根误差(RRMSE)是由均方根值归一化的均方根误差,其中每个残差都是根据实际值缩放的。 Relative RMSELoss用来测量 xy 之间的相对均方根误差,其中 x 是预测值, y 是目标值。

假设 xy 为一维Tensor,长度为 N ,则 xy 的损失为:

loss=1Ni=1N(xiyi)2sumi=1N(yi)2
参数:
  • reduction (str) - reduction 决定了计算模式。有三种模式可选:”mean”,”sum”和”none”。默认值:”sum”。

输入:
  • prediction (Tensor) - 网络模型预测值。Tensor的形状 (N,) 其中 表示任意维度。

  • labels (Tensor) - 样本的真实值。Tensor的形状 (N,) 其中 :math: * 表示任意维度,通常情况下和 prediction 的形状一致。但是,也支持labels的形状和prediction的形状不一致,两者应该可以相互广播。

输出:

Tensor。加权计算出的损失。

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> import mindspore
>>> from mindspore import Tensor
>>> from mindflow import RelativeRMSELoss
>>> # Case: prediction.shape = labels.shape = (3, 3)
>>> prediction = Tensor(np.array([[1, 2, 3],[1, 2, 3],[1, 2, 3]]), mindspore.float32)
>>> labels = Tensor(np.array([[1, 2, 2],[1, 2, 3],[1, 2, 3]]), mindspore.float32)
>>> loss_fn = RelativeRMSELoss()
>>> loss = loss_fn(prediction, labels)
>>> print(loss)
0.33333334
class mindflow.loss.WaveletTransformLoss(wave_level=2, regroup=False)[源代码]

多级小波变换损失。

参数:
  • wave_level (int) - 小波变换级数,应为正整数。默认值:2。

  • regroup (bool) - 小波变换损失的regroup误差组合形式。默认值:False。

输入:
  • input - Tensors的tuple。形状 (BHW/(PP)PPC) 的Tensor,其中B表示批次大小。H、W分别表示图像的高度和宽度。P表示补丁大小。C表示特征通道。

输出:

Tensor。

异常:
  • TypeError - 如果 wave_level 不是int。

  • TypeError - 如果 regroup bool。

支持平台:

Ascend GPU

样例:

>>> import numpy as np
>>> from mindflow.loss import WaveletTransformLoss
>>> import mindspore
>>> from mindspore import Tensor
>>> net = WaveletTransformLoss(wave_level=2)
>>> input1 = Tensor(np.ones((32, 288, 768)), mstype.float32)
>>> input2 = Tensor(np.ones((32, 288, 768)), mstype.float32)
>>> output = net((input1, input2))
>>> print(output)
2.0794415
mindflow.loss.get_loss_metric(name)[源代码]

获取损失函数。

参数:
  • name (str) - 损失函数的名称。

返回:

Function,损失函数。

支持平台:

Ascend GPU

样例:

>>> import numpy as np
>>> from mindflow.loss import get_loss_metric
>>> import mindspore
>>> from mindspore import Tensor
>>> l1_loss = get_loss_metric('l1_loss')
>>> logits = Tensor(np.array([1, 2, 3]), mindspore.float32)
>>> labels = Tensor(np.array([[1, 1, 1], [1, 2, 2]]), mindspore.float32)
>>> output = l1_loss(logits, labels)
>>> print(output)
0.6666667