自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何在yolov8中验证时计算FPS

speed.values()是一个字典,包括preprocess,inference,loss,postprocess的时间,所以这行代码计算的fps包括对图片前处理,推理和后处理的总时间,每次运行可能FPS会有波动,如果想要一个稳定的数值,可以运行多次求平均。ultralytics-main/ultralytics/engine/validator.py文件下,第200行左右,添加如下代码。如果只想要纯网络的推理时间,可以使用如下代码。

2024-01-27 15:21:44 2249 6

原创 在autodl训练yolov8时卡在下载字体/engine/trainer

在autodl训练yolov8到这一步之后会卡住很久。

2024-01-27 15:01:41 499

原创 如何使用GPU租用平台AutoDL

如果平台中没有合适的Torch、TensorFlow等框架版本,那么查询自己的框架需要什么CUDA版本,比如PyTorch=1.9.0需要CUDA=11.1,那么可以选择Miniconda/CUDA=11.1的平台镜像,然后在镜像内安装自己需要的框架。然后就可以开始操作了,如果是无卡模式,退出后关机再开机,然后再次连接就可以了,在这里我们对文件的修改也会生效的。选择计费方式,如果使用连续时间不太长可以选择按量计费,是按小时扣费的,但如果不使用后暂时关机,如果想再次使用这个GPU实例需要等待其空闲。

2024-01-21 10:39:30 1347

原创 YOLO系列

目标检测算法通常分为两类,它们两者的区别在于two stage算法需要先生成一个有可能包含待检物体的预选框,然后再在这些预选框进行分类和回归;而one stage算法会直接在网络中提取特征来预测物体分类和位置。以往的物体检测方法R-CNN、Fast R-CNN 等通常将检测问题转变为分类问题,而YOLO将检测变为一个,并且它的训练和检测均是在一个中进行,输入一张图像,经过网络直接输出预测框和类别,可以直接进行端到端的优化。

2024-01-20 11:42:16 945

原创 Pycharm Terminal 无法激活conda环境

这导致我们无法在Pycharm中使用conda命令。

2024-01-17 09:57:01 1115

原创 Batch Normalization(BN)批量归一化

而在测试阶段,不同于训练阶段,模型通常需要对单个样本进行推断,因此无法计算均值和方差,而需采用训练数据对应的全局均值和方差。移动平均的计算过程如下面式子所示,每次batch训练后对全局的均值和方差进行更新,其中 λ为在 0 到 1 之间的衰减系数,用于控制历史统计信息对移动平均值的贡献程度,值越大,更新速度越慢,过程越稳定。这种方式只需保留三个值,全局统计值、当前batch的统计值和衰减系数,消耗的存储资源少,在损失一定准确度的情况下,计算速度快,在训练阶段可同步完成总统计值的计算,不需额外的计算。

2024-01-09 10:32:53 1008

原创 ImageNet排名

圆圈大小表示参数量。TOP1acc表示模型认为最可能的答案是正确的。TOP5acc表示模型认为5个最可能的答案有正确答案。从ResNet开始已经超过人类水平。该排名为平均每M参数对acc的贡献。

2024-01-07 18:31:25 601

原创 CNN——ResNet

无论是VGG还是GoogleNet都表明增加网络的深度的重要性,网络越深可以提取到越高级的特征。那么是否意味着直接简单的将网络堆深是不是就可以了?增加网络深度首先会带来的问题就是梯度消失或者梯度爆炸导致难以收敛,但这个问题已经可以通过合适的权重初始化手段,Xavier初始化,MSRA 初始化还有Batch Normalization解决。另一个问题便是网络退化现象,这既不是梯度消失或者梯度爆炸导致也不是过拟合导致的,如下图所示,56层网络在训练集和测试集上的误差都比20层网络大。

2024-01-07 18:03:39 1663

原创 CNN——GoogLeNet

GoogLeNet是谷歌推出的基于Inception模块深度卷积神经网络结构。L和N大写还是为了致敬LeNet。在随后的两年中一直在改进,形成了Inception V2、Inception V3、Inception V4等版本。GoogLeNet(Inception-V1),在ImageNet 2014年图像分类竞赛以top-5误差6.7%获得冠军(亚军为VGG)。

