小编spa*_*del的帖子

如何根据pytorch中的另一个张量选择索引

这个任务看起来很简单,但我不知道该怎么做。

所以我有两个张量:

  • indices形状为 的索引张量(2, 5, 2),其中最后一个维度对应于 x 和 y 维度中的索引
  • value形状为“值张量” (2, 5, 2, 16, 16),我希望使用 x 和 y 索引选择最后两个维度

更具体地说,索引在 0 到 15 之间,我想得到一个输出:

out = value[:, :, :, x_indices, y_indices]
Run Code Online (Sandbox Code Playgroud)

因此,输出的形状应为(2, 5, 2)。有人可以帮我吗?多谢!

编辑:

我尝试了收集的建议,但不幸的是它似乎不起作用(我改变了尺寸,但这并不重要):

首先我生成一个坐标网格:

y_t = torch.linspace(-1., 1., 16, device='cpu').reshape(16, 1).repeat(1, 16).unsqueeze(-1)
x_t = torch.linspace(-1., 1., 16, device='cpu').reshape(1, 16).repeat(16, 1).unsqueeze(-1)
grid = torch.cat((y_t, x_t), dim=-1).permute(2, 0, 1).unsqueeze(0)
grid = grid.unsqueeze(1).repeat(1, 3, 1, 1, 1)
Run Code Online (Sandbox Code Playgroud)

在下一步中,我将创建一些索引。在这种情况下,我总是采用索引 1:

