标签: torch

如何在pytorch中动态索引张量?

例如,我有一个张量:

tensor = torch.rand(12, 512, 768)
Run Code Online (Sandbox Code Playgroud)

我得到了一个索引列表,说它是:

[0,2,3,400,5,32,7,8,321,107,100,511]
Run Code Online (Sandbox Code Playgroud)

我希望从给定索引列表的维度 2 上的 512 个元素中选择 1 个元素。然后张量的大小将变为(12, 1, 768)

有办法做到吗?

python deep-learning torch pytorch tensor

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

如何在pytorch中按第一维对张量进行排序?

我有一个二维张量,我想像这个例子一样按第一维排序:

a = torch.FloatTensor(
   [[5, 5],
    [5, 3],
    [3, 5],
    [6, 4],
    [3, 7]])
Run Code Online (Sandbox Code Playgroud)

排序后我期望这个结果:

a = torch.FloatTensor(
   [[3, 5],
    [3, 7],
    [5, 3],
    [5, 5],
    [6, 4]])
Run Code Online (Sandbox Code Playgroud)

可以在pytorch中做到这一点吗?我知道可以在 numpy 中做到这一点,但我想使用火炬在 GPU 中做到这一点。

python sorting torch pytorch tensor

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

如何在C++中提取火炬模型的输出?

我已经训练了 keras 模型并使用mmdnn对其进行了转换。然后我尝试在 C++ 代码中使用它:

#include <iostream>

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

#include <torch.h>

int main()
{
    cv::Mat image;
    image= cv::imread("test_img.png", cv::IMREAD_GRAYSCALE);   // Read the file

try
{
    torch::jit::script::Module module;
    module = torch::jit::load("my_model.pth");

    torch::IntArrayRef input_dim = std::vector<int64_t>({ 1, 2, 256, 256});

    cv::Mat input_img;
    image.convertTo(input_img, CV_32FC3, 1 / 255.0);
    torch::Tensor x = torch::from_blob(input_img.data, { 1, 2, 256, 256 }, torch::kFloat);
    torch::NoGradGuard no_grad;

    auto output = module.forward({ x });

    float* data = static_cast<float*>(output.toTensor().data_ptr());

    cv::Mat output_img = cv::Mat(256, 256, CV_32FC3, data);
    cv::imwrite("output_img.png", …
Run Code Online (Sandbox Code Playgroud)

c++ machine-learning neural-network torch pytorch

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

检查 torch::Tensor 是否为空的最佳方法是什么?

我目前正在使用该has_storage()方法来检查张量是否为空,但我想知道除此之外还有什么更好的方法!以及除了初始化torch::Tensor总是有一个存储而空的没有的事实之外,使用这个是否有任何影响!

c++ torch libtorch

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

pytorch:NLLLossignore_index默认值

在 pytorch NLLLoss文档中,ignore_index 的默认值是 -100 而不是通常的None,有什么特殊原因吗?似乎任何负值都是等价的。

顺便说一句,我想忽略索引的原因可能是什么?谢谢!

python torch pytorch

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

AttributeError:模块“torch.optim.lr_scheduler”没有属性“LinearLR”

我正在尝试使用 Pytorch 训练我自己的对象检测模型。但我总是遇到这个错误。我尝试更改火炬版本,但这没有帮助。
我的软件包:torchvision-0.11.1 和 torch-1.10.0

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-10-9e52b782b448> in <module>()
      4 for epoch in range(num_epochs):
      5     # training for one epoch
----> 6     train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq=10)
      7     # update the learning rate
      8     lr_scheduler.step()

/content/engine.py in train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq)
     21         warmup_iters = min(1000, len(data_loader) - 1)
     22 
---> 23         lr_scheduler = torch.optim.lr_scheduler.LinearLR(
     24             optimizer, start_factor=warmup_factor, total_iters=warmup_iters
     25         )

AttributeError: module 'torch.optim.lr_scheduler' has no attribute 'LinearLR'
Run Code Online (Sandbox Code Playgroud)

python object-detection torch pytorch torchvision

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

torch_geometric.nn 中池化和全局池化的区别

我意识到torch_geometric 库提供了全局池化层和池化层,但我真的不明白这两个层在应用于图神经网络时有什么区别?

torch pytorch-geometric

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

从 *.pth 文件查看 Pytorch 权重

我有一个使用 Pytorch 创建的带有权重的.pth文件。我如何才能查看该文件中的权重?

我尝试加载和查看此代码,但它不起作用(作为新手,我可能完全错了)-

import torch
import torchvision.models as models

torch.save('weights\kharif_crops_final.pth')

models.load_state_dict(torch.load('weights\kharif_crops_final.pth'))
models.eval()
print(models)
Run Code Online (Sandbox Code Playgroud)

python machine-learning prediction torch pytorch

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

关于 Detectron2 的导入错误

我试图使用进行语义分割Detectron2,但是当我运行程序时出现了一些棘手的错误。看来我的环境可能存在一些问题。

有谁知道如何修理它?

ImportError:无法从“torch.fx._symbolic_trace”导入名称“is_fx_tracing”(/home/eric/anaconda3/envs/detectron_env/lib/python3.9/site-packages/torch/fx/_symbolic_trace.py)

python torch pytorch

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

Torch:NN处理文本和数字输入

我有以下NN架构:

第1部分:

nn.Sequential {
  [input -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> (7) -> output]
  (1): nn.TemporalConvolution
  (2): nn.TemporalMaxPooling
  (3): nn.TemporalConvolution
  (4): nn.TemporalMaxPooling
  (5): nn.Reshape(14336)
  (6): nn.Dropout(0.500000)
  (7): nn.Linear(14336 -> 128)
}
Run Code Online (Sandbox Code Playgroud)

第2部分:

nn.Sequential {
  [input -> (1) -> (2) -> (3) -> output]
  (1): nn.Linear(4 -> 8)
  (2): nn.ReLU
  (3): nn.Linear(8 -> 4)
}
Run Code Online (Sandbox Code Playgroud)

我想做的是使用这两部分的输出作为另一部分的输入:

nn.Sequential {
  [input -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> output]
  (1): …
Run Code Online (Sandbox Code Playgroud)

neural-network torch conv-neural-network

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