I’m trying to manually set the weights for a`nn.Conv2d`

. I’ve seen this post: How to set nn.conv2d weights, however I’m trying to use a numpy array as the weights. Why? Because `np.asarray(x)`

allows me to easily construct my weights array using a nested Python list (`x`

is Python list).

Example code:

```
IN = 2
OUT = 3
KERNEL_SIZE = 2
proof_conv = nn.Conv2d(IN, OUT, kernel_size=KERNEL_SIZE, padding=0, bias=False)
assert proof_conv.weight.shape == (OUT, IN, KERNEL_SIZE, KERNEL_SIZE)
ZERO_FILTER = [[0., 0.], [0., 0.]]
ONE_FILTER = [[1., 1.], [1., 1.]]
weights = [
[ZERO_FILTER, ZERO_FILTER],
[ONE_FILTER, ONE_FILTER],
[ONE_FILTER, ZERO_FILTER],
]
weights = np.asarray(weights).astype(np.float64)
proof_conv.weight = nn.Parameter(torch.from_numpy(weights))
ones = torch.ones((IN, 4, 4))
out_img = proof_conv(ones)
```

However, this code fails with the error:

RuntimeError: expected scalar type Float but found Double

Does anyone know what’s going on here?