比方说,我想乘在神经网络中的所有参数PyTorch(从继承类的实例,torch.nn.Module
通过)0.9
。我该怎么做?
如何在 PyTorch 中执行求和池。具体来说,如果我们有输入(N, C, W_in, H_in)
并想要(N, C, W_out, H_out)
使用特定的输出kernel_size
,stride
就像nn.Maxpool2d
?
我正在尝试使用 torchtext 中的 BucketIterator.splits 函数从 csv 文件加载数据以用于 CNN。除非我有一批最长的句子比最大的过滤器尺寸短,否则一切正常。
在我的示例中,我有大小为 3、4 和 5 的过滤器,因此如果最长的句子没有至少 5 个单词,我会收到错误消息。有没有办法让 BucketIterator 动态设置批次的填充,同时还设置最小填充长度?
这是我用于 BucketIterator 的代码:
train_iter, val_iter, test_iter = BucketIterator.splits((train, val, test), sort_key=lambda x: len(x.text), batch_size=batch_size, repeat=False, device=device)
Run Code Online (Sandbox Code Playgroud)
我希望有一种方法可以在 sort_key 或类似的东西上设置最小长度?
我试过这个,但它不起作用:
FILTER_SIZES = [3,4,5]
train_iter, val_iter, test_iter = BucketIterator.splits((train, val, test), sort_key=lambda x: len(x.text) if len(x.text) >= FILTER_SIZES[-1] else FILTER_SIZES[-1], batch_size=batch_size, repeat=False, device=device)
Run Code Online (Sandbox Code Playgroud) 有没有办法pytorch
在特定(GPU)设备的上下文中运行(无需为每个新张量指定设备,例如.to
选项)?
类似于tensorflow
with tf.device('/device:GPU:0'):
..
似乎默认设备是cpu(除非我做错了):
with torch.cuda.device('0'):
a = torch.zeros(1)
print(a.device)
>>> cpu
Run Code Online (Sandbox Code Playgroud) 我正在 Pytorch 中构建一个神经网络,它应该可以跨 102 个类别进行分类。
我有以下验证功能:
def validation(model, testloader, criterion):
test_loss = 0
accuracy = 0
for inputs, classes in testloader:
inputs = inputs.to('cuda')
output = model.forward(inputs)
test_loss += criterion(output, labels).item()
ps = torch.exp(output)
equality = (labels.data == ps.max(dim=1)[1])
accuracy += equality.type(torch.FloatTensor).mean()
return test_loss, accuracy
Run Code Online (Sandbox Code Playgroud)
训练代码(调用validation
):
epochs = 3
print_every = 40
steps = 0
running_loss = 0
testloader = dataloaders['test']
# change to cuda
model.to('cuda')
for e in range(epochs):
running_loss = 0
for ii, (inputs, labels) in …
Run Code Online (Sandbox Code Playgroud) 我在 Anaconda3 中创建了一个环境,并在 Linux 机器上安装了 pytorch 和 spyder。以下是规格:
spyder 3.3.1
ipython 7.0.1
python 3.7.0
pytorch 0.4.1
torchvision 0.2.1
Run Code Online (Sandbox Code Playgroud)
当我打开 spyder 并导入 Torch 时,它可以工作。之后我安装了 matplotlib 3.0.1。重新启动 spyder 并再次导入 pytorch 会在 spyder 的 ipython 窗口上显示一条消息:
An error ocurred while starting the kernel
terminate called after throwing an instance of 'std::runtime_error'
what(): expected ) but found 'ident' here:
aten::_addmv(Tensor self, Tensor mat, Tensor vec, *, Scalar beta=1, Scalar alpha=1) ?> Tensor
~~~~~~ <??? HERE
Run Code Online (Sandbox Code Playgroud)
在 bash 终端上,我收到以下消息:
js: Not allowed to load local …
Run Code Online (Sandbox Code Playgroud) 所以我试图学习 pytorch,我从教程中得到了这段代码,它只是在那里导入一个 mnist 数据集,但它输出“TypeError:'module' object is not callable”在教程中“dataloader”被写为“Dataloader”但是当我像这样运行它时它输出“AttributeError:模块'torch.utils.data'没有属性'Dataloader'”
在文件 mnist 中下载的数据,但我不知道它是否完整
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optom
from torchvision import datasets, transforms
from torch.autograd import Variable
kwargs={}
train=torch.utils.data.dataloader(datasets.MNIST("mnist",train=True,download=True,transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307),(0.3081,) )] ) ),batch_size=64, shuffle=True, **kwargs)
Run Code Online (Sandbox Code Playgroud) 我想在已经在 ImageNet 上训练的模型上使用转移学习创建一个图像分类器。
如何torchvision.models
用我自己的自定义分类器替换ImageNet 分类器的最后一层?
我有一个 PyTorch 模型,我正在尝试通过执行前向传递来测试它。这是代码:
class ResBlock(nn.Module):
def __init__(self, inplanes, planes, stride=1):
super(ResBlock, self).__init__()
self.conv1x1 = nn.Conv2d(inplanes, planes, kernel_size=1, stride=1, bias=False)
self.conv1 = nn.Conv2d(inplanes, planes, kernel_size=3, stride=stride, padding=1, bias=False)
#batch normalization
self.bn1 = nn.BatchNorm2d(planes)
self.relu = nn.ReLU()
self.conv2 = nn.Conv2d(planes, planes, kernel_size=3, stride=stride, padding=1, bias=False)
self.bn2 = nn.BatchNorm2d(planes)
self.stride = stride
def forward(self, x):
residual = self.conv1x1(x)
out = self.conv1(x)
out = self.bn1(out)
out = self.relu(out)
out = self.conv2(out)
out = self.bn2(out)
#adding the skip connection
out += residual
out = self.relu(out) …
Run Code Online (Sandbox Code Playgroud) 我正在使用 V100 GPU、高 RAM 模式在 google colab 上开发一个 LLM 项目,这些是我的依赖项:
git+https://github.com/pyannote/pyannote-audio
git+https://github.com/huggingface/transformers.git@v4.34.1
openai==0.28
ffmpeg-python
pandas==1.5.0
tokenizers==0.14
torch==2.1.1
torchaudio==2.1.1
tqdm==4.64.1
EasyNMT==2.0.2
psutil==5.9.2
requests
pydub
docxtpl
faster-whisper==0.10.0
git+https://github.com/openai/whisper.git
Run Code Online (Sandbox Code Playgroud)
这是我导入的所有内容:
from faster_whisper import WhisperModel
from datetime import datetime, timedelta
from time import time
from pathlib import Path
import pandas as pd
import os
from pydub import AudioSegment
import numpy as np
from sklearn.cluster import AgglomerativeClustering
from sklearn.metrics import silhouette_score
import requests
import torch
import pyannote.audio
from pyannote.audio.pipelines.speaker_verification import PretrainedSpeakerEmbedding
from pyannote.audio import Audio …
Run Code Online (Sandbox Code Playgroud) python pytorch google-colaboratory openai-whisper large-language-model
pytorch ×10
python ×6
anaconda ×1
gpu ×1
matplotlib ×1
max-pooling ×1
python-3.x ×1
spyder ×1
torchtext ×1
torchvision ×1