indices = torch.ones([1, …
Run Code Online (Sandbox Code Playgroud)

python indices pytorch

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

字符/数字的边界框检测

我有图像,如下所示:

在此输入图像描述

我想找到 8 位数字的边界框。我的第一次尝试是使用 cv2 和以下代码:

import cv2
import matplotlib.pyplot as plt
import cvlib as cv
from cvlib.object_detection import draw_bbox

im = cv2.imread('31197402.png')
bbox, label, conf = cv.detect_common_objects(im)
output_image = draw_bbox(im, bbox, label, conf)
plt.imshow(output_image)
plt.show()
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用。有人有想法吗?

python ocr opencv

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

如何用XLNet做句子相似度?

我想执行句子相似度任务并尝试了以下操作:

from transformers import XLNetTokenizer, XLNetModel
import torch
import scipy
import torch.nn as nn
import torch.nn.functional as F

tokenizer = XLNetTokenizer.from_pretrained('xlnet-large-cased')
model = XLNetModel.from_pretrained('xlnet-large-cased')

input_ids = torch.tensor(tokenizer.encode("Hello, my animal is cute", add_special_tokens=False)).unsqueeze(0)
outputs = model(input_ids)
last_hidden_states = outputs[0]

input_ids = torch.tensor(tokenizer.encode("I like your cat", add_special_tokens=False)).unsqueeze(0) 

outputs1 = model(input_ids)
last_hidden_states1 = outputs1[0]

cos = nn.CosineSimilarity(dim=1, eps=1e-6)
output = cos(last_hidden_states, last_hidden_states1)
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

RuntimeError: The size of tensor a (7) must match the size of tensor b (4) at non-singleton dimension 1
Run Code Online (Sandbox Code Playgroud)

谁能告诉我,我做错了什么?有更好的方法吗?

python nlp embedding transformer-model cosine-similarity

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

无法在 Google Colab 中加载 OpenAI Gym 环境

我正在尝试在 google colab 中训练 DQN,以便我可以测试 TPU 的性能。不幸的是,我收到以下错误:

import gym
env = gym.make('LunarLander-v2')

AttributeError: module 'gym.envs.box2d' has no attribute 'LunarLander'
Run Code Online (Sandbox Code Playgroud)

我知道这是一个常见的错误,我以前在本地机器上遇到过这个错误。我能够使用以下命令修复它:

!pip install box2d box2d-kengz
!pip install Box2D
!pip install -e '.[box2d]'
Run Code Online (Sandbox Code Playgroud)

虽然这在我的本地机器上有效,但在 google colab 上不是。我无法摆脱错误。有没有人有办法解决吗?

python machine-learning neural-network openai-gym google-colaboratory

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

自然场景数字识别的深度学习解决方案

我正在解决一个问题,我想自动读取图像上的数字,如下所示:

在此输入图像描述

在此输入图像描述

可以看出,图像非常具有挑战性!这些线不仅在所有情况下都不是相连的,而且对比度也相差很大。我的第一次尝试是在经过一些预处理后使用 pytesseract。我还在这里创建了一个 StackOverflow 帖子。

虽然这种方法在单个图像上效果很好,但它并不通用,因为它需要太多的手动信息进行预处理。到目前为止,我拥有的最好的解决方案是迭代一些超参数,例如阈值、侵蚀/膨胀的过滤器大小等。但是,这在计算上是昂贵的!

因此我开始相信,我正在寻找的解决方案必须基于深度学习。我在这里有两个想法:

  • 在类似任务上使用预先训练的网络
  • 将输入图像分割成单独的数字,并以 MNIST 方式自行训练/微调网络

关于第一种方法,我还没有找到好的东西。有人对此有什么想法吗?

关于第二种方法,我首先需要一种方法来自动生成单独数字的图像。我想这也应该是基于深度学习的。之后,我也许可以通过一些数据增强取得一些好的结果。

有人有想法吗?:)

python ocr image-recognition mnist deep-learning

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

Elasticsearch:在 .../jdk/bin/java 的捆绑 jdk 中找不到 java

当我尝试运行 .bin/elasticsearch 时,出现以下错误:

在 /home/ubuntu/Elastic Search/elasticsearch-7.8.0/jdk/bin/java 的捆绑 jdk 中找不到 java

我完全不知道发生了什么。我知道之前已经创建了这个主题,但我还没有找到解决方法。因为java -version我得到:

openjdk version "1.8.0_265"
OpenJDK Runtime Environment (build 1.8.0_265-8u265-b01-0ubuntu2~20.04-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?谢谢!

java elasticsearch

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

为特定领域微调 Bert(无监督)

我想在与特定领域(在我的情况下与工程相关)相关的文本上微调 BERT。培训应该是无人监督的,因为我没有任何标签或任何东西。这可能吗?

python nlp neural-network deep-learning bert-language-model

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

从S3存储桶加载pytorch模型

model.pt我想从 S3 存储桶加载 pytorch 模型 ( )。我写了以下代码:

from smart_open import open as smart_open
import io

load_path = "s3://serial-no-images/yolo-models/model4/model.pt"
with smart_open(load_path) as f:
    buffer = io.BytesIO(f.read())
    model.load_state_dict(torch.load(buffer))
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 64: invalid start byte
Run Code Online (Sandbox Code Playgroud)

一种解决方案是在本地下载模型,但我想避免这种情况并直接从 S3 加载模型。不幸的是,我在网上找不到一个好的解决方案。有人可以帮我吗?

amazon-s3 torch pytorch

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

使用 cv2 / pytesseract 增强数字识别的局部对比度

我想使用 pytesseract 从图像中读取数字。图像如下:

在此输入图像描述

在此输入图像描述

数字是点状的,为了能够使用 pytesseract,我需要白色背景上的黑色连接数字。为此,我考虑使用侵蚀扩张作为预处理技术。正如您所看到的,这些图像很相似,但在某些方面却截然不同。例如,第一幅图像中的点比背景更暗,而第二幅图像中的点比背景更白。这意味着,在第一张图像中,我可以使用侵蚀来获得黑色连接线,在第二张图像中,我可以使用扩张来获得白色连接线,然后反转颜色。这导致以下结果:

在此输入图像描述

在此输入图像描述

使用适当的阈值,可以使用 pytesseract 轻松读取第一张图像。第二张图片,不管是谁,都比较棘手。问题是,例如“4”的某些部分比“3”周围的背景更暗。所以简单的阈值是行不通的。我需要诸如局部阈值或局部对比度增强之类的东西。这里有人有想法吗?

编辑:

OTSU、平均阈值和高斯阈值导致以下结果:

在此输入图像描述

python ocr opencv python-tesseract

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

不从 nanorc 文件中采用 nano 设置

我有一台新的 Macbook M1,通常使用nano. 但是,我陷入了默认设置,这当然不太可行。我创建了一个文件~/.nanorc,因为它不起作用,所以还创建了一个~/etc/nanorc包含以下内容的文件:

set linenumbers
set tabsize 4
set tabstospaces
unset mouse
Run Code Online (Sandbox Code Playgroud)

不幸的是,它没有效果。我不记得nano在我的旧 MacBook 上进行定制时是否遇到过同样的问题。有人可以帮我吗?

谢谢!!

macos terminal nano

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

如何将 Pytorch 模型直接保存在 s3 Bucket 中?

标题说明了一切 - 我想将 pytorch 模型保存在 s3 存储桶中。我尝试的是以下内容:

import boto3

s3 = boto3.client('s3')
saved_model = model.to_json()
output_model_file = output_folder + "pytorch_model.json"
s3.put_object(Bucket="power-plant-embeddings", Key=output_model_file, Body=saved_model)
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用,因为.to_json()仅适用于张量流模型。有谁知道如何在pytorch中做到这一点?

python amazon-s3 boto3 pytorch

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

使用 YOLO 对具有挑战性的图像进行文本检测

我的图像如下所示:

在此输入图像描述

我的目标是检测并识别该数字31197394。我已经对文本识别的深度神经网络进行了微调。如果以以下格式提供,它可以成功识别正确的号码:

在此输入图像描述

剩下的唯一任务是检测相应的边界框。为此,我尝试了darknet。不幸的是,它无法识别任何东西。有人知道在此类图像上表现更好的网络吗?我知道,亚马逊识别能够解决这个任务。但我需要一个可以离线工作的解决方案。因此,我仍然对存在有效的预训练网络抱有很高的希望。非常感谢你的帮助!

ocr object-detection computer-vision yolo yolov4

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