pyTorch
文章平均质量分 53
乐亦亦乐
大道至简 知行合一
展开
-
【代码片段】ONNX 模型转成Tensorrt 及推理测试
注意:不需要NVIDIA官网下载Tensorrt安装;直接使用pip 是可以安装成功的。模型转换:"""nvidia-pyindex 1.0.9nvidia-tensorrt 8.0.1.6"""import tensorrt as trt'''通过加载onnx文件,构建engine'''onnx_file_path = "model.onnx" # 输入需要转换的onnx文件G_LOGGER = trt.Logger(trt..原创 2022-05-03 16:24:58 · 1692 阅读 · 0 评论 -
将Moving-MNIST数据集处理成图片文件
Moving-MNIST数据集下载地址:http://www.cs.toronto.edu/~nitish/unsupervised_video/http://www.cs.toronto.edu/~nitish/unsupervised_video/数据集处理:将下载的数据集处理成图片文件!# contains 10,000 sequences each of length 20 showing 2 digits moving in a 64 x 64 frame.# 10000 个视..原创 2022-04-05 16:05:30 · 1312 阅读 · 1 评论 -
【YOLOX训练部署】YOLOX ONNX 使用GPU进行推理
YOLOX训练自己的VOC数据集【YOLOX训练部署】YOLOX训练自己的VOC数据集_乐亦亦乐的博客-CSDN博客将自己训练的YOLOX权重转化成ONNX 并进行推理【YOLOX训练部署】将自己训练的YOLOX权重转化成ONNX 并进行推理_乐亦亦乐的博客-CSDN博客ONNX 在 CPU 上推理速度较慢,对比GPU效果,使用GPU对onnx进行推理。具体操作:首先卸载onnxruntime,并安装onnxruntime-gpupip uninstall onnxruntime原创 2022-01-01 10:43:30 · 7470 阅读 · 0 评论 -
【YOLOX训练部署】将自己训练的YOLOX权重转化成ONNX 并进行推理
使用YOLOX 训练自己的VOC数据集;保存训练模型;将训练模型转化成ONNX格式,并进行推理!原创 2022-01-01 09:44:27 · 6464 阅读 · 1 评论 -
【YOLOX训练部署】YOLOX训练自己的VOC数据集
YOLOX 环境安装与训练自己标注的VOC数据集;原创 2021-12-31 22:36:24 · 3274 阅读 · 1 评论 -
torch.roll() 函数用法
Pytorch 官方文档:https://pytorch.org/docs/master/generated/torch.roll.htmlhttps://pytorch.org/docs/master/generated/torch.roll.html官方案例:>>> import torch>>> x=torch.tensor([1,2,3,4,5,6,7,8]).view(4,2)>>> xtensor([[1, 2]...原创 2021-11-01 16:14:20 · 927 阅读 · 0 评论 -
torch.nn.Unfold和torch.nn.Fold
可以参考博文:pytorch中的torch.nn.Unfold和torch.nn.Fold_春笋的博客-CSDN博客_nn.unfoldpytorch中的torch.nn.Unfold和torch.nn.Fold目的Unfold目的平时使用卷积操作时,既卷积核滑动窗口操作,对于pytorch,以二维图像为例,调用nn.Conv2d就能完成对输入(feature maps)的卷积操作。但有时,maybe要探究卷积核对应的某一channel的单个窗口的卷积操作,或显式地进行卷积操作。此时,就需要nn....原创 2021-10-27 15:58:34 · 642 阅读 · 0 评论 -
Pytorch对图片下采样到1/2尺度、1/4 尺度
from PIL import Image as Imageimport torchvision.transforms.functional as Timport torch.nn.functional as Fimport numpy as npfrom torchvision import transformsimport matplotlib.pyplot as pltpath=r'C:\Users\Administrator\Desktop\Pytorch\do...原创 2021-10-23 18:22:08 · 8421 阅读 · 0 评论 -
Flops 计算以及代码快速查看网络参数、浮点数
FLOPS: 全大写,指每秒浮点运算次数,可以理解为计算的速度。是衡量硬件性能的一个指标。(硬件)FLOPs: s小写,指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。(模型) 在论文中常用GFLOPs(1 GFLOPs = 10^9 FLOPs)安装方式:pip install torchstat使用方法:from torchstat import statimport torchvision.models as modelsmodel = mode..原创 2021-10-23 16:38:06 · 5488 阅读 · 8 评论 -
循环神经网络(RNN、LSTM、GRU)的结构及代码实现
RNN代码实现:# 一般循环神经网络RNNclass ConvRNN(nn.Module): def __init__(self, inp_dim, oup_dim, kernel, dilation): super().__init__() pad_x = int(dilation * (kernel - 1) / 2) self.conv_x = nn.Conv2d(inp_dim, oup_dim, kernel, paddin.原创 2021-10-01 18:30:33 · 4152 阅读 · 1 评论 -
ShuffleNetV2 作为backbone代码实现 【torchsummary 使用】
图Fig.3 (c)、(d)对应的代码block:class ShuffleV2Block(nn.Module): def __init__(self, inp, oup, mid_channels, *, ksize, stride): super(ShuffleV2Block, self).__init__() self.stride = stride assert stride in [1, 2] self.mid_...原创 2021-09-19 10:25:37 · 793 阅读 · 1 评论 -
图像超分 PSNR 和 SSIM 计算代码
import osimport mathimport copyimport numpy as npimport cv2def calculate_psnr(img1, img2): # img1 and img2 have range [0, 255] img1 = img1.astype(np.float64) img2 = img2.astype(np.float64) mse = np.mean((img1 - img2)**2) if mse =.原创 2021-09-09 10:47:35 · 1451 阅读 · 0 评论 -
RCAN - Residual Group 代码实现
RCAB 模块参考https://blog.csdn.net/qq_41251963/article/details/120195167## Residual Group (RG)class ResidualGroup(nn.Module): def __init__(self, conv, n_feat, kernel_size, reduction, act, res_scale, n_resblocks): super(ResidualGroup, sel...原创 2021-09-09 10:34:23 · 953 阅读 · 0 评论 -
超分辨率中RCAB--残差通道注意力块代码实现
## Channel Attention (CA) Layerclass CALayer(nn.Module): def __init__(self, channel, reduction=16): super(CALayer, self).__init__() # global average pooling: feature --> point self.avg_pool = nn.AdaptiveAvgPool2d(1) ...原创 2021-09-09 10:07:06 · 2285 阅读 · 0 评论 -
yolox 【darknet网络】
Darknet53的网络结构图:【图片来源:https://www.jianshu.com/p/ab8392ef3394】network_blocks :https://blog.csdn.net/qq_41251963/article/details/119175908from torch import nnfrom network_blocks import BaseConv,CSPLayer,DWConv,Focus,ResLayer,SPPBottleneckclas..原创 2021-07-28 15:02:37 · 816 阅读 · 0 评论 -
yolox中的一些基本组件【network_blocks】
Sigmoid Weighted Liner Unit(SiLU) f(x)=x⋅σ(x) f′(x)=f(x)+σ(x)(1−f(x))【图片来源:https://blog.csdn.net/GrayOnDream/article/details/102955297】class SiLU(nn.Module): """ e...原创 2021-07-28 11:48:59 · 1965 阅读 · 0 评论 -
Pytorch 模型转化为torchscript 模型——用于C++部署
import torchimport torchvisionimport torch.nn as nn#model = torchvision.models.resnet50(pretrained=True)model=torchvision.models.resnet18() # 加载模型num_ftrs = model.fc.in_featuresmodel.fc = nn.Linear(num_ftrs, 196) # make the changemodel.load_state_.原创 2021-06-27 07:59:27 · 995 阅读 · 0 评论 -
Pytorch 使用 TensorBoard 可视化
TensorFlow中强大的可视化工具TensorBoard :https://tensorflow.google.cn/tensorboardTensorBoard provides the visualization and tooling needed for machine learning experimentation:Tracking and visualizing metrics such as loss and accuracy Visualizing the mode.原创 2021-02-14 12:05:08 · 1375 阅读 · 0 评论 -
【MMDetection-学习记录】config配置文件说明
# model settings 模型设置 #官方文档:https://mmdetection.readthedocs.io/en/latest/tutorials/config.htmlmodel = dict( type='MaskRCNN', #检测器名称 pretrained='torchvision://resnet50',#加载预训练的backbone backbone=dict(#backbone配置 type='ResNet', ...原创 2021-01-21 18:53:27 · 1633 阅读 · 0 评论 -
【MMDetection-学习记录】 训练自己的VOC数据集
使用labelimg制作voc数据集https://blog.csdn.net/qq_41251963/article/details/111190442在mmdetection文件夹下新建data文件夹,存放训练数据;(使用kaggle(猫狗分类)数据集 【网盘下载:https://pan.baidu.com/s/1ZmyGPUp1jOHoNE24V0YAKw 提取码:je6k】,进行标注)本次标注猫狗各150张训练;新建myself文件夹,作为自己的工作目录;创建好的...原创 2021-01-21 16:57:07 · 2654 阅读 · 4 评论 -
【MMDetection-学习记录】 为mmdetection\demo添加video_demo.py 进行视频检测并保存
【上一篇】【MMDetection-学习记录】 Windows10操作系统下安装并运行video_demo.py'''Descripttion: version: Author: LiQiangDate: 2021-01-21 11:45:22LastEditTime: 2021-01-21 13:05:07'''import argparseimport cv2import torchimport osfile_path=__file__ #当前文件所..原创 2021-01-21 13:15:31 · 3332 阅读 · 2 评论 -
【MMDetection-学习记录】 Windows10操作系统下安装并运行
安装过程中,版本需要对应,否则会出现问题。MMDetection和MMVC对应版本如下:MMDetection version MMCV version master mmcv-full>=1.2.4, <1.3 2.8.0 mmcv-full>=1.2.4, <1.3 2.7.0 mmcv-full>=1.1.5, <1.3 2.6.0 mmcv-full>=1.1.5, <1.3 2.5.0原创 2021-01-21 11:18:26 · 1239 阅读 · 3 评论 -
FPN网络结构及Pytorch实现
FPN总体架构如图所示,主要包含自下而上网络、自上而下网络、横向连接与卷积融合4个部分。自下而上:C2到C5代表不同的ResNet卷积组,这些卷积组包含了多个Bottleneck结构,组内的特征图大小相同,组间大小递减。自下而上:首先对C5进行1x1卷积降低通道数得到P5,然后依次进行上采样得到P4、P3、P2.目的是得到与C4、C3与C2长宽相同的特征,方便下次进行逐元素相加。采用2倍最近邻上采样(直接对临近元素进行复制,而非线性插值)。横向连接:(Lateral Connect...原创 2020-10-31 12:00:33 · 7911 阅读 · 10 评论 -
Pytorch 实现DetNet
如图所示,DetNet引入了一个新的Stage6,用于物体检测。Stage5与Stage6使用了DetNet提出的Bottleneck结构。最大的特点就是使用了空洞数为2的3x3卷积取代了步长为2的3x3卷积。Stage5与Stage6的每一个特征图尺寸都为原图的1/16,通道数都为256,而传统的Backbone通常是特征图尺寸递减,通道数递增。在组成金字塔时,特征图大小完全相同,因此可以直接从右向左传递相加,避免了上一节的上采样操作。代码:from torch impor...原创 2020-10-29 11:06:51 · 747 阅读 · 0 评论 -
Pytorch 实现DenseNet网络
DenseNet的特性:(1)神经网络一般需要使用池化操作缩小特征图尺寸来提取语义特征。而Dense Block需要保持每一个Block内的特征图尺寸一致来进行Concatnate操作,因此Dense Block被分成多个Block。Block的数量一般为4.(2)两个相邻的Dense Block之间的部分被称为Transition层,具体包括BN,ReLU、1x1卷积、2x2平均池化操作。1x1的作用是降维,起到压缩模型的作用,而平均池化则是降低特征图的尺寸。DenseNet的结构图:..原创 2020-10-29 10:23:11 · 3169 阅读 · 0 评论 -
Pytorch 实现Inception v1模块与 Inception v2模块
import torchfrom torch import nnimport torch.nn.functional as F#首先定义一个包含conv与ReLu的基础卷积类class BasicConv2d(nn.Module): def __init__(self,in_channels,out_channels,kernel_size,padding=0): super(BasicConv2d,self).__init__() self.conv=...原创 2020-10-28 20:31:22 · 1417 阅读 · 0 评论 -
Pytorch构建VGG16网络
论文阅读:https://blog.csdn.net/qq_41251963/article/details/108638445代码:from torch import nnclass VGG(nn.Module): def __init__(self,num_classes=1000): super(VGG,self).__init__() layers=[] in_dim=3 out_dim=64 ..原创 2020-10-28 19:13:28 · 930 阅读 · 0 评论 -
Pytorch使用visdom可视化
visdom 安装:pip install visdom安装成功后,适应命令开启visdom服务,该服务基于Web,默认使用8097端口python -m visdom.server访问给出的地址:例子:完整代码:import torchimport visdom#创建visdom客户端,使用默认端口8097,环境为first,环境的作用是对可视化的空间进行分区vis=visdom.Visdom(env='first'...原创 2020-10-28 16:13:04 · 1252 阅读 · 0 评论 -
Pytorch 1.2 GPU安装命令
Pytorch 1.2 GPU安装pip install torch===1.2.0 torchvision===0.4.0 -f https://download.pytorch.org/whl/torch_stable.html原创 2020-10-22 16:22:47 · 1513 阅读 · 0 评论 -
Pytorch张量的主要方法之间的区别(Tensor、tensor、from_numpy、as_tensor)
Pytorch张量是torch.tensor Pytorch类的实例一个张量的抽象概念和一个Pytorch张量的区别在于Pytorch张量给了我们一个具体的实现,我们可以使用和编码它。如上图,使用了四个不同的方法构造张量,并检查了他们的dtype。t1与t2的唯一区别在于方法名中t的大小写,大写字母T(Tensor)是类构造函数,第二种小写是工厂函数。torch.as_tensor 和 torch.from_numpy 也是工厂函数构造函数在构造一个张量时使用全局缺省值...原创 2020-09-02 15:17:11 · 4393 阅读 · 1 评论 -
Pytorch复现经典卷积神经网络_AlexNet 和 ResNet
import torchfrom torch.autograd import Variableimport torch.nn as nnprint(torch.__version__)"""nn.Conv2d(1,1,kernel_size=,stride=,padding=)nn.MaxPool2d(kernel_size=,strid=)nn.AveragePool2d(kernel_size=,strid=)nn.AdaptiveAvgPool2d()nn.Linear(1,1.原创 2020-08-29 21:57:11 · 410 阅读 · 0 评论 -
(四)PyTorch——多分类问题及深层次神经网络(mnist数字识别问题)
MNIST是一个非常有名的手写数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门案例。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据。在MNIST数据集中的每一张图片都代表了0~9中的一个数字。图片的大小都为28x28,且数字都会出现在图片的正中间。数字图片及其像素矩阵:(MNIST数据集中图片的像素大小为28...原创 2020-02-01 21:03:27 · 1262 阅读 · 0 评论 -
(三)PyTorch——多层神经网络
线性回归中,公式是y=wx+b;在Logistic回归中,公式是y=Sigmoid(wx+b),可以看成是单层神经网络,其中sigmod称为激活函数。左边是一张神经元的图片,神经元通过突触接受输入,然后通过神经激活的方式传输给后面的神经元。这对比于右边的神经网络,首先接受数据输入,然后通过计算得到结果,接着经过激活函数,再传给第二层的神经元。激活函数:加入非线性的因...原创 2020-01-31 23:22:51 · 1610 阅读 · 1 评论 -
机器学习,深度学习相关概念,及用PyTorch实现(二)——Logistic回归模型
Logistic回归是一种广义的回归模型,其与多元线性回归有着很多相似之处,模型的形式基本相同,虽然也被称为回归,但是其更多的情况使用在分类问题上,同时又以二分类更为常用。回归和分类:回归问题得到的结果是连续的,比如通过学习时间预测成绩分类问题是将数据分成几类,比如根据邮件信息将邮件分成垃圾邮件和有效邮件两类Logistic回归的模型形式和线性回归一样,都是y=wx+b, 其中x...原创 2020-01-14 21:29:45 · 591 阅读 · 0 评论 -
机器学习,深度学习相关概念,及用PyTorch实现(一)
监督学习:对已标记的训练样本进行学习,然后对样本的数据进行标记预测。比如分类垃圾邮件,需对训练样本的邮件进行标记,所谓标定,就是每一封邮件都要人为去制定,然后通过学习,模型对新来的邮件判断是否是垃圾邮件。非监督学习:对没有标记的训练样本进行学习,发现其中的结构性知识。比如把进店购买商品的顾客进行聚类,将他们划分成不同的细分市场。强化学习:可以理解为一个机器人不断依据环境...原创 2020-01-14 14:31:39 · 412 阅读 · 1 评论 -
神经网络——动态图和静态图
目前神经网络框架分为静态图框架和动态图框架,PyTorch和TensorFlow、Caffe等框架最大的区别就是他们拥有不同的计算图表现形式。TensorFlow1.*使用静态图(在TensorFlow2.*中使用的是动态图),这意味着我们先定义计算图,然后不断使用它,而在PyTorch中,每次都会重新构建一个新的计算图。静态图和动态图有各自的优点。动态图比较方便DEBUG,使用者能够使用任何...原创 2020-01-13 21:04:11 · 6820 阅读 · 0 评论 -
PyTorch基础
pytorch官方文档Tensor:Tensor的运算和numpy的运算非常相似,其中最重要的运算就是tensor的定义,和numpy.array的相互转化以及GPU和CPU的相互转换Tensor定义#Tensor定义import torchx1=torch.Tensor([3,4])x2=torch.FloatTensor([4,4])x3=torch.randn(3,4...原创 2020-01-13 20:21:03 · 638 阅读 · 0 评论