标签: torch

何时在 PyTorch 中使用单独的优化器?

这里给出的例子encoder分别使用了两个优化器decoder。为什么?什么时候这样做?

torch pytorch

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

在 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
查看次数

如何在 Google colab 中激活 GPU 计算?

我是火炬和蟒蛇的大人物,

我正在尝试使用 Google COlab 在网上找到的一些机器学习代码,但出现以下错误:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-4-d4b0db6cedae> in <module>()
    295                         input_dropout=input_dropout, hidden_dropout1=hidden_dropout1,
    296                         hidden_dropout2= hidden_dropout2, label_smoothing= label_smoothing)
--> 297 experiment.train_and_eval()
    298 
    299 

2 frames
/usr/local/lib/python3.6/dist-packages/torch/cuda/__init__.py in _lazy_init()
    195                 "Cannot re-initialize CUDA in forked subprocess. " + msg)
    196         _check_driver()
--> 197         torch._C._cuda_init()
    198         _cudart = _load_cudart()
    199         _cudart.cudaGetErrorName.restype = ctypes.c_char_p

RuntimeError: cuda runtime error (100) : no CUDA-capable device is detected at /pytorch/aten/src/THC/THCGeneral.cpp:50
Run Code Online (Sandbox Code Playgroud)

我知道 cude 是用于 GPU 处理的吗?那么我该如何解决这个问题呢?我正在尝试使用此链接中的代码:

python torch

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

embedding_bag 在 PyTorch 中的具体工作原理

在 PyTorch 中,torch.nn.function.embedding_bag 似乎是负责执行嵌入查找的实际工作的主要函数。在 PyTorch 的文档中,提到 embedding_bag 可以完成其工作 > 无需实例化中间嵌入。这究竟意味着什么?这是否意味着例如当模式为“sum”时它会进行就地求和?或者它只是意味着在调用 embedding_bag 时不会产生额外的张量,但仍然从系统的角度来看,所有中间行向量已经被提取到处理器中以用于计算最终张量?

embedding python-embedding neural-network torch pytorch

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

torch的torch.cat与tensorflow的等价物是什么?

def cxcy_to_xy(cxcy):
    """
    Convert bounding boxes from center-size coordinates (c_x, c_y, w, h) to boundary coordinates (x_min, y_min, x_max, y_max).

    :param cxcy: bounding boxes in center-size coordinates, a tensor of size (n_boxes, 4)
    :return: bounding boxes in boundary coordinates, a tensor of size (n_boxes, 4)
    """
    return torch.cat([cxcy[:, :2] - (cxcy[:, 2:] / 2),  # x_min, y_min
                      cxcy[:, :2] + (cxcy[:, 2:] / 2)], 1)  # x_max, y_max
Run Code Online (Sandbox Code Playgroud)

我想用tensorflow 2.0改变这个torch.cat

torch tensorflow pytorch

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

无法导入手电筒音频“没有可用的音频后端。”

import torchaudio
Run Code Online (Sandbox Code Playgroud)

当我尝试在 Pycharm 上导入手电筒音频时,出现此错误

61: UserWarning: No audio backend is available.
Run Code Online (Sandbox Code Playgroud)

warnings.warn('没有可用的音频后端。')

python-3.x torch pytorch

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

使用 HuggingFace 库在 Pytorch 中训练 BERT 的最后 n% 层(训练 Last 5 BERTLAYER out of 12 。)

Bert 有一个类似于encoder -> 12 BertLayer -> Pooling. 我想训练 Bert 模型的最后 40% 层。我可以将所有图层冻结为:

# freeze parameters
bert = AutoModel.from_pretrained('bert-base-uncased')
for param in bert.parameters():
    param.requires_grad = False

Run Code Online (Sandbox Code Playgroud)

但我想训练最后 40% 的层。当我这样做时len(list(bert.parameters())),它给了我 199。所以让我们假设 79 是参数的 40%。我可以做这样的事情:

for param in list(bert.parameters())[-79:]: # total  trainable 199 Params: 79 is 40%
    param.requires_grad = False
Run Code Online (Sandbox Code Playgroud)

我认为它会冻结前 60% 的层。

另外,有人可以告诉我它会根据架构冻结哪些层吗?

