📜  PyTorch面试的50个问题

📅  最后修改于: 2020-11-11 01:17:54             🧑  作者: Mango

PyTorch面试问题

下面列出了一些常见的PyTorch面试问题和答案。

1)什么是PyTorch?

PyTorch是基于Torch库的计算机软件的一部分,该库是针对Python的开源机器学习库。这是一个由Facebook人工智能研究小组开发的深度学习框架。它用于自然语言处理和计算机视觉等应用程序。

点击这里查看更多信息

2)PyTorch的基本要素是什么?

PyTorch中必须包含以下要素:

  • PyTorch张量
  • PyTorch NumPy
  • 数学运算
  • 自动分级模块
  • 优化模块
  • nn模块

3)什么是张量?

张量在PyTorch的深度学习中起着重要作用。简单来说,我们可以说这个框架完全基于张量。张量被视为广义矩阵。它可以是1D张量(向量),2D张量(矩阵),3D张量(立方体)或4D张量(立方体向量)。

点击这里查看更多信息

4)什么是抽象层?

共有三个抽象级别,如下所示:

  • Tensor: Tensor是在GPU上运行的命令式n维数组。
  • 变量:它是计算图中的一个节点。这将存储数据和渐变。
  • 模块:神经网络层将存储状态,否则可学习权重。

5)张量和矩阵相同吗?

我们不能说张量和矩阵是相同的。张量具有一些属性,通过它们我们可以说两者具有某些相似之处,例如我们可以执行张量矩阵的所有数学运算。

张量是生活在结构中并与其他数学实体相互作用的数学实体。如果我们以常规方式变换结构中的其他实体,则张量将遵循相关的变换规则。张量的这种动态特性使其不同于矩阵。

6)torch.from_numpy()有什么用?

torch.from_numpy()是Torch的重要属性之一,它在张量编程中具有重要作用。它用于从numpy.ndarray创建张量。 ndarray和返回张量共享相同的内存。如果我们对返回的张量进行任何更改,那么它也会反映ndaaray。

7)什么是变量和autograd.variable?

Variable是一个用于包装张量的包。 autograd.variable是软件包的中心类。 torch.autograd提供了用于实现任意标量值函数的自动微分的类和函数。它需要对现有代码进行最少的更改。我们只需要声明张量,就应该使用require_grad = True关键字来为其计算梯度。

8)我们如何在PyTorch中找到函数的导数?

函数的导数是在“渐变”的帮助下计算的。通过四个简单的步骤,我们可以轻松计算出导数。

这些步骤如下:

  • 我们将为其计算导数的函数的初始化。
  • 设置其在函数中使用的变量的值。
  • 通过使用向后()方法计算函数的导数。
  • 使用grad打印导数的值。

9)线性回归是什么意思?

线性回归是一种通过最小化距离来找到因变量和自变量之间的线性关系的技术或方法。它是一种有监督的机器学习方法,用于对订单离散类别进行分类。

点击这里查看更多信息

10)什么是损失函数?

损失函数是用于机器学习的面包和黄油。理解和评估我们的算法对数据集建模的效果非常简单。如果我们的预测完全不正确,则该函数将输出较高的数字,否则将输出较低的数字。

点击这里查看更多信息

11)MSELoss,CTCLoss和BCELoss函数的用途是什么?

MSE代表均方误差,该均方根用于创建衡量输入x和目标y中每个元素之间均方误差的标准。 CTCLoss代表连接主义者的时间分类损失,用于计算连续时间序列和目标序列之间的损失。 BCELoss(二进制交叉熵)用于创建衡量目标和输出之间的二进制交叉熵的标准。

12)给出torch.nn和torch.nn.functional之间的任何区别吗?

torch.nn为我们提供了更多的类和模块来实现和训练神经网络。 torch.nn.functional包含一些有用的函数,例如激活函数和卷积运算,我们可以使用它们。但是,这些不是完整的图层,因此,如果要定义任何种类的图层,都必须使用torch.nn。

13)“均方误差”是什么意思?

均方误差告诉我们回归线与一组点的接近程度。均方误差是通过计算点到回归线之间的距离并进行平方来实现的。需要平方才能消除任何负号。

点击这里查看更多信息

14)什么是感知器?

感知器是单层神经网络,或者可以说神经网络是多层感知器。 Perceptron是二元分类器,用于监督学习中。人工神经网络中生物神经元的简单模型称为Perceptron。

点击这里查看更多信息

15)什么是激活函数?

