PyTorch除以0时,将结果值设置为0

PyTorch除以0时,将结果值设置为0,pytorch,Pytorch,在Pytorch中,当值除以0时,将结果值替换为0,因为它将输出NaN。举个例子, a = th.from_numpy(np.array([ [1, 0], [0, 1], [1, 1]])) b = th.zeros_like(a) b[0, :] = 2 a = a / b 我该怎么做呢?您可以使用以下方法将除法后获得的NaN值替换为0- 创建一个BYTENTensor,指示NaN的位置 将上述张量指示的NaN值替换为0 注意这也将替换除法前引入的任何NaN值 a != a >&g

在Pytorch中,当值除以0时,将结果值替换为0,因为它将输出NaN。举个例子,

a = th.from_numpy(np.array([ [1, 0], [0, 1], [1, 1]])) 
b = th.zeros_like(a)
b[0, :] = 2
a = a / b

我该怎么做呢?

您可以使用以下方法将除法后获得的NaN值替换为0-

  • 创建一个BYTENTensor,指示NaN的位置
  • 将上述张量指示的NaN值替换为0
  • 注意这也将替换除法前引入的任何NaN值

    a != a
    >> tensor([[False, False],
            [ True, False],
            [False, False]])
    
    a = a / b
    >> tensor([[0.5000, 0.0000],
            [   nan,    inf],
            [   inf,    inf]])
    
    a[a != a] = 0
    >> tensor([[0.5000, 0.0000],
            [0.0000,    inf],
            [   inf,    inf]])