我有一个服务从另一个服务接收二进制格式的图像(我们称之为服务 B):
from PIL import Image
img_list = []
img_bin = get_image_from_service_B()
image = Image.open(io.BytesIO(img_bin)) # Convert bytes to image using PIL
Run Code Online (Sandbox Code Playgroud)
img_list.append(image)
Run Code Online (Sandbox Code Playgroud)
当我有足够的图像时,我想使用 Pytorch 加载图像列表,就好像它是数据集一样
if img_list.__len__() == 500:
### Load dataset and do a transform operation on the data
Run Code Online (Sandbox Code Playgroud)
my_dataset = datasets.ImageFolder("path/to/images/folder/", transform=transform)
dataset_iterator = DataLoader(my_dataset, batch_size=1)
Run Code Online (Sandbox Code Playgroud)
现在我的问题是如何执行转换并从列表加载数据集。
我的问题与我的上一个问题相关,pytorch 在 cpu 和 gpu 上为小尺寸张量分配内存,但在超过 400 GB 的节点上出现错误。但是,它是不同的,所以我创建了一个新线程。
在这个问题中,我改变了输入张量大小的大小。
import torch
from torch import nn
import numpy as np
num_embedding, num_dim = 14000, 300
embedding = nn.Embedding(num_embedding, num_dim)
row, col = 8000, 302
t = [[x for x in range(col)] for _ in range(row)]
t1 = torch.tensor(t)
print(t1.shape) # torch.Size([8000, 302])
type(t1), t1.device, (t1.nelement() * t1.element_size())/(1024**3) # (torch.Tensor, device(type='cpu'), 0.01800060272216797)
tt = embedding(t1)
embedding.forward(t1)
t2 = t1.cuda()
t2.device, t2.shape, t2.grad, t2.nelement(), t2.element_size(), (t2.nelement() * t2.element_size())/(1024**3) # (device(type='cuda', …Run Code Online (Sandbox Code Playgroud) 设a为(n, d, l)张量。让indices是一个(n, 1)张量,包含索引。我想从a给出的索引中收集中间维度张量indices。因此,所得张量的形状为(n, l)。
n = 3
d = 2
l = 3
a = tensor([[[ 0, 1, 2],
[ 3, 4, 5]],
[[ 6, 7, 8],
[ 9, 10, 11]],
[[12, 13, 14],
[15, 16, 17]]])
indices = tensor([[0],
[1],
[0]])
# Shape of result is (n, l)
result = tensor([[ 0, 1, 2], # a[0, 0, :] since indices[0] == 0
[ 9, …Run Code Online (Sandbox Code Playgroud) 我想知道是否有人可以帮助我了解如何将简短的 TF 模型转换为 Torch。
考虑这个 TF 设置:
inp = layers.Input(shape = (386, 1024, 1), dtype = tf.float32)
x = layers.Dense(2)(inp) # [None, 386, 1024, 2]
start, end = tf.split(x, 2, axis=-1)
start = tf.squeeze(start, axis = -1)
end = tf.squeeze(end, axis = -1)
model = Model(inputs = inp, outputs = [start, end])
Run Code Online (Sandbox Code Playgroud)
具体来说,我不确定 Torch 命令会将我的数据从什么转变386, 1024, 1为386, 1024, 2,我也不明白它的作用:Model(inputs = inp, outputs = [start, end])
是:
inp = layers.Input(shape = (386, 1024, 1), dtype = …Run Code Online (Sandbox Code Playgroud) 我有一个时间序列,包含 500 个大小的样本和 2 种类型的标签,并且想要使用 pytorch 构建一个 1D CNN:
class Simple1DCNN(torch.nn.Module):
def __init__(self):
super(Simple1DCNN, self).__init__()
self.layer1 = torch.nn.Conv1d(in_channels=50,
out_channels=20,
kernel_size=5,
stride=2)
self.act1 = torch.nn.ReLU()
self.layer2 = torch.nn.Conv1d(in_channels=20,
out_channels=10,
kernel_size=1)
self.fc1 = nn.Linear(10* 1 * 1, 2)
def forward(self, x):
x = x.view(1, 50,-1)
x = self.layer1(x)
x = self.act1(x)
x = self.layer2(x)
x = self.fc1(x)
return x
model = Simple1DCNN()
model(torch.tensor(np.random.uniform(-10, 10, 500)).float())
Run Code Online (Sandbox Code Playgroud)
但收到此错误消息:
Traceback (most recent call last):
File "so_pytorch.py", line 28, in <module>
model(torch.tensor(np.random.uniform(-10, 10, 500)).float())
File "/Users/lib/python3.8/site-packages/torch/nn/modules/module.py", …Run Code Online (Sandbox Code Playgroud) 执行 iNltk 库时,出现错误。我有最新版本的 pytorch 和 torchvision。
'LSTM' object has no attribute '_flat_weights_names'
Run Code Online (Sandbox Code Playgroud)
在重新搜索一些博客后,有些人建议将版本降级到 1.2 所以我尝试从https://pytorch.org/get-started/previous-versions/安装以下内容
pip install torch==1.2.0+cu92 torchvision==0.4.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html
Run Code Online (Sandbox Code Playgroud)
但是,出现错误
ERROR: Could not find a version that satisfies the requirement torch==1.2.0+cpu
ERROR: No matching distribution found for torch==1.2.0+cpu
Run Code Online (Sandbox Code Playgroud)
另外,1.3.1 版本缺失。
有人知道如何降级到 1.3.1 或 1.2.0 吗?
提前致谢
PD
尝试在 GCP 上运行“导入火炬”。
我收到消息了ModuleNotFoundError: No module named 'torch'
尝试创建一个具有以下属性的新集群(通过 api,而不是终端):
dataproc->conda.packages->pytorch==1.7.1,visions==0.7.1
dataproc->pip.packages->tokenizers==0.10.1,数据集==1.5.0
集群创建超时,未创建。即使刚刚尝试,也会发生同样的情况
dataproc -> conda.packages -> pytorch==1.7.1
尝试使用以下命令在主服务器上手动安装 conda:
conda install -c pytorch pytorch
将近一个小时后,我得到:
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment -/
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助或建议,即除了火炬之外我还需要: from Transformers import LongformerModel, LongformerTokenizer from model import RedditModel
我正在具有 2 个 Tesla M60 GPU 的 Linux 机器上训练一些 PyTorch 模型,并使用此示例使用数据并行化在两个 GPU 之间分割训练https://towardsdatascience.com/how-to-scale-training-on-multiple -GPU-dae1041f49d2
然而,当代码到达调用 torch.multiprocessing.spawn 函数时,它会引发
类型错误:无法腌制“_thread.lock”对象
我知道最好的做法是发布一个小的可重现的示例,但是代码库非常大,并且我无法在足够小的模型上重现此错误以在此处发布。python 错误回溯也没有多大帮助,因为它只是引用多处理库的内部结构。我知道如果没有代码示例,这听起来可能有点太笼统了,但我只是想知道是否有人在 Linux 机器上使用 PyTorch 进行多处理时遇到了同样的错误,如果是这样,需要注意哪些事项来尝试和修理它。代码在单个 GPU 上运行得非常好,因此事实证明很难调试。
如果有帮助,我正在使用 python 3.8.11 和 torch 1.9.0,CUDA 版本 11.1
我有一个张量列表,我想将其转换为浮点,我该怎么做。我尝试过使用.item但它不起作用。我正进入(状态ValueError: only one element tensors can be converted to Python scalars。
tensor([[12.1834, 4.9616, 7.7913],
[ 8.9394, 8.5784, 9.3691],
[ 9.4475, 8.9766, 9.8418],
[11.8210, 6.0852, 8.2168],
[ 8.2885, 6.2607, 9.8877]], grad_fn=<CloneBackward0>)
Run Code Online (Sandbox Code Playgroud)
我在我的jetson nano上安装了YoloV5。当出现此错误时,我想执行我的对象检测代码: python3.8/site-packages/torch/lib/libgomp-d22c30c5.so.1: 无法在静态 TLS 块中分配内存。
为了解决这个问题,我尝试将其放入 bashrc 中:
导出 LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1
没用
你还有别的想法吗?
这是我的代码:
import cv2
import numpy as np
from elements.yolo import OBJ_DETECTION
Object_classes = ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', …Run Code Online (Sandbox Code Playgroud) torch ×10
python ×9
pytorch ×6
tensor ×2
tensorflow ×2
gpu ×1
nltk ×1
oserror ×1
torchvision ×1
yolov5 ×1