掌握CNN、RNN及模型部署是Keras深度学习进阶核心:CNN需合理设计感受野与注意力,RNN优选GRU建模时序,部署宜用SavedModel格式结合Flask或TFLite。

掌握 CNN 和 RNN 是用 Keras 做深度学习进阶的关键,而模型部署则是让模型真正落地的最后一步。下面从实战角度讲清三块核心内容:CNN 如何处理图像特征、RNN(含 LSTM/GRU)如何建模时序数据、以及训练好的模型怎么转成可调用服务。
CNN 图像特征提取:别只堆 Conv2D 层
CNN 的核心不是层数多,而是感受野、通道注意力和下采样节奏是否合理。Keras 中建议用 Functional API 搭建带残差连接或注意力模块(如 SE Block)的结构,比 Sequential 更灵活。
- 输入尺寸统一为 (224, 224, 3) 或 (299, 299, 3),适配主流预训练主干(如 ResNet50、EfficientNetB0)
- 最后一层全连接前加 GlobalAveragePooling2D,比 Flatten 更鲁棒,减少过拟合
- 用 ImageDataGenerator 做在线增强时,brightness_range、rotation_range 控制在合理范围(如 rotation_range=20),避免失真样本干扰训练
RNN 时序建模:LSTM 不是万能,GRU 更快更省显存
对股票价格、传感器信号、文本序列等任务,RNN 类模型仍不可替代。但要注意:原始 RNN 易梯度消失,LSTM 参数多、推理慢,GRU 在多数场景下是更优平衡点。
- 输入 shape 应为 (batch_size, timesteps, features),timesteps 建议固定(用 pad_sequences 补齐)
- 单层 GRU 后接 Dropout(0.3) + Dense,比多层 RNN 更稳定;若需长期依赖,可叠加两层,第二层 return_sequences=False
- 时间步太长(>1000)时,改用 Transformer 编码器(Keras 3+ 支持 tf.keras.layers.MultiHeadAttention)更合适
Keras 模型部署:从 h5 到可调用 API
训练完的 model.h5 只是中间产物,生产环境需要轻量、跨平台、低延迟的部署方式。
立即学习“Python免费学习笔记(深入)”;
- 导出为 SavedModel 格式:red">model.save("my_model", save_format="tf"),比 .h5 更兼容 TensorFlow Serving
- 用 TensorFlow Lite 转换做移动端部署:TFLiteConverter.from_saved_model("my_model").convert()
- 快速验证接口:用 Flask 封装 predict 函数,接收 JSON 输入,输出分类结果或回归值;注意加载模型放全局变量,避免每次请求重复加载










