# 如何使用MindSpore实现Torch的logsumexp函数

**1. 系统环境**

硬件环境\(Ascend/GPU/CPU\): Ascend/GPU/CPU

软件环境: MindSpore 版本: 2.0.0

执行模式（静态图/动态图）： 不限

Python 版本: 3.7.6

操作系统平台: linux

**2. 报错信息**

2.1 问题描述

如何使用MindSpore实现Torch的logsumexp函数。

2.2 脚本信息

Torch实现方式如下：

```
self.logits = logits - logits.logsumexp(dim=-1, keepdim=True)
```

**3. 根因分析**

[torch.logsumexp](https://pytorch.org/docs/stable/generated/torch.logsumexp.html#torch-logsumexp)  =\>  [mindspore.nn.logsumexp](https://www.mindspore.cn/docs/zh-CN/r2.0/api_python/ops/mindspore.ops.logsumexp.html#mindspore.ops.logsumexp)

**4. 解决方案**

```
import mindspore as ms
from mindspore import ops, nn
import torch
logits_torch = torch.randn((1, 2))
logits_ms = ms.Tensor(logits_torch.numpy())
logits_torch = logits_torch - logits_torch.logsumexp(dim=-1, keepdim=True)
logits_ms = logits_ms - logits_ms.logsumexp(axis=-1, keepdims=True)
print(logits_torch)
print(logits_ms)
tensor([[-1.7354, -0.1940]])
[[-1.7353749  -0.19399017]]
```

