PyTorch学习笔记1---张量

PyTorch中数据集用Tensor来表示,Tensor与Python中的List类似,但是其内部存储时以连续内存单元存储,可以通过下标计算出内存地址,然后直接读出数值,因此存取效率很高,同时由于与Numpy的内存存储基本相同,所以numpy的ndarray与Tensor之间转换,不论有多少元素,其转换只需数毫秒,非常高效。同时,Tensor可以在GPU上运行,因此比numpy的效率要高。

Tensor创建

创建空张量

创建空的 x ∈ R 5 \boldsymbol{x} \in R^{5} xR5向量:

x = torch.empty(5)

注意此时 x \boldsymbol{x} x中的元素 x i x_{i} xi的值是对应内存地址中的值,可以是任意无意义的值。
我们同样可以生成空的任意维度的张量,例如在深度学习中经常用到的设计矩阵(Design Matrix), X ∈ R 10 × 5 X \in R^{10 \times 5} XR10×5,表示共有10个样本,每个样本维度为5。可以用如下代码创建:

x = torch.empty([10,5])
张量创建并初始化

对于连接权值,我们通常使用随机数来初始化,在PyTorch中也有随机数初始化方法。我们先来看采用均匀分布来初始化:

W = torch.rand(5,3)

我们也可以用标准正态分布来进行初始化:

W = torch.randn(5,3)
用初始值创建

创建元素值为0或1的张量:

b = torch.zeros(5, 3, torch.float)
c = torch.ones(5, 3, torch.double)
用已知值初始化

通过已知值初始化张量:

x = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0])
Numpy互操作性

在前面我们已经提到,由于与numpy在内存存储上是共用的,所以numpy的ndarray和Tensor之间互相转换,几乎是零成本的。如下所示:

a = np.ones(5)
b = torch.from_numpy(a) # ndarray转tensor
c = torch.tensor([1.0, 2.0, 3.0])
d = c.numpy() # Tensor转ndarray

Tensor常用操作

我们通常想知道Tensor的形状:

a = torch.ones(5, 3)
print(a.size())

我们以加法为例,来看加法的几种表示方式:

x = torch.ones(5,3)
y = torch.ones(5,3)
print(x+y)
print(torch.add(x, y)) # 加法函数
result = torch.empty(5, 3)
torch.add(x, y, out=result) # result返回和
print(result)
y.add_(x) # 将x加入到y中
print(y)

改变Tensor形状:

x = torch.ones(6, 3)
y = x.view(2, 9)
y_ = x.view(-1, 9) # 与上一行效果一致,第一维通过第二维推出

Tensor索引与numpy中相同,对于每一维:开始索引(0开始包含): 结束索引(不包括): 步长,并且-1代表最后一个元素,依此类推。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pytorch是机器学习中的一个重要框架,它与TensorFlow一起被认为是机器学习的两大框架。Pytorch学习可以从以下几个方面入手: 1. Pytorch基本语法:了解Pytorch的基本语法和操作,包括张量Tensors)的创建、导入torch库、基本运算等\[2\]。 2. Pytorch中的autograd:了解autograd的概念和使用方法,它是Pytorch中用于自动计算梯度的工具,可以方便地进行反向传播\[2\]。 3. 使用Pytorch构建一个神经网络:学习使用torch.nn库构建神经网络的典型流程,包括定义网络结构、损失函数、反向传播和更新网络参数等\[2\]。 4. 使用Pytorch构建一个分类器:了解如何使用Pytorch构建一个分类器,包括任务和数据介绍、训练分类器的步骤以及在GPU上进行训练等\[2\]。 5. Pytorch的安装:可以通过pip命令安装Pytorch,具体命令为"pip install torch torchvision torchaudio",这样就可以在Python环境中使用Pytorch了\[3\]。 以上是一些关于Pytorch学习笔记,希望对你有帮助。如果你需要更详细的学习资料,可以参考引用\[1\]中提到的网上帖子,或者查阅Pytorch官方文档。 #### 引用[.reference_title] - *1* [pytorch自学笔记](https://blog.csdn.net/qq_41597915/article/details/123415393)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Pytorch学习笔记](https://blog.csdn.net/pizm123/article/details/126748381)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值