标签: pytorch

将图像修改为白底黑字

我有一张图像需要进行 OCR(光学字符识别)来提取所有数据。

在此输入图像描述

首先,我想将彩色图像转换为白色背景上的黑色文本,以提高 OCR 准确性。

我尝试下面的代码

from PIL import Image
img = Image.open("data7.png")
img.convert("1").save("result.jpg")
Run Code Online (Sandbox Code Playgroud)

它给了我下面不清楚的图像

在此输入图像描述

我期望有这个图像

在此输入图像描述

然后,我将使用 pytesseract 来获取数据框

import pytesseract as tess
file = Image.open("data7.png")
text = tess.image_to_data(file,lang="eng",output_type='data.frame')
text
Run Code Online (Sandbox Code Playgroud)

最后,我想要得到的数据框如下

在此输入图像描述

python image-processing image-segmentation tensorflow pytorch

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

Pytorch BERT 输入梯度

我正在尝试从 pytorch 中的 BERT 模型获取输入梯度。我怎样才能做到这一点?假设 y' = BertModel(x)。我试图找到 $d(loss(y,y'))/dx$

gradient deep-learning pytorch bert-language-model huggingface-transformers

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

在 GPU 上运行多个进程时的内存问题

这个问题可以与我的另一个问题相关查看。

我尝试并行运行多个机器学习进程(使用 bash)。这些是使用 PyTorch 编写的。在一定数量的并发程序(我的例子中是 10 个)之后,我收到以下错误:

RuntimeError: Unable to find a valid cuDNN algorithm to run convolution
Run Code Online (Sandbox Code Playgroud)

正如这个答案中提到的,

...发生这种情况的原因可能是达到了 VRAM 内存限制(从错误消息来看,这相当不直观)。

对于我的 PyTorch 模型训练案例,减小批量大小有帮助。您可以尝试此操作,或者减小模型大小以消耗更少的 VRAM。

我尝试了此处提到的解决方案,以强制执行每个进程的 GPU 内存使用限制,但此问题仍然存在。

对于单个进程或较少数量的进程,不会出现此问题。由于同一时刻只有一个上下文运行,为什么这会导致内存问题?

使用/不使用 MPS 时都会出现此问题。我认为 MPS 可能会出现这种情况,但其他情况则不然,因为 MPS 可能会并行运行多个进程。

cuda gpu gpgpu nvidia pytorch

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

torch.version.cuda 在某些版本的 pytorch 和 cuda 中为 None

我的cuda版本显示在这里。 nvcc -V 输出 nvidia-smi 输出

我基本上想安装apex。我首先使用命令

conda install pytorch=1.10.1 cudatoolkit=11.1 -c pytorch
Run Code Online (Sandbox Code Playgroud)

用cuda安装torch,这个版本的cudatoolkit工作正常并且

torch.version.cuda 
Run Code Online (Sandbox Code Playgroud)

正确显示预期输出“11.1”并且

torch.cuda.is_available()
Run Code Online (Sandbox Code Playgroud)

返回 True。然而,当我稍后尝试安装 apex 时,这不起作用,因为我的 nvcc -V 的版本如上所示是 11.4,但 cudatoolkit 是 11.1。

然后我使用命令

conda install pytorch cudatoolkit=11.4 -c pytorch
Run Code Online (Sandbox Code Playgroud)

安装正确的 cudatoolkit 版本 11.4。这样做之后,torch版本变为1.9.1。然而,

torch.version.cuda 
Run Code Online (Sandbox Code Playgroud)

变为无并且

torch.cuda.is_available()
Run Code Online (Sandbox Code Playgroud)

返回 False。

我还尝试了 cudatoolkit=11.4 和 torch 版本 1.9.1 和 1.12.1,但它们都不起作用。

我希望我的 GPU 能够被正确检测到。我应该使用哪个版本的 torch 和 cudatoolkit?或者这里还有什么问题吗?多谢。

python conda pytorch

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

NVIDIA GeForce GT 635M是否适合深度学习?

我的GPU模型是NVIDIA GeForce GT 635M,在NVIDIA网站上,据说该GPU支持CUDA。我可以在此GPU中使用TensorFlow或PyTorch或任何其他种类的深度学习平台吗?

gpu deep-learning tensorflow pytorch

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

从 pytorch 中预训练的 resnet50 中提取特征

大家好,我想提取预训练 resnet50 的全连接层的 in_features。

