标签: pytorch

如何使用pytorch进行类似于numpy的trapz函数的数值积分?

标题说明了一切。pytorch中是否有一个方便的函数可以执行类似的操作(通过梯形规则对np.trapz(y, x)点进行积分)?xy

python numerical-integration pytorch

1
推荐指数
1
解决办法
3769
查看次数

PyTorch:批量外加法

我有两个 PyTorch 张量:AB,形状均为(b, c, 3)。我想对CA进行外积B,得到的形状是(b, c, 3, 3),并用加法代替乘法运算。我该怎么做呢?

python pytorch

1
推荐指数
1
解决办法
1604
查看次数

pytorch中的unsqueez_和keras中的epxand_dim有什么区别,使用它后输出的形状是什么?

我是 keras 的初学者,我有一个 pytorch 代码,我需要将其更改为 keras,但我无法理解其中的某些部分。特别是我在输出形状的大小方面遇到问题。的形状image是 (:, 3,32,32) ,第一个维度image是批次的大小。现在,我的问题是:这条线的作用是什么以及输出形状是什么:

    image_yuv_ch = image[:, channel, :, :].unsqueeze_(1)
Run Code Online (Sandbox Code Playgroud)

它在位置 1 处添加了一个维度?输出形状是什么?:( 过滤器的大小是 (64,8,8) 然后我们有,这是否意味着isfilters.unsqueez_(1)的新形状?这条线的作用是什么? 它与 keras 中的 conv2d 相同吗?它的输出张量的形状?我也无法理解视图的作用?我知道它试图以新的形状显示张量,但在下面的代码中我无法理解每个 或 后的输出形状。您能告诉我什么吗是每条线的输出形状吗?先谢谢你了。filters(64,1,8,8)image_conv = F.conv2d(image_yuv_ch, filters, stride=8)unsqueez_permuteview

import torch.nn.functional as F
def apply_conv(self, image, filter_type: str):



        if filter_type == 'dct':
            filters = self.dct_conv_weights
        elif filter_type == 'idct':
            filters = self.idct_conv_weights
        else:
            raise('Unknown filter_type value.')

        image_conv_channels = []
        for channel in range(image.shape[1]):
            image_yuv_ch = …
Run Code Online (Sandbox Code Playgroud)

python keras pytorch

1
推荐指数
1
解决办法
2481
查看次数

在 Pytorch 中获取欧几里德和无限距离

我正在尝试使用 torch.dist 在 Pytorch 中获取欧几里得距离,如下所示:

torch.dist(vector1, vector2, 1)
Run Code Online (Sandbox Code Playgroud)

如果我使用“1”作为第三个参数,我将得到曼哈顿距离,结果是正确的,但我试图获取欧几里德距离和无限距离,结果不正确。我在第三个参数上尝试了很多不同的数字,但无法获得所需的距离。

如何使用 Pytorch 获得欧几里德距离和无限距离?

python distance pytorch

1
推荐指数
1
解决办法
4125
查看次数

SageMaker PyTorchModel 传递自定义变量

通过类使用 SageMaker 部署模型时PyTorchModel,是否可以传递自定义环境变量或 kwargs?

我希望能够通过自定义参数切换服务代码的功能,而不是需要编写多个serve.py来处理不同的训练模型导出方法。

model = PyTorchModel(name='my_model',
                     model_data=estimator.model_data,
                     role=role,
                     framework_version='1.0.0',
                     entry_point='serve.py',
                     source_dir='src',
                     sagemaker_session=sess,
                     predictor_cls=ImagePredictor,
                     <custom_argument?>
                    )
Run Code Online (Sandbox Code Playgroud)

keyword-argument pytorch amazon-sagemaker

1
推荐指数
1
解决办法
624
查看次数

nn.Linear() 在 pytorch 的最后做什么,为什么有必要?

我正在使用一些训练 lstm 生成序列的代码。训练模型后,调用 lstm() 方法:

x = some_input
lstm_output, (h_n, c_n) = lstm(x, hc) 
funcc = nn.Linear(in_features=lstm_num_hidden,
                  output_features=vocab_size,
                  bias=True)
func_output = func(lstm_output)
Run Code Online (Sandbox Code Playgroud)

我已经查看了文档,nn.Linear()但我仍然不明白这个转换正在做什么以及为什么它是必要的。如果 lstm 已经经过训练,那么它给出的输出应该已经具有预先建立的维度。该输出(lstm_output)将是生成的序列,或者在我的例子中是向量数组。我在这里错过了什么吗?

neural-network lstm recurrent-neural-network pytorch

1
推荐指数
1
解决办法
1621
查看次数

对于给定条件,获取 2D 张量 A 中的值的索引,使用这些索引来索引 3D 张量 B

对于给定的二维张量,我想检索值为 的所有索引1。我期望能够简单地使用torch.nonzero(a == 1).squeeze(),这将返回tensor([1, 3, 2])。然而,相反,torch.nonzero(a == 1)返回一个 2D 张量(没关系),每行有两个值(这不是我所期望的)。然后,应使用返回的索引来索引 3D 张量的第二个维度(索引 1),再次返回 2D 张量。

import torch

a = torch.Tensor([[12, 1, 0, 0],
                  [4, 9, 21, 1],
                  [10, 2, 1, 0]])

b = torch.rand(3, 4, 8)

print('a_size', a.size())
# a_size torch.Size([3, 4])
print('b_size', b.size())
# b_size torch.Size([3, 4, 8])

idxs = torch.nonzero(a == 1)
print('idxs_size', idxs.size())
# idxs_size torch.Size([3, 2])

print(b.gather(1, idxs))
Run Code Online (Sandbox Code Playgroud)

显然,这不起作用,导致运行时错误:

RuntimeError:无效参数 4:索引张量必须与 C:\w\1\s\windows\pytorch\aten\src\TH/generic/THTensorEvenMoreMath.cpp:453 处的输入张量具有相同的维度

看来idxs不是我想象的那样,也不能按照我想的方式使用。idxs是 …

python multidimensional-array pytorch tensor tensor-indexing

1
推荐指数
1
解决办法
8859
查看次数

在 PyTorch 中提取子张量

对于这个张量是 PyTorch,

tensor([[ 0.7646,  0.5573,  0.4000,  0.2188,  0.7646,  0.5052,  0.2042,  0.0896,
          0.7667,  0.5938,  0.3167,  0.0917],
        [ 0.4271,  0.1354,  0.5000,  0.1292,  0.4260,  0.1354,  0.4646,  0.0917,
         -1.0000, -1.0000, -1.0000, -1.0000],
        [ 0.7208,  0.5656,  0.3000,  0.1688,  0.7177,  0.5271,  0.1521,  0.0667,
          0.7198,  0.5948,  0.2438,  0.0729],
        [ 0.6292,  0.8250,  0.4000,  0.2292,  0.6271,  0.7698,  0.2083,  0.0812,
          0.6281,  0.8604,  0.3604,  0.0917]], device='cuda:0')
Run Code Online (Sandbox Code Playgroud)

我如何提取这些值到新的张量

0.7646,  0.5573,  0.4000,  0.2188
0.4271,  0.1354,  0.5000,  0.1292
Run Code Online (Sandbox Code Playgroud)

如何将两行的前 4 行放入新的张量中?

torch pytorch

1
推荐指数
1
解决办法
5624
查看次数

在tensorflow中是否有名为“index_select”的pytorch的等效函数

我尝试将 pytorch 代码翻译为tensorflow。index_select所以我想知道在tensorflow中是否有一个与pytorch等效的函数

tensorflow pytorch

1
推荐指数
1
解决办法
1205
查看次数

如何在 VS Code 中设置 python 环境变量?

我知道如何为我想要运行的 Python 脚本添加参数。例如,如果test.py是我的脚本文件,并且它有一个参数,'--batch_size'那么我可以launch.json在 VS Code 中编辑并设置"args": ["--batch_size", "32"]

但我不知道如何为Python本身添加环境参数。例如,Python有-m环境变量,它将库模块作为脚本运行。如果我想运行python -m torch.distributed.launch test.py --batch_size 32,我应该在 VS Code 中编辑什么来运行调试器?

更新:这是我的launch.json

在此输入图像描述

python visual-studio-code pytorch

1
推荐指数
1
解决办法
2万
查看次数