pytorch笔记: 处理inf和nan数值

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch笔记: 处理inf和nan数值相关的知识,希望对你有一定的参考价值。

import torch
import numpy as np
a = torch.Tensor(
    [[1, 2, np.nan], 
    [np.inf, np.nan, 4], 
    [3, 4, 5]])
'''
tensor([[1., 2., nan],
        [inf, nan, 4.],
        [3., 4., 5.]])
'''

假设我们有这样的一个pytorch tensor,我们需要把其中的inf和nan填充成别的数字

1 把nan值设置为0


a1 = torch.where(
        torch.isnan(a), 
        torch.full_like(a, 0), 
        a)
#where的第一行为条件限制,如果满足条件,则选择下一个参数,否则选择下下个参数作为输出。

'''
(tensor([[1., 2., 0.],
         [inf, 0., 4.],
         [3., 4., 5.]]),
 tensor([[1., 2., nan],
         [inf, nan, 4.],
         [3., 4., 5.]]))
'''

2 把inf值设置为0


a2 = torch.where(
        torch.isinf(a), 
        torch.full_like(a, 0), 
        a)
 
a2,a
'''
(tensor([[1., 2., nan],
         [0., nan, 4.],
         [3., 4., 5.]]),
 tensor([[1., 2., nan],
         [inf, nan, 4.],
         [3., 4., 5.]]))
'''

以上是关于pytorch笔记: 处理inf和nan数值的主要内容,如果未能解决你的问题,请参考以下文章

C语言中INF和NAN是啥意思

matlab循环次数过多出现NAN?

C语言 inf和nan

C语言 inf和nan

PyTorch学习笔记——图像处理(transforms.Normalize 归一化)

[记] C语言中的nan和inf