我已经理解归一化 using tf.keras.utils.normalize(x_train, axis=0)和 的tf.keras.utils.normalize(x_train, axis=1)数学含义 -> 如果我们的列是特征,行是数据样本,则使用axis=0意味着对所有样本中该特征的总和的每个特征进行归一化。现在,当我们有一个尺寸为 28*28 的图像时,归一化轴取决于什么?每个图像都是一个数据样本,因此我很困惑在哪个轴上标准化与单个图像对应的像素值。在几乎每个教程和示例中,axis=1都会对所有图像一起进行标准化。
除了数学运算之外,我也很想了解轴选择背后的推理。
以下代码
w = np.array([[2., 2.],[2., 2.]])
x = np.array([[3., 3.],[3., 3.]])
b = np.array([[4., 4.],[4., 4.]])
w = torch.tensor(w, requires_grad=True)
x = torch.tensor(x, requires_grad=True)
b = torch.tensor(b, requires_grad=True)
y = w*x + b
print(y)
# tensor([[10., 10.],
# [10., 10.]], dtype=torch.float64, grad_fn=<AddBackward0>)
y.backward(torch.FloatTensor([[1, 1],[ 1, 1]]))
print(w.grad)
# tensor([[3., 3.],
# [3., 3.]], dtype=torch.float64)
print(x.grad)
# tensor([[2., 2.],
# [2., 2.]], dtype=torch.float64)
print(b.grad)
# tensor([[1., 1.],
# [1., 1.]], dtype=torch.float64)
Run Code Online (Sandbox Code Playgroud)
由于函数内的张量参数gradient是输入张量形状的全一张量,我的理解是
w.grad表示ywrt 的导数w,并产生 …