2024-01-05 23:23:22 1078

原创 CNN——VGG

论文下载地址:https://arxiv.org/pdf/1409.1556.pdfVGGNet 是由牛津大学视觉几何小组(Visual Geometry Group, VGG)提出的一种深层卷积网络结构,他们以 7.32% 的错误率赢得了 2014 年 ILSVRC 分类任务的亚军(冠军由 GoogLeNet 以 6.65% 的错误率夺得)和 25.32% 的错误率夺得定位任务(Localization)的第一名(GoogLeNet 错误率为 26.44%)。

2024-01-04 22:12:54 1354

原创 CIFAR图片分类数据集

CIFAR-10是一个更接近普适物体的彩色图像数据集。CIFAR-10 是由Hinton 的学生Alex Krizhevsky 和Ilya Sutskever 整理的一个用于识别普适物体的小型数据集。一共包含10 个类别的RGB 彩色图片:飞机( airplane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( truck )。

2024-01-04 12:26:12 432

原创 CNN——AlexNet

在LeNet提出后,卷积神经网络在计算机视觉和机器学习领域中很有名气。但卷积神经网络并没有主导这些领域。这是因为虽然LeNet在小数据集上取得了很好的效果,但是在更大、更真实的数据集上训练卷积神经网络的性能和可行性还有待研究。事实上,在上世纪90年代初到2012年之间的大部分时间里,神经网络往往被其他机器学习方法超越,如支持向量机(support vector machines)。虽然上世纪90年代就有了一些神经网络加速卡,但仅靠它们还不足以开发出有大量参数的深层多通道多层卷积神经网络。

2024-01-04 12:12:05 959

原创 CNN——LeNet

LeNet是Yann LeCun于1988年提出的用于手写体数字识别的网络结构,它是最早发布的卷积神经网络之一,可以说LeNet是深度CNN网络的基石。当时,LeNet取得了与支持向量机(support vector machines)性能相媲美的成果,成为监督学习的主流方法。LeNet当时被广泛用于自动取款机(ATM)机中,帮助识别处理支票的数字。下面是整个网络的结构图LeNet共有8层,其中包括输入层,3个卷积层,2个子采样层(也就是现在的池化层),1个全连接层和1个高斯连接层。。

2024-01-03 16:03:16 932

原创 Mnist手写体数字数据集介绍与在Pytorch中使用

MNIST(Modified National Institute of Standards and Technology)数据集是一个广泛用于机器学习和计算机视觉研究的常用数据集之一。。这个数据集因其相对较小的规模和简单的图像内容也成为了许多机器学习入门教程和示例的标准数据集,因为它的简单性和普遍性,使得学习者能够快速开始构建和训练模型,从而更好地理解机器学习的基本概念和流程,可以说它就是计算机视觉的“Hello World”。

2024-01-02 21:23:20 498 2

原创 如何修改Anaconda的Jupyter notebook的默认启动路径

这个命令的作用是生成 Jupyter notebook 的配置文件。如果你是第一次运行,会直接生成这个文件。如果曾经运行过这个命令,就会像下图一样问你时候要覆盖原来的文件。我们的主要目的只是为了找到这个文件的路径。顺着这个路径找到 jupyter_notebook_config.py文件,可以直接用记事本打开进行修改。路径一定要是已经存在的,否则会闪退。填写你需要的路径并删除这一行前面的“#”删除后把前面那个空格也删去,这一行代码前不能有空格。一定要确保删除 “#”,取消这一行的注释模式。

2023-12-30 18:31:24 621

原创 在Jupyter notebook中使用Anaconda虚拟环境

这里,kernelname为创建的文件夹名,后面的Python (py27)是我希望在jupyter notebook中kernel显示的名字。两者可以保持一致,省的区分。示例:为ml环境添加一个内核。

2023-12-30 18:13:04 378

原创 无监督学习与K-means聚类

Supervised vs. Unsupervised learning(监督学习与无监督学习)

2023-12-19 00:06:08 861

原创 Convolutional Neural Network(CNN)——卷积神经网络

然后卷积核在输入图像上从左上角开始,从左到右,从上到下移动,每次移动一格,如果移动到右边位置不够一个卷积核大小则换行,如果移动到下面位置不够则直接结束,对应位置相乘相加再加上偏置项(可选)便是卷积后的输出。所以在1.的例子中,完整的描述应该是输入图像大小为5×5,通道数为1,设定卷积核大小为3×3,步长为1,输入通道数和输出通道数都为1,填充为0。设置卷积核大小为3×3,输入通道数为1,输出通道数为3。会使用3组每组1个卷积核。设置卷积核大小为3×3,输入通道数为3,输出通道数为1,使用三个卷积核。

2023-12-18 22:36:26 1167

原创 Neural Network——神经网络

输入的每一个x。

2023-12-18 16:46:53 1547 1

原创 Support Vector Machine(SVM)——支持向量机

回顾一下逻辑回归的模型然后经过sigmoid函数得到预测y=1的概率,sigmoid函数如下图对于单个样本来说损失函数如下当一个输入的真实标签为1时,损失函数就只剩,如左图所示,我们想要让,来使损失函数尽可能的小对于SVM来说,损失函数会做些修改,如右图所示,是一个分段函数,在>=1的时候,损失值直接为0,而

2023-12-17 20:11:26 1247

原创 Linear classifiers——线性分类器

(Generalized) Linear classifiers——广义线性分类器。

2023-12-16 18:15:23 848

原创 模型评估指标

回归模型常常使用,预测值与真实值之间的平均差距。

2023-12-15 21:28:41 1204

原创 模型选择与评估

在机器学习中,偏差(bias)和方差(variance)是评估模型性能和泛化能力的两个重要概念。它们可以帮助理解模型在训练集和测试集上的表现以及模型的整体性能。偏差(Bias):定义:偏差表示模型预测值的平均值与实际值的差距,是指模型预测的结果与真实结果的偏离程度。偏差越大,表示模型对真实情况的拟合程度较差,出现了欠拟合的情况。特点高偏差的模型往往过于简单,无法捕捉数据的复杂关系,可能导致欠拟合。方差(Variance):定义:方差表示模型在不同数据集上预测结果的差异程度。

2023-12-15 15:03:04 940

原创 Regularization——正则化

这是使用不同的模型根据房子的大小对于房价的预测第一张图的模型距离数据点的平均距离仍然比较大,拟合效果并不是特别好,也叫第二张图的模型对于训练集数据的拟合的不错,也能预测数据的趋势,这是我们需要的模型第三张图的模型拐来拐去,甚至的拟合了训练集的每一个数据点,损失函数接近于0,但如果给一个新的数据,它的效果是很差的,这种模型是的。可能会疑惑难道这不是最好的模型吗,但评判一个模型的优劣在于其,也就是对于新的模型没见过的数据的预测能力,因为这必然是和训练集不一样的。在分类问题中也存在此问题。

2023-12-13 23:07:40 1117

原创 Logistic Regression——逻辑回归

在前面学习的线性回归中,我们的预测值都是任意的连续值,例如预测房价。除此之外,还有一个常见的问题就是分类问题,而,其。分类问题又包括二分类问题与多分类问题,,例如我输入的是一些动物的图片,我想让模型辨认这些是什么动物,我可以设定预测值1代表模型认为输入是一只猫,预测值2代表模型认为输入是一只狗,预测值3代表模型认为输入是一只猪。

2023-12-12 00:15:49 1050

原创 Normal Equation——正规方程

正规方程通过方程求解找出使得损失函数最小的时参数值,由于涉及到矩阵求导,这里直接给出通过solution求出的矩阵的结果可能会出现矩阵不可逆的情况计算逆矩阵时间复杂度为O(n^3),当n较大时时间代价高,当n小于10000时可以接受此外使用正规方程,不用进行特征缩放。

2023-12-11 19:35:13 389

原创 Features and Polynomial Regression——特征与多项式回归

损失函数loss = 1/(2*len(X)) * np.sum(np.power(X @ theta - y,2)) # @为矩阵乘法。

2023-12-11 17:26:28 935

原创 Feature preprocessing——特征预处理

但是,如果模型的特征属性量纲不一,那么我们寻求最优解的特征空间,就可以看做是一个椭圆形的,那么。而现实中,可能恰恰相反。所以,加入归一化,将数据的特征属性scale到统一量纲,可以一定程度解决这个问题。在机器学习或者深度学习中,大多模型的loss计算,需要假定数据的所有特征都是零均值并且具有同一阶方差的(比如,在k-means中,我们需要计算聚类中心与样本之间的距离,以上述函数为例,梯度完全取决于x的取值,而x又具有不同的量纲。,其中大量纲的属性对应的参数有较长的轴,,例如,对于房间的大小。

2023-11-20 17:40:55 62

原创 Linear regression 线性回归与梯度下降

对于大多数损失函数来说,其极小值常常难以用方程求出精确解,常常采用梯度下降法。梯度:梯度是一个向量,梯度即函数在某一点最大的方向导数,函数在该点处沿着该点梯度的方向变化最,在多元函数中梯度是一个由各个自变量的偏导数所组成的一个「向量」。学习率α:控制参数更新的步长,迭代次数epochs: 重复多少次学习的过程我们可以想象我们深处高山上的某一处位置想要找到山谷。当我们不知道自身所处在山的具体位置时,以当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降的方向。

2023-11-20 16:26:48 115

原创 感知机——神经网络基本模型

x1x2是输入信号,y是输出信号,w1w2是权重(每个输入信号都有一个对应的w),b为偏置项。图中的○称为“神经元”或者“节点”。输入信号被送往神经元时,会被分别乘以固定的权重加上偏置项w1x1w2x2)。神经元会计算传送过来的信号的总和如果这个值大于0则输出1,否则输出0(相当于激活函数)。因此,感知机是一个二分类模型。

2023-11-16 19:43:41 73

原创 完整的模型训练

然后将 .cuda()改成 .to(device)

2023-04-08 16:37:02 77

原创 现有网络模型的使用及简单修改

以VGG16为例pretrained设置为True时代表预训练好的模型,默认为False,VGG是在ImageNet数据集中训练的progress默认为True会会展示一个训练的进度条。

2023-04-05 19:41:16 63

原创 优化器optimizer

根据反向传播获得的梯度优化参数,loss开始下降,然后又上升了。在我们的网络中加入SGD。截取部分,运行有点慢。

2023-04-05 17:27:27 145

原创 反向传播backward

原理与过程待补充……各参数拿到了其对应的梯度。

2023-04-05 17:06:29 45

原创 损失函数LossFunction

每一个样本经过模型后会得到一个预测值,然后得到的预测值和真实值的差值就成为损失(损失值越小证明模型越是成功),损失函数就是用于。

2023-04-05 16:20:58 107

原创 构建简单的神经网络用于CIFAR10分类

根据第一个公式,已知Hout = 32, Hin = 32,dilation = 1, kernel_size = 5,取stride = 1,可以计算出padding = 2。,其实就是要让卷积核的中心经过原输入图像矩阵的每一个数据,把卷积核的中心放到图像的边缘会发现h和w都高出2格,那么只要hw各填充2格就可以了。输入为为3通道,32*32尺寸的CIFA10数据集的图,最后输出为10,也就是完成10个分类。根据卷积的原理,大小为5的卷积核,怎么样改变原图的hw才能卷积出。注:只是完成了网络模型的搭建。

2023-04-05 15:33:48 243

原创 Sequential的使用

把网络中的层进行集合,主要是方便操作。两种使用方法,如上图example,比较简单。具体实例可以看下一节。

2023-04-05 14:41:55 35

原创 ctype.h系列的字符函数

关于字符的一些函数,导入头文件。

2023-04-04 21:01:27 34

原创 神经网络之——线形层

原点代表输入的每一个特征,图像就是每一个像素点,传入到每个神经元,进行∑Wi * Xi+bi的操作。所以输入的数据需要展平成列向量(将c h w展平)。需要传入输入的特征数input,output需要神经元个数。先对输入数据进行展平操作,将每个特征输入10个神经元中。截取了其中一张图的结果。

2023-04-04 20:36:02 111

原创 神经网络——非线性激活

如果不用非线性激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机(Perceptron)。如果使用的话,激活函数给神经元,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中,。下面介绍介绍两个非线性激活函数。

2023-04-04 19:45:10 142

空空如也

空空如也

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

TA关注的人

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