繁体   English   中英

keras归一化函数中的轴参数-keras.utils.normalization()

[英]Axis parameter in the keras normalization function- keras.utils.normalization()

我花了很多时间试图了解轴参数在 keras.utils.normalization() function 中的工作原理。 有人可以通过创建一个随机 (2,2) np 数组来使用 np.array 的概念向我解释它,并解释归一化实际上如何适用于不同的轴。

让我们考虑一个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)

上述代码的Output为:

[[0.31622777 0.4472136 ]
 [0.9486833  0.89442719]]

Axis = 0的output可以详细说明如下:

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语句的 Output 如下图所示:

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)

上述代码的Output为:

[[0.4472136  0.89442719]
 [0.6        0.8       ]]

axis = 1axis = -1 (本例)的output可以详细说明如下:

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语句的 Output 如下图所示:

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参数的工作原理,请参阅此Stack Overflow Answer

希望这可以帮助。 快乐学习!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM