进料清洗 · 特征提取 · 分类决策 — 代码片段静态展示
逻辑:先剔除次品,再全量打乱,防范次序偏差。
1# 1. [选] 靶向剔除:仅检测两列,存在空值即丢弃整行
2data = data.dropna(subset=["text", "label"])
3
4# 2. [乱] 全量洗牌:100%数据重排,42号算法种子确保每次打乱顺序绝对一致
5data = data.sample(frac=1, random_state=42)
逻辑:立体扫描提取特征,过滤无效信号,压缩数据尺寸。
1# 3. [卷] 3通道(RGB)输入,派16个探测器进行 3x3 扫描;外围补1圈0保尺寸
2self.conv1 = nn.Conv2d(in_channel=3, out_channel=16, kernel_size=3, padding=1)
3
4# 4. [缩] 2x2 窗口扫描,步长2,保留区域最大值,图像长宽各缩减50%
5self.pool = nn.MaxPool2d(kernel_size=2, stride=2)
6
7# 5. [滤+缩 执行链] 先卷(conv1) -> 再滤(relu:负数归零) -> 后缩(pool:减半)
8x = self.pool(F.relu(self.conv1(x)))
逻辑:立体压平为一维,逐层提炼抽象特征,随机断路防依赖,最终计算概率。
1# 6. [展] 降维压平:将三维立体特征图展开为一维向量,衔接全连接层
2Flatten(input_shape=(img_height, img_width, 3)),
3
4# 7. [减+断] 第一轮提炼:压缩至256节点 -> 随机切断50%通路(防过拟合)
5Dense(256, activation='relu'),
6Dropout(0.5),
7
8# 8. [减+断] 第二轮提炼:继续压缩至128节点 -> 再次切断50%通路
9Dense(128, activation='relu'),
10Dropout(0.5),
11
12# 9. [减] 第三轮提炼:极致压缩至64个核心特征节点
13Dense(64, activation='relu'),
14
15# 10.[判] 终极裁判:输出节点=分类数,softmax将结果转换为总和100%的概率分布
16Dense(num_classes, activation='softmax')