pytorch
浪子私房菜
这个作者很懒,什么都没留下…
展开
-
业务案列--pytorch模型剪枝
模型剪枝原创 2022-09-12 17:28:02 · 461 阅读 · 0 评论 -
ACNet:用于图像超分的非对称卷积(附实现code)
不一样的卷积方式原创 2022-07-13 15:50:18 · 729 阅读 · 0 评论 -
花式优化器整理
优化器总结原创 2022-06-17 10:49:38 · 75 阅读 · 0 评论 -
DeformConv
DeformConv原创 2022-06-16 09:46:26 · 803 阅读 · 0 评论 -
nn.Conv2d和nn.ConvTranspose2d区别
nn.Conv2d和nn.ConvTranspose2d参数说明及区别1、nn.Conv2d(in_channels,out_channels,kernel_size,stride=1,padding=0,dilation=1,groups=1,bias=True)in_channels:输入维度out_channels:输出维度kernel_size:卷积核大小stride:步长大小padding:补0dilation:kernel间距groups(int, optional) : 从输入原创 2021-08-01 14:31:43 · 719 阅读 · 0 评论 -
python实现从一个文件夹里随机提取特定比例文件放到另一文件夹中,训练验证集划分
代码实现:import os, random, shutildef moveFile(fileDir, tarDir): pathDir = os.listdir(fileDir) # 取图片的原始路径 filenumber = len(pathDir) rate = 0.1 # 自定义抽取图片的比例,比方说100张抽10张,那就是0.1 picknumber = int(filenumber * rate) # 按照rate比例从文件夹中取一定数量图片 .原创 2021-07-28 14:42:18 · 545 阅读 · 0 评论 -
python实现图片格式批量转换
徒手写图片格式转换代码import os.pathimport cv2img_fold_A = './label'save_fold_A = './lab'img_list1 = os.listdir(img_fold_A)num_imgs1 = len(img_list1)for i in range(num_imgs1): name_A = img_list1[i] path_A = os.path.join(img_fold_A, name_A)原创 2021-07-28 13:46:17 · 126 阅读 · 0 评论 -
使用pytorch利用albumentation库进行数据增强处理操作
废话不多话,直接上代码直接实操!!!import cv2from skimage.transform import AffineTransform, warpimport numpy as npimport skimage.ioimport albumentations as Afrom albumentations.core.transforms_interface import DualTransformfrom albumentations.augmentations import fu原创 2021-07-01 20:10:43 · 892 阅读 · 0 评论 -
softmax的作用及其参数说明
class torch.nn.Softmax(input, dim)或者torch.nn.functional.softmax(input, dim)对n维输入张量运用Softmax函数,将张量的每个元素缩放到(0,1)区间且和为1。Softmax函数定义如下:参数:dim:指明维度,dim=0表示按列计算;dim=1表示按行计算。默认dim的方法已经弃用了,最好声明dim,否则会警告shape:输入:(N, L)输出:(N, L)返回结果是一个与输入维度dim相同的张量,每个元素的原创 2021-06-02 21:19:05 · 4604 阅读 · 1 评论 -
pytorch搭建神经网络经验总结
利用pytorch来构建网络模型有很多种方法,以下简单列出其中的四种:假设构建一个网络模型如下:卷积层–》Relu层–》池化层–》全连接层–》Relu层–》全连接层首先导入几种方法用到的包:import torchimport torch.nn.functional as Ffrom collection import OrderedDict第一种方法class Net1(torch.nn.Module): def __init__(self): super原创 2021-05-06 19:50:05 · 292 阅读 · 0 评论 -
pytorch中的model.train*()和model.eval()使用详解
在训练模型时会在前面加上:model.train()在测试模型时在前面使用:model.eval()同时发现,如果不写这两个程序也可以运行,这是因为这两个方法是针对在网络训练和测试时采用不同方式的情况,比如Batch Normalization 和Dropout。使用PyTorch进行训练和测试时一定注意要把实例化的model指定train/eval,eval()时,框架会自动把BN和DropOut固定住,不会取平均,而是用训练好的值,不然的话,一旦test的batch_size过小,很容易就原创 2021-05-06 17:06:14 · 1068 阅读 · 0 评论 -
DL中的动态图和静态图
在我们日常学习中总是听到动态图和静态图的概念,今天就在这里做一个小总结,提醒自己.目前神经网络框架分为静态图框架和动态图框架,PyTorch 和 TensorFlow、Caffe 等框架最大的区别就是他们拥有不同的计算图表现形式。 TensorFlow使用静态图,这意味着我们先定义计算图,然后不断使用它,而在PyTorch中,每次都会重新构建一个新的计算图。动态计算意味着程序将按照我们编写命令的顺序进行执行。 这种机制将使得调试更加容易,并且也使得我们将大脑中的想法转化为实际代码变得更加容易。而静态计算原创 2021-05-06 16:59:00 · 200 阅读 · 0 评论 -
pytorch中argparse的用法
pytorch-argparse用法import argparsedef parse(): parser = argparse.ArgumentParser() parser.add_augment('---scales', help='scales', type='int', default=5) opt = parser.parser_args() return optif __name__ == '__main__': opt = parse() print (opt原创 2021-04-27 16:25:04 · 468 阅读 · 1 评论 -
Negative dimension size caused by subtracting 2 from 1 for ‘max_pooling2d_2/MaxPool‘‘MaxPool‘)
遇坑操作提示错误:ValueError: Negative dimension size caused by subtracting 2 from 1 for 'max_pooling2d_2/MaxPool' (op: 'MaxPool') with input shapes: [?,1,32,128].错误代码部分:model.add(MaxPooling2D(pool_size=(2, 2),strides=(2,2)))错误原因:是图片通道的问题。也就是”channels_last原创 2021-04-22 11:27:02 · 1556 阅读 · 0 评论 -
pytorch 状态字典:state_dict使用详解
pytorch 中的 state_dict 是一个简单的python的字典对象****,将每一层与它的对应参数建立映射关系.(如model的每一层的weights及偏置等等)(注意,只有那些参数可以训练的layer才会被保存到模型的state_dict中,如卷积层,线性层等等)优化器对象Optimizer也有一个state_dict,它包含了优化器的状态以及被使用的超参数(如lr, momentum,weight_decay等)备注:state_dict是在定义了model或optimizer之后原创 2021-04-13 17:59:17 · 3976 阅读 · 2 评论 -
torch.optim.lr_scheduler.ReduceLROnPlateau学习速率的调整pytorch
CLASS torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10, verbose=False, threshold=0.0001, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-08)[SOURCE]Reduce learning rate when a metric has stopped improving. Model原创 2021-04-05 16:13:16 · 1066 阅读 · 0 评论 -
pytorch模型操作
保存和加载模型当保存和加载模型时,需要熟悉三个核心功能:1、torch.save:将序列化对象保存到磁盘中。此函数使用python 中的pickle模型进行序列化,此函数可以保存模型、tensor、字典等各种对象。2、torch.load3、torch.nn.Module.load_state_dict: 使用反序列化函数state_dict来加载模型的参数字典1.什么是状态字典:state_dict?在pytorch中,torch.nn.Module模型的可学习参数(权重和bias) 包含转载 2021-03-31 11:14:11 · 736 阅读 · 0 评论 -
基于经典网络架构训练图像分类模型
数据预处理部分1、数据增强:torchvision模块中的transforms模块自带功能。2、数据预处理: torchvision中的transforms模块也帮我们实现了。3、DataLoader: 读取batch数据网络模块设置1、加载预训练模型,利用人家训练好的权重文件来继续训练我们自己的模型2、修改成我们自己的任务, 需把最后的head层修改,一般就是最后的全连接层,改成我们自己的任务。3、训练时可以全部训练,也可以训练我们自己的任务层, 因为前几层都是用来做滕峥提取的。网原创 2021-03-03 14:59:28 · 721 阅读 · 2 评论 -
Pytorch安装(GPU版本)
1、检查是否具有合适的GPU, 如有则安装Cuda,Cudnn(1)检查电脑是否有合适的GPU在桌面上右击如果能找到NVIDA控制面板,则说明该电脑有GPU。控制面板如下,并通过查看系统信息获取支持的Cuda版本。(2)下载Cuda官网:https://developer.nvidia.com/cuda-10.1-download-archive-update2在https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html原创 2021-03-02 16:09:48 · 1001 阅读 · 1 评论