最新【深度学习实验报告】实验 1:PyTorch 使用简介,五面阿里拿下飞猪事业部offer

最后:

总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

0.11.3

True

11.3’‘’

没有数据的创建选项:

print(torch.eye(2))

print(torch.zeros(2, 2))

print(torch.ones(2, 2))

print(torch.rand(2, 2))

‘’'tensor([[1., 0.],

[0., 1.]])

tensor([[0., 0.],

[0., 0.]])

tensor([[1., 1.],

[1., 1.]])

tensor([[0.3657, 0.9712],

[0.9962, 0.9617]])‘’’

2.2 基本 Tensor 运算

创建一个5*3的全1矩阵

y = torch.ones(5, 3)

print(y)

计算两个矩阵相加

z = x + y

print(z)

矩阵转置

print(y.t())

矩阵相乘

print(x.mm(y.t()))

点乘

print(x*y)

转置操作可以用.t()来完成,也可以用 transpose(0,1)来完成。

2.2 Tensor 与 numpy.ndarray 之间的转换

PyTorch 的Tensor 可以与Python 的常用数据处理包Numpy 中的多维数组进行转换。

import torch

import numpy as np

为深度学习创建PyTorch张量-最佳选择

Tensor与tensor区别: 区别是:默认数据类型与指定的数据类型。

data = np.array([1, 2, 3])

另外一种转换 Tensor 的方法,为 torch.FloatTensor(data)

t1 = torch.Tensor(data)

t2 = torch.tensor(data)

t3 = torch.as_tensor(data)

t4 = torch.from_numpy(data)

print(t1)

print(t2)

print(t3)

print(t4)

print(t1.dtype)

print(t2.dtype)

print(t3.dtype)

print(t4.dtype)

‘’'tensor([1., 2., 3.])

tensor([1, 2, 3], dtype=torch.int32)

tensor([1, 2, 3], dtype=torch.int32)

tensor([1, 2, 3], dtype=torch.int32)

torch.float32

torch.int32

torch.int32

torch.int32’‘’

tensor 转化为 numpy 的多维数组

print(t1.numpy())

‘’‘[1. 2. 3.]’‘’

Tensor 和 Numpy 的最大区别在于 Tensor 可以在 GPU 上进行运算。

默认情况下,Tensor 是在 CPU 上进行运算的,如果我们需要一个 Tensor

在 GPU 上的实例,需要运行这个 **Tensor 的.cuda()**方法。

在下面的代码中,首先判断在本机上是否有 GPU 环境可用(有 NVIDIA 的GPU,并安装了驱动)。如果有 GPU 环境可用,那么再去获得张量 x,y 的 GPU 实例。注意在最后打印 x 和 y 这两个 GPU 张量的和的时候,我们调用了.cpu() 方法,意思是将 GPU 张量转化为 CPU 张量,否则系统会报错。

import torch

x = torch.rand(5, 3)

y = torch.ones(5, 3)

if torch.cuda.is_available():

x = x.cuda()

y = y.cuda()

z = x+y

print(z)

print(z.cpu())

‘’'tensor([[1.4453, 1.6272, 1.3072],

[1.9444, 1.2703, 1.8512],

[1.8694, 1.1878, 1.8789],

[1.5737, 1.8825, 1.4636],

[1.8158, 1.9969, 1.8819]], device=‘cuda:0’)

tensor([[1.4453, 1.6272, 1.3072],

[1.9444, 1.2703, 1.8512],

[1.8694, 1.1878, 1.8789],

[1.5737, 1.8825, 1.4636],

[1.8158, 1.9969, 1.8819]])‘’’

三、有关自动微分(Autograd)变量的练习


动态运算图(DynamicComputationGraph)是 PyTorch 的最主要特性,它可以让我们的计算模型更灵活、复杂,并可以让反向传播算法随时进行。而反向传播算法就是深度神经网络的核心

下面是一个计算图的结构以及与它对应的 PyTorch 代码:

img

import torch

from torch.autograd import Variable

N, D = 3, 4

产生标准正态分布的随机数或矩阵的函数 randn

x = Variable(torch.randn(N, D), requires_grad=True)

y = Variable(torch.randn(N, D), requires_grad=True)

z = Variable(torch.randn(N, D), requires_grad=True)

a = x*y

b = a+z

c = torch.sum(b)

c.backward()

print(x.grad)

print(y.grad)

print(z.grad)

用来构建计算图的数据叫做自动微分变量(Variable),它与 Tensor 不同。每个 Variable 包含三个属性,分别对应着数据(data)父节点(creator), 以及梯度(grad)。其中**“梯度”就是反向传播算法所要传播的信息**。而父节点用于将每个节点连接起来构建计算图(如上图所示)。

img

下面我们编写代码实际使用自动微分变量。

import torch

导入自动梯度运算包,主要用Variable这个类

最后

整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》

前端面试题宝典

前端校招面试题详解

整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》

[外链图片转存中…(img-jrw4n4um-1715257748155)]

[外链图片转存中…(img-7LFnDj4R-1715257748156)]

[外链图片转存中…(img-gP0u5VRy-1715257748156)]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值