我有一张图像需要进行 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
我正在尝试从 pytorch 中的 BERT 模型获取输入梯度。我怎样才能做到这一点?假设 y' = BertModel(x)。我试图找到 $d(loss(y,y'))/dx$
gradient deep-learning pytorch bert-language-model huggingface-transformers
这个问题可以与我的另一个问题相关查看。
我尝试并行运行多个机器学习进程(使用 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版本显示在这里。 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?或者这里还有什么问题吗?多谢。
我的GPU模型是NVIDIA GeForce GT 635M,在NVIDIA网站上,据说该GPU支持CUDA。我可以在此GPU中使用TensorFlow或PyTorch或任何其他种类的深度学习平台吗?
大家好,我想提取预训练 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) numpy.power
pytorch 中有类似的吗?
该函数基本上将第一个张量中的每个元素计算为第二个张量中每个对应元素所表示的幂。
我正在关注这篇文章,并尝试实现此功能:
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'...
我怎样才能正确地做到这一点?
如何解决这个问题:
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) 我对我的系统上安装的 CUDA 版本以及是否被我的软件有效使用有疑问。\n我在网上做了一些研究,但找不到解决我的疑问的方法。\n这个问题对我的理解有所帮助,并且是与我下面要问的问题最相关的是这个。
\n问题描述:
\n我使用 virtualenvironmentwrapper 创建了一个虚拟环境,然后在其中安装了 pytorch。
\n一段时间后,我意识到我的系统上没有安装 CUDA。
\n您可以通过执行以下操作找到它:
\nnvcc \xe2\x80\x93V
如果没有返回任何内容,则意味着您没有安装 CUDA(据我了解)。
\n因此,我按照这里的说明进行操作
\n我用这个官方链接安装了CUDA。
\n然后,我nvidia-development-kit
简单地安装了
sudo apt install nvidia-cuda-toolkit
现在,如果在我的虚拟环境中我这样做:
\nnvcc -V
我得到:
\nnvcc: 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但是,如果(总是在虚拟环境中)我这样做:
\npython -c "import torch; print(torch.version.cuda)"
我得到:
\n10.2
这是我不明白的第一件事。我在虚拟环境中使用哪个版本的 CUDA?
\n …