keras归一化函数中的轴参数- keras.utils.normalization()
Axis parameter in the keras normalization function- keras.utils.normalization()
我花了很多时间试图了解 axis 参数在 keras.utils.normalization() 函数中的工作原理。有人可以通过使用 np.array 的概念通过制作随机 (2,2) np 数组来向我解释一下,并解释归一化实际上如何适用于不同的轴。
让我们考虑一个 2*2
Numpy Array
,
x = np.array([[1,2],
[3,4]])
Axis = 0
表示操作完成Row-wise
。代码 Axis = 0
:
x_norm_rows_axis = tf.keras.utils.normalize(x, axis= 0)
print(x_norm_rows_axis)
以上代码的输出为:
[[0.31622777 0.4472136 ]
[0.9486833 0.89442719]]
Axis = 0
的输出可以详细说明如下:
print('x_norm_rows_axis[0][0] = {}'.format(1/np.sqrt(1 ** 2 + 3 ** 2)))
print('x_norm_rows_axis[0][1] = {}'.format(2/np.sqrt(2 ** 2 + 4 ** 2)))
print('x_norm_rows_axis[1][0] = {}'.format(3/np.sqrt(1 ** 2 + 3 ** 2)))
print('x_norm_rows_axis[1][1] = {}'.format(4/np.sqrt(2 ** 2 + 4 ** 2)))
以上Print
语句的输出如下所示:
x_norm_rows_axis[0][0] = 0.31622776601683794
x_norm_rows_axis[0][1] = 0.4472135954999579
x_norm_rows_axis[1][0] = 0.9486832980505138
x_norm_rows_axis[1][1] = 0.8944271909999159
Axis = 1
表示操作完成Column-wise
。用 axis = 1
编码。在这种情况下,由于我们只有 2 个维度,我们也可以将其视为 axis = -1
:
x_norm_col_axis = tf.keras.utils.normalize(x, axis= 1)
print(x_norm_col_axis)
以上代码的输出为:
[[0.4472136 0.89442719]
[0.6 0.8 ]]
axis = 1
或 axis = -1
(在本例中)的输出可以详细说明如下:
print('x_norm_col_axis[0][0] = {}'.format(1/np.sqrt(1 ** 2 + 2 ** 2)))
print('x_norm_col_axis[0][1] = {}'.format(2/np.sqrt(2 ** 2 + 1 ** 2)))
print('x_norm_col_axis[1][0] = {}'.format(3/np.sqrt(4 ** 2 + 3 ** 2)))
print('x_norm_col_axis[1][1] = {}'.format(4/np.sqrt(3 ** 2 + 4 ** 2)))
以上Print
语句的输出如下所示:
x_norm_col_axis[0][0] = 0.4472135954999579
x_norm_col_axis[0][1] = 0.8944271909999159
x_norm_col_axis[1][0] = 0.6
x_norm_col_axis[1][1] = 0.8
要了解 Order
参数的工作原理,请参阅此 。
希望这对您有所帮助。快乐学习!
我花了很多时间试图了解 axis 参数在 keras.utils.normalization() 函数中的工作原理。有人可以通过使用 np.array 的概念通过制作随机 (2,2) np 数组来向我解释一下,并解释归一化实际上如何适用于不同的轴。
让我们考虑一个 2*2
Numpy Array
,
x = np.array([[1,2],
[3,4]])
Axis = 0
表示操作完成Row-wise
。代码 Axis = 0
:
x_norm_rows_axis = tf.keras.utils.normalize(x, axis= 0)
print(x_norm_rows_axis)
以上代码的输出为:
[[0.31622777 0.4472136 ]
[0.9486833 0.89442719]]
Axis = 0
的输出可以详细说明如下:
print('x_norm_rows_axis[0][0] = {}'.format(1/np.sqrt(1 ** 2 + 3 ** 2)))
print('x_norm_rows_axis[0][1] = {}'.format(2/np.sqrt(2 ** 2 + 4 ** 2)))
print('x_norm_rows_axis[1][0] = {}'.format(3/np.sqrt(1 ** 2 + 3 ** 2)))
print('x_norm_rows_axis[1][1] = {}'.format(4/np.sqrt(2 ** 2 + 4 ** 2)))
以上Print
语句的输出如下所示:
x_norm_rows_axis[0][0] = 0.31622776601683794
x_norm_rows_axis[0][1] = 0.4472135954999579
x_norm_rows_axis[1][0] = 0.9486832980505138
x_norm_rows_axis[1][1] = 0.8944271909999159
Axis = 1
表示操作完成Column-wise
。用 axis = 1
编码。在这种情况下,由于我们只有 2 个维度,我们也可以将其视为 axis = -1
:
x_norm_col_axis = tf.keras.utils.normalize(x, axis= 1)
print(x_norm_col_axis)
以上代码的输出为:
[[0.4472136 0.89442719]
[0.6 0.8 ]]
axis = 1
或 axis = -1
(在本例中)的输出可以详细说明如下:
print('x_norm_col_axis[0][0] = {}'.format(1/np.sqrt(1 ** 2 + 2 ** 2)))
print('x_norm_col_axis[0][1] = {}'.format(2/np.sqrt(2 ** 2 + 1 ** 2)))
print('x_norm_col_axis[1][0] = {}'.format(3/np.sqrt(4 ** 2 + 3 ** 2)))
print('x_norm_col_axis[1][1] = {}'.format(4/np.sqrt(3 ** 2 + 4 ** 2)))
以上Print
语句的输出如下所示:
x_norm_col_axis[0][0] = 0.4472135954999579
x_norm_col_axis[0][1] = 0.8944271909999159
x_norm_col_axis[1][0] = 0.6
x_norm_col_axis[1][1] = 0.8
要了解 Order
参数的工作原理,请参阅此
希望这对您有所帮助。快乐学习!