关于keras.sum()和kears.softmax()等函数中维度的理解

1.目的

神经网络中对数据处理一般有求和,求均值等操作,这就需要用到sum、softmax和mean等函数,而这些函数中一般都有设置处理维度axis的参数选择。

2.设置

1.不作axis设置sum和mean等函数会对整个数据做相应操作,具体如下:

import numpy as np
import keras.backend as k

constant = np.array([[1, 2, 3], [2, 2, 3], [3, 2, 3]])
print(constant)
constant = k.constant(constant, dtype='float32')
constant_sum = k.sum(constant, keepdims=True)
print(k.eval(constant_sum))

结果如下:

2.axis=0,这里以二维数据为例,那么对每一列上的数据作该函数操作,如下

constant = np.array([[1, 2, 3], [2, 2, 3], [3, 2, 3]])
print(constant)
constant = k.constant(constant, dtype='float32')
constant_mean = k.mean(constant, axis=0, keepdims=True)
print(k.eval(constant_mean))

可以明显看到其对每一列做了求均值操作,这里的keepdims参数设置为True会使结果以二维数据的形式返回,否则会以一维向量的形式返回。

3.axis=1,在每一行上做操作,如下:

4.总结一下小技巧

一般在做些操作时,都是使处理后数据的维度不可变,即keepdims=True.那么举一个例子,对于二维数据(2,3)如果axis=0,即在第一维度上做相应的操作,那么操作完后的数据维度一定是(1,3),即你在哪一维度上做操作,该维度的shape=1,其他维度不变。同理对于一个三维数据(2,2,3),axis=1,keepdims=True,那么操作后的维度为(2,1,3)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值