pytorch框架学习
文章平均质量分 67
Zjhao666
泰山不择细壤,故能成其大;江河不择细流,故能成其深。
展开
-
torch.gather简单教程
形式:C=A.gather(dim,B)其中A为原始矩阵,B为下标矩阵,C为结果矩阵。函数目的:借助下标依次递增的潜规则,取出原始矩阵A中,与下标矩阵B对应的部分。注:C与B的维度一致——体现“对应性” A与B的维度不需要一致举例,对于原始矩阵A取下标矩阵C=[[2,1,0]],我们进行如下操作解释:9,7,5产生的原因——dim取0,表示第0维取对应的下标数字,而其他维度对应递增即可。因为一共就2个维度,所以[[2,1,0]]对应的,其实就是第0维度之外的(剩下原创 2022-02-28 15:51:14 · 863 阅读 · 0 评论 -
torch、tensorflow1 GPU测速代码python3(MNIST,简易版)
1、torchimport torchimport torch.nn as nnimport torch.nn.functional as Fimport numpy as npimport matplotlib.pyplot as pltfrom torch.autograd import Variableimport time# print start timestart = time.time()print("Start time = " + time.ctime())#原创 2021-10-26 09:35:23 · 915 阅读 · 0 评论 -
深度学习训练降低显存分析
这一篇博客主要是帮助分析显存为什么炸裂的,不单独提具体的技术。技术可以参见另一篇博客深度学习训练降低显存指南_Zjhao666的博客-CSDN博客首先,从总体来看,显存的增长情况大致可以分为两类:线性型:以epoch或更短的batch为单位,显存整体上呈线性缓慢增长。 波动型:没有固定的周期,短期内显存急剧增加,然后裂开了。其次,从显存的分配来看,分配对象一般分为两类:模型变量:主要是模型的固定参数(显存固定),以及一些如结构形的增量参数(显存渐增) 数据变量:包括模型的输入输出,原创 2021-08-19 20:31:28 · 589 阅读 · 0 评论 -
深度学习训练降低显存指南
一、小模块API参数inplace设置为True比如:Relu()有一个默认参数inplace,默认设置为False,当设置为True时,通过relu()计算时的得到的新值不会占用新的空间而是直接覆盖原来的值,这也就是为什么当inplace参数设置为True时可以节省一部分内存的缘故。...原创 2021-06-04 14:38:24 · 3093 阅读 · 3 评论 -
ubuntu18.04利用docker安装NVIDIA驱动、cuda、cudnn、tensorflow、torch等深度学习环境
目录前言一、Docker安装备份sources.list并新建阿里源镜像填入(最近清华源好像有问题)更新源使之生效二、NVIDIA GPU 驱动安装驱动安装检查安装结果三、Docker安装docker安装检查安装结果为避免docker操作必须要sudo,将当前用户加入docker用户组(${YOUR_NAME_HERE}处填当前用户名)前言docker一词的原意为“码头的装卸工”,其开发的目的是为解决广大程序员在开发、测试、部署维护等不同场景不可避免的原创 2020-06-06 17:16:25 · 5775 阅读 · 0 评论 -
一个关于pytorch的tensor点乘的小问题
事情的缘由是,坐旁边的学姐有一段代码将两个二维数组相乘。特别的是,既不是点乘,也不是矩阵乘法,而是将各自每一行分别相乘再拼接得到一个三维数组,具体代码大致如下import torcha = torch.Tensor(range(6)).reshape(2, 3)b = torch.Tensor(range(1, 7)).reshape(2, 3)batch = len(a)lengt...原创 2019-07-30 10:21:08 · 4434 阅读 · 0 评论