
Pytorch日积月累
一些与Pytorch相关的代码
gorgeous(๑><๑)
一点浩然气,千里快哉风。
展开
-
【PyTorch总结】NPU与GPU上数据类型转换
【PyTorch总结】NPU与GPU上数据类型转换。原创 2022-10-13 12:38:55 · 3186 阅读 · 2 评论 -
【PyTorch总结】PyTorch读取数据
在pytorch中若是使用自定义数据集,需要重新定义Dataset类,并覆盖父类的__len__和__getitem__函数其中__getitem__返回的是data与label,以元组形式返回。看个简单的例子from random import shuffleimport torchfrom torch.utils.data import Dataset,DataLoaderclass MyClass(Dataset): def __init__(self):原创 2021-09-08 15:53:38 · 727 阅读 · 0 评论 -
【PyTorch总结】模型权重初始化
在训练模型的时候,为了让模型更好的收敛,我们可以采用一些简单的策略,例如:模型初始化。模型初始化,有多种,使用起来大同小异,这里我们使用kaiming初始化来做。代码如下:# Importsimport torchimport torchvision # torch package for vision related thingsimport torch.nn.functional as F # Parameterless functions, like (some) activation f原创 2021-07-04 15:19:06 · 1341 阅读 · 0 评论 -
【PyTorch总结】计算数据集的均值和标准差
Pytorch进行预处理时,通常使用torchvision.transforms.Normalize(mean, std)方法进行数据归一化,其中参数mean和std分别表示图像集每个通道的均值和方差序列。在训练Imagenet数据集时通常设置:mean=(0.485, 0.456, 0.406),std=(0.229, 0.224, 0.225)。而对于特定的数据集,选择这个值结果可能并不理想。接下来给出计算特定数据集的均值和方差的方法。import torchfrom torch.serializ原创 2021-07-04 14:58:10 · 5106 阅读 · 1 评论 -
【PyTorch总结】PyTorch的基础使用
文章目录Initializing TensorHow to initialize and convert tensort to other types(int, float, double)Array to Tensor conversion and vice-versaMathTensor IndexingTensor ReshapingInitializing Tensorimport torchdevice = "cuda" if torch.cuda.is_available() else "原创 2021-07-02 00:05:33 · 145 阅读 · 0 评论 -
【PyTorch总结】tqdm的使用
文章目录介绍安装使用方法1.传入可迭代对象使用`trange`2.为进度条设置描述3.手动控制进度4.tqdm的write方法5.手动设置处理的进度6.自定义进度条显示信息在深度学习中如何使用介绍Tqdm是 Python 进度条库,可以在 Python长循环中添加一个进度提示信息。用户只需要封装任意的迭代器,是一个快速、扩展性强的进度条工具库。安装pip install tqdm使用方法1.传入可迭代对象import timefrom tqdm import *for i in tqdm原创 2021-07-01 00:33:34 · 91720 阅读 · 11 评论 -
【Pytorch总结】Pytorch中网络构建的方法
文章目录传统的构建方式nn.Sequential构建方式不带字典构建带字典构建方式nn.ModuleList构建方式nn.ModuleDict构建方式传统的构建方式import osimport randomimport numpy as npimport torchimport torch.nn as nnimport torch.nn.functional as Ffrom collections import OrderedDictclass LeNet(nn.Module):原创 2021-06-11 10:54:20 · 183 阅读 · 0 评论 -
【PyTorch细节】卷积后的bias什么时候加,什么时候不加
我们在进行写代码的时候,有时候会发现有的m = nn.Conv2d(16, 33, 3, stride=2,bias=False) ,bias是False,而默认的是True。为啥呢?是因为一般为False的时候,nn.Conv2d()后面通常接nn.BatchNorm2d(output)。是因为BN里面有一个关键操作,其中x1 = x0 * w0 + b0,而E[x1] = E[x0*w0] + b0, 所以对于分子而言,加没加偏置,没有影响;而对于下面分母而言,因为Var是方差操作,所以也没有影响原创 2021-06-04 22:57:46 · 12717 阅读 · 3 评论