一个神经元是否应该被激活取决于激活函数。激活函数计算加权和,并进一步加上偏差以得出结果。神经网络基于感知器,因此,如果我们想了解神经网络的工作原理,则必须学习感知器的工作原理。

16)神经网络与深度神经网络有何不同?

神经网络和深度神经网络都相似并且做同样的事情。 NN和DNN之间的区别在于,神经网络中只能有一个隐藏层,而在深度神经网络中,则有多个隐藏层。隐藏层在做出准确的预测中起着重要作用。

点击这里查看更多信息

17)为什么网络很难显示问题?

Ann处理数字信息,并且在将问题引入ANN之前将其转换为数字值。这就是很难向网络显示问题的原因。

18)为什么我们在神经网络中使用激活函数

为了确定神经网络的输出,我们使用激活函数。它的主要任务是对结果值在0到1或-1到1等之间进行映射。激活函数基本上分为两种类型:

  • 线性激活功能
  • 非线性激活函数

19)为什么我们更喜欢S型激活函数而不是其他函数?

乙状结肠功能曲线看起来像S形,之所以我们偏爱乙状结肠而不是其他,是因为乙状结肠函数存在于0到1之间。这特别用于需要预测输出概率的模型。

20)前馈是什么意思?

“前馈”是一个过程,通过该过程我们可以接收输入以产生某种输出以进行某种预测。它是许多其他重要神经网络(例如卷积神经网络和深度神经网络)的核心。

在前馈神经网络中,网络中没有反馈回路或连接。这里只是一个输入层,一个隐藏层和一个输出层。

点击这里查看更多信息

21)Conv1d,Conv2d和Conv3d有什么区别?

他们三个之间没有太大区别。 Conv1d和Conv2D用于应用1D和2D卷积。 Conv3D用于对由多个输入平面组成的输入信号进行3D卷积。

22)您从反向传播一词了解什么?

“反向传播”是一组算法,用于计算误差函数的梯度。该算法可以写为神经网络的函数。这些算法是一组方法,用于遵循梯度下降方法(利用链规则)有效地训练人工神经网络。

点击这里查看更多信息

23)什么是卷积神经网络?

卷积神经网络是在神经网络中进行图像分类和图像识别的类别。人脸识别,场景标记,物体检测等是卷积神经网络被广泛使用的领域。 CNN将图像作为输入,将其分类并按特定类别(例如狗,猫,狮子,老虎等)进行处理。

点击这里查看更多信息

24)DNN和CNN有什么区别?

深度神经网络是一种具有多层的神经网络。 “深层”是指神经网络具有许多层,看上去深陷于网络中的各个层。卷积神经网络是另一种深度神经网络。卷积神经网络具有卷积层,该卷积层用于过滤器以将输入数据中的区域卷积为较小的区域,从而检测该区域内的重要或特定部分。卷积可以用于图像以及文本。

25)PyTorch有什么优势?

Pytorch具有以下优点:

  • PyTorch非常易于调试。
  • 这是一种用于图形计算的动态方法。
  • 这是比TensorFlow更快的深度学习培训。
  • 它提高了开发人员的生产率。
  • 它非常容易学习,更易于编写代码。

26)PyTorch和TensorFlow有什么区别?

S.No PyTorch TensorFlow
1. It provides a lower level of APIs It provides both high and low level of APIs
2. Its speed is fast It has slower speed
3. Graph construction is very simple in PyTorch Graph construction is not so simple as PyTorch
4. It includes everything imperatively and dynamically. It has static and dynamic graphs as a combination.
5. It includes deployment highlight for mobile and embedded frameworks. It works better for embedded frameworks.

点击这里查看更多信息

27)批次,随机和微型批次梯度下降之间有何区别?

  • 随机梯度下降:在SGD中,我们仅使用一个训练示例来计算梯度和参数。
  • 批梯度下降:在BGD中,我们计算整个数据集的梯度,并在每次迭代时执行更新。
  • 小批量梯度下降:小批量梯度下降是随机梯度下降的一种变体。在这种梯度下降中,我们使用了小批量样本而不是单个训练示例。

28)什么是自动编码器?

这是一种使用反向传播原理的自治机器学习算法,其中目标值等于提供的输入。在内部,它具有一个隐藏层,用于管理用于表示输入的代码。

29)PyTorch中的Autograd模块是什么?

Autograd模块是PyTorch中使用的一种自动区分技术。当我们构建神经网络时,它会更强大。有一个记录器,它记录了我们执行的每个操作,然后将其回放以计算梯度。

30)PyTorch中的优化模块是什么?

Torch.optim是一个模块,可实现用于构建神经网络的各种优化算法。以下是Adam优化器的代码

