torch

成功解决torch\cuda\__init__.py“, line 208, in check_error raise Cuda Error(res) torch.cuda.Cuda Error: C

十年热恋 提交于 2020-10-14 12:26:24
成功解决torch\cuda\__init__.py", line 208, in check_error raise Cuda Error(res) torch.cuda.Cuda Error: CUDA driver version is insufficient for CUDA runtime version (35) 目录 解决问题 解决思路 解决方法 解决问题 Traceback (most recent call last): File "image_animation.py", line 113, in <module> kp_driving_initial = kp_detector(source1) File "F:\File_Anaconda\CV2020_RealTimeImageAnimation\envs\lib\site-packages\torch\nn\modules\module.py", line 489, in __call__ result = self.forward(*input, **kwargs) File "F:\File_Anaconda\CV2020_RealTimeImageAnimation\envs\lib\site-packages\torch\nn\parallel\data_parallel.py", line

pytorch报错Unable to get repr for

≯℡__Kan透↙ 提交于 2020-10-10 08:24:00
pytorch报错Unable to get repr for 标签出现了-1,2或者其他值,loss计算之后, 报错:CUDA error: device-side assert triggered 然后出现此错误: Unable to get repr for class tensor pytorch 在调试的时候,变量出现了Unable to get repr for <class ‘torch.Tensor’> 是自己数据格式的问题,具体原因后面在详细整理。 具体情景: 做roipooling的时候,rois的数据类型不对,出现了以上错误。 解决方法:采用torch.tensor([0, 2, 2, 10, 10]),就是采用了torch.tensor。前期有尝试torch.from_numpy, torch.FloatTensor(),虽然数据值都是一样的,但是就是报错。 具体代码如下: temp = rois.numpy().tolist() # rois = torch.FloatTensor([0] + [temp[0][1], temp[0][2], temp[0][3], temp[0][4]] ) rois = torch.tensor([0] + [temp[0][1], temp[0][2], temp[0][3], temp[0][4]]) pooled

Pytorch入坑之Tensor大详解

