【问题标题】:Axis parameter in the keras normalization function- keras.utils.normalization()keras 归一化函数中的轴参数 - keras.utils.normalization()
【发布时间】:2020-10-01 02:31:46
【问题描述】:

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

【问题讨论】:

    标签: python tensorflow keras data-science normalization


    【解决方案1】:

    让我们考虑一个2*2Numpy 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 = 1axis = -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 参数的工作原理,请参阅此Stack Overflow Answer

    希望这会有所帮助。快乐学习!

    【讨论】:

    • 非常感谢!这是一个完美的解释。再次感谢:D
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 2015-04-18
    • 2018-01-30
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多