标签: pytorch

FastAI fastbook - 它有什么作用以及为什么我需要设置一本书?

我尝试在我的 google colab 笔记本上运行:

!pip install -Uqq fastbook
import fastbook 
Run Code Online (Sandbox Code Playgroud)

正如 FastAI 书第 2 章中所写的那样。但无论是书还是谷歌上的任何地方都没有解释什么是这种自由。令人惊讶的是,它的页面没有包含任何有关 fastbook 功能的解释 - 仅涉及一些深度学习课程。

所以,

  1. 它有什么作用?

另外,当我跑步时:

fastbook.setup_book()
Run Code Online (Sandbox Code Playgroud)
  1. 那有什么作用?它以什么方式设置一本书,它是什么样的书?

ty。

deep-learning pytorch fast-ai

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

torch.Tensor() new() 收到无效的参数组合 - got (list, dtype=torch.dtype)

当我尝试运行以下简单的行时,我遇到一个非常奇怪的错误:

\n
a = torch.Tensor([0,0,0],dtype = torch.int64)\n\nTypeError: new() received an invalid combination of arguments - got (list, dtype=torch.dtype), but expected one of:\n * (*, torch.device device)\n      didn't match because some of the keywords were incorrect: dtype\n * (torch.Storage storage)\n * (Tensor other)\n * (tuple of ints size, *, torch.device device)\n * (object data, *, torch.device device)\n
Run Code Online (Sandbox Code Playgroud)\n

而如果我们查看官方文档

\n
torch.tensor(data, dtype=None, device=None, requires_grad=False, pin_memory=False) \xe2\x86\x92 Tensor\n
Run Code Online (Sandbox Code Playgroud)\n
\n

参数

\n

data (array_like) \xe2\x80\x93 张量的初始数据。可以是列表、元组、NumPy ndarray、标量和其他类型。

\n

dtype(torch.dtype,可选)\xe2\x80\x93 返回张量所需的数据类型。默认值:如果无,则从数据推断数据类型。

\n
\n …

python pytorch tensor

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

强制 pad_sequence 达到一定长度

我有一组张量正在填充,pad_sequence但我需要保证它们的固定长度。我现在不能这样做,因为pad_sequence会将较短的张量延伸到最长的张量,如果最长的张量没有达到我想要的长度,我就完蛋了。我认为解决方案可以是向其中一个张量添加零以填充到我想要的长度,这样填充的结果将具有我想要的长度。我不知道该怎么做

假设我有一个形状为torch.Size([44])且所需长度为 50 的张量,如何向其添加零以达到 的形状torch.Size([50])?无论初始张量形状如何,都需要保持这一点。

python deep-learning recurrent-neural-network pytorch

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

如何使用 cmake 制作 PyTorch 扩展

本教程演示如何为 PyTorch 制作基于 C++/CUDA 的 Python 扩展。但由于……原因……我的用例比这更复杂,并且不完全适合本教程描述的 Python setuptools 框架。

有没有办法使用cmake编译扩展PyTorch的Python库?

cmake pytorch

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

pytorch 摘要因 Huggingface 模型而失败

我想要从 Huggingface 下载的模型的摘要PyTorch

我在这里做错了什么吗?

from torchinfo import summary
from transformers import AutoModelForSequenceClassification

model = AutoModelForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)
summary(model, input_size=(16, 512))
Run Code Online (Sandbox Code Playgroud)

给出错误:

---------------------------------------------------------------------------

RuntimeError                              Traceback (most recent call last)

/usr/local/lib/python3.7/dist-packages/torchinfo/torchinfo.py in forward_pass(model, x, batch_dim, cache_forward_pass, device, **kwargs)
    257             if isinstance(x, (list, tuple)):
--> 258                 _ = model.to(device)(*x, **kwargs)
    259             elif isinstance(x, dict):

11 frames

/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
   1050                 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1051             return forward_call(*input, **kwargs)
   1052         # Do not call functions when jit is used

/usr/local/lib/python3.7/dist-packages/transformers/models/bert/modeling_bert.py …
Run Code Online (Sandbox Code Playgroud)

python pytorch huggingface-transformers

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

计算pytorch张量中的唯一元素

假设我有以下张量:y = torch.randint(0, 3, (10,))。你会如何计算其中的 0、1 和 2?

我能想到的唯一方法是使用,collections.Counter(y)但想知道是否有更“pytorch”的方法来做到这一点。例如,一个用例是构建用于预测的混淆矩阵。

pytorch

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

如何在 pytorch 训练中优化 cudaHostAlloc 和 cudaLaunchKernel 时间

我正在尝试使用 pytorch profiler 来分析我的模型。我使用下面的代码来分析

with profile(activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA], record_shapes=True) as prof:
    with record_function("model_inference"):
        output_batch = self.model(input_batch)
print(prof.key_averages().table(sort_by="cpu_time_total", row_limit=10))
Run Code Online (Sandbox Code Playgroud)

分析器输出如下

-------------------------------------------------------  ------------  ------------  ------------  ------------  ------------  ------------  ------------  ------------  ------------  ------------  
                                                   Name    Self CPU %      Self CPU   CPU total %     CPU total  CPU time avg     Self CUDA   Self CUDA %    CUDA total  CUDA time avg    # of Calls  
-------------------------------------------------------  ------------  ------------  ------------  ------------  ------------  ------------  ------------  ------------  ------------  ------------  
                                        model_inference         3.17%      83.011ms        63.97%        1.675s        1.675s       0.000us         0.00%     373.844ms     373.844ms             1  
                                            aten::copy_         0.24% …
Run Code Online (Sandbox Code Playgroud)

profiler deep-learning pytorch

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

PyTorch 中卷积的输出维度

我的输入图像的大小是 68 x 224 x 3 (HxWxC),第一Conv2d层定义为

\n

conv1 = torch.nn.Conv2d(3, 16, stride=4, kernel_size=(9,9))

\n

为什么输出特征体的尺寸是16 x 15 x 54?我知道有16个过滤器,所以前面有16,但是如果我用来[(W\xe2\x88\x92K+2P)/S]+1计算维度,维度是不可整除的。

\n

有人可以解释一下吗?

\n

python conv-neural-network pytorch

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

PyTorch 的 SHAP 值 - KernelExplainer 与 DeepExplainer

我还没有找到太多有关 PyTorch 的 SHAP 值的示例。我使用了两种技术来生成 SHAP 值,但是它们的结果似乎彼此不一致。

SHAP KernelExplainer 与 PyTorch

import torch
from torch.autograd import Variable
import shap
import numpy
import pandas

torch.set_grad_enabled(False)

# Get features
train_features_df = ... # pandas dataframe
test_features_df = ... # pandas dataframe

# Define function to wrap model to transform data to tensor
f = lambda x: model_list[0]( Variable( torch.from_numpy(x) ) ).detach().numpy()

# Convert my pandas dataframe to numpy
data = test_features_df.to_numpy(dtype=np.float32)

# The explainer doesn't like tensors, hence the f function
explainer …
Run Code Online (Sandbox Code Playgroud)

python pytorch shap

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

PyTorch:保存优化器状态的目的是什么?

PyTorch 能够保存和加载优化器的状态。PyTorch 教程中显示了一个示例。我目前只是保存和加载模型状态,而不是优化器。那么,除了不必记住学习率等优化器参数之外,保存和加载优化器状态还有什么意义呢?优化器状态包含什么?

pytorch

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