找到 135 篇文章 关于 PyTorch

如何在 PyTorch 中裁剪图像中心?

Shahid Akhtar Khan
更新于 2022年1月6日 09:43:59

4K+ 次浏览

要裁剪图像中心,我们使用 CenterCrop()。它是 torchvision.transforms 模块提供的众多变换之一。此模块包含许多可用于对图像数据进行操作的重要变换。CenterCrop() 变换接受 PIL 和张量图像。张量图像是一个形状为 [C, H, W] 的 PyTorch 张量,其中 C 是通道数,H 是图像高度,W 是图像宽度。此变换还接受一批张量图像。一批张量图像是一个形状为 [B, C, H, W] 的张量。B 是… 阅读更多

如何将带有梯度的 PyTorch 张量转换为 NumPy 数组?

Shahid Akhtar Khan
更新于 2022年1月6日 09:34:56

6K+ 次浏览

要将带有梯度的 Torch 张量转换为 NumPy 数组,首先我们必须将张量从当前计算图中分离。为此,我们使用 Tensor.detach() 操作。此操作将张量从当前计算图中分离。现在我们无法计算相对于此张量的梯度。在 detach() 操作之后,我们使用 .numpy() 方法将其转换为 NumPy 数组。如果在 GPU 上定义了 requires_grad=True 的张量,则要将此张量转换为 NumPy 数组,我们必须执行一个额外的步骤。首先,我们必须将张量移动到… 阅读更多

如何检查对象是否是 PyTorch 张量?

Shahid Akhtar Khan
更新于 2021年12月6日 12:44:53

7K+ 次浏览

要检查对象是否是张量,我们可以使用 torch.is_tensor() 方法。如果输入是张量,则返回 True;否则返回 False。语法 torch.is_tensor(input) 参数 input – 要检查的对象,判断其是否是张量。输出 如果输入是张量,则返回 True;否则返回 False。步骤 导入所需的库。所需的库是 torch。定义张量或其他对象。使用 torch.is_tensor(input) 检查创建的对象是否是张量。显示结果。示例 1 # 导入所需的库 import torch # 创建对象 x x = torch.rand(4) print(x) # 检查上述对象是否是张量… 阅读更多

PyTorch 中的 "with torch.no_grad()" 有什么作用?

Shahid Akhtar Khan
更新于 2021年12月6日 12:35:44

6K+ 次浏览

使用 "with torch.no_grad()" 就像一个循环,其中循环内的每个张量都将 requires_grad 设置为 False。这意味着当前与当前计算图附加的任何具有梯度的张量现在都与当前图分离。我们无法再计算相对于此张量的梯度。张量与当前图分离,直到它在循环内。一旦它不在循环内,如果张量是使用梯度定义的,它将再次附加到当前图。让我们来看几个例子,以便更好地… 阅读更多

PyTorch 中的 backward() 有什么作用?

Shahid Akhtar Khan
更新于 2021年12月6日 12:33:18

3K+ 次浏览

backward() 方法用于在神经网络的反向传播过程中计算梯度。执行此方法时计算梯度。这些梯度存储在各自的变量中。计算这些变量的梯度,并使用 .grad 访问梯度。如果我们不调用 backward() 方法来计算梯度,则不会计算梯度。而且,如果我们使用 .grad 访问梯度,则结果为 None。让我们来看几个例子来演示它的工作原理。示例 1 在此示例中,我们尝试在不调用 backward() 方法的情况下访问梯度。我们注意到… 阅读更多

PyTorch – 如何检查张量是否连续?

Shahid Akhtar Khan
更新于 2021年12月6日 12:29:28

2K+ 次浏览

连续张量是一个其元素以连续顺序存储的张量,元素之间没有任何空隙。最初创建的张量始终是连续张量。张量可以以连续的方式查看不同的维度。张量的转置会创建一个非连续顺序的原始张量的视图。张量的转置是非连续的。语法 Tensor.is_contiguous() 如果张量是连续的,则返回 True;否则返回 False。让我们来看几个例子来演示如何使用此函数来检查张量是连续的还是非连续的。示例 1 # 导入 torch 库 import torch … 阅读更多

如何在 PyTorch 中查找张量的转置?

Shahid Akhtar Khan
更新于 2021年12月6日 12:20:28

7K+ 次浏览

要转置张量,我们需要转置两个维度。如果张量是 0 维或 1 维张量,则张量的转置与其自身相同。对于 2 维张量,转置使用两个维度 0 和 1 计算,即 transpose(input, 0, 1)。语法 对于标量、向量或矩阵的转置,我们可以应用下面定义的第一个语法。对于任何维度的张量,我们可以应用第二个语法。对于

如何将 Torch 张量在 CPU 和 GPU 之间移动?

Shahid Akhtar Khan
更新于 2023年11月6日 03:42:20

25K+ 次浏览

可以在 CPU 上定义的 torch 张量可以移动到 GPU,反之亦然。对于高维张量计算,GPU 利用并行计算的能力来减少计算时间。诸如图像之类的二维张量计算密集型,如果在 CPU 上运行则需要花费太多时间。因此,我们需要将此类张量移动到 GPU。语法 要将 torch 张量从 CPU 移动到 GPU,使用以下语法:Tensor.to("cuda:0") 或 Tensor.to(cuda) 以及 Tensor.cuda() 要将 torch 张量从 GPU 移动到 CPU,使用以下语法:Tensor.to("cpu") 以及 Tensor.cpu() 让我们来看几个例子来演示如何… 阅读更多

如何在 PyTorch 中获取矩阵的秩?

Shahid Akhtar Khan
更新于 2021年12月6日 11:43:25

1K+ 次浏览

可以使用 torch.linalg.matrix_rank() 获取矩阵的秩。它将矩阵或一批矩阵作为输入,并返回包含矩阵秩值的张量。torch.linalg 模块为我们提供了许多线性代数运算。语法 torch.linalg.matrix_rank(input) 其中 input 是 2D 张量/矩阵或一批矩阵。步骤 我们可以使用以下步骤来获取矩阵或一批矩阵的秩:导入 torch 库。确保你已安装它。import torch 创建一个 2D 张量/矩阵或一批矩阵并打印它。t = torch.tensor([[1., 2., 3.], [4., 5., 6.]]) print("Tensor:", t) 计算秩… 阅读更多

如何在 PyTorch 中归一化张量?

Shahid Akhtar Khan
更新于 2023年10月31日 03:57:21

28K+ 次浏览

可以使用 torch.nn.functional 模块提供的 normalize() 函数来归一化 PyTorch 中的张量。这是一个非线性激活函数。它对给定张量在指定维度上执行 Lp 归一化。它返回原始张量元素的归一化值的张量。可以对 1D 张量在维度 0 上进行归一化,而可以对 2D 张量在维度 0 和 1 上进行归一化,即列向或行向归一化。可以对 n 维张量在维度 (0, 1, 2, ..., n-1) 上进行归一化。语法 torch.nn.functional.normalize(input, p=2.0, dim = 1) 参数 Input – 输入张量 p – 范数公式中的幂(指数)值 dim – 进行归一化的维度… 阅读更多

广告