自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 深度学习中的归纳性偏好

深度学习的归纳性偏好介绍1.CNN inductive bias2. RNN inductive bias3. GNN inductive bias4.Attention bias介绍学习的方法会对学习的问题做一些关于目标函数的必要假设,称为归纳偏置。西瓜书解释:机器学习算法在学习过程中对某种类型假设的偏好,称为归纳性偏好。归纳性偏好可以看作是学习算法自身在一个庞大的假设空间中对假设进行选择的启发式价值观。深度神经网络偏好的认为层次化处理信息有更好的效果。网络越深效果越好。1.CNN induct

2022-04-11 16:07:58 1214

原创 数据增强---Mixup和Cutmix

数据增强---Mixup介绍1.Mixup2.Cutmix介绍1.Mixup是一种运用在计算机视觉中的对图像进行混类增强的算法,它可以将不同类之间的图像进行混合,从而扩充训练数据集。论文:https://arxiv.org/abs/1710.09412源码:https://github.com/facebookresearch/mixup-cifar10mixup就是选两个不同batch的样本按照一定的权重合成一个新的样本和标签使用方法from timm.data import Mixup

2022-04-11 10:26:36 2580

原创 理解Python Container(容器)、可迭代对象(iterable)、迭代器(iterable)、生成器(generator)

@[TOC](理解Python Container(容器)、可迭代对象(iterable)、迭代器(iterable)、生成器(generator))首先通过一张图来进行理解:1.容器容器你可以把它看作存储糖果的罐子,糖果就是罐子里面的元素。所有的容器都放在一个存储室(内存)中。一些常见的容器:list, deque.....set,frozensets,....dict, defaultdict, OrderedDict, Counter, .....tuple, namedtuple,.

2022-04-11 09:50:54 1068

原创 Python islice()

