最后:
总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。
面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
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]])‘’’
动态运算图(DynamicComputationGraph)是 PyTorch 的最主要特性,它可以让我们的计算模型更灵活、复杂,并可以让反向传播算法随时进行。而反向传播算法就是深度神经网络的核心。
下面是一个计算图的结构以及与它对应的 PyTorch 代码:
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)。其中**“梯度”就是反向传播算法所要传播的信息**。而父节点用于将每个节点连接起来构建计算图(如上图所示)。
下面我们编写代码实际使用自动微分变量。
import torch
导入自动梯度运算包,主要用Variable这个类
最后
整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》
整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》
[外链图片转存中…(img-jrw4n4um-1715257748155)]
[外链图片转存中…(img-7LFnDj4R-1715257748156)]
[外链图片转存中…(img-gP0u5VRy-1715257748156)]