我正在試驗 PyTorch 中實作的 conv2d 函式。我在下面撰寫了一個代碼示例,其中我們有一個 3x3 矩陣,包含 1 個批次、2 個輸入通道。我實作了我的卷積層,以使內核具有矩陣的確切大小(因此步幅無關緊要)和 1 的輸出通道。我將權重固定為 1。
基本上這應該只是總結輸入張量。為什么最后兩個列印的值略有不同?這是某種浮點計算錯誤的結果嗎?
import torch.nn as nn
import torch
m = nn.Conv2d(2, 1, 3, stride=2)
input = torch.randn(1, 2, 3, 3)
m.weight = torch.nn.Parameter(torch.ones_like(m.weight))
output = m(input)
print(input)
print(torch.sum(input))
print(output)
uj5u.com熱心網友回復:
Conv2d 的偏差未初始化為零。
嘗試這個
import torch.nn as nn
import torch
m = nn.Conv2d(2, 1, 3, stride=2)
input = torch.randn(1, 2, 3, 3)
m.weight = torch.nn.Parameter(torch.ones_like(m.weight))
nn.init.zeros_(m.bias)
output = m(input)
print(input)
print(torch.sum(input))
print(output)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/533067.html
下一篇:如何在marqo中執行關鍵字搜索
