Theano 0.6 文档[1] - NumPy 复习

本文为Lancelod_Liu编译, 转载请保留此行.

This Article is translated and edited by Lancelod_Liu, keep this line if you share it.

原文: .

NumPy 复习

用于机器学习的矩阵形式

行水平列垂直. 每行数据是一个样本(这和MATLAB中某些情况相反). 因此inputs[10, 5]代表有10个样本, 每个样本长度为5. 如果这是一个神经网络的输入, 则输入到第一个隐层的权值应该是一个(5, #hid)的矩阵. #hid为隐层神经元个数.

考虑下面的数列:

>>> numpy.asarray([[1., 2], [3, 4], [5, 6]])
array([[ 1.,  2.],
       [ 3.,  4.],
       [ 5.,  6.]])
>>> numpy.asarray([[1., 2], [3, 4], [5, 6]]).shape
(3, 2)

这是一个 3x2 矩阵, 有3行2列.

使用下面语句来获取第3行第1列的数据(从1数起):

>>> numpy.asarray([[1., 2], [3, 4], [5, 6]])[2, 0]
5.0

永远从左至右从上至下进行读取. 相邻的[1,2]和[3,4]是两行.

传播Broadcasting

Numpy在算术操作中使用数组的传播操作. 它的意思是小的数组(标量)会被变换成大的数组, 从而使得它们的形状(shape)匹配.

下面是一个传播的例子:

>>> a = numpy.asarray([1.0, 2.0, 3.0])
>>> b = 2.0
>>> a * b
array([2., 4., 6.])

小一些的数组b(此处实际是一个标量, 可以看做0-d的数组)在乘法过程中被传播到和a相同的大小. 这个trick在解释表达式时非常有用. 更详细的内容见: numpy user guide.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值