I continued the debugging layer by layer and it seems you have forgotten to load the weights for the fc1 layer.
Add this in line 62 in arch.py:
classifier[-1].weight.data = torch.from_numpy(np.array(p.T))

Now, the sum of absolute errors for random input is approx. 0.3365, which should be fine.