假设我们的模型是:
x2=x1*W1
y=x2*w2
L=Y-y
这个模型可以看作是一个简单的神经网络,如下图:
x1,x2是神经网络的中间层,y是我们的输出层,Y是真值,L是我们的loss.W1,W2是对应于x1和x2的weight.通常我们会把x1,x2,y,w1,w2使用pytorch的tensor进行表示,L也可以用tensor表示,其可能与其他tensor的维度都不同。在这个模型中,x1,w1,w2就是我们所谓的叶子tensor.
在pytorch中,我们把上述模型描述出来。
import torch
import numpy as np
x1 = torch.from_numpy(2 * np.ones((2, 2), dtype=np.float32))
x1.requires_grad_(True)
w1 = torch.from_numpy(5 * np.ones((2, 2), dtype=np.float32))
w1.requires_grad_(True)
print("x1 =", x1)
print("w1