pytorch学习
主要介绍pytorch代码学习
rrr2
这个作者很懒,什么都没留下…
展开
-
AttributeError: module ‘torch‘ has no attribute ‘irfft‘ ‘rfft‘‘
torch rfft原创 2023-02-22 20:16:27 · 3206 阅读 · 1 评论 -
TensorBoard histogram直方图 坐标轴数值计算含义
其中,横轴表示值,纵轴表示数量,每个切片显示一个直方图,切片按步骤(步数或时间)排列;旧的切片较暗,新的切片颜色较浅.如图,可以看到在第393步时,以4.91为中心的bin中有161个元素.。另外,直方图切片并不总是按步数或时间均匀分布,而是通过水塘抽样/reservoir sampling来抽取所有直方图的一个子集,以节省内存.。原创 2022-10-23 22:49:08 · 730 阅读 · 0 评论 -
AttributeError:module ‘distutils‘ has no attribute ‘version
setuptools包版本过高。原创 2022-09-24 13:43:35 · 331 阅读 · 0 评论 -
【tensorboard】|解决ValueError: Duplicate plugins for name projector
报错的原因就是安装重复插件(安装了多个tensorboard)。删除tensorboard-2.9.1.dist-info。原创 2022-08-20 11:11:18 · 194 阅读 · 0 评论 -
【pytorch】|transforms.FiveCrop
常见的图像变换这里总结一共有四大类。原创 2022-07-15 09:34:58 · 716 阅读 · 0 评论 -
【torch】|torch.nn.utils.clip_grad_norm_
梯度越大,total_norm值越大,进而导致clip_coef的值越小,最终也会导致对梯度的裁剪越厉害,很合理norm_type不管取多少,对于total_norm的影响不是太大(1和2的差距稍微大一点),所以可以直接取默认值2norm_type越大,total_norm越小(实验观察到的结论,数学不好,不会证明,所以本条不一定对)clip_coef越小,则对梯度的裁剪越厉害,即,使梯度的值缩小的越多max_norm越小,clip_coef越小,所以,max_norm越大,对于梯度爆炸的解决越柔和原创 2022-07-05 22:16:09 · 442 阅读 · 0 评论 -
指定默认参数值 仍报错:error: the following arguments are required:
无用方法正确方法参数名前加 –发现参数名前没有加–!!!!!!!!!!原创 2022-06-27 20:24:23 · 1552 阅读 · 0 评论 -
vutils.save_image
import torchvision.utils as vutils针对NCHW 的torch保存N组图像需要在之前归一化到0-1vutils.save_image(save_img, 'imge.png',nrow=5)原创 2022-04-13 13:29:55 · 1701 阅读 · 2 评论 -
KORNIA与torch 版本存在依赖关系
KORNIA 0.58对应torch 1.7以上对应1.8可以多下载几个多次安装,直到支持。原创 2022-04-11 10:55:03 · 8045 阅读 · 5 评论 -
【pytorch】|torch.chunk
用来将张量tensor分成很多个块,即切分,可以在不同维度上切分。返回一个张量list。如果指定轴的元素个数被chunk数除不尽,则最后一块元素数量会少。torch.chunk(tensor,chunk数,维度)import torcha=torch.tensor([[[1,2],[3,4],[3,5]], [[5,6],[7,8],[7,9]]])b=torch.chunk(a,2,0)print(b)a.shape=(2,3,2)第0维分成两组,第0原创 2022-03-27 22:49:36 · 1715 阅读 · 0 评论 -
【pytorch】|tensor维度分析
一个方括号一个维度,从外到内,维度从左到右a=torch.tensor([[[1,2],[3,4]], [[5,6],[7,8]]])torch.Size([2, 2, 2])内层的[1,2]为最后一个维度。a=torch.tensor([[[1,2,2],[3,4,4]], [[5,6,6],[7,8,8]]])torch.Size([2, 2, 3])再看并列的两个上一层的方括号,因为是两个,所以是中间的2.a=torch.t原创 2022-03-27 22:20:39 · 1710 阅读 · 0 评论 -
【pytorch】|torch.where
>>> import torch>>> a=torch.randn(3,5)>>> b=torch.ones(3,5)>>> atensor([[-0.0310, 1.5895, 1.6003, -1.7584, 1.1478], [ 0.6773, 0.7763, 0.5024, 0.4952, 0.4198], [ 1.5132, 0.5185, 0.2956, -0.631原创 2022-03-27 20:50:51 · 491 阅读 · 0 评论 -
【pytorch】|对二维矩阵特征图tensor求和求均值
# -*- coding: utf-8 -*-import torcha = torch.ones(size=(1, 3, 4, 4)) # 法1b = a.sum(axis=[2, 3], keepdim=False)# 法2alpha = a.view(1, 2, -1).sum(2)b==alphamean相同b=torch.tensor([[13., 14., 16.]])print(b[:, :, None, None] * a)不同维度点乘...原创 2022-03-27 11:32:17 · 2140 阅读 · 0 评论 -
【pytorch】|torchvision transform
transforms类涵盖了大量对Tensor和对PIL Image的处理操作,是pytorch中的图像预处理包。transforms.ToTensor()将图像数据转换成了张量,并且归一化到了[0,1]。transforms.normalize()对张量进行归一化,它的形参包括mean、std等对输入的tensor图像各个通道进行归一化input[channel] = (input[channel] - mean[channel]) / std[channel]transforms.原创 2022-03-21 15:20:47 · 1854 阅读 · 0 评论 -
【pytorch】|Dataloader dataset sampler torchvision
输入数据PipeLinepytorch 的数据加载到模型的操作顺序是这样的:① 创建一个 Dataset 对象② 创建一个 DataLoader 对象③ 循环这个 DataLoader 对象,将img, label加载到模型中进行训练from torch.utils.data import DataLoaderimport torchvision.datasets as datasetstorch/utils/data下面一共含有4个主文件|---- dataloader.py|----原创 2022-03-21 09:41:10 · 2180 阅读 · 0 评论 -
【pytorch】|torch.chunk()
根据size大小将arry数组分组,size是每一组数组的长度。若数组不等均分,那么最后一组数组就会包含剩下的元素。_.chunk(['a','b','c','d'], 2)// ['a','b'],['c','d']_.chunk(['a', 'b', 'c', 'd'], 3);// => [['a', 'b', 'c'], ['d']]...原创 2022-03-16 16:45:26 · 197 阅读 · 0 评论 -
torch.clamp
clamp()函数的功能将输入input张量每个元素的值压缩到区间 [min,max],并返回结果到一个新张量。大小不超过某个界限torch.clamp(input, min, max, out=None) → Tensorinput:输入张量;min:限制范围下限;max:限制范围上限;out:输出张量。import torch a = torch.rand(2, 2).mul_(10)print(a)print(a.clamp(2, 5)) """out:原创 2022-03-09 15:31:21 · 378 阅读 · 0 评论 -
【Pytorch】| weight文件转为.pt文件 个人数据集类别数量,不同模型的转换yolo 成功案例
weight文件前4-5个int32字节是head信息。单独保存,后面是float32数据,对应bn(gamma beta runing_mean running_var)和conv的权重参数按照cfg文件定义的网络结构 ,解析cfg文件后,得到module_def, module,索引权重位置。yolov3输出的网络module_def结构[{'type': 'convolutional', 'batch_normalize': 1, 'filters': 32, 'size': 3, 'strid原创 2022-01-12 22:06:43 · 3169 阅读 · 0 评论 -
pytorch 批量归一化BatchNorm1d和BatchNorm2d的用法、BN层参数 running_mean running_var变量计算 验证
class torch.nn.BatchNorm1d(num_features, eps=1e-05, momentum=0.1, affine=True) 参数:num_features: 来自期望输入的特征数,C from an expected input of size (N,C,L) or L from input of size (N,L)eps: 为保证数值稳定性(分母不能趋近或取0),给分母加上的值。默认为1e-5。momentum: 动态均值和动态方差所使用的动量。默认为0.1原创 2022-01-11 16:40:35 · 4928 阅读 · 0 评论 -
二元交叉熵损失函数
普通的交叉熵损失BCEWithLogitsLoss就是在外边复合一层sigmoid函数,import torchtarget = torch.ones([10, 64], dtype=torch.float32) # 64 classes, batch size = 10output = torch.full([10, 64], 1.5) # A prediction (logit)pos_weight = torch.ones([64]) # All weights are equa原创 2021-08-31 09:28:16 · 5501 阅读 · 1 评论 -
torch.stack torch.squeeze() 和torch.unsqueeze()
T1 = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])T2 = torch.tensor([[10, 20, 30], [40, 50, 60], [70, 80, 90]])print(torch.stack((T1,T2),dim=0).shape)print(torch.stack((T1,T2),dim=1).shape)print(torch.stack.原创 2021-08-30 22:17:18 · 396 阅读 · 0 评论 -
orch.tensor的fill_(value)
>>> import torch>>> torch.manual_seed(seed=20200910)<torch._C.Generator object at 0x000001FB002DD330>>>> a = torch.randn(3,4)>>> b = a>>> atensor([[ 0.2824, -0.3715, 0.9088, -1.7601], [-0.1.原创 2021-08-30 16:30:07 · 129 阅读 · 0 评论 -
pytorch各个版本下载
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/原创 2020-05-16 11:58:21 · 562 阅读 · 1 评论 -
pytorch Torchvision离线下载 更新
Torchvision has no attributeTorchvision 需要更新torchvision 跟torch要匹配否则 ImportError: cannot import name ‘Optional’torchvisionhttps://download.pytorch.org/whl/cu90/torch_stable.htmlpytorchDownload t...原创 2020-04-22 17:15:01 · 1195 阅读 · 0 评论 -
torch.nn.functional.upsample(input, size=None, scale_factor=None, mode='nearest', align_corners=None
torch.nn.functional.upsample_nearest(input, size=None, scale_factor=None)This function is deprecated in favor of torch.nn.functional.interpolate(). This is equivalent with nn.functional.interpolate(…...原创 2019-01-06 20:03:29 · 5418 阅读 · 1 评论 -
nn.ReLU() 和 nn.ReLU(inplace=True)区别
inplace=True计算结果不会有影响。利用in-place计算可以节省内(显)存,同时还可以省去反复申请和释放内存的时间。但是会对原变量覆盖,只要不带来错误就用。...原创 2019-01-05 22:33:07 · 29647 阅读 · 2 评论 -
torch.nn.functional.avg_pool2d(input, kernel_size, stride=None, padding=0, ceil_mode=False, count_in
refhttps://pytorch.org/docs/stable/nn.html#torch-nn-functionaltorch.nn.functional.avg_pool2d(input, kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True) → Tensor只需要输出张量,...原创 2019-01-05 20:42:55 · 6017 阅读 · 0 评论 -
torch.nn.Module.load_state_dict:
torch.nn.Module是所有NN模块的基类,我们的模型都是其子类。STATE_DICT与.cpu()/.cuda()/.add_module()同样是模型的一个对象是torch.nn.Module的可学习参数(即权重和偏差),模块模型包含在model’s参数中(通过model.parameters()访问)。state_dict是个简单的Python dictionary对象,它...原创 2019-01-05 10:25:44 · 14919 阅读 · 0 评论 -
torch 模型加载和保存模型
先有一个模型:my_resnet = MyResNet(*args, **kwargs)两种加载权重方法:1.基于推荐保存的方式保存方式:torch.save(my_resnet.state_dict(), "my_resnet.pth")对应的加载方式:my_resnet.load_state_dict(torch.load("my_resnet.pth"))直接torch...原创 2019-01-04 10:38:20 · 2850 阅读 · 0 评论 -
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb升级一下numpy就可以了。pip install numpy --upgrade原创 2019-01-03 22:56:10 · 2028 阅读 · 1 评论 -
torch.optim优化器
基本使用方法import optimptimizer=optim.SGD(params=net.parameters(),lr=0.1)optimizer.zero_grad() //梯度清零output=net(input)output.backward(output)optimizer.step() import torch.optim as optim#定义了网络n...原创 2019-01-03 22:23:06 · 713 阅读 · 0 评论 -
nn.sequetial()
官方文档:一个有序的容器,神经网络模块将按照在传入构造器的顺序依次被添加到计算图中执行,同时以神经网络模块为元素的有序字典也可以作为传入参数。# Example of using Sequential model = nn.Sequential( nn.Conv2d(1,20,5), nn.ReLU(),...原创 2018-12-31 08:47:34 · 596 阅读 · 0 评论 -
nn.conv2d ConvTranspose2d
绿色为输出,灰色为卷积核,蓝色输入conv卷积conv—transpose上采样卷积refhttps://blog.csdn.net/FortiLZ/article/details/81051942https://blog.csdn.net/u014722627/article/details/60574260...原创 2018-12-31 08:30:32 · 2934 阅读 · 0 评论 -
nn.Sequential()
layer1 = nn.Sequential()layer1.add_module(layer1 , nn.Conv2d(input_nc, nf, 4, 2, 1, bias=False))原创 2018-12-30 23:00:43 · 3973 阅读 · 0 评论 -
DCGAN
pytorch DCGANREFhttps://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html#data此处data 位于celeba\img中,celeba下载地址http://pan.baidu.com/s/1eSNpdRG此处只需要img_align_celeba.zip一个但是dataroot 要写到上一级,因为...原创 2018-12-30 17:49:30 · 539 阅读 · 0 评论 -
torch.unsqueeze() .view()
.unsqueeze(0)有多余的1维轴,就会去掉refhttps://stackoverflow.com/questions/42866654/what-is-the-difference-between-view-and-unsqueeze-in-torch转载 2018-12-29 17:14:09 · 392 阅读 · 0 评论 -
torch0.4 volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
volatile was removed and now has no effect. Use with torch.no_grad(): instead. molded_images = Variable(molded_images, volatile=True)修改为 with torch.no_grad(): molded_images = Variable(...原创 2018-12-29 15:28:46 · 1202 阅读 · 0 评论 -
torch tensor与numpy 数组互相转换
tensor跟numpy 很像。x = torch.zeros(5, 3, dtype=torch.long)print(x)x = x.new_ones(5, 3, dtype=torch.double) # new_* methods take in sizesprint(x)x = torch.randn_like(x, dtype=torch.float) ...原创 2018-12-29 09:31:47 · 5235 阅读 · 0 评论 -
torch模型加载数据
pytorch 的数据加载到模型的操作顺序是这样的:① 创建一个 Dataset 对象② 创建一个 DataLoader 对象③ 循环这个 DataLoader 对象,将img, label加载到模型中进行训练dataset = MyDataset()dataloader = DataLoader(dataset)num_epoches = 100for epoch in range...原创 2018-12-29 09:07:41 · 575 阅读 · 0 评论 -
torch报错
报错:torch.DoubleTensor but found a type torch.FloatTensor for sequence element 36 in sequence argument at position #1 ‘tensors’解决:此处发现是load_data的时候出了问题生成了valDataloader后len(valDataloader)发现是1,因此在i...原创 2018-12-29 08:27:17 · 462 阅读 · 0 评论