- 博客(38)
- 收藏
- 关注
原创 第R9周:阿尔茨海默病诊断(优化特征选择版)
本周在上周的基础上更加完善了阿尔茨海默病诊断模型,加入了REF(递归特征消除)特征选择方法。并且通过实践更好的理解了模型以及该如何使用这种特征选择方法。
2025-06-06 23:55:43
1061
原创 第R8周:RNN实现阿尔茨海默病诊断(pytorch)
训练循环size = len(dataloader.dataset) # 训练集的大小num_batches = len(dataloader) # 批次数目, (size/batch_size,向上取整)train_loss, train_acc = 0, 0 # 初始化训练损失和正确率for X, y in dataloader: # 获取图片及其标签# 计算预测误差pred = model(X) # 网络输出。
2025-05-30 21:58:22
677
原创 第R7周:糖尿病预测模型优化探索
out = out[:, -1, :] # 只取最后一个时间步的输出return outmodel# 训练循环size = len(dataloader.dataset) # 训练集的大小num_batches = len(dataloader) # 批次数目, (size/batch_size,向上取整)train_loss, train_acc = 0, 0 # 初始化训练损失和正确率for X, y in dataloader: # 获取图片及其标签# 计算预测误差。
2025-05-23 21:38:46
656
原创 第R6周:LSTM实现糖尿病探索与预测
return outmodel# 训练循环size = len(dataloader.dataset) # 训练集的大小num_batches = len(dataloader) # 批次数目, (size/batch_size,向上取整)train_loss, train_acc = 0, 0 # 初始化训练损失和正确率for X, y in dataloader: # 获取图片及其标签# 计算预测误差pred = model(X) # 网络输出。
2025-05-09 20:57:43
630
原创 第R4周:LSTM-火灾温度预测
训练循环train_loss = 0 # 初始化训练损失和正确率# 计算预测误差pred = model(x) # 网络输出loss = loss_fn(pred, y) # 计算网络输出和真实值之间的差距# 反向传播opt.zero_grad() # grad属性归零loss.backward() # 反向传播opt.step() # 每一步自动更新# 记录losssize = len(dataloader.dataset) # 测试集的大小。
2025-04-25 19:04:21
1182
2
原创 第J9周:Inception v3算法实战与解析
本周主要学习了Inception V3,了解到了该模型相对于Inception V1做出的改进,同时通过实践更加深入地了解到了Inception V3的结构。
2025-04-01 05:38:32
924
原创 第J8周:Inception v1算法实战与解析
本周主要学习了Inception V1,通过理论学习了解了模型相关的运算以及推导,并通过实践更加深入地了解了模型的结构。
2025-03-28 17:07:33
680
原创 第J6周:ResNeXt-50实战解析
定义残差单元# epsilon为BN公式中防止分母为零的值else:# 三层卷积层# 计算每组的通道数# 进行分组卷积return x本周主要学习了ResNeXt-50模型,同时了解到了分组卷积,通过模型复现更加深入地了解到了ResNeXt-50模型的结构。
2025-03-21 20:27:50
525
原创 第J5周:DenseNet+SE-Net实战
本周主要学习了解了SE-Net,了解到了其模块的结构,并通过实践了解到了如何将SE模块嵌入到DenseNet中。
2025-03-14 18:41:21
491
原创 第J3-1周:DenseNet算法 实现乳腺癌识别
warnings.filterwarnings("ignore") ## 忽略警告信息devicetransforms.Resize([224, 224]), # 将输入图片resize成统一尺寸# transforms.RandomHorizontalFlip(), # 随机水平翻转transforms.ToTensor(), # 将PIL Image或numpy.ndarray转换为tensor,并归一化到[0,1]之间。
2025-02-28 21:27:08
827
原创 第J3周:DenseNet算法实战与解析
本周主要学习了DenseNet,特别了解了DenseNet的结构,其中最主要的是DenseNet的密集连接机制。使用了上周的数据集进行复现实验,更加深入地了解到了DenseNet的结构以及应用。
2025-02-21 20:19:32
840
原创 第J2周:ResNet50V2算法实战与解析
本周项目手动搭建了手动搭建了ResNet50V2模型,与ResNet50模型相比,残差模型将BN和ReLU进行了前置,在一定程度上有效地提升了模型的准确率。但是模型效果不是很理想,后续需要进一步优化。
2025-02-14 19:32:48
716
原创 第J1周:ResNet-50算法实战与解析
本周主要深入学习了解了ResNet(残差网络),该结构主要可以解决深层神经网络中梯度消失和退化问题。残差网络通过引入残差模块(Residual Block)使得网络更容易训练。与此同时,更加熟悉了Tensorflow。图片总数为: 565。
2025-01-23 12:03:46
743
原创 第N11周:seq2seq翻译实战-Pytorch复现
本周主要学习实践了seq2seq进行翻译,更加深入地了解了seq2seq模型,同时也更加深入地了解了编码器(Encoder)(使用 RNN 或 GRU 构建,用于将输入序列映射到隐状态)和解码器(Decoder)(基于带注意力机制的解码器,实现生成目标语言的序列)。
2025-01-10 20:54:54
1010
原创 第N9周: seq2seq翻译实战
本周主要学习了seq2seq模型,深入了解了seq2seq模型的结构,同时还了解了"Teacher Forcing"技术,可以帮助解码器更快地学习到正确的输出。
2025-01-03 18:53:39
815
原创 第N8周:使用Word2vec实现文本分类
model.train() # 切换到训练模式optimizer.zero_grad() # grad属性归零loss = criterion(predicted_label, label) # 计算网络输出和真实值之间的差距,label为真实值loss.backward() # 反向传播torch.nn.utils.clip_grad_norm_(model.parameters(), 0.1) # 梯度裁剪optimizer.step() # 每一步自东更新# 记录acc与loss。
2024-12-27 21:45:30
827
原创 第N7周:调用Gensim库训练Word2Vec模型
本周主要学习了调用Gensim库训练Word2Vec模型,学习使用了similarity()方法计算两个词之间的余弦相似度,学习了doesnt_match()方法去找到一组词汇中与其他词不匹配的词,学习了通过get_vecattr()方法得到词汇的频率。
2024-12-20 20:55:15
726
原创 第N6周: 中文文本分类-Pytorch实现
本周主要学习了pytorch实现中文文本分类,在学习过程中了解到了梯度裁剪, 梯度裁剪可以防止梯度爆炸问题,从而提高神经网络的稳定性和性能。该文本的类别是:Travel-Query。模型准确率为:0.9062。
2024-12-13 21:31:33
687
1
原创 第N5周:Pytorch文本分类入门
self.embedding = nn.EmbeddingBag(vocab_size, # 词典大小embed_dim, # 嵌入的维度3.定义训练函数与评估函数model.train() # 切换为训练模式optimizer.zero_grad() # grad属性归零loss = criterion(predicted_label, label) # 计算网络输出和真实值之间的差距,label为真实值loss.backward() # 反向传播。
2024-11-29 10:18:06
1095
原创 第N4周:NLP中的文本嵌入
self.fc = nn.Linear(embed_dim, 1) # 假设我们做一个二分类任务print("embedding输入文本是", text)print("embedding输入文本是shape:", text.shape)embedding_mean = embedding.mean(dim=1) # 对每个样本的嵌入向量进行平均print("embedding输出文本shape:", embedding_mean.shape)
2024-11-22 08:08:25
404
原创 第TR6周:Transformer 实现文本分类 - Embedding版
# 创建一个大小为[max_len, embed_dim]的零张量## 创建一个形状为[max_len, 1]的位置索引张量pe[:, 0::2] = torch.sin(position * div_term) ## 计算PE(pos, 2i)pe[:, 1::2] = torch.cos(position * div_term) ## 计算PE(pos, 2i+1)## 将位置编码张量注册为模型的缓冲区,参数不参与梯度下降,保存模型model的时候会将其保存下来。
2024-11-01 11:38:57
790
原创 第TR5周:Transformer实战:文本分类
# 创建一个大小为[max_len, embed_dim]的零张量## 创建一个形状为[max_len, 1]的位置张量pe[:, 0::2] = torch.sin(position * div_term) ## 计算PE(pos, 2i)pe[:, 1::2] = torch.cos(position * div_term) ## 计算PE(pos, 2i+1)## 将位置编码张量注册为模型的缓冲区,参数不参与梯度下降,保存model的时候会将其保存下来。
2024-10-18 10:46:31
1116
原创 第TR4周:Transformer中的位置编码详解
位置编码记录了文本中字符的位置信息,这里的位置信息的纪录不使用单个数字(例如索引值)来记录位置信息的原因有很多。对于长序列,索引的大小可能会变大,不利于存储。如果将索引值泛化为介于0-1之间,则可能会为可变长序列带来问题,因为它们的标准化方式不同。Transformer使用智能位置编码方式,其中每个位置索引都映射到一个向量。因此,位置编码层的输出是一个矩阵,其中矩阵的每一行代表序列中的一个编码对象与其位置信息相加。本周学习了解了位置编码,对于位置编码有了一个较为深入的了解。
2024-10-11 09:11:06
2243
1
原创 Pytorch复现Transformer
本周主要学习了解了Transformer,通过代码对于Transformer有了一个全面的了解,其中重点了解Transformer的自注意力机制。
2024-10-04 07:27:58
609
1
原创 第P10周:Pytorch实现车牌识别
本周主要实现了车牌识别任务。其中在标签数字化时学习使用了one-hot编码,将离散特征推广到欧氏空间,从而使得特征之间的距离计算更加合理。学习了搭建Mydataset的方法在计算测试集准确率时由于pred和y的shape均为[batch, 7, 69],所以在进行计算之前要注意将y转换标签类别,因为pred在argmax之后shape为[batch, 7],而y要与pred进行argmax之后得到的tensor进行比较,所以y的shape需要与pred在argmax之后的shape相同。
2024-09-27 20:11:31
872
1
原创 第P9周:YOLOv5-Backbone模块实现
本周主要通过代码学习了解了YOLOv5中Backbone模块的结构。其中学习到了一个新的模块——SPPF(Spatial Pyramid Pooling),一种用于图像识别和目标检测的技术,其作用是在不同尺度下对图像进行特征提取和编码,它可以将任意大小的输入图像重新缩放到固定大小,并生成固定长度的特征向量。这种方法可以提高模型对目标位置和大小变化的鲁棒性。
2024-09-12 17:15:07
573
原创 第P8周:YOLOv5-C3模块实现
本周学习了解了YOLOv5中的C3模块,通过代码深入了解了C3模块的结构:C3 模块• C3 模块是 YOLOv5 中用来替代标准残差块(Residual Block)的模块,它集成了多层 Bottleneck 结构,并通过 concat(拼接)操作将不同层的特征融合在一起。Bottleneck 子模块• Bottleneck 子模块内部包含了两个卷积层,并且有一个“shortcut”路径(残差路径)。
2024-09-04 09:03:14
1026
原创 第P7周:马铃薯病害识别(VGG-16复现)
本周学习了自己搭建VGG-16网络框架,更加深入了解了VGG-16网络结构。本周学习搭建的的VGG-16网络框架计算量偏大(Total params:134,272,835),训练时间较长,目前暂未发现不影响准确率的前提下轻量化模型的方法。
2024-08-30 16:11:52
384
原创 第P6周:VGG-16算法-Pytorch实现人脸识别
1.本周主要学习了解了VGG16模型,调用官方的VGG16模型。2.学习了迁移学习,学会了如何训练一部分别人预先训练好的模型。3.学习了如何保存最佳模型和模型评估。4.本周的项目在使用了Adam优化器后,一直存在过拟合的问题。在尝试了在VGG16模型的classifier中加入dropout层,使用数据增强,修改动态学习率,在优化器中加入L2权重衰减(L2正则)均为成功解决,后续仍需进行进一步的研究。
2024-08-23 14:25:30
1124
原创 第P5周:运动鞋品牌识别
分析原因,有可能是因为学习率过大或者是因为学习率衰减速度过快(比如每2个 epoch 就降低),模型可能会过早进入一个局部最优解,而不能充分利用数据进行学习。本周主要学习了动态学习率的设置,动态学习率即在训练过程中,根据某种策略自动调整学习率,这种方法可以使模型加速收敛和陷入局部最优解。等间隔动态调整方法,每经过step_size个epoch,做一次学习率decay,以gammma值为缩小倍数。1.可以等间隔设置衰减,即在经过规定的epoch后根据设定的参数进行衰减。在特定的epoch中调整学习率。
2024-08-16 20:46:43
479
原创 第P4周:猴痘病识别
原因分析:可能是由于模型感受野的减小,3乘3卷积核单次卷积操作中捕获的图像信息范围相较于5*5有所减小,因此模型对较大或全局特征的捕获能力不足。2.我们在尝试减小卷积核时,理论上是可以通过小的卷积核来更细致地捕捉图像的局部特征。但是同时模型感受野会减小,从而导致模型对较大或全局特征的捕获能力不足,最终影响分类性能。同时有可能模型结构比较简单,加入 Dropout 后模型的表达能力不足,因此影响了其在测试集上的表现。原因分析:可能是增加卷积核数量后模型复杂度升高,而数据集规模不是很大,从而导致了过拟合。
2024-08-09 21:48:52
308
原创 第P3周:Pytorch实现天气识别
该方法将总体数据total_data按照指定的大小比例([train_size, test_size])随机划分为训练集和测试集,并将划分结果分别赋值给train_dataset和test_dataset两个变量。由第一次结果可以看出test_acc的结果只能达到90%,而训练集的表现比较可观,为了提升测试集准确性,可以尝试使用Adam优化器并且引入L2正则化来解决。另外,还可以使用数据增强来提高模型泛化能力,即对训练数据进行随机变换来增加其多样性。通过训练,test_acc获得提升,基本可以到达93%。
2024-08-02 20:53:03
337
转载 第P2周:CIFAR10彩色图片识别
详细了解了torch.nn.Conv2d()(卷积层),torch.nn.Linear()(全联接层),torch.nn.MaxPool2d()(池化层)等函数的用法,同时详细了解了卷积层和池化层的相关计算包括卷积层的整体运算过程,输出shape和运算量,池化层的输出shape。对于一般的CNN网络来说,都是由特征提取网络和分类网络构成,其中特征提取网络用于提取图片的特征,分类网络用于将图片进行分类。测试函数和训练函数大致相同,但是由于不进行梯度下降对网络权重进行更新,所以不需要传入优化器。
2024-07-26 14:24:57
71
转载 第T1周:实现mnist手写数字识别
对于一般的CNN网络,都是由特征提取网络和分类网络构成,其中特征提取网络用于提取图片的特征,分类网络用于将图片进行分类。nn.Liner为全连接层,可以起到特征提取器的作用,最后一层的全连接层也可以认为是输出层,传入参数为输入特征数字。函数会遍历模型的所有参数,通过内置方法截断反向传播的梯度流,再将每个参数的提督设置为0,即上一次的梯度记录被清空。nn.Conv2d为卷积层,用于提取图片的特征,传入参数为输入channel,输出channel,池化核大小。二、构建简单的CNN网络。
2024-07-21 22:11:16
115
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