
TensorFlow Model Garden research 目录深度解析研究模型目录的全景导航与核心模块源码导读【免费下载链接】modelsModels and examples built with TensorFlow项目地址: https://gitcode.com/GitHub_Trending/mode/models本篇技术指南以 research/README.md 为主骨架系统梳理 TensorFlow Model Garden 中 research 目录的定位、两大分类建模库与研究模型实现、覆盖计算机视觉/NLP/音频/强化学习等方向的 18 个研究模型清单并结合各子目录的 README 与源码带你深入 object_detection、slim、autoaugment、deeplab、deep_speech、audioset 等核心模块的架构演进、训练命令与版本维护现状帮助你在复用这些论文级实现时做出准确的技术选型。1. research 目录在 Model Garden 中的定位TensorFlow Model Garden 的根目录 README.md 将整个仓库划分为四大板块目录定位摘自根 READMEofficial使用最新 TensorFlow 2 高层 API 的 SOTA 模型示例由 TensorFlow 官方维护并随 TF2 API 更新research研究人员用 TensorFlow 1 或 2 实现的研究模型集合由各研究者自行维护community基于 TensorFlow 2 的社区模型仓库精选列表orbit用于编写自定义 TF2 训练循环的轻量库无缝集成tf.distribute支持 CPU/GPU/TPUresearch/README.md 开篇即说明了该目录的边界与治理方式该目录收录的是已发表研究论文的代码实现与预训练模型各研究模型由其各自作者maintainer独立维护而非由 Model Garden 团队统一维护——这意味着各子模块的版本要求TF1/TF2、维护活跃度差异很大复用前务必查看对应子目录 README 中的版本徽章与弃用声明。从目录结构看research 下共包含 20 个子模块两个建模库object_detection、slim和 18 个研究模型实现另有少量未列入 README 索引的历史目录如cognitive_planning、seq_flow_lite、video 相关实验等从仓库结构看它们属于早期实验代码。2. 目录两大分类建模库 vs 研究模型实现research/README.md 将全部条目分为两层这一划分方式决定了各模块的工程成熟度2.1 Modeling Libraries and Models建模库目录名称说明维护者research/object_detectionTensorFlow Object Detection API构建、训练、部署目标检测模型的框架附带在 COCO、Kitti、Open Images、AVA v2.1、iNaturalist 等数据集上预训练的检测模型集合jch1, tombstone, pkulzcresearch/slimTensorFlow-Slim 图像分类模型库定义、训练、评估图像分类模型的轻量级高层 API覆盖 Inception V1–V4、Inception-ResNet-v2、ResNet V1/V2、VGG 16/19、MobileNet V1/V2/V3、NASNet-A_Mobile/Large、PNASNet-5_Large/Mobile 等骨干网络sguada, marksandler22.2 Models and Implementations按领域分类的研究模型计算机视觉Computer Vision目录对应论文发表会议维护者attention_ocrAttention-based Extraction of Structured Information from Street View ImageryICDAR 2017xavigibertautoaugmentAutoAugmentWide Residual NetworksShake-Shake regularizationShakeDropCVPR 2019 / BMVC 2016 / ICLR 2017 / ICLR 2018barretzophdeeplabDeepLabv1–v3 系列DeepLabv3 (Encoder-Decoder with Atrous Separable Convolution)ICLR 2015 / TPAMI 2017 / ECCV 2018aquariusjay, yknzhudelfDELF注意力深度局部特征Detect-to-RetrieveDELG统一局部与全局特征GLDv2 基准数据集ICCV 2017 / CVPR 2019 / CVPR 2020andrefaraujolstm_object_detectionMobile Video Object Detection with Temporally-Aware Feature MapsCVPR 2018yinxiaoli, yongzhe2160, lzyuanmarcoMARCO使用深度卷积网络分类结晶实验结果—vincentvanhouckevid2depthUnsupervised Learning of Depth and Ego-Motion from Monocular Video Using 3D Geometric ConstraintsCVPR 2018rezama自然语言处理NLP目录对应论文会议维护者adversarial_textAdversarial Training Methods for Semi-Supervised Text ClassificationSemi-supervised Sequence LearningICLR 2017 / NIPS 2015rsepassi, a-daicvt_textSemi-Supervised Sequence Modeling with Cross-View TrainingEMNLP 2018clarkkev, lmthang音频与语音Audio and Speech目录对应论文/数据集会议维护者audiosetAudioSet200 万条 10 秒人类标注 YouTube 音轨600 类别本体CNN Architectures for Large-Scale Audio ClassificationICASSP 2017plakal, dpwedeep_speechDeep Speech 2ICLR 2016yhliang2018强化学习Reinforcement Learning目录对应论文会议维护者efficient-hrlData-Efficient Hierarchical Reinforcement LearningNear-Optimal Representation Learning for HRLNIPS 2018 / ICLR 2019ofirnachumpcl_rlImproving Policy Gradient by Exploring Under-appreciated RewardsBridging the Gap Between Value and Policy Based RLTrust-PCLICLR 2017 / NIPS 2017 / ICLR 2018ofirnachum其他Others目录对应论文会议维护者lfadsLFADS: Latent Factor Analysis via Dynamical Systems—jazcollins, sussillorebarREBAR: Low-variance, unbiased gradient estimates for discrete latent variable modelsNIPS 2017gjtucker此外research/README.md 明确指出基于 TensorFlow 1 的旧模型与实现已迁移至 Archive 分支主分支仅保留上表所列模型。这是一个重要的检索事实——如果你要找 TF1 时代的其他研究代码如早期 seq2seq 实验需要去 archive 分支查找而不是在主分支里空找。3. 核心模块深挖从 README 到源码下面选取 catalog 中最具代表性的六个模块结合其子目录 README 与源码文件展开实现层面的说明。3.1 object_detectionObject Detection APIresearch/object_detection/README.md 说明该框架构建、训练、部署目标检测模型并同时支持 TF1 与 TF2多数模块双兼容不兼容时提供双版本。TF2 版本的核心特性包括面向 eager 模式设计的 train/eval/export 新二进制一套 TF2 兼容Keras 化模型SSD-MobileNet、RetinaNet、Faster R-CNN、Mask R-CNN 的迁移以及仅 TF2 维护的新架构 CenterNetanchor-free基于 Objects as Points 论文与 EfficientDetNAS 发现的 SOTA 模型家族提供 Distribution Strategies支持同步多 GPU 与 TPU 分布式训练TF1/TF2 两套 Model Zoo 的权重互不兼容分别见 g3doc 下的 TF2 Zoo 与 TF1 Zoo。从源码结构看双版本入口清晰分离TF1 走 model_main.py model_lib.pyTF2 走 model_main_tf2.py model_lib_v2.py配置体系由 configs/ 下的 41 个.config原型配置与 protos/ 的 34 个 proto 定义支撑模型定义位于 models/99 个 Python 文件覆盖 ssd、retinanet、faster_rcnn、mask_rcnn、centernet、efficientdet 等。近期发布见 README Whats New包括面向 Edge TPU 的 SpaghettiNet示例配置 ssd_spaghettinet_edgetpu_320x320_coco17_sync_4x4.config、基于 CenterNet 的 DeepMAC 实例分割架构以及 TF2 模型转 TFLite 的移动端推理路径。维护状态提醒该 README 顶部有明确的 Deprecation 声明——Object Detection API 不再跟进外部依赖pip/apt的新版本兼容性后续变更仅用于内部维护官方建议寻找活跃维护的检测/分割代码库的用户转向 official/visionTF-Vision或 scenic。若你的目标是长期维护的检测项目这一信息比 API 本身更关键。3.2 slimTF-Slim 图像分类模型库research/slim/README.md 是 research 目录下信息密度最高的文档之一完整覆盖了数据准备 → 预训练权重 → 从头训练 → 微调 → 评估 → 导出推理图的全流程以下要点均直接继承自该文档。支持的数据集含各数据集规模数据集训练集测试集类别数备注Flowers250025005多种尺寸FlickrCifar1060k10k1032x32 彩色MNIST60k10k1028x28 灰度ImageNet1.2M50k1000多种尺寸VisualWakeWords82783405042多种尺寸MS COCO数据准备download_and_convert_data.py将原始数据下载并转换为 TFRecord每条记录是一个 TF-Example 协议缓冲例如 FlowersDATA_DIR/tmp/data/flowers python download_and_convert_data.py \ --dataset_nameflowers \ --dataset_dir${DATA_DIR}完成后生成 5 片 train 分片、5 片 validation 分片及labels.txt整数标签到类名的映射。脚本对应文件为 download_and_convert_data.py数据集描述符dataset descriptor在 datasets/ 下包含 flowers、cifar10、mnist、imagenet、visualwakewords 五个模块。预训练模型表ILSVRC-2012-CLS 上训练单裁剪评估摘录模型代码文件Top-1Top-5Inception V3nets/inception_v3.py78.093.9Inception-ResNet-v2nets/inception_resnet_v2.py80.495.3ResNet V1 50nets/resnet_v1.py75.292.2ResNet V2 152nets/resnet_v2.py77.894.1VGG 16nets/vgg.py71.589.8MobileNet_v1_1.0_224nets/mobilenet_v1.py70.989.9NASNet-A_Large_331nets/nasnet/nasnet.py82.796.2PNASNet-5_Large_331nets/nasnet/pnasnet.py82.996.2其中 VGG 与 ResNet V1 权重由 Caffe 格式转换而来Inception 与 ResNet V2 权重由内部训练得到ResNet V2 需使用--preprocessing_name inception --eval_image_size 299。从头训练与微调入口 train_image_classifier.py# 在 ImageNet 上从头训练 Inception V3 DATASET_DIR/tmp/imagenet TRAIN_DIR/tmp/train_logs python train_image_classifier.py \ --train_dir${TRAIN_DIR} \ --dataset_nameimagenet \ --dataset_split_nametrain \ --dataset_dir${DATASET_DIR} \ --model_nameinception_v3微调时三个关键 flag 的语义值得注意--checkpoint_path指定预训练检查点--checkpoint_exclude_scopes禁止恢复 logits 层新任务类别数不同时如 ImageNet 的[2048x1001]与 Flowers 的[2048x5]维度不匹配无法恢复--trainable_scopes指定只训练哪些层、其余冻结。注意--checkpoint_path与--checkpoint_exclude_scopes仅在 global step 0模型初始化时生效训练中途重启会从${TRAIN_DIR}的新检查点恢复而非原始预训练检查点。官方微调示例脚本为 scripts/finetune_inception_v3_on_flowers.shpython train_image_classifier.py \ --train_dir${TRAIN_DIR} \ --dataset_dir${DATASET_DIR} \ --dataset_nameflowers \ --dataset_split_nametrain \ --model_nameinception_v3 \ --checkpoint_path${CHECKPOINT_PATH} \ --checkpoint_exclude_scopesInceptionV3/Logits,InceptionV3/AuxLogits \ --trainable_scopesInceptionV3/Logits,InceptionV3/AuxLogits评估与导出eval_image_classifier.py负责单检查点评估见 eval_image_classifier.pyexport_inference_graph.py导出 GraphDef再配合freeze_graph得到内联常量的冻结图最终可用 C 的label_image工具推理。多卡训练通过 deployment/model_deploy.py 实现同步/异步两种模式。该库还有交互式教程 slim_walkthrough.ipynb。需要强调的是slim 是 TF1 时代的代码库示例代码使用tensorflow.compat.v1在新环境中运行应使用 TF1 兼容模式或 TF2 的tf.compat.v1。3.3 autoaugmentAutoAugment 与正则化骨干网络research/autoaugment/README.md 明确标注TensorFlow 1.x onlyTF2 Not Supported且要求使用 python2 运行。该模块复刻了 AutoAugment 论文在 CIFAR-10/100 上表 1、表 2 的结果提供四种骨干网络的复现实现CIFAR-10 模型学习率权重衰减Epoch 数Batch SizeWide-ResNet-28-100.15e-4200128Shake-Shake (26 2x32d)0.011e-31800128Shake-Shake (26 2x96d)0.011e-31800128PyramidNet ShakeDrop0.055e-5180064训练命令以 WRN 为例python train_cifar.py --model_namewrn \ --checkpoint_dir/tmp/training \ --data_path/tmp/data \ --datasetcifar10 \ --use_cpu0从源码结构看各组件分工明确train_cifar.py 为训练入口wrn.py 实现 Wide-ResNetpolicies.py 定义自动增广策略shake_shake.py 与 shake_drop.py 分别实现两种正则化方法augmentation_transforms.py 提供基础变换算子。3.4 deeplab语义分割的演进主线research/deeplab/README.md 按代际梳理了 DeepLab v1–v3 的技术演进是理解空洞卷积如何一步步解决分割分辨率问题的最佳文档DeepLabv1用空洞卷积显式控制 DCNN 内部特征响应的计算分辨率DeepLabv2引入空洞空间金字塔池化ASPP以多种采样率与有效感受野多尺度分割DeepLabv3ASPP 增加图像级特征捕获长程信息并引入 batch normalization——特别地以 output stride16 训练、在评估时切到 output stride8兼顾 BN 训练稳定性与精度DeepLabv3增加轻量解码器模块重点细化物体边界编码器-解码器结构中可用空洞卷积任意调节编码器特征分辨率在精度与运行时之间权衡。README 同时提示像素级密集标注任务的统一 TF2 代码库已迁移至 deeplab2 仓库。本仓库中该模块的核心入口包括 model.py模型定义含 model_test.py 单测、train.py、eval.py、vis.py、export_model.py 与 convert_to_tflite.py核心实现位于 core/数据集脚本在 datasets/本地测试脚本如 local_test_mobilenetv2.sh可直接参考。3.5 deep_speech端到端语音识别已停止维护research/deep_speech/README.md 标注No Maintenance Intended兼容 TensorFlow 1.15.3 与 2.3。DeepSpeech2 是端到端 ASR 模型结构为 2 层卷积 5 层双向 RNN 1 层全连接输入为线性谱特征损失函数采用 CTC。数据流水线# 1. 设置 PYTHONPATH 后安装依赖 pip3 install -r requirements.txt # 2. 下载并预处理 LibriSpeechtrain-clean-100 360约 130k 条验证集 dev-clean 2.7k 行 python data/download.py # 默认 --data_dir/tmp/librispeech_data # 3. 训练与评估 python deep_speech.py从源码结构看data/download.py 将数据预处理为 wav_filename、wav_filesize、transcript 三列 CSVdata/dataset.py 解析 CSV 构建tf.data.Dataset除首 epoch 外每个 epoch 内按 batch 级洗牌启用 sortagrad 时模型定义在 deep_speech_model.py解码逻辑在 decoder.py另有 run_deep_speech.sh 一键脚本。由于该模块已声明不再维护新项目建议仅将其作为架构参考而非生产基座。3.6 audioset大规模音频事件分类research/audioset/README.md 说明该仓库服务于 AudioSet 数据集200 万 条 10 秒 YouTube 音轨600 音频事件类别本体并附 ICASSP 2017 的两篇论文AudioSet 数据集本身与大规模音频分类 CNN 架构。从目录结构看该模块下包含两套子实现vggish/VGGish 模型11 个文件与 yamnet/YAMNet 模型含 yamnet.ipynb 演示 notebook 与 csv 数据。该模块同样标注 TF1.x only。3.7 其他模块速览adversarial_textREADMETF 1.3半监督文本分类的对抗训练完整流水线文档给出了 IMDB 情感分类的四步端到端命令——下载原始数据、gen_vocab.py生成词表、gen_data.py生成 TFRecords、pretrain.py预训练语言模型关键超参vocab_size87007、embedding_dims256、rnn_cell_size1024、max_steps100000等、最后train_classifier.py训练分类器并通过pretrained_model_dir加载预训练 embedding 与 LSTM 变量。对应源码含 pretrain.py、train_classifier.py、adversarial_losses.py、graphs.py附 graphs_test.py 单测。cvt_textREADME基于 TF 1.10.1 Numpy 1.14.5跨视角训练Cross-View Training半监督序列建模支持序列标注与依存句法分析。数据经 fetch_data.sh 下载 GloVe 向量、1B 无标注语料与 CoNLL-2000 chunking 数据集再运行 preprocessing.py训练命令python cvt.py --modetrain --model_namechunking_model每 1000 步自动 checkpoint支持断点续训文档给出的参考指标chunking 数据训练 200k 步后 dev 集至少 97.1 F1、test 集 96.6 F1。delfsetup.py、DETECTION.md、EXTRACTION_MATCHING.md、INSTALL_INSTRUCTIONS.mdDELf/DELg 大规模图像检索配套 GLDv2 地标数据集基准子实现位于 delf/delf/。lstm_object_detection基于时序感知特征图的移动视频目标检测含独立 tflite 导出链路export_tflite_lstd_graph.py。reinforcement learning 模块efficient-hrl 提供 train.py、eval.py 入口与 configs/ 下的 3 个 gin 配置pcl_rl 覆盖 PCL/Trust-PCL 策略梯度方法含 trainer.py、policy.py、replay_buffer.py 等 14 个组件文件。4. 版本兼容性与维护状态复用前必查综合各子目录 README 的徽章与声明research 目录内模块的 TF 版本要求呈明显分裂模块TensorFlow 要求维护状态object_detectionTF 2.2 / TF 1.15 双支持不再跟进外部依赖新版本推荐转向 official/visionslimTF1 代码库tf.compat.v1风格由原维护者维护autoaugmentTF 1.x only需 python2TF2 不支持adversarial_textTF 1.3TF2 不支持deep_speechTF 1.15.3 / 2.3明确声明 No Maintenance IntendedaudiosetTF 1.x onlyTF2 不支持这一事实对技术选型有直接含义research 目录是论文复现与架构研究的价值仓库而非长期生产基座。根 README.md 对 official 与 research 的分工表述official 由 TensorFlow 官方维护并跟进 TF2 最新 APIresearch 由研究者自行维护正是这一边界的官方定义。5. 贡献与协作约定research/README.md 的 Contributions 章节与根 README 一致贡献前需阅读 Model Garden 的贡献指南Wiki 的 How-to-contribute 页面。结合各子目录的实践可以看到 research 目录的协作模式每个模块以README.md含版本徽章、论文引用、运行命令 训练/评估入口脚本 _test.py单测文件 可选requirements.txt的标准化结构组织例如 deep_speech/requirements.txt 独立声明依赖、delf/INSTALL_INSTRUCTIONS.md 单独给出安装说明模块间互不耦合。6. 小结research/README.md 本质是一份研究模型目录索引两层分类object_detection、slim 两个建模库 按 CV/NLP/音频/RL/其他划分的 16 个论文复现模块、18 个条目均附论文出处与发表会议、维护者清单并指向 Archive 分支存放 TF1 旧模型。复用价值最高的模块是slim完整的数据-训练-微调-评估-导出链路文档与object_detectionTF1/TF2 双栈检测框架但前者属于 TF1 代码库、后者已声明停止跟进新依赖选型时须对照第 4 节的版本表。每个子目录的 README 才是该模块的事实源autoaugment 的超参表、adversarial_text 的四步命令、deep_speech 的数据流水线都只在其子 README 中给出细节主 README 仅提供目录与归属信息。建议在深入任何模块前先读其子目录 README 的徽章TensorFlow 版本 / No Maintenance Intended再核对其训练入口源码与单测文件即可获得与文档一致的、可验证的实现细节。【免费下载链接】modelsModels and examples built with TensorFlow项目地址: https://gitcode.com/GitHub_Trending/mode/models创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考