@[TOC](Python islice())islice()获取迭代器的切片,islice(iterable, start, stop, step)示例:from itertools import islicefor i in islice(range(10),0,8,2): print(i)li = [1,2,3,4,5,6,7,8]print(list(islice(li, 1,6,3)))"""0246[2, 5]"""li = [1,2,3,4,5,6

2022-04-10 21:49:08 914

原创 Python typing Optional

Optional介绍介绍可选参数具有默认值,具有默认值的可选参数不需要在其类型批注上使用Optional,因为它是可选的。Optinal和默认参数没什么实质性的区别,只是写法不同,使用Optional主要是为了让IDE识别到该参数有一个类型提示,可以指定它的类型和None,参数是可选非必传from typing import Optionaldef Test(arg:Optional[int]=None): print(arg) Test()Test(1)"""N

2022-04-10 20:38:31 1272

原创 Python 中的*args和**kwargs

Python 中的*args和**kwargsargs:arguments的缩写,表示位置参数kwargs:是keyword arguments的缩写,表示关键字参数。这其实就是python中的可变参数的两种形式,并且*args必须放在**kwargs前面。*args:def Test(arg1, *args): print("required argument:",arg1) print(type(*args)) for c in args: print('

2022-04-09 23:00:55 175

原创 Python pathlib Path

Python pathlib Path这个module提供一个类来表示不同文件系统的路径, pure paths,代表非实体路径,不进行I/O操作, concrete paths继承 pure paths 但是也可以进行I/O操作。基本使用示例:from pathlib import Path#Listing subdirectories:p = Path('.')[x for x in p.iterdir() if x.is_dir()]"""[PosixPath('.ipynb_ch

2022-04-09 22:36:11 542

原创 torch.nn.utils.clip_grad_norm_ 梯度裁剪

Pytorch 梯度裁剪介绍介绍直接看源代码吧,源代码比较简单def clip_grad_norm_( parameters: _tensor_or_tensors, max_norm: float, norm_type: float = 2.0, error_if_nonfinite: bool = False) -> torch.Tensor: r"""Clips gradient norm of an iterable of parameters.

2022-04-09 21:51:33 1174 1

原创 Pytorch torch.cuda.amp 自动混合精度

自动混合精度Pytorch的自动混合精度是由torch.cuda.amp模块带来的from torch.cuda.amp import autocast as autocastPytorch的amp模块里面有两种精度的Tensor,torch.FloatTensor和torch.HalfTensor。torch.cuda.amp只能在cuda上使用,这个功能正是NVIDIA的开发人员贡献到Pytorch项目中的。而只有支持Tensor core的CUDA硬件才能享受到AMP的好处(例如:2080Ti

2022-04-09 20:23:36 1583

原创 Pytorch模型训练中 使用的 MetricLogger类总结

MetricLogger类这个类主要用来打印输出训练的时候产生的一些数据首先搬出我们看到的源代码,主要是在看何凯明大佬的MAE项目代码的时候遇到了,一起来学习一下~~MAE-github官方源代码:https://github.com/facebookresearch/mae源代码:class SmoothedValue(object): """Track a series of values and provide access to smoothed values over a

2022-04-09 19:00:26 6937 3

原创 Python __getattr__、__setattr__、__delattr__

Python __getattr__1.__ getattr __2 __ setattr __3. __ delattr __1.__ getattr __当我们访问一个不存在的属性的时候,会抛出异常,提示我们不存在这个属性。一般访问属性异常就是__getattr__方法抛出的。例子:class A(object): def __init__(self, value): self.value=value def __getattr__(self, item):

2022-04-09 15:42:29 425

原创 torch.distributed.barrier()

torch.distributed.barrier作用Pytorch在分布式训练过程中,对于数据的读取是采用主进程预读取并缓存,然后其它进程从缓存中读取,不同进程之间的同步通信需要通过torch.distributed.barrier()实现t = torch.tensor([self.count, self.total], dtype=torch.float64, device='cuda')dist.barrier()dist.all_reduce(t)主要就是通过对其他进程进行阻塞来等所有

2022-04-09 11:28:25 6760

原创 torch.nn.parameter.Parameter

torch.nn.parameter.Parameter介绍介绍Parameter是张量tensor的一个子类:class Parameter(torch.Tensor)一般是在需要用户自己创建一些张量加到模型的学习模块里面去学习,比如在注意力机制里面,我们一般可以加入可学习的位置编码pos_emb = torch.rand(1,num_patch,dim)pos_emb = torch.nn.parameter.Parameter(pos_emb, requires_grad=True)

2022-04-09 11:14:06 675 1

原创 Pytorch 多GPU训练

Pytorch 多GPU训练介绍使用1.1 torch.nn.DataParallel1.2 torch.nn.parallel.DistributedDataParallel介绍Pytorch 的分布式训练主要是使用torch.distributed来实现的,它主要由三个组件构成:1.Distributed Data-Parallel Training(DDP):它是一个single-program和multi-process。使用DDP组件的时候,模型被复制到每一个进程也就是GPU里面,每个mod

2022-04-09 11:01:44 5263

原创 Pytorch 按层调整学习率

Pytorch 按层调整学习率第一步:先获取每一层的一个layer_scalelayer_scales = list(layer_decay ** (num_layers - i) for i in range(num_layers + 1))第二步:把

2022-04-08 19:31:15 1517 1

原创 python defaultdict

Defaultdict in Python介绍介绍在python里面,普通字典都是无序的,并且里面的元素都是独一无二的,一般情况下,我们使用字典的格式:关键字必须是不变的类型,比如python的列表类型就不能是关键字,而tuple可以是关键字dict1 = {'a':1,'b':2,'e':3,'d':4}dict2 = {1:'a',2:[1,2],(1,2):'y'}dict3 = {1:1, 2:4, 3:9}print(dict1['b'])print(dict2[2])print

2022-04-08 16:28:12 461

原创 torch.optim.Optimizer

torch.optim.Optimizer base class 理解torch.optim.Optimizer参数理解.params.defaults类的属性类的方法1.Optimizer.state_dict2.Optimizer.load_state_dict3. Optimizer.zero_grad3. Optimizer.add_param_group(self, param_group)torch.optim.Optimizertorch.optim.Optimizer(params, d

2022-04-08 10:15:19 1904

原创 Pytorch is_leaf 叶子张量

pytorch的叶子张量理解什么是叶子张量什么是叶子张量每个张量都有一个is_leaf属性用来判断是否为叶子节点只有当requires_grad=True时我们才会记录该tensor的运算过程,并且为自动求导做准备,但是除了叶子张量可以有tensor.grad外,其他非叶子节点得不到反向传播时计算的grad为什么需要两个条件来确定是否获取grad?基本逻辑:首先通过requires_grad判断是否为计算该节点梯度记录关于该节点计算梯度的信息,第二步就是判断是否为叶子节点来确定是否保留计算的gr

2022-04-08 10:06:40 882

原创 Python chain.from_iterable()

chain.from_iterable第一次见这个函数是在看torch.optim.Optimizer这个类的load_state_dict()方法源码# Update the stateid_map = {old_id: p for old_id, p in zip(chain.from_iterable((g['params'] for g in saved_groups)), chain.from_iterable((g['params'] for g in groups)))

2022-04-07 22:30:23 677

原创 timm.data.create_transform

timm.data.create_transformcreate_transform1.源码阅读2.源码理解**2.1 transforms_imagenet_train**2.1.12.1.22.1.3 最后的步骤create_transform1.源码阅读def create_transform( input_size, is_training=False, use_prefetcher=False, no_aug=False,

2022-04-07 15:38:59 4073 1

原创 图像缩放的插值方法总结

图像缩放的插值方法总结几种常见插值方式1.代码示例2.结果:几种常见插值方式NEAREST = "nearest"BILINEAR = "bilinear"BICUBIC = "bicubic"# For PIL compatibilityBOX = "box"HAMMING = "hamming"LANCZOS = "lanczos"1.代码示例以torchvision.transforms.functional.resize()为例进行分析:import torchvision.

2022-04-07 12:10:39 2178

原创 pytorch 源代码实现 PIL.image、Tensor 、numpy数据类型之间的转换

pytorch 源代码实现 PIL.image、Tensor 、numpy数据类型之间的转换class ToTensor1.源码阅读:class ToTensor2.源码阅读:to_tensor()2.1源码理解:2.1.1 handle numpy array2.1.2 handle accimage.Image2.1.3 handle PIL Imageclass PILtoTensor1. 源码阅读:class PILToTensor2. 源码阅读: F.pil_to_tensor(pic)class

2022-04-07 11:00:34 1974

原创 PIL.image数据转换为Numpy和Tensor

PIL.image数据转换为Numpy和Tensorimport numpy as np from PIL import Imageimport torch ##PIL.Imagepil_img = Image.open('./dog.jpg').convert('RGB')print(type(pil_img))##<class 'PIL.Image.Image'>## ToNumpynp_img = np.array(pil_img, dtype=np.uint8)

2022-04-07 09:48:38 4285

原创 timm.data-------tf_processing

timm.data-------tf_processing模块函数理解distorted_bounding_box_crop1.源码阅读2.参数理解_decode_and_random_crop1.源码阅读_decode_and_center_crop1. 源码阅读preprocess_for_train1.源码阅读preprocess_for_eval1.源码阅读class TfPreprocessTransform:1.源码阅读模块函数理解distorted_bounding_box_crop1.

2022-04-07 09:06:26 535

原创 torchvision.transform.RandomResizedCrop

torchvision.transform.RandomResizedCrop

2022-04-06 19:13:18 1451

原创 python的builtins模块

python的builtins模块builtins模块详解1.介绍1.1 builtins: python内建模块1.2 builtins 与 __builtins__的区别.在__main__模块中.在非__main__模块中2.示例代码结果builtins模块详解1.介绍1.1 builtins: python内建模块内建模块就是在使用的时候不需要进行import, 在python启动之后,在没有执行程序员编写的任何代码之前,python会加载内建模块中函数到内存(python的内建函数,例如:

2022-04-06 16:15:27 4532 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除