Optimizer = torch.optim.Adam(mode1, parameters( ), lr=learning rate

31)PyTorch中的nn模块是什么?

PyTorch提供了torch.nn模块,以帮助我们创建和训练神经网络。我们将首先在MNIST数据集上训练基本神经网络,而无需使用这些模型的任何功能。 torch.nn为我们提供了更多的类和模块来实现和训练神经网络。

32)使用Conda和pip在Windows中安装PyTorch的命令是什么?

使用Conda:conda install pytorch cudatoolkit = 10.0 -c pytorch-nightly

使用pip:pip install torch -f https://download.pytorch.org/whl/nightly/cpu/torch.html

33)什么是torch.cuda?

torch.cuda是一个软件包,增加了对CUDA张量类型的支持。 CUDA张量类型实现与CPU张量相同的函数,但利用GPU进行计算。

34)Type1和Type2错误有什么区别?

类型1错误为假正值,类型2错误为假负值。 I型错误表示发生了什么事情。 II型错误描述了什么是不正确的地方就没有错。

35)为什么要使用PyTorch进行深度学习?

在深度学习工具中,PyTorch起着重要作用,它是机器学习的一个子集,其算法在人脑上起作用。我们偏爱PyTorch的原因如下:

  • PyTorch允许我们动态定义图形。
  • PyTorch非常适合深入研究,并提供最大的灵活性和速度。

36)Tensor的属性是什么?

每个torch.Tensor都有一个torch.device,torch.layout和torch.dtype。 torch.dtype定义数据类型,torch.device表示在其上分配了torch.Tensor的设备,torch.layout表示torch.Tensor的内存布局。

37)Anaconda和Miniconda有什么区别?

Anaconda是数百个软件包的集合,其中包括conda,numpy,scipy,ipython notebook等。 Miniconda是水蟒的较小替代品。

38)我们如何检查GPU使用情况?

可以按照以下步骤检查GPU的使用情况:

  • 使用窗口键+ R打开运行命令。
  • 键入dxdiag.exe命令,然后按Enter键打开DirectXDiagnostic Tool。
  • 单击显示选项卡。
  • 在驱动程序下方的右侧,检查驱动程序型号信息。

39)什么是MNIST数据集?

MNIST数据集用于图像识别。它是一个包含各种手写数字的数据库。 MNIST数据集具有大量数据,这些数据通常用于证明深度神经网络的真正功能。

点击这里查看更多信息

40)什么是CIFAR-10数据集?

它是彩色图像的集合,通常用于训练机器学习和计算机视觉算法。 CIFAR 10数据集包含50000个训练图像和10000个验证图像,因此可以将这些图像分类为10个不同的类别。

41)CIFAR-10和CIFAR-100数据集有什么区别?

CIFAR 10数据集包含50000个训练图像和10000个验证图像,因此可以将这些图像分类为10个不同的类别。另一方面,CIFAR-100具有100个类别,每个类别包含600张图像。每个课程有100张测试图像和500张训练图像。

42)卷积层是什么意思?

卷积层是卷积神经网络的第一层。这是从输入图像中提取要素的层。这是一个数学运算,需要两个输入,例如图像矩阵和内核或滤波器。

43)Stride是什么意思?

步幅是在输入矩阵上移动的像素数。当步幅等于1时,我们将滤镜一次移动到1个像素。

44)填充是什么意思?

“填充是可以添加到图像边框的附加层。”它用于克服

  • 缩小输出
  • 图像一角丢失信息。

45)什么是池化层。

池化层在图像的预处理中起着至关重要的作用。当图像太大时,池化层会减少参数数量。合并是从先前图层获得的图像的“缩小比例”。

46)什么是最大池化?

最大池化是基于样本的离散过程,其主要目标是减小其维数,缩小输入表示的比例。并且允许对包含在分区中的子区域中的特征进行假设。

47)什么是平均池化?

缩减将通过将输入划分为矩形池区域来通过平均池执行,并且将计算每个区域的平均值。

48)什么是汇总池?

用于求和池或均值池的子区域将设置为与最大池相同,但不是使用max函数,而是使用求和或均值。

49)完全连接层是什么意思?

完全连接的层是一个层,其中来自其他层的输入将被平整为向量并发送。它将通过网络将输出转换为所需的类数。

50)什么是Softmax激活函数?

Softmax函数是一个很棒的激活函数,它将数字(即逻辑数)转换为总和为1的概率。 Softmax函数输出一个向量,该向量表示潜在结果列表的概率分布。