我之前创建了一个为我提供特征向量的方法:

def get_vector(image):

#layer = model._modules.get('fc')

layer = model.fc
my_embedding = torch.zeros(2048) #2048 is the in_features of FC , output of avgpool

def copy_data(m, i, o):

    my_embedding.copy_(o.data)


h = layer.register_forward_hook(copy_data)
tmp = model(image)

h.remove()

# return the vector
return my_embedding
Run Code Online (Sandbox Code Playgroud)

我在这里调用这个方法之后:

column = ["FlickrID", "Features"]

path = "./train_dataset/train_imgs/"

pathCSV = "./train_dataset/features/img_info_TRAIN.csv"



f_id=[]
features_extr=[]

df = pd.DataFrame(columns=column)


tr=transforms.Compose([transforms.Resize(256),
                       transforms.CenterCrop(224),
                       transforms.ToTensor(),
                       transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])])



test = Dataset(path, pathCSV, transform=tr)

test_loader = DataLoader(test, batch_size=1, num_workers=2, shuffle …
Run Code Online (Sandbox Code Playgroud)

python resnet pytorch

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

pytorch中有张量的幂函数吗?

numpy.powerpytorch 中有类似的吗?

该函数基本上将第一个张量中的每个元素计算为第二个张量中每个对应元素所表示的幂。

numpy neural-network deep-learning pytorch

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

在 VGG 模型上用平均池化层替换最大池化层

我正在关注这篇文章,并尝试实现此功能:

def replace_max_pooling(model):
 '''
 The function replaces max pooling layers with average pooling layers with 
 the following properties: kernel_size=2, stride=2, padding=0.
 '''
 for layer in model.layers:
    if layer is max pooling:
        replace
Run Code Online (Sandbox Code Playgroud)

但是我在迭代中得到一个错误说:

ModuleAttributeError: 'VGG' 对象没有属性 'layers'...

我怎样才能正确地做到这一点?

deep-learning pytorch

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

ModuleNotFoundError:没有名为“torch.tensor”的模块

如何解决这个问题:

Traceback (most recent call last):
  File "C:/Users/arulsuju/Desktop/OfflineSignatureVerification-master/OfflineSignatureVerification-master/main.py", line 4, in <module>
    from Preprocessing import convert_to_image_tensor, invert_image
  File "C:\Users\arulsuju\Desktop\OfflineSignatureVerification-master\OfflineSignatureVerification-master\Preprocessing.py", line 4, in <module>
    from torch.tensor import Tensor
ModuleNotFoundError: No module named 'torch.tensor'
Run Code Online (Sandbox Code Playgroud)

在Python中我正在使用

from torch.tensor import Tensor
Run Code Online (Sandbox Code Playgroud)

python conda pytorch tensor

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

为什么 torch.version.cuda 和 deviceQuery 报告不同的版本?

我对我的系统上安装的 CUDA 版本以及是否被我的软件有效使用有疑问。\n我在网上做了一些研究,但找不到解决我的疑问的方法。\n这个问题对我的理解有所帮助,并且是与我下面要问的问题最相关的是这个

\n

问题描述:

\n

我使用 virtualenvironmentwrapper 创建了一个虚拟环境,然后在其中安装了 pytorch。

\n

一段时间后,我意识到我的系统上没有安装 CUDA。

\n

您可以通过执行以下操作找到它:
\nnvcc \xe2\x80\x93V

\n

如果没有返回任何内容,则意味着您没有安装 CUDA(据我了解)。

\n

因此,我按照这里的说明进行操作

\n

我用这个官方链接安装了CUDA。

\n

然后,我nvidia-development-kit简单地安装了

\n

sudo apt install nvidia-cuda-toolkit

\n

现在,如果在我的虚拟环境中我这样做:

\n

nvcc -V

\n

我得到:

\n
nvcc: NVIDIA (R) Cuda compiler driver\nCopyright (c) 2005-2019 NVIDIA Corporation\nBuilt on Sun_Jul_28_19:07:16_PDT_2019\nCuda compilation tools, release 10.1, V10.1.243\n
Run Code Online (Sandbox Code Playgroud)\n

但是,如果(总是在虚拟环境中)我这样做:

\n

python -c "import torch; print(torch.version.cuda)"

\n

我得到:

\n

10.2

\n

这是我不明白的第一件事。我在虚拟环境中使用哪个版本的 CUDA?

\n …

python linux cuda virtual-environment pytorch

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