- 博客(24)
- 收藏
- 关注
原创 DenseNet算法 实现乳腺癌识别
最后用 torch.cat([x, new_feature], dim=1) 实现输入与新输出的通道拼接(DenseNet 核心特性:密集连接)。使用自定义的 DenseNet 类构建模型,其中 block_config=(6,12,24,16) 是 DenseNet-121 的典型结构。打印了数据的结构:X 是 [batch_size, 通道数, 高, 宽](即 [32, 3, 224, 224]),y 是标签。遍历每一个 batch,执行 前向传播,计算损失,反向传播,参数更新;
2025-06-07 11:50:11
941
原创 第J2周:ResNet50V2算法实战与解析
sparse_categorical_crossentropy:因为图像标签是整数编码,需要使用sparse 版本。img_size=(224, 224):图像输入大小匹配 ResNet50 的输入要求。设置为 trainable = False,表示只训练添加的层,主干网络权重保持不变。Dense(3, activation=‘softmax’):输出3个类别的概率。validation_split=0.2:80%训练,20%验证。cache():将数据缓存到内存或磁盘,加快读取速度。
2025-05-30 13:59:44
331
原创 第P10周:Pytorch实现车牌识别
用于将 [batch_size, 483] reshape 为 [batch_size, 7, 69],每张图预测7个字符,每个字符是69类分类问题。使用 batch_size=16,对训练和测试集分别构造了 DataLoader。输入图像尺寸为 (3, 224, 224),使用 torchsummary 可视化每一层的输出 shape 和参数数目。获取 data_dir 中所有文件(或文件夹),生成的是一个 Path 对象列表,储存在 data_paths 中。transform: 数据增强操作。
2025-05-21 17:51:19
1427
原创 第T11周:优化器对比实验
image_batch.shape = (16, 336, 336, 3):表示 batch size 为 16,每张图片为 336x336,RGB 3通道。获取数据集中所有类别的标签名。images 是一个形状为 (16, 336, 336, 3) 的张量,labels 是 (16,) 的标签数组。tf.config.list_physical_devices(“GPU”): 检查是否有可用的 GPU。labels_batch.shape = (16,):每张图像对应一个整数标签(共 17 类)。
2025-05-08 18:24:09
787
原创 第T10周:数据增强
val_ds.take(n):取前 n 个 batch 作为 test_ds;Dense(128),全连接隐藏层,128 个神经元,ReLU 激活;Dense(len(class_names)), 输出层,单元个数 = 类别数,未加激活函数。每次调用 aug_img() 函数,使用tf.image.stateless_random_contrast() 添加随机对比度。augmented_image 的 shape 是 [1, h, w, c],取出 [0] 表示取出图像本身;迭代取出其中的图像和标签。
2025-05-01 12:21:43
973
原创 第T9周:猫狗识别2
如果系统检测到 GPU,代码会选择第一块 GPU(gpu0 = gpus[0]),然后调用tf.config.experimental.set_memory_growth(gpu0, True) 来启用 GPU。多分类任务的 VGG16 卷积神经网络,保留了 VGG16 的经典结构(13 个卷积层 + 3 个全连接层),输出为 nb_classes 类的 softmax 结果。训练和验证的损失曲线也几乎重合,验证损失略低于训练损失,数据未被过拟合,验证集代表性良好,模型有很好的泛化能力。
2025-04-22 19:03:30
789
原创 第T8周:猫狗识别
如果系统检测到 GPU,代码会选择第一块 GPU(gpu0 = gpus[0]),然后调用tf.config.experimental.set_memory_growth(gpu0, True) 来启用 GPU。遍历 train_ds,对每一个 batch 使用 model.train_on_batch() 进行训练。多分类任务的 VGG16 卷积神经网络,保留了 VGG16 的经典结构(13 个卷积层 + 3 个全连接层),输出为 nb_classes 类的 softmax 结果。图片有 3 个通道。
2025-04-15 17:24:21
653
原创 第T7周:咖啡豆识别
如果系统检测到 GPU,代码会选择第一块 GPU(gpu0 = gpus[0]),然后调用tf.config.experimental.set_memory_growth(gpu0, True) 来启用 GPU。准确率从一开始就逐渐上升,大约在第 5-6个 epoch 后,训练准确率超过 95%,验证准确率也接近甚至超过,后续几轮验证准确率非常高,接近 0.95-0.98。图片有 3 个通道。输入图像的 shape 是 (img_width, img_height, 3),支持 RGB 彩图。
2025-04-10 18:00:00
1594
原创 第T6周:好莱坞明星识别
Dense(128, activation=‘relu’),128 个神经元的全连接层,提取全局特征。训练损失持续下降,表示模型拟合训练数据越来越好。Conv2D(16, (3, 3), activation=‘relu’)是一个 卷积层,使用 16个 3x3 的卷积核提取特征。onv2D(64, (3, 3), activation=‘relu’),提取更高层次的特征,增加模型的表达能力。Conv2D(32, (3, 3), activation=‘relu’),第二个卷积层,增加特征提取能力。
2025-04-03 18:00:00
573
原创 第T5周:运动鞋品牌识别
这个批次的标签有 32 个值,对应 32 张图片,是一维数组,每个值是 0 或 1,对应类别[‘adidas’, ‘nike’]。Conv2D(16, (3, 3), activation=‘relu’)是一个 卷积层,使用 16个 3x3 的卷积核提取特征。图片有 3 个通道。onv2D(64, (3, 3), activation=‘relu’),提取更高层次的特征,增加模型的表达能力。Conv2D(32, (3, 3), activation=‘relu’),第二个卷积层,增加特征提取能力。
2025-03-25 11:25:57
763
原创 第T4周:猴痘病识别
这个批次的标签有 32 个值,对应 32 张图片,是一维数组,每个值是 0 或 1,对应类别[‘Monkeypox’, ‘Others’]。Conv2D(16, (3, 3), activation=‘relu’)是一个 卷积层,使用 16 个 3x3 的卷积核提取特征。onv2D(64, (3, 3), activation=‘relu’),提取更高层次的特征,增加模型的表达能力。Conv2D(32, (3, 3), activation=‘relu’),第二个卷积层,增加特征提取能力。
2025-03-20 15:41:15
668
原创 第T3周:天气识别
Dense(128, activation=‘relu’),使用 128 个神经元,学习高维特征。Dropout(0.3) 让 30% 的神经元随机失活,防止过拟合,提高模型泛化能力。训练准确率从 44.3% 提高到 94.3%,说明模型正在学习特征,拟合训练数据。验证准确率先上升后波动,在 第 5 轮左右达到高点,然后有下降。验证损失先下降再波动,这表明前期模型在学习,验证损失下降。使用 2×2 平均池化,降低特征图尺寸,保留重要特征。使用 Adam 优化器,更新模型权重,最小化损失函数。
2025-03-13 20:39:05
607
原创 第P9周:YOLOv5-Backbone模块实现
YOLOv5 的 Backbone(主干网络),主要用于 特征提取,并且添加了一个分类头(classifier),用于将提取到的特征映射到 4 类目标分类任务。构建基本的卷积块,由 卷积(Conv)+ BN(BatchNorm)+ 激活函数(SiLU) 组成。经过 Flatten 后,添加 分类头(全连接层),进行 4 类分类。k 是卷积核的大小,如果 p 没有指定,则自动填充 k // 2,确保卷积后尺寸保持合理。测试准确率在 95%左右,虽然稍低于训练准确率,但仍然较高,说明模型泛化能力较好。
2025-02-20 19:51:24
416
原创 第P7周:马铃薯病害识别(VGG-16复现)
unsqueeze(0):在第 0 维增加一个 batch 维度,因为模型的输入需要形状为 [batch_size, channels, height, width]。将布尔值转换为浮点数(True -> 1.0, False -> 0.0),然后累加,得到当前批次中预测正确的样本数。pred 的维度为 (batch_size, num_classes),每行表示对各类别的预测概率。它返回一个包含多个处理步骤的组合。test_loss 和 test_acc:记录每个 epoch 的测试损失和准确率。
2025-01-23 17:40:27
989
原创 第P6周:VGG-16算法-Pytorch实现人脸识别
验证损失的下降趋势较为平滑,并且逐渐接近训练损失。这表明模型整体表现较好。基于PyTorch框架,加载了一个预训练的VGG16模型。冻结所有的参数,防止在训练时这些参数发生更新。
2025-01-17 19:07:45
1059
原创 第P5周:Pytorch实现运动鞋识别
在20+轮后,准确率趋于稳定,但与训练集的准确率之间有一定的差距(约10%左右)。测试集损失在初期快速下降,然而在训练中后期(15+轮以后),测试损失下降幅度减缓,并出现轻微的波动。这是一个2D卷积层,接收3通道,输出12个通道,卷积核大小为5×5,且没有填充(padding=0)。一个2D最大池化层,将输入特征图的尺寸缩小为原来的1/2,减少计算量,同时提取主要特征。nn.Dropout(0.2),随机丢弃20%的神经元,防止过拟合,提高模型的泛化能力。
2025-01-17 19:04:33
900
原创 第P4周:猴痘病识别
损失值:测试损失(Test_loss)在前期波动较大(例如第 3 轮),随后整体下降,从 0.625 减少到 0.437,表明模型在测试数据上的预测逐渐更加稳定和准确。说明模型在测试数据上逐渐达到较好的性能。训练和测试的准确率(Train_acc 和 Test_acc)以及损失值(Train_loss 和 Test_loss)随训练轮次(Epoch)的变化。准确率:训练准确率(Train_acc)逐渐上升,从第 1 轮的 62.5% 提升到第 20 轮的 90.8%,表明模型在训练数据上的性能在不断提高。
2025-01-04 14:10:31
899
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