【问题标题】:Initialise pytorch convolution layer with my own values用我自己的值初始化 pytorch 卷积层
【发布时间】:2021-06-09 11:16:21
【问题描述】:

我想知道是否有办法用我自己的值初始化 pytorch 卷积过滤器。

例如,我有一个元组 [-0.8423, 0.3778][-3.1070, -2.6518],我想用这些值初始化一个 2X2 过滤器,我该怎么做?我查了一些答案,但他们大多使用火炬正态分布和其他。没有什么我不能指定的。

告诉我。

【问题讨论】:

    标签: pytorch initialization conv-neural-network tensor


    【解决方案1】:

    你可以直接给权重赋值:

    conv = nn.Conv2d(1, 1, kernel_size=2)
    with torch.no_grad():
      conv.weight.data = torch.tensor([[-0.8423,  0.3778],[-3.1070, -2.6518]])  # you might need to play a bit with the dimensionality of this tensor
    

    【讨论】:

    • 你为什么放了torch.no_grad()?我想用它来训练。那有必要吗?
    • 你需要损失梯度,而不是初始化
    • 哦。有道理。
    • 那么当我们在通常情况下一开始用随机权重初始化这些层时,为什么不使用 no_grad() 呢?
    • @SarvagyaGupta 看看 torch.init 代码
    猜你喜欢
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 2021-11-09
    • 2018-01-26
    • 2019-01-16
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多