前提是你 提交于 2020-10-09 04:46:23
导语 深度学习框架Pytorch发展势头惊人,这点小编也深有体会,翻翻Github上深度学习的开源代码,发现用Pytorch真的多了不少,所以小编最近也正在入坑Pytorch,顺便写写文章做些总结。认真看完这篇文章,你将收获: 理解Tensor的创建 理解Tensor的加速 理解Tensor的常用属性 理解Tensor的常用方法 Tensor创建 我们应该都知道Numpy是支持大量维度数组与矩阵运算的常用扩展库。但是对于计算图,深度学习或者梯度,Numpy似乎真的有心无力,因为它的计算无法像Tensor一样在GPU上加速。今天我们就一起来谈谈Pytorch最基本的概念Tensor。 Tensor是n维的数组,在概念上与numpy数组是一样的,不同的是Tensor可以跟踪计算图和计算梯度。 1.从Numpy中创建 import torch import numpy as np numpy_array= np.array([1,2,3]) torch_tensor1 = torch.from_numpy(numpy_array) torch_tensor2 = torch.Tensor(numpy_array) torch_tensor3 = torch.tensor(numpy_array) 值得注意的是torch.Tensor()是默认张量类型torch.FloatTensor(

【易盾图像识别】文字点选识别 附带 模型+数据集 +识别代码+思路

倖福魔咒の 提交于 2020-10-05 06:49:31
如有损害他人利益,请即时通知,文章会在第一时间内删除! 前言 继极验文字点选的发布,怎么能少得了易盾呢,本次分享将会把模型,代码,数据集一起分享出来! 摘要(About this paper): 易盾的文字点选识别,其中包括验证码模型,和7w+文字数据集,目前识别率在80左右,当作一个小练习,后续有数据集的同学愿意分享,可以接着训练该模型,由于模型和数据集比较大,就分享在QQ群文件里了,有需要的可以进群一起交流! 扩充 识别思路: 易盾文字点选验证码模型训练思路! 一、label_image 标注文字位置约400左右 二、pytorch + yolov3 训练位置预测模型 三、根据预测位置裁剪汉字图片 四、pytorch + CNN 深层神经网络识别汉字 总结: 大部分的验证码用目标检测+卷积神经网络是都能搞定的!如果类似易盾图标点选就可以减少数据集,使用孪生网络进行预测! 关于安装: 很多github上都有讲Linux系统的,本文以windows为例! pip install torch==1.4.0+cpu torchvision==0.5.0+cpu -f https://download.pytorch.org/whl/torch_stable.html pip install -r requirements.txt -i https://pypi.tuna

神经网络中的批标准化

ぃ、小莉子 提交于 2020-10-04 08:20:13
作者|Emrick Sinitambirivoutin 编译|VK 来源|Towards Data Science 训练学习系统的一个主要假设是在整个训练过程中输入的分布保持不变。对于简单地将输入数据映射到某些适当输出的线性模型,这种条件总是满足的,但在处理由多层叠加而成的神经网络时,情况就不一样了。 在这样的体系结构中,每一层的输入都受到前面所有层的参数的影响(随着网络变得更深,对网络参数的小变化会被放大)。因此,在一层内的反向传播步骤中所做的一个小的变化可以产生另一层的输入的一个巨大的变化,并在最后改变特征映射分布。在训练过程中,每一层都需要不断地适应前一层得到的新分布,这就减慢了收敛速度。 批标准化克服了这一问题,同时通过减少训练过程中内层的协方差移位(由于训练过程中网络参数的变化而导致的网络激活分布的变化) 本文将讨论以下内容 批标准化如何减少内部协方差移位,如何改进神经网络的训练。 如何在PyTorch中实现批标准化层。 一些简单的实验显示了使用批标准化的优点。 减少内部协方差移位 减少消除神经网络内部协方差移位的不良影响的一种方法是对层输入进行归一化。这个操作不仅使输入具有相同的分布,而且还使每个输入都白化(白化是对原始数据x实现一种变换,变换成x_Whitened,使x_Whitened的协方差矩阵的为单位阵。)。该方法是由一些研究提出的,这些研究表明

pytorch中的gather()函数

戏子无情 提交于 2020-10-02 12:19:04
首先,给出官方文档的链接: https://pytorch.org/docs/stable/generated/torch.gather.html?highlight=gather#torch.gather 然后,我用白话翻译一下官方文档。 gather,顾名思义,聚集、集合。有点像军训的时候,排队一样, 把队伍按照教官想要的顺序进行排列 。 还有一个更恰当的比喻: gather的作用是根据 索引 查找,然后讲查找结果以张量矩阵的形式返回 。 1. 拿到一个张量: import torch a = torch.arange(15).view(3, 5) a = tensor([ [ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) 2. 生成一个查找规则: ( 张量b的元素都是对应张量a的索引 ) b = torch.zeros_like(a) b[1][2] = 1 b[0][0] = 1 b = tensor( [[1, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]]) 3. 根据维度dim开始查找: c = a.gather(0, b) # dim=0 d = a.gather(1, b) # dim=1 c= tensor([ [5, 1, 2, 3, 4], [0

高性能PyTorch是如何炼成的?过来人吐血整理的10条避坑指南

陌路散爱 提交于 2020-10-02 08:30:45
  选自towardsdatascience    作者:Eugene Khvedchenya    机器之心编译    参与:小舟、蛋酱、魔王    高性能 PyTorch 的训练管道是什么样的?是产生最高准确率的模型?是最快的运行速度?是易于理解和扩展?还是容易并行化?答案是,包括以上提到的所有。      如何用最少的精力,完成最高效的 PyTorch 训练? 一位有着 PyTorch 两年使用经历的 Medium 博主最近分享了他在这方面的 10 个真诚建议 。   在 Efficient PyTorch 这一部分中,作者提供了一些识别和消除 I/O 和 CPU 瓶颈的技巧。第二部分阐述了一些高效张量运算的技巧,第三部分是在高效模型上的 debug 技巧。   在阅读这篇文章之前,你需要对 PyTorch 有一定程度的了解。   好吧,从最明显的一个开始:   建议 0:了解你代码中的瓶颈在哪里   命令行工具比如 nvidia-smi、htop、iotop、nvtop、py-spy、strace 等,应该成为你最好的伙伴。你的训练管道是否受 CPU 约束?IO 约束?GPU 约束?这些工具将帮你找到答案。   这些工具你可能从未听过,即使听过也可能没用过。没关系。如果你不立即使用它们也可以。只需记住,其他人可能正在用它们来训练模型,速度可能会比你快 5%、10%、15%-

PyTorch:Embedding

天大地大妈咪最大 提交于 2020-09-30 00:52:46
-柚子皮- torch.nn.Embedding(num_embeddings: int, embedding_dim: int, padding_idx: Optional[int] = None, max_norm: Optional[float] = None, norm_type: float = 2.0, scale_grad_by_freq: bool = False, sparse: bool = False, _weight: Optional[torch.Tensor] = None) 参数 num_embeddings (int) – size of the dictionary of embeddings 词典的大小尺寸,比如总共出现5000个词,那就输入5000。此时index为(0-4999)。注意这里num_embeddings必须要比词对应的最大index要大,而不是比词个数大就可以。 embedding_dim (int) – the size of each embedding vector 嵌入向量的维度,即用多少维来表示一个符号。embedding_dim的选择要注意,根据自己的符号数量,举个例子,如果你的词典尺寸是1024,那么极限压缩(用二进制表示)也需要10维,再考虑词性之间的相关性,怎么也要在15-20维左右