PyTorch入门:从基础操作到简单神经网络搭建
1. PyTorch基础操作与内部机制
如果你对所有这些基本操作都得心应手,就可以进入下一阶段并立即开始编码。PyTorch除了基本操作外,还有大量其他重要操作,在构建网络时会很有用。若想提前了解,可前往PyTorch官网查看其张量教程页面。
PyTorch的核心哲学之一是互操作性。开发团队投入大量时间实现不同框架(如ONNX、DLPack等)之间的互操作性。PyTorch的数据结构采用分层设计,这不仅使其具有互操作性,还提高了内存使用效率。其核心的计算密集部分通过ATen和Caffe2库迁移到了C/C++后端,以提升速度。
PyTorch最初是作为研究框架创建的,现在已转变为面向研究且适用于生产的框架。为满足多用途需求带来的权衡问题,引入了两种执行类型。
在C/C++后端设计的自定义数据结构分为不同层。为简化,这里主要关注简单的CPU数据结构。PyTorch中主要面向用户的数据结构是THTensor对象,它保存着维度、偏移量、步长等信息,还存储着指向THStorage对象的指针,THStorage是张量对象用于存储的内部层。
以下是一些张量操作的示例代码:
import torch
# 创建随机张量
x = torch.rand(2,3,4)
x_with_2n3_dimension = x[1, :, :]
scalar_x = x[1,1,1] # 从每个维度取第一个值
# 类似numpy的切片操作
x = torch.rand(2,3)
print(x[:, 1:]) # 跳过
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



