- 博客(29)
- 收藏
- 关注
原创 Vision Transformer
它的提出刚开始针对自然语言处理领域NLP,无法并行化。长度受限制。尝试将Transformer应用到CV领域。给出的最佳模型在ImageNet1K上能够达到88.55%的准确率(先在GoogleJFT数据集上进行了预训练),说明Transformer在CV领域确实是有效的,而且效果还挺惊人。ResNet、ViT(纯Transformer模型)以及Hybrid(卷积和Transformer混合模型)三个模型进行比较。
2025-04-01 14:41:00
233
原创 使用yolov5-7.0版本训练自己的数据集
(默认标注好的)创建mydata文件夹在data下,images放图片,labels放标签(归一化后的)。运行...py生成txt放图片路径方便读取。在train.py文件的314进行修改(PyTorch 新版本中,自动混合精度 (AMP) 的 API 发生了变化,旧写法。然后因为刚开始我训练的是5.0版本这里要注意训练detect.py文件是会自动下载最新版的。方法91行(在较新的 Pillow 版本(Pillow ≥ 10.0.0)中,修改models文件夹下的yolov5s.yaml中的类别个数。
2025-03-30 16:32:33
394
原创 R-CNN,Fast R-CNN,
最后,通过非极大值抑制(NMS)来减少候选框的数量,提高检测效率和准确性。将2000×4096的特征矩阵与20个SVM组成的权值矩阵4096×20 相乘,获得2000×20的概率矩阵,每一行代表一个建议框归于每个 目标类别的概率。产生的候选框大小它是随机的,而我们要缩放的是,这些候选框框出的不同大小的图片。因为我们的负样本是背景,不是目标概率,损失是计算目标预测值和真实值的差距 这里的0.2不是我们的目标概率值 应该是0.8 标签为1 这里就是 -[1*log(0.8)+0*log(1-0.8)]
2024-11-02 18:47:49
1030
原创 ShuffleNet V1,ShuffleNet V2
提出主要是group convolution和DW convolution.GConv虽然能够减少参数与计算量,但GConv中不同组之间信息没有交流。把Group分为三份,把每一份的第一份放在一起......这样得到Shufflenetv1卷积,这样就能融合不同group之间的应该权重信息了。
2024-10-22 15:01:51
346
原创 MobileNet v3(相比于MobileNet v2)
Ø 更新Block(bneck)Ø 使用NAS搜索参数 (Neural Architecture Search)Ø 重新设计耗时层结构更准确,更高效以及表中数据展示。
2024-10-17 21:38:04
305
原创 MobileNet及MobileNet-v2
它使用了线性激活函数,输入是二维矩阵channel=1,使用不同维度的T矩阵变换到更高一个维度上,而后使用rrelu激活函数,得到输出值,然后再使用一个T-1逆T矩阵还原为2D矩阵。随着dim的增加我们的信息减少越来越少。
2024-10-17 16:33:55
382
原创 ResNet,residual,Batch Normalization,迁移学习,ResNext,代码示例
网络中的亮点:Ø 超深的网络结构(突破1000层)Ø 提出residual模块Ø 使用Batch Normalization加速训练(丢弃dropout)
2024-10-15 20:01:50
985
原创 GoogLeNet,代码示例,辅助分类器,Inception
当我们实例化一个模型model后,可以通过model.train()和model.eval()来控制模型的状态。# 在官方的实现中,其实是3x3的kernel并不是5x5,,具体可以参考下面的issue。辅助分类器是训练过程中优化网络参数的,测试时参数都优化好了,只用考虑最后的输出结果就是了。# 如果要使用官方的预训练权重,注意是将权重载入官方的模型,不是我们自己实现的模型。# 随着我们训练和测试(不需要辅助分类器的结果)的不同而变化的。# 无论输入的特征矩阵高和宽是多少,输出都是1*1。
2024-10-12 21:58:21
1144
原创 VGG网络,感受野,代码示例。
通过堆叠两个3x3的卷 积核替代5x5的卷积核,堆叠三个3x3的 卷积核替代7x7的卷积核。拥有相同的感受野(输出feature map上的一个单元 对应输入层上的区域大小。VGG网络使用的都是小尺寸的卷积核(3×3)和池化核(2×2),通过堆叠这些基础模块来构建深度网络。F(i)为第i层感受野,F (i) = (F (i +1) - 1)*Stride + Ksize。通过堆叠多个3x3的卷积核来替代大尺度卷积核 (减少所需参数)。# 含义:第一层3*3卷积,有64个卷积核,最大池化下载量程,
2024-10-12 15:43:23
623
原创 图像分类-demo(Lenet),tensorflow和Alexnet
Lenet是一个 7 层的神经网络,包含 3 个卷积层,2 个池化层,1 个全连接层,1个输出层。其中所有卷积层的卷积核都为 5x5,步长=1,池化方法都为平均池化,激活函数为 ReLu。定义了一个预处理管道,它首先将图像调整到224x224像素(AlexNet的输入大小),然后将图像转换为PyTorch张量,并对每个通道进行归一化处理。PyTorch提供了一个名为“torchvision”的附加库,其中包含了各种预训练的模型和常用的数据集,以及用于构建和训练计算机视觉模型的实用工具。
2024-10-09 18:51:50
1224
原创 李沐深度学习-多层感知机、模型选择、过拟合、欠拟合
和softmax回归唯一的不同在于,添加了2个全连接层。第一层是[隐藏层],它(包含256个隐藏单元,并使用了ReLU激活函数第二层是输出层。nn.ReLU(),实现一个函数来评估模型在给定数据集上的损失"""评估给定数据集上模型的损失"""metric = d2l.Accumulator(2) # 损失的总和,样本数量定义训练函数# 不设置偏置,因为我们已经在多项式中实现了它。
2024-09-25 16:24:49
1261
原创 李沐深度学习-线性回归softmax
在构造模型时,我们在该容器中依次添加层。当给定输入数据时,容器中的每一层将依次计算并将输出作为下一层的输入。# forward 定义前向传播return yprint(net) # 使用print可以打印出网络的结构LinearNet(print(net)可以通过来查看模型所有的可学习参数,此函数将返回一个生成器。回顾图3.1中线性回归在神经网络图中的表示。作为一个单层神经网络,线性回归输出层中的神经元和输入层中各个输入完全连接。因此,线性回归的输出层又叫全连接层。
2024-09-24 17:11:08
1269
原创 聚类算法(api,模型评估等)
聚类算法是一种无监督学习算法,主要用于将相似的样本自动归到一个类别中。它通过分析样本之间的相似性,将样本划分到不同的类别中,从而发现数据中的内在结构和模式。应用:市场分析、用户画像、广告推荐、图像分割等。n_clusters:整型,默认值为8。表示要形成的簇的个数,即质心的数量。init:字符串或可调用对象,默认为'k-means++'。用于选择初始质心,以加速算法的收敛速度。n_init:整型,默认为10。表示算法运行的次数,每次运行都会使用不同的初始质心进行聚类,并选取最好的结果作为最终输出。
2024-09-14 11:06:43
944
原创 深度学习李沐第一节-数据操作
(1)N维数组0-d 标量、1-d向量、2-d矩阵、3-d RGB图片(宽x高x通道).....(2)代码实战① 新建一个张量。张量表示一个数值组成的数组,这个数组可能是多个维度。② 通过shape属性来访问张量的形状 和 张量中元素的总数。③ 要改变一个张量的形状,而不改变元素的数量和元素值,我们可以通过reshape函数。④ 使用全0、全1、其他常量或从特定分布中随机采样的数字。⑤ 通过提供包含数值的Python列表来为所需张量中的每个元素赋予确定值。
2024-09-14 10:58:38
337
原创 DBeaver常用快捷键和SQL语句快捷键
常用编辑快捷键快捷键 功能描述 Ctrl+Enter 执行SQL语句 F8 运行到光标所在的行 Ctrl+D 删除当前行 Ctrl+Z 撤销操作 Ctrl+Shift+Z 重做操作 Ctrl+F 查找、替换文本 F3 查找下一个匹配的文本 Ctrl+A 全选文本 Ctrl+/ 给当前行添加或移除注释(行注释) Ctrl+Shift+/ 给选定的代码块添加或移除注释(块注释) Ctrl+Alt+F
2024-08-12 01:53:13
1880
原创 深度学习(Sequential、损失函数与反向传播、优化器、模型的保存和读取)
Sequential”是PyTorch中的一个容器,用于按顺序包含一系列子模块。接下来,可以使用Sequential来定义模型。以下是一个简单的卷积神经网络(CNN)的例子,该网络用于处理图像数据:Flatten(),return xL1Loss(L1范数损失)计算输入和目标之间的绝对差值的平均值(当时,默认设置),或者它们的总和(适用于回归问题,它衡量的是预测值与实际值之间的绝对距离。MSELoss(均方误差损失)计算输入和目标之间的平方差的平均值。
2024-08-06 03:06:53
893
原创 torch深度学习(transforms、torchvision、数据、nn.Module、卷积、池化、线性与非线性)
你也可以通过继承类来创建自定义的 transforms。
2024-08-04 01:10:58
1120
原创 集成学习(BaggingoostingGBDT)
集成学习通过建立几个模型来解决单一预测问题。它的工作原理是,各自独立地学习和作出预测。这些预测最后结合成,因此优于任何一个单分类的做出预测。
2024-07-28 14:55:24
993
原创 决策树算法
定义:是一种树形结构,本质上是一颗由多个判断节点组成的树。信息熵:信息熵可以看作是信息混乱程度或无序度的度量。一个系统越是混乱,信息熵就越高;反之,系统越有序,信息熵就越低。因此,信息熵也可以看作是系统有序化程度的一个度量。计算公式:其中,p(xi) 表示随机变量X取值为xi的概率,log2表示以2为底的对数运算。特征提取是一个特征空间上的变换(映射),可以是线性和非线性的。及那个任意数据(如文本或图像)转换为可用于机器学习的数字特征。
2024-07-28 00:18:40
989
原创 线性回归的知识点
在每次迭代中,算法会计算损失函数关于当前参数的梯度(即偏导数),然后根据梯度方向更新参数。x(i),y(i))。在每次迭代中,批量梯度下降法都会使用整个训练集来计算损失函数的梯度,并据此更新模型的参数。最小二乘法是一种直接求解最优参数的方法,通过对损失函数求导并令其为零,可以解得参数的闭式解。其中,m 是样本数量,hθ(x(i)) 是模型对第 i 个样本的预测值,y(i) 是第 i 个样本的实际值,θ 是模型的参数向量。其中,α是学习率,x(i)和y(i)分别表示第i个样本的特征和标签,∇θJ(θ;
2024-07-20 01:02:19
710
原创 K-近邻算法
问题定义:首先,需要明确机器学习任务的目标,即要解决什么问题。这个问题应该能够通过机器学习模型来预测或分类数据。数据收集:根据问题的需求,从不同的数据源收集相关数据。这些数据可以是结构化数据(如数据库中的表格数据)或非结构化数据(如文本、图像、音频等)。KD树是一种用于处理多维数据的数据结构,它是二叉搜索树的一种变体。KD树通过递归地将多维空间划分为一系列的超矩形区域,每个节点代表一个超平面,将空间分为两个子空间。
2024-07-19 02:23:20
1058
原创 Seaborn
Seaborn是一个基于Matplotlib的Python数据可视化库,它提供了多种直观且美观的数据可视化方法。首先在终端中下载输入pip install seaborn问题:seaborn中的示例数据集无法使用、下载压缩包后电脑没有seaborn-data文件夹,在用户下创建后仍无法使用。
2024-07-18 12:26:51
902
原创 pandas的索引赋值和案例
获取分组之后的某一部分数据: df.groupby(by=["Country","State/Province"])["Country"].count() 对某几列数据进行分组: df["Country"].groupby(by=[df["Country"],df["State/Province"]]).count()处理方式2:填充数据,t.fillna(t.mean()),t.fiallna(t.median()),t.fillna(0)元组里面是(索引(分组的值),分组之后的DataFrame)
2024-07-14 14:31:58
972
1
原创 matplotlib的简单基础
plt.scatter(x_3,y_3,1abel="3月份") plt.scatter(x_10,y_10,labet="10月份")plt.plot(x,y_2,label="同桌",color="cyan" ,linest yle="--") ---线线图。plt.plot(x,y_1,label="自己",color ="orange",line style=':') ---点图。x = range(2,26,2) --从2开始到25,步长为2。
2024-04-24 15:59:02
1001
原创 numpy
sum() any () all() mean () std()var() argmax ()经常与逻辑表达式配合,比如查询一组数据中大于均值的所有数 argmin () np.median()1.特点:数据类型相同的有序的数据集合,如果初始化的数据类型不同,会强制类型统一。访问元素:arr[index1,index2,index3...]最终目的:就是保证参与运算的两个数组形状一致 array + num。访问列:arr[:,列索引]访问行:arr[行索引]2.输入输出历史:InOut。
2024-04-23 08:52:28
517
原创 pandas和DataFrame
查看头尾n个元素:head(),tail() isnull(),notnull()配合any(),all()来检查是否存在空值。注意: 索引操作都是闭区间,下标操作都是开区间下标:s[index1:index2] loc iloc。DataFrame + Series --> df.add(s,axis=0\1)指定索引对齐的方向。去重操作:unique() [A,B, A,B,C] --> [A,B,C]Series 一维数组,类似字典 Series(data, index)
2024-04-23 08:46:06
476
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人