【问题标题】:How to replace NaN values in the weights of neural network?如何替换神经网络权重中的 NaN 值?
【发布时间】:2021-06-05 23:51:23
【问题描述】:

我正在尝试用一些常数替换权重中的 NaN 值。但是我不知道如何做到这一点。

我知道要访问权重,我必须写。

for i in model.params:
    arr = i.clone()
    arr[torch.isnan(arr)] = 0
    param_list.append(nn.Parameter(arr))
    
model.params= param_list

但这会破坏计算图,您可以建议我做同样的更好的方法吗?

【问题讨论】:

  • 您的model 定义如何? clone 不影响计算图(即,它是一个参考)。因此,您可以通过迭代 model.parameters() 来简单地将 NaNs 更新为 0 值,从而不需要使用 param_list

标签: python neural-network pytorch initialization nan


【解决方案1】:

怎么样

with torch.no_grad():
  for p in model.parameters():
    p.data[torch.isnan(p.data)] = 0

【讨论】:

    猜你喜欢
    • 2017-03-01
    • 2020-04-01
    • 2017-09-01
    • 2018-09-13
    • 1970-01-01
    • 2017-10-19
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多