第N5周:调用Gensim库训练Word2Vec模型 jieba分词库的使用分词功能:通过jieba.cut方法对文本进行分词。函数用于添加一些特定的词汇,以提高分词的准确性。自定义停用词:通过函数过滤掉指定的停用词,这些词汇在文本处理中通常不携带有用的信息,如标点符号、换行符等。
第N4周:中文文本分类-Pytorch实现 本次将使用PyTorch实现中文文本分类。1.尝试根据第一周的内容独立实现,尽可能的不看本文的代码。2.根据文本内容(第1列)预测文本标签(第2列)2.构建更复杂的网络模型,将准确率提升至91%该文本的类别是: Travel-Query。1.学习如何进行中文本文预处理。模型准确率为:0.8996。
第N2周:Embeddingbag与Embedding详解 词嵌入(Word Embedding)是NLP中的一个重要概念,用于将单词映射到一个连续的向量空间中,这样相似的单词在向量空间中距离更近。词嵌入是一种用于表示文本的向量化方法,它将单词或短语映射到一个固定大小的实数向量。例如,“猫”(cat)和“狗”(dog)这样的单词在语义上相似,因此它们的词嵌入向量在向量空间中会相距较近。Word2Vec:一种预测模型,训练目标是通过上下文预测中心词或通过中心词预测上下文词。:一种基于词共现矩阵的词嵌入方法,通过矩阵分解来获取词向量。FastText。
第N1周:one-hot编码案例 ', '但是', ',', '这种', '编码方式', '存在', '一个', '问题', ',', '就是', '模型', '可能', '会', '错误', '地', '认为', '不同', '类别', '之间', '存在', '一些', '顺序', '或', '距离', '关系', ',', '而', '实际上', '这些', '关系', '可能', '是', '不', '存在', '的', '或者', '不', '具有', '实际意义', '的', '。': 6, '好': 7, '。
第Y8周:yolov8.yaml文件解读 本周的任务:基于YOLOv8n和YOLOv8s模型的结构,手写出YOLOv8l的模型输出。为了完成这个任务,我首先深入分析了yolov8.yaml的参数配置,这让我对模型的细节有了更深入的理解。接着,我研究了backbone模块和head模块,这些是模型中至关重要的部分。通过分析YOLOv8n和YOLOv8s,我能够逐步构建出YOLOv8l.yaml文件的模型结构输出。这个过程不仅考验了我的技术能力,还锻炼了我的逻辑思维和问题解决能力。
第Y7周:训练自己的数据集 运行 split train_va1.py文件后你将得到 train.txt、val.txt、test.txt和 trainval.txt 四个文件,结。运行voc label.py文件生成 train.txt、test.txt、val.txt 文件。这需要修改/root/.config/Ultralytics/settings.yaml文件。在paper_data下创建一个split_train_val.py文件。在主目录下创建paper_data文件夹,将自己的数据集放入此文件夹。
YOLOv5白皮书-第Y6周:模型改进 目录一、本周任务:编辑二、更正前的yolov5s.yaml三、更正后的yolov5s.yaml 四、运行命令及结果命令:python train.py结果:📌 本周任务:我修改了YOLOv5s的网络结构图,请根据网络结构图以及第Y1~Y5周的内容修改对应代码,并跑通程序。
第Y5周:yolo.py文件解读 在整个过程中,我不仅加深了对YOLOv5模型的理解,还提升了自己在深度学习和模型架构修改方面的实践能力。在完成任务后,我成功运行了修改后的模型,并通过了基本的测试,验证了C2模块的正确性和模型的稳定性。通过这次经历,我对深度学习模型的设计和实现有了更深入的理解。
第Y3周:yolov5s.yaml文件解读 YOLOv5配置了4种不同大小的网络模型,分别是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,其中YOLOv5s是网络深度和宽度最小但检测速度最快的模型,其他3中模型都是在YOLOv5s的基础上不断加深、加宽网络使得网络规模扩大,在增强模型检测性能的同时增加了计算资源和速度消耗。出于对检测精度、模型大小、检测速度的综合考量,本文选择YOLOv5s作为研究对象进行介绍。
第Y2周:训练自己的数据集 在本周的学习中我清楚的了解了如何使用yolov5训练自己的数据集。在实现的过程中我也出现了许多问题,比如我是现在电脑上将数据集格式转换的,然后在通过租用服务器训练模型,结果运行中报错显示无法解析数据。通过不断思索,我明白了是因为路径不同,上面两个代码生成的以我的笔记本的路径生成的文件,而服务器的路径又是另一种名字,所以无法解析,通过重新运行上面两个文件后,我成功解决了这个问题。此外,我还尝试了调整batchsize的大小为24,这样可以更好的利用GPU并加快运行速度。
第Y1周:调用官方权重进行检测 本次我通过在官网下载YOLOv5的代码和与预训练文件yolov5s.pt实现图片检测和视频检测。这让我对yolov5实现目标检测有了一个切实的认识,接下来的学习我将逐步解读代码,训练自己的模型, 从一个小白变成一个高手。
第P9周:YOLOv5-Backbone模块实现 Backbone主要负责对输入图像进行特征提取。Neck负责对特征图进行多尺度特征融合,并把这些特征传递给预测层。Head进行最终的回归预测。下面是Backbone骨干网络的分析:骨干网络是指用来提取图像特征的网络,它的主要作用是将原始的输入图像转化为多层特征图,以便后续的目标检测任务使用。在Yolov5中,使用的是CSPDarknet53或ResNet骨干网络,这两个网络都是相对轻量级的,能够在保证较高检测精度的同时,尽可能地减少计算量和内存占用。
第P8周:YOLOv5-C3模块实现 C3模块是YOLOv5网络中的一个重要组成部分,其主要作用是增加网络的深度和感受野,提高特征提取的能力。C3模块是由三个Conv块构成的,其中第一个Conv块的步幅为2,可以将特征图的尺寸减半,第二个Conv块和第三个Conv块的步幅为1。C3模块中的Conv块采用的都是3x3的卷积核。在每个Conv块之间,还加入了BN层和LeakyReLU激活函数,以提高模型的稳定性和泛化性能。C3模块是在YOLOv5-6.0版本中使用的,它的出现替代了早期的BottleneckCSP模块。
第P7周:咖啡豆识别(VGG-16复现) 卷积-卷积-池化-卷积-卷积-池化-卷积-卷积-卷积-池化-卷积-卷积-卷积-池化-卷积-卷积-卷积-池化-全连接-全连接-全连接。通道数分别为64,128,512,512,512,4096,4096,1000。卷积层通道数翻倍,直到512时不再增加。通道数的增加,使更多的信息被提取出来。全连接的4096是经验值,当然也可以是别的数,但是不要小于最后的类别。1000表示要分类的类别数。所有的激活单元都是Relu。用池化层作为分界,VGG16共有6个块结构,每个块结构中的通道数相同。
第P6周:VGG-16算法实现人脸识别 修改VGG-16网络中的全连接部分。减少了全连接层参数期间使用金字塔原则设置了一次参数又试了别人给出的参数增加dropout层,减少过拟合将初始学习率提高为1e-3,进一步提升模型的准确率同时不断更改学习率的衰减速度,从0.92到0.98和0.88,尝试不同的参数最后成功将准确率提高到50%以上。
第P5周:运动鞋识别 总结一下提高正确率过程和收获:本次任务首先是根据K同学提供的代码进行训练,最后训练结果中测试集准确率最高是78%。第一次优化,在K同学给的范例模型的基础上,在前面的每次池化层后面又增加了 Dropout。Dropout 层的丢弃率设置为0.3,并去除了全连接层前面的Dropout。40轮后,测试集准确率只达到了77%,还没有修改之前的正确率高。第二次优化,舍弃了第一次优化的改动,将初始学习率设置为2e-4。40轮后,训练集准确率达到了98.6%,测试集准确率达到了81.6%,效果还不错。
第P4周:猴痘病识别 当保存和加载模型时,TensorFlow和PyTorch使用了不同的函数和机制。下面是对以及函数的详细解释和区别:TensorFlow中的函数用于保存整个模型,包括模型的架构和权重参数。格式:默认情况下,TensorFlow将模型保存为SavedModel格式,它是一个包含模型架构、权重参数和计算图的文件夹。使用方式:可以通过来保存模型,其中filepath是保存模型的文件路径。PyTorch中的函数用于保存模型的状态字典(state_dict),即模型的权重参数。