深度学习(python中的广播实例)

import numpy as np

A = np.array([[56.0, 0.0, 4.4, 68.0],
              [1.2, 104.0, 52.0, 8.0],
              [1.8, 135.0, 99.0, 0.9]])
print(A)

cal=A.sum(axis=0)#这个轴为0,希望python在竖直方向求和,这个轴0意味着数值方向相加

print(cal)

percentage=100*A/cal.reshape(1,4)
print(percentage)

cal=A.sum(axis=0)

axis=0,这个轴为0,希望python在竖直方向求和,这个轴0意味着数值方向相加,

而水平轴是1,可以写成axis=1

这样就可以是水平求和,而不是竖直求和

percentage=100*A/cal.reshape(1,4)

以上命令是python广播的另一个例子

矩阵A是一个3*4的矩阵

让他除以一个1*4的矩阵

技术上,在第一行代码后变量cal已经是一个1*4的矩阵了,所以技术上不需要调用reshape

但是当写python代码时,我们需要调用,为了确保其时正确的行向量和列向量

reshape()命令经常用到,其为O(1)操作,成本很低。

另外几个广播的实例

python会做的事情是,将100拆开为一个1*4的矩阵(向量)

在前期的logistic回归函数当中的参数b就利用了类似的广播形式

python会对以上矩阵相加进行如下处理

同理也会水平复制m次

python的广播中有一个一般规律

如果一个m*n的矩阵,对一个1*n(m*1)的矩阵进行加减乘除时,会进行重复m(n)次已得到m*n的矩阵,并进行运算

一个矩阵加一个常数,该常数会不断重复,直到得到与之相同的矩阵

以上广播形式为在神经网络模型中主要用到的广播形式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值