机器学习
文章平均质量分 64
唐BiuBiu
这个作者很懒,什么都没留下…
展开
-
彻底搞清楚CUDA和cuDNN版本问题
彻底搞清楚CUDA、cuDNN和torch之间的关系。原创 2024-03-07 11:55:29 · 5973 阅读 · 2 评论 -
YOLOX官方源码文件结构和注释
Yolox的论文及代码Yolox论文名:《YOLOX: Exceeding YOLO Series in 2021》Yolox论文地址:https://arxiv.org/abs/2107.08430Yolox代码地址:https://github.com/Megvii-BaseDetection/YOLOX源码的文件结构和注释(加粗部分是重点文件,应详细分析):YOLOX-main:.│ .gitignore│ .readthedocs.yaml│ hubconf.py│ L.原创 2022-04-17 14:44:13 · 5539 阅读 · 0 评论 -
【pytorch】定义自己的CNN字符识别网络
1.选定网络结构自定义的网络结构很大程度上决定于数据集的特点。这次字符识别数据集为20*20的3通道图片,是中国汽车牌照图片经过预处理后的字符图片。包含包括数字、字母和汉字在内的65类字符。数据分布差异较大,一般来讲这样会出现数据项较少的类难以正确识别,这里我们先不管数据分布的问题,等网络效果不好时再调整。数据项示例和数据分布如以下两张图。每个数据项信息较少,可使用较为简单的网络。因此定义网络如下:input -> 3*3卷积 -> BN -> LeakyReLU -> D原创 2021-08-21 23:15:03 · 690 阅读 · 0 评论 -
【pytorch】定义自己的dataloader
在使用自己数据集训练网络时,往往需要定义自己的dataloader。这里用最简单的例子做个记录。定义datalaoder一般将dataloader封装为一个类,这个类继承自torch.utils.data.datasetfrom torch.utils.data import datasetclass LoadData(dataset.Dataset): # 注意父类的名称,不能写dataset pass需要注意的是dataset是模块名,而Dataset是类名,在python中模块原创 2021-08-13 15:33:46 · 3790 阅读 · 1 评论 -
将yolov3的标签转化为yolov5格式的标签
一般yolov3的数据集标签格式为xml,其中bbox为xyxy格式如图:但是yolov5所需的格式为txt每行一个obj,第一个字段是name,后面4个字段是normalized xywh格式的bbox。如下图:为了能用yolov3的数据训练yolov5,所以需要一个转格式的代码:# 将xml格式的标签转换为txt格式,并且将bbox的格式由xyxy转换为normalized xywh的格式。import os import xml.etree.ElementTree as ETcl原创 2021-03-02 21:33:25 · 3115 阅读 · 1 评论 -
Pyorch基础(三)
Pyorch基础(三)broadcasting(广播机制)broadcasting是把tensor自动扩张,比如在不同维度的tensor相加的时候,就会先利用broadcasting机制将两个tensor扩充为相同维度,再进行相加。合并与分割cat将多个tensor按指定维度进行合并合并的维度可以不同,但其他维度必须相同a = torch.rand(4,32,8)b = torch.rand(5,32,8)c = torch.cat([a,b],dim=0)print(c.sha原创 2021-01-31 17:19:12 · 219 阅读 · 1 评论 -
Pytorch基础(二)Tensor的索引和切片
Pytorch基础(二)Tensor的索引和切片Tensor的index和select**Dim 0 first:**多维张量的索引默认为第一个维度索引a = torch.Tensor(4, 3, 28, 28)print(a[0].shape) # torch.Size([3,28,28])print(a[0,0].shape) # troch.Size([28,28])选择前N个或后N个:代表全部n:代表从第n个到最后(包括第n个):n代表从第一个到第n个(不包括第n个)原创 2021-01-31 12:58:32 · 1740 阅读 · 0 评论 -
Pytorch基础(一)数据类型和创建数据
Pytorch基础(一)数据类型和创建数据数据类型Pytorch中的数据类型主要是tensor:这种数据类型与python解释器本身数据类型可以对应。但str类型有所不同。一般用一下几种方式表示字符串:One-hotEmbeddingWord2vecglove在python解释器中,数据无论在cpu还是gpu数据类型是相同的。但在pytorch中cpu和gpu中的数据有所不同:类型检验:a = torch.randn(2, 3)# 输出a的类型# 法1print原创 2021-01-30 11:24:11 · 678 阅读 · 1 评论 -
Pytorch构建神经网络学习总结(一)
Pytorch构建神经网络学习总结二维卷积后维度的计算Pytorch中一个mini batch的格式为 (batch size * input channals * input high * input width)设输入为N∗Cin∗Hin∗WinN*C_{in}*H_{in}*W_{in}N∗Cin∗Hin∗Win,一次二维卷积后输出为N∗Cout∗Hout∗WoutN*C_{out}*H_{out}*W_{out}N∗Cout∗Hout∗WoutNNN卷积前后保持不变(batch原创 2021-01-25 16:49:28 · 385 阅读 · 1 评论 -
【小练习】基于pytorch的简单CNN图像分类网络
一个简单的CNN网络,做个小练习。不管是复杂的网络还是简单的网络,代码的结构都大同小异。从小的网络开始,加油!训练效果如下:代码如下:import torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom torchvision import datasets, transforms# ---------构建网络----------# input: datase.原创 2021-01-11 16:40:25 · 1498 阅读 · 1 评论 -
机器学习笔记 (二)特征预处理
特征工程(二)特征预处理目录特征工程(二)特征预处理归一化sklearn特征处理归一化API:标准化sklearn特征处理标准化API:缺失值特征处理就是通过特定的统计方法(数学方法)将数据转换为算法要求的数据,可以把有量纲表达式转换为无量纲表达式。数值型的数据归一化标准化缺失值类别型数据one-hot编码时间类型时间的切分归一化通过对原始数据进行变换把数据映射到[0,1][0,1][0,1](或其他区间)实质上归一化就是去掉量纲,使得多组特征在对结果的原创 2021-01-02 15:17:20 · 150 阅读 · 0 评论 -
机器学习笔记(一):特征工程 sklear的API
机器学习——特征工程利用Scikit-learn进行特征抽取sklearn特征抽取APIsklearn.feature_extraction字典特征抽取类:sklearn.feature_extraction.DictVectorizer作用:对字典数据进行特征值化语法:DictVectorizer(sparse=Ture,...)DictVectorizer.fit_transform(X) X表示字典或包含字典的迭代器;返回sparse矩阵DictVectorizer.i原创 2021-01-01 22:30:32 · 240 阅读 · 0 评论 -
mmdetection中yolo配置文件的注释
配置文件的地址在.\configs\yolo\yolov3_d53_mstrain-608_273e_coco.py有些没有注释的和我猜测的地方请朋友们不吝赐教_base_ = '../_base_/default_runtime.py' # 猜测可能是继承这个模型的配置# model settingsmodel = dict( type='YOLOV3', .原创 2020-12-21 11:58:24 · 1220 阅读 · 4 评论 -
在win10下安装mmdetection
网上有不少安装mmdetection的教程,我发现都不是很完整,我按照这些教程踩了许多坑,在这我将我成功安装mmdetection的完整过程(包括踩过的坑)记录下来,严格按照这个方法,应该是可以成功安装的。环境版本要求本次安装的版本号:python=3.6cuda=10.0cudnn=7.5.0pytorch=1.2.0torchversion=0.4.0有人已经安装好Pytorch了,但最好别跟以前Pytorch放一个环境,我试过一次,安装过程会疯狂报错,原因未知。安装vs2017原创 2020-12-20 22:45:12 · 2197 阅读 · 3 评论 -
偏导数、方向导数、梯度之间微妙的关系
偏导数、方向导数、梯度之间微妙的关系偏导数:函数某点沿一个某一个维度的变化率,是一个数值方向导数:函数某点沿一个某一个方向的变化率,是一个数值梯度:函数某点变化率最大的方向,是一个向量可以看出偏导数和方向导数从本质上是一个性质,都是描述某个位置的自变量变化率。只不过偏导数的方向平行某个维度,而方向导数的方向是任意的(偏导数是特殊的方向导数?)。梯度指向的就是变化率(增长)最大的那一个方向。...原创 2020-11-28 19:49:57 · 2090 阅读 · 0 评论 -
nn.Module、nn.Sequential和torch.nn.parameter学习笔记
nn.Module、nn.Sequential和torch.nn.parameter是利用pytorch构建神经网络最重要的三个函数。搞清他们的具体用法是学习pytorch的必经之路。目录nn.Modulenn.Sequentialtorch.nn.Parameternn.Modulenn.Module中,自定义层的步骤:1.自定义一个Module的子类,实现两个基本的函数:(1)构造 init 函数 (2)层的逻辑运算函数,即正向传播的函数2.在构造 init 函数中实现层的参数定义。 比如L原创 2020-10-25 10:44:00 · 3547 阅读 · 2 评论 -
pytorch学习笔记(1)
pytorch学习笔记(1)学习教程:《动手学深度学习 PYTORCH 版(DEMO)》目录pytorch学习笔记(1)Tensor对张量进行操作线性代数tensor on gpu自动求梯度Tensor首先导入pytorchimport torch利用torch.empty()函数创建一个未被初始化的张量x = torch.empty(5, 3, dtype=torch.float, device=GPU, requires_grad=Ture ) # dtype:数据类型,device:原创 2020-10-04 16:47:42 · 147 阅读 · 0 评论 -
BP神经网络通俗教程(matlab实现方法)
BP神经网络通俗教程(matlab实现方法)黑色字体可看可不看,是帮助理解所用红色字体是比较重要的部分,必看BP神经网络是什么BP(Back-propagation,反向传播)神经网络是最传统的神经网络。当下的各种神经网络的模型都可以看做是BP神经网络的变种(虽然变动很大…)。这东西是干什么用的呢?我们在现实中要处理的一切问题映射到数学上只分为两类,可归纳的问题与不可归纳的问题。首先什么是不可归纳的问题,举个例子,你不能用一套完美的数学公式去表达所有的质数 , 因为目前的研究表明,还没有什么方法原创 2020-09-05 21:38:19 · 58594 阅读 · 71 评论