第二章 预备知识

2.2 数据操作

2.2.1 创建NDArray(Mxnet)、Tensor(Pytorch)

MxnetPytorch
from mxnet import ndimport torch
创建向量nd.zeros((4,2)), nd.ones((4,2))torch.zeros(4, 2), torch.zeros(4, 2)
创建向量x = nd.arange(12)x = torch.arange(12)
获取形状x.shapex.shape
获取元素总数x.sizex.size
更改形状x.reshape(3, 4)x.reshape((3, 4))
从list创建nd.array([5.5, 3])torch.tensor([5.5, 3])
随机生成nd.random.normal(0, 1, shape=(3, 4))torch.randn(3, 4)

注:
1、pytorch输入形状参数可用单小括号或双小括号,例如 torch.zeros(4, 2),等同torch.zeros((4, 2)),Mxnet必须为双小括号

2.2.2 运算

MxnetPytorch
四则运算x+yx+y
指数运算x.exp()x.exp()
矩阵乘法nd.dot(x, y.T)torch.mm(x, y.T)
合并nd.concat(x, y, dim=0)torch.cat((x, y), dim=0)
判断x == y (返回 True 或 Falue)x == y (返回 1 或 0)

2.2.6 和NumPy相互变换

MxnetPytorch
由np转入nd.array(x)torch.from_numpy(x)
转出到npx.asnumpy()x.numpy()

2.3 自动求梯度

MxnetPytorch
创建变量x = nd.arange(4).reshape((4, 1))x = torch.ones(4, 1, requires_grad=True)
申请存储梯度所需要的内存x.attach_grad()上一步已申请
with autograd.record():
y = 2 * nd.dot(x.T, x)
y = 2 * torch.mm(x.T, x)
自动求梯度y.backward()y.backward()
读取梯度x.gradx.grad
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值