Deep Learning with Pytorch 中文简明笔记 第三章 It starts with a tensor

Deep Learning with Pytorch 中文简明笔记 第三章 Tensor

Pytorch作为深度学习框架的后起之秀,凭借其简单的API和简洁的文档,收到了越来越多人的关注和喜爱。本文主要总结了 Deep Learning with Pytorch 一书第三章[It starts with a tensor]的主要内容,并加以简单明了的解释,作为自己的学习记录,也供大家学习和参考。

1. 主要内容

本章内容主要包括

  1. Pytorch中最基本的数据结构Tensor
  2. Tensor的索引操作
  3. 和numpy多维向量交互
  4. 将Tensor放入GPU中以加速运算

2. 多维向量Tensor

# In[1]:
a = [1.0, 2.0, 1.0]

# In[2]:
a[0]

# Out[2]: 
1.0

# In[3]: 
a[2] = 3.0

# Out[3]: 
[1.0, 2.0, 3.0]

# In[4]: 
import torch 
a = torch.ones(3)

# Out[4]: 
tensor([1., 1., 1.])

# In[5]: 
a[1]

# Out[5]: 
tensor(1.)

# In[6]: 
float(a[1])

# Out[6]: 
1.0

# In[7]:
a[2] = 2.0 
a

# Out[7]: 
tensor([1., 1., 2.])

在Pytorch中,可以直接使用Python原生的list直接构建Tensor对象。但是对于Python的list是对list所包含对象的收集,这些对象在内存中可能不是连续的(一般情况下均不连续)。但是Pytorch中的Tensor或者numpy则是内存中连续分配的C语言被解包的数字类型,外加一些元数据(如矩阵的维度,数据类型等信息)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zZzgFdp1-1595349999288)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7839a2e8-646a-49cd-913f-e26d28497eac/Untitled.png)]

# In[12]: 
points.shape

# Out[12]: 
torch.Size([3, 2])

# In[13]: 
points = torch.zeros(3, 2) 
points

# Out[13]: 
tensor([[0., 0.], [0., 0.], [0., 0.]])

通过shape来访问Tensor的形状,通过zeros或者ones来初始化指定大小的Tensor

3. Tensor的索引操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kRQwEFHp-1595349999290)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5f231ba0-1772-4a65-ae7d-29f094635eb4/Untitled.png)]

值得注意的是,points[None]会在最后增加一个维度

import torch

a = torch.tensor(1)
print(a.shape)
a = a[None]
print(a.shape)
a = a[None]
print(a.shape)

输出为

torch.Size([])
torch.Size([1])
torch.Size([1, 1])

4. Tensor维度命名

通常来讲,对于多维张量来说,每个维度都有其含义,如图片的RBG通道,图片的高宽或者是mini batch的size。Pytorch支持为张量的不同维度命名,一方面使代码更可读,另一方面减少出错的可能性。

# In[2]: 
img_t = torch.randn(3, 5, 5) # shape [channels, rows, columns] 
weights = torch.tensor([0.2126, 0.7152, 0.0722])

# In[3]:
batch_t = torch.randn(2, 3, 5, 5) # shape [batch, channels, rows, columns]

# In[4]: 
img_gray_naive = img_t.mean(-3) # 表示对倒数第3个维度进行规约平均
batch_gray_naive = batch_t.mean(-3) 
img_gray_naive.shape, batch_gray_naive.shape

# Out[4]: 
(torch.Size([5, 5]), torch.Size([2, 5, 5]))

在创建Tensor的时候,可以使用names属性进行命名

# In[7]: 
weights_named = torch.tensor([0.2126, 0.7152, 0.0722], names=['channels'
### 回答1: 《深度学习PyTorch中文版》是一本非常实用的书籍,它覆盖了深度学习的各个方面,并详细介绍了如何使用PyTorch来构建神经网络。本书从最基础的线性回归、分类问题开始,逐渐深入探讨了卷积神经网络、循环神经网络、生成对抗网络等高级话题。此外,本书还介绍了数据的预处理、特征工程、模型训练等方面的技巧,让读者能够更好地理解和应用深度学习算法。 本书的优点在于其语言简洁易懂,配合引人入胜的实例和图表,让读者更容易理解和掌握深度学习的知识。同时,本书的代码实现也非常清晰,让读者能够轻松地复现和修改代码,加深对深度学习算法的理解。 总之,《深度学习PyTorch中文版》是一本非常适合初学者和从业者的实用书籍,它能够帮助读者更好地了解和应用深度学习算法,并且提供了丰富的实战经验。如果你正在学习深度学习或者需要深入了解PyTorch框架,那么这本书一定是你的不二之选。 ### 回答2: 《Deep Learning with PyTorch中文版》是一本非常优秀的深度学习教材。PyTorch是Facebook推出的一款开源的深度学习框架,它支持动态图和静态图,有着非常易用的API和灵活的特性,因此它在深度学习社区受到了广泛的关注和使用。 这本书全面地介绍了PyTorch的使用方法以及深度学习的基础知识。书的章节安排和内容非常合理,从最基础的张量操作和autopograd介绍到卷积神经网络、循环神经网络和生成对抗网络等高级主题,深入浅出地讲解了深度学习的原理和实现方式。此外,书还涵盖了实践最常用的技术,如数据预处理、模型验证和模型训练等内容,使人们能够更加完整地了解深度学习的实际应用。 另外,这本书还涉及了一些PyTorch的高阶特性,如分布式训练、混合精度训练和自定义操作符等内容,这些内容对于一些具有深度学习基础的人来说将非常有用。同时,书还提供了大量的实际代码示例和实验案例,帮助读者更好地理解和掌握相关知识。 总之,《Deep Learning with PyTorch中文版》是一本非常优秀的深度学习教材,它深入浅出地介绍了PyTorch的使用方法和深度学习的基础知识,为读者打下扎实的基础,同时也探讨了一些高级主题和实用技巧,可以作为深度学习入门者和高级使用者的参考书。 ### 回答3: PyTorch是一个开源的Python机器学习框架,它被广泛应用于深度学习领域。《Deep Learning with PyTorch(使用PyTorch进行深度学习)》中文版是该领域的经典读物之一,它提供了全面且易于理解的介绍,以便帮助读者掌握PyTorch的理论和实践知识。 该书从基础知识开始,逐步深入介绍了PyTorch的概念、结构和操作。作者将PyTorch的设计和实现详细解释,帮助读者理解其背后的思想和动机。此外,本书还提供了许多实际应用的例子,涵盖了深度学习领域的多个方面,包括自然语言处理、计算机视觉、生成模型等。 在本书,读者可以学习如何使用PyTorch实现各种常见的深度学习模型,例如卷积神经网络、循环神经网络和深度生成模型等。本书还涵盖了其他重要的深度学习技术,如迁移学习、强化学习和自监督学习等。通过阅读本书,读者可以了解到PyTorch深度学习领域的应用,并了解如何使用它设计和实现自己的深度学习模型。 总之,《Deep Learning with PyTorch(使用PyTorch进行深度学习)》中文版提供了广泛的知识和技能,适合想要学习和应用PyTorch的学生、研究人员和实践者。该书旨在帮助读者充分利用PyTorch的优势,更好地应对深度学习领域的挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值