tensorflow维度理解

tensor维度本质就是逐层脱去括号。

脱第一层括号后,紧挨着的一层整体只有一个元素,故为1

脱掉第二层括号后,里面整体有三个元素,即三行

脱掉第四层,里面整体依然有三个元素,比如[1],[2],[3]

再往里面看,只有一个元素

故最后得到的是1*3*3*1。

越高层的维度在越里面,具体到深度学习里,如tf.nn.embedding_lookup(itememb, batchitem)。在embedding这一层的数据维度是最高的。在batch这一层的数据维度是最低的(axis=0)。举例:如果一个人有多个兴趣tag(最大个数为100),每个tag的embedding维度为32,训练时batch大小为1000,则tf.nn.embedding_lookup(itempref, batchpref)的维度shape为(1000,100,32)

 

关于reduce_xxx的维度问题

对于k维tensor,

tf.reduce_xxx(x, axis=k-1)的结果是对最里面一维所有元素进行求和。

tf.reduce_xxx(x, axis=k-2)是对倒数第二层里的向量对应的元素进行求和。

tf.reduce_xxx(x, axis=k-3)把倒数第三层的每个向量对应元素相加

 

拿reduce_mean做验证

[[[ 1. 1.]

  [ 2. 2.]]

 [[ 3. 3.]

  [ 4. 4.]]]

axis=2,做最内层计算,我们的最内层就是(1,1),(2,2),(3,3),(4,4),计算出来的就是

[[ 1. 2.] [ 3. 4.]]

axis=1,做倒数第二层计算

[[ 1.5 1.5] [ 3.5 3.5]]

axis=0,做倒数第三层计算

[[ 2. 2.] [ 3. 3.]]

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值