nlp deep-learning torch pytorch huggingface-transformers

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

urllib.error.HTTPError:HTTP 错误 403:从 pytorch hub 加载 resnet18 时超出速率限制

我不确定为什么会出现速率限制错误。

(fashcomp) [jalal@goku fashion-compatibility]$ python main.py --test --l2_embed --resume runs/nondisjoint_l2norm/model_best.pth.tar --datadir ../../../data/fashion
/scratch3/venv/fashcomp/lib/python3.8/site-packages/torchvision/transforms/transforms.py:310: UserWarning: The use of the transforms.Scale transform is deprecated, please use transforms.Resize instead.
  warnings.warn("The use of the transforms.Scale transform is deprecated, " +
Traceback (most recent call last):
  File "main.py", line 313, in <module>
    main()    
  File "main.py", line 105, in main
    model = torch.hub.load('pytorch/vision:v1.9.0', 'resnet18', pretrained=True)
  File "/scratch3/venv/fashcomp/lib/python3.8/site-packages/torch/hub.py", line 362, in load
    repo_or_dir = _get_cache_or_reload(repo_or_dir, force_reload, verbose)
  File "/scratch3/venv/fashcomp/lib/python3.8/site-packages/torch/hub.py", line 162, in _get_cache_or_reload
    _validate_not_a_forked_repo(repo_owner, repo_name, branch)
  File …
Run Code Online (Sandbox Code Playgroud)

python http-error torch pytorch

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

Pytorch CPU 设备索引不能为负数

我有一个用 cuda 训练的张量,我想将其部署在 CPU 上。我让模型在Google Colab GPU 运行时上运行,切换到 CPU 运行时并尝试将其移植。

很抱歉没有包含可重现的示例,如果数据集位于我的谷歌驱动器上,我真的不知道最佳实践是什么。

model = mymodel()
device = torch.device("cpu")
state_dict = torch.load(loadckpt,map_location=device)
model.load_state_dict(state_dict['model'])
model.eval()
result = model(sample)
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我收到以下回溯错误

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-25-5336d222ce8f> in <module>()
      8 # right_pad_np = sample["right_pad"]
      9 # disp_est_uint = np.round(disp_est_np * 256).astype(np.uint16)
---> 10 test_sample(sample)

8 frames
/content/CFNet/utils/experiment.py in wrapper(*f_args, **f_kwargs)
     28     def wrapper(*f_args, **f_kwargs):
     29         with torch.no_grad():
---> 30             ret = func(*f_args, **f_kwargs)
     31         return ret
     32 

<ipython-input-25-5336d222ce8f> in test_sample(sample)
      2 def …
Run Code Online (Sandbox Code Playgroud)

python torch

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

如何在 python 3.12.1 上安装 PyTorch

我正在安装 DARTS TimeSeries 库(https://github.com/unit8co/darts/blob/master/INSTALL.md#enabling-optical-dependencies),但遇到了依赖项安装问题。在 DARTS 安装指南中,它说如果我们遇到这个问题,我们必须参考 PyTorch 的官方安装指南,然后尝试再次安装 Darts。然后,当我尝试在 python 3.12.1 上安装 torch 时,我遇到了这个错误:

\n
\n

错误:找不到满足火炬要求的版本(来自版本:无)

\n

错误:找不到火炬的匹配发行版。

\n
\n

怎么解决呢?

\n

我使用 PyCharm 作为 Python 代码编辑器。

\n

我尝试了pip install darts,但它没有安装所有软件包并遇到此错误 error: subprocess-exited-with-error

\n
  pip subprocess to install build dependencies did not run successfully.\n  \xe2\x94\x82 exit code: 1\n  \xe2\x95\xb0\xe2\x94\x80> [136 lines of output]\n      Collecting setuptools>=64.0\n        Obtaining dependency information for setuptools>=64.0 from https://files.pythonhosted.org/packages\n
Run Code Online (Sandbox Code Playgroud)\n

然后,我尝试使用 pip install torch 来安装 torch 并遇到此错误\n错误:找不到满足需求 torch 的版本(来自版本:无)\n错误:找不到 torch 的匹配发行版

\n

python machine-learning torch

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