FiftyOne Model Zoo API 完整指南:Python 与 CLI 双通道管理预训练模型

发布时间:2026/9/16 13:28:00
FiftyOne Model Zoo API 完整指南:Python 与 CLI 双通道管理预训练模型
FiftyOne Model Zoo API 完整指南Python 与 CLI 双通道管理预训练模型【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone导读FiftyOne Model Zoo 是 FiftyOne 内置的预训练模型中心提供从经典的 AlexNet、ResNet 到 Faster R-CNN、YOLO 等数十个可直接使用的视觉模型涵盖图像分类、目标检测、语义分割与特征嵌入等任务。本文以 docs/source/model_zoo/api.rst 为骨架完整讲解其 Python 库fiftyone.zoo与 CLIfiftyone zoo models两套操作通道覆盖模型列举、信息查询、下载、依赖管理、加载推理、嵌入生成、目录定制、删除以及向本地动物园添加自定义模型等全生命周期操作。读完本文你将能够熟练地在自己的数据集上调用这些预训练模型完成推理与特征提取并通过 manifest JSON 扩展自己的私有模型库。一、Model Zoo 概览Python 库与 CLI 双通道Model Zoo 是 FiftyOne 中与 Dataset Zoo 并列的模型资源体系。你可以通过两种方式与之交互Python 库通过fiftyone.zoo包通常导入为foz访问提供list_zoo_models()、load_zoo_model()、download_zoo_model()等面向编程的完整 APICLI通过fiftyone zoo models命令组提供等价的便捷工具适合脚本化与终端操作。从源码看CLI 的每个子命令最终都会调用fiftyone/zoo/models/__init__.py中的同名函数。例如ModelZooListCommand在 fiftyone/core/cli.py 中直接调用fozm._list_zoo_models()与fozm.list_downloaded_zoo_models()来渲染表格。因此本文所有 Python 示例都可以在 CLI 中找到对应实现两套通道底层逻辑完全一致。Model Zoo 的内置模型清单存储在三个 manifest 文件中按来源框架划分fiftyone/zoo/models/manifest-torch.jsonPyTorch/Torchvision 系模型fiftyone/zoo/models/manifest-tf.jsonTensorFlow 系模型fiftyone/zoo/models/manifest-hosted.json由 FiftyOne 托管的模型。_build_zoo_models_manifest()见 fiftyone/zoo/models/init.py会通过通配符manifest-*.json自动加载这些内置清单并合并你在配置中通过model_zoo_manifest_paths指定的自定义清单。每当 FiftyOne 升级新增模型会自动出现在你的本地列表中。二、列出可用模型Listing zoo modelsPythonlist_zoo_models()调用 list_zoo_models() 即可获取当前环境中所有可用模型的名称列表包括你注册过的远程来源中的模型import fiftyone.zoo as foz available_models foz.list_zoo_models() print(available_models)输出示例[alexnet-imagenet-torch, deeplabv3-cityscapes-tf, deeplabv3-mnv2-cityscapes-tf, ... wide-resnet50-2-imagenet-torch, yolo-v2-coco-tf1 ]该函数还支持三个可选筛选参数源码中均有实现tags只返回带有指定标签或标签列表的模型例如foz.list_zoo_models(tagstorch)source只返回某个远程来源提供的模型license只返回在指定许可证或许可证列表下分发的模型可通过fiftyone zoo models list查看可用许可证。从源码实现fiftyone/zoo/models/init.py可见tags筛选要求模型的标签集合是所给标签的超集tags.issubset(model.tags or [])license筛选则按逗号分隔的许可证字符串做交集匹配。Pythonlist_downloaded_zoo_models()要查看本地已下载了哪些模型使用 list_downloaded_zoo_models()import fiftyone as fo import fiftyone.zoo as foz downloaded_models foz.list_downloaded_zoo_models() fo.pprint(downloaded_models)输出示例dict 将模型名映射到(模型路径, ZooModel 对象)元组{ alexnet-imagenet-torch: ( /Users/Brian/fiftyone/__models__/alexnet-owt-4df8aa71.pth, fiftyone.zoo.models.ZooModel object at 0x122d2fa58, ), densenet121-imagenet-torch: ( /Users/Brian/fiftyone/__models__/densenet121-a639ec97.pth, fiftyone.zoo.models.ZooModel object at 0x122d608d0, ), ... }实现上该函数遍历 manifest 中的每个模型检查其是否位于fo.config.model_zoo_dir目录内model.is_in_dir(models_dir)并返回实际磁盘路径。CLIfiftyone zoo models listCLI 对应命令为fiftyone zoo models list输出一个表格其中已下载的模型会在downloaded列显示对勾✓model_path列显示其磁盘位置fiftyone zoo models list从 ModelZooListCommand 的参数定义看还支持以下筛选选项# 只显示模型名称 fiftyone zoo models list --names-only # 只显示已下载的模型 fiftyone zoo models list --downloaded-only # 只显示带有指定标签的模型 fiftyone zoo models list --tags tag # 只显示来自指定远程来源的模型 fiftyone zoo models list --source source # 只显示指定许可证下的模型 fiftyone zoo models list --license license表格的列依次为name、tags、license、remote、downloaded、model_path。源码中还对三类状态做了区分已下载✓、未托管下载?、未下载空。三、获取模型的详细信息Getting information about zoo modelsPythonget_zoo_model()每一个动物园模型在底层都是一个 ZooModel 子类实例封装了模型的描述、许可证、标签、包依赖、CPU/GPU 支持情况等信息。通过 get_zoo_model() 可以获取该对象import fiftyone.zoo as foz zoo_model foz.get_zoo_model(faster-rcnn-resnet50-fpn-coco-torch) print(***** Model description *****) print(zoo_model.description) print(\n***** License *****) print(zoo_model.license) print(\n***** Tags *****) print(zoo_model.tags) print(\n***** Requirements *****) print(zoo_model.requirements)输出示例***** Model description ***** Faster R-CNN model with ResNet-50 FPN backbone trained on COCO. Source: https://pytorch.org/docs/stable/torchvision/models.html ***** License ***** BSD 3-Clause ***** Tags ***** [detection, coco, torch] ***** Requirements ***** { packages: [ torch, torchvision ], cpu: { support: true }, gpu: { support: true } }ZooModel的完整字段见类定义 docstring还包括base_name、base_filename、author、version、url、source、size_bytes、date_added、manager远程存储位置描述与default_deployment_config_dict推荐的部署配置等。例如 manifest 中alexnet-imagenet-torch记录了 244418560 字节的模型体积、BSD 3-Clause 许可证、下载 URL以及TorchvisionImageModel的部署配置含image_mean/image_std归一化参数与embeddings_layer特征层指定见 fiftyone/zoo/models/manifest-torch.json。Pythonfind_zoo_model()当模型已下载时可用 find_zoo_model() 定位其在磁盘上的路径import fiftyone.zoo as foz model_path foz.find_zoo_model(faster-rcnn-resnet50-fpn-coco-torch)如果模型尚未下载该函数会抛出ValueError源码中显式检查model.is_model_downloaded(model_path)并抛出Model %s is not downloaded。CLIfiftyone zoo models info与findCLI 中对应的信息查看命令为fiftyone zoo models info faster-rcnn-resnet50-fpn-coco-torch输出包含完整的模型描述JSON与磁盘位置***** Model description ***** { base_name: faster-rcnn-resnet50-fpn-coco-torch, base_filename: fasterrcnn_resnet50_fpn_coco-258fb6c6.pth, author: Shaoqing Ren, et al., version: null, url: null, source: https://pytorch.org/vision/main/models.html, license: BSD 3-Clause, description: Faster R-CNN model from Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks https://arxiv.org/abs/1506.01497_ with ResNet-50 FPN backbone trained on COCO, size_bytes: 167502836, manager: { type: fiftyone.core.models.ModelManager, config: { url: https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth } }, default_deployment_config_dict: { type: fiftyone.zoo.models.torch.TorchvisionImageModel, config: { entrypoint_fcn: torchvision.models.detection.faster_rcnn.fasterrcnn_resnet50_fpn, entrypoint_args: { weights: FasterRCNN_ResNet50_FPN_Weights.DEFAULT }, output_processor_cls: fiftyone.utils.torch.DetectorOutputProcessor, labels_path: {{eta-resources}}/ms-coco-labels.txt, confidence_thresh: 0.3 } }, requirements: { packages: [ torch, torchvision ], cpu: { support: true }, gpu: { support: true } }, tags: [ detection, coco, torch, faster-rcnn, resnet ], date_added: 2020-12-11T13:45:51 } ***** Model location ***** /Users/Brian/fiftyone/__models__/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth其中default_deployment_config_dict值得注意它揭示了模型加载的底层链路——entrypoint_fcn指定 torchvision 的构造函数、output_processor_cls指定输出后处理这里是DetectorOutputProcessor、confidence_thresh给出默认置信度阈值 0.3。这正是load_zoo_model()加载模型时使用的部署配置。CLI 中定位磁盘路径使用fiftyone zoo models find name四、下载动物园模型Downloading zoo modelsPythondownload_zoo_model()使用 download_zoo_model() 从网络下载模型import fiftyone.zoo as foz model_path foz.download_zoo_model(faster-rcnn-resnet50-fpn-coco-torch)下载过程会输出进度条Downloading model from https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth... 100% |██████████████████████████████████| 1.2Gb/1.2Gb [4.7s elapsed, 0s remaining, 294.7Mb/s]该函数有两个可用的进阶参数源码均有实现overwrite默认为False模型已存在时不重复下载设为True可强制覆盖model_name当第一个参数传的是远程来源如 GitHub 仓库 URL时用于指定该来源中的具体模型。此外若要下载你有权限访问的私有 GitHub 仓库中的模型需要设置GITHUB_TOKEN环境变量提供个人访问令牌见函数 docstring。从源码看download_zoo_model()返回(model, model_path)元组若模型没有关联managerFiftyOne 不会托管其下载过程仅输出提示日志。CLIfiftyone zoo models downloadfiftyone zoo models download faster-rcnn-resnet50-fpn-coco-torch也支持从远程来源下载ModelZooDownloadCommand# 从 GitHub 仓库下载远程托管的模型 fiftyone zoo models download https://github.com/user/repo --model-name name # 从公开的压缩包 URL 下载 fiftyone zoo models download url --model-name name远程来源支持四种格式GitHub 仓库 URLhttps://github.com/user/repo、GitHub ref.../tree/branch或.../commit/commit、GitHub ref 字符串user/repo[/ref]以及任何公开可访问的归档文件zip/tarURL。五、安装与校验模型的依赖Installing zoo model requirements部分 Model Zoo 模型依赖的 Python 包并未随 FiftyOne 默认安装例如依赖特定版本 TensorFlow 的旧模型。FiftyOne 为此提供了两套依赖管理能力。Pythonensure_zoo_model_requirements()与install_zoo_model_requirements()ensure_zoo_model_requirements() 检查当前环境是否满足某个模型声明的依赖不满足时按error_level策略处理import fiftyone.zoo as foz # 若依赖未满足则抛出错误 foz.ensure_zoo_model_requirements(faster-rcnn-resnet50-fpn-coco-torch)install_zoo_model_requirements() 则直接安装该模型所需的缺失包import fiftyone.zoo as foz foz.install_zoo_model_requirements(faster-rcnn-resnet50-fpn-coco-torch)两者的error_level语义一致0依赖不满足/安装失败时抛出错误1依赖不满足/安装失败时记录警告日志2忽略未满足的依赖。默认使用fo.config.requirement_error_level的值见 fiftyone/core/config.py。如果你使用conda环境建议将error_level设为1或2——因为 FiftyOne 内部使用pip检查依赖在 conda 环境下可能产生误报。CLIfiftyone zoo models requirements# 打印模型的依赖信息 fiftyone zoo models requirements faster-rcnn-resnet50-fpn-coco-torch输出示例***** Model requirements ***** { packages: [ torch, torchvision ], cpu: { support: true }, gpu: { support: true } } ***** Current machine ***** GPU: no对应地--ensure用于校验、--install用于安装ModelZooRequirementsCommand# 校验依赖是否满足不满足则报错 fiftyone zoo models requirements --ensure faster-rcnn-resnet50-fpn-coco-torch # 安装模型所需依赖 fiftyone zoo models requirements --install faster-rcnn-resnet50-fpn-coco-torch还可通过--error-level参数显式指定错误级别0error, 1warn, 2ignore。_print_model_requirements()fiftyone/core/cli.py在打印依赖的同时还会检测当前机器的 GPU、CUDA 与 cuDNN 版本。六、加载动物园模型Loading zoo models使用 load_zoo_model() 加载模型。默认情况下如果模型尚未下载首次访问时会自动从网络下载import fiftyone.zoo as foz # 首次访问时自动下载模型 model foz.load_zoo_model(faster-rcnn-resnet50-fpn-coco-torch)load_zoo_model()提供了丰富的参数来定制加载行为源码中均有实现与默认值参数默认值说明name_or_url必填模型名可附加ver指定版本或远程来源model_nameNone当第一个参数为远程来源时指定其中具体的模型download_if_necessaryTrue未下载时是否自动下载设为False且未下载会抛ValueErrorensure_requirementsTrue加载前是否校验依赖是否满足install_requirementsFalse加载前是否安装缺失依赖error_levelNone依赖处理级别默认用fo.config.requirement_error_levelcacheTrue是否缓存模型实例弱引用再次调用返回同一实例**kwargs—注入到模型Config实例的附加关键字参数示例——加载模型并同时安装所需依赖以日志警告方式处理问题error_level1import fiftyone.zoo as foz # 加载模型并安装必要依赖出现问题时记录警告日志 model foz.load_zoo_model( faster-rcnn-resnet50-fpn-coco-torch, install_requirementsTrue, error_level1, )几点来自源码的补充说明默认情况下FiftyOne 在加载模型前会自动校验Python 包与 CUDA 版本等依赖不满足时抛出错误该行为可通过error_level参数或配置项requirement_error_level永久调整0 报错、1 警告、2 忽略。cacheTrue时模型以弱引用形式缓存在模块级_MODELS字典中fiftyone/zoo/models/init.py模型对象仍被引用时重复加载会返回同一实例节省内存。加载时若模型有manager且未下载会先调用download_zoo_model()随后按default_deployment_config_dict构造部署配置并通过fiftyone.core.models.load_model()完成实例化见 fiftyone/zoo/models/init.py。七、将模型应用到数据集Applying zoo models加载模型后即可对数据集或其视图执行推理。Pythonapply_model()对 Dataset 或 DatasetView 调用 apply_model() 即可批量推理。以下示例加载faster-rcnn-resnet50-fpn-coco-torch检测模型从 Dataset Zoo 的quickstart数据集中随机取 10 张图并执行检测结果写入faster_rcnn标签字段import fiftyone.zoo as foz # 加载动物园模型 model foz.load_zoo_model(faster-rcnn-resnet50-fpn-coco-torch) # 加载数据集 dataset foz.load_zoo_dataset(quickstart) samples dataset.take(10) # 运行推理 samples.apply_model(model, label_fieldfaster_rcnn)CLIfiftyone zoo models apply等价命令ModelZooApplyCommand# 加载数据集 fiftyone zoo datasets load quickstart # 应用模型模型名、数据集名、标签字段 fiftyone zoo models apply \ faster-rcnn-resnet50-fpn-coco-torch \ # model quickstart \ # dataset faster_rcnn # label fieldapply_model()还支持可选的置信度阈值参数可在推理后对任意模型生成的预测做阈值过滤详见下文“添加自定义模型”一节。八、用动物园模型生成嵌入Generating embeddings with zoo models许多模型除了输出预测标签外还暴露了特征嵌入embeddings可用于相似性检索、降维可视化等任务。判断模型是否支持嵌入加载模型后检查has_embeddings属性import fiftyone.zoo as foz # 加载模型 model foz.load_zoo_model(inception-v3-imagenet-torch) # 检查模型是否暴露嵌入 model.has_embeddings # TruePythoncompute_embeddings()对支持嵌入的模型可通过 compute_embeddings() 为数据集或其视图中的每个样本生成嵌入import fiftyone.zoo as foz # 加载模型 model foz.load_zoo_model(inception-v3-imagenet-torch) model.has_embeddings # True # 加载数据集 dataset foz.load_zoo_dataset(quickstart) samples dataset.take(10) # 生成嵌入并以 num_samples x dim 数组返回 embeddings samples.compute_embeddings(model) # 生成嵌入并存储到样本字段中 samples.compute_embeddings(model, embeddings_fieldembeddings)此外还可使用 compute_patch_embeddings() 为图像中由另一个标签字段例如某个检测模型产出的检测框定义的**图像块patch**生成嵌入。CLIfiftyone zoo models embedCLI 对应命令为fiftyone zoo models embedModelZooEmbedCommand# 加载数据集 fiftyone zoo datasets load quickstart # 用模型生成嵌入模型名、数据集名、嵌入字段 fiftyone zoo models embed \ inception-v3-imagenet-torch \ # model quickstart \ # dataset embeddings # embeddings field嵌入在 FiftyOne 生态中用途广泛例如配合compute_similarity()构建相似性检索或通过降维工具对高维特征进行可视化分析。九、控制模型的下载目录Controlling where zoo models are downloaded默认情况下所有动物园模型下载到fiftyone.config.model_zoo_dir的按模型名命名的子目录中。你可以通过修改 FiftyOne 配置中的model_zoo_dir设置来定制存储位置三种方式等价方式一直接编辑 JSON 配置编辑位于~/.fiftyone/config.json的配置文件# 打印当前配置 fiftyone config # 定位配置文件路径然后编辑其中的 model_zoo_dir 字段 fiftyone constants FIFTYONE_CONFIG_PATH方式二环境变量设置FIFTYONE_MODEL_ZOO_DIR环境变量# 自定义模型下载目录 export FIFTYONE_MODEL_ZOO_DIR/your/custom/directory方式三Python 代码运行时修改配置对象import fiftyone as fo # 自定义模型下载目录 fo.config.model_zoo_dir /your/custom/directory从源码看model_zoo_dir在 fiftyone/core/config.py 中通过parse_path解析支持FIFTYONE_MODEL_ZOO_DIR环境变量覆盖当未显式设置时会回退到默认目录fiftyone/config.py中model_zoo_dir is None时拼接默认路径见 fiftyone/core/config.py。另外还有两个相关配置项值得了解model_zoo_manifest_paths环境变量FIFTYONE_MODEL_ZOO_MANIFEST_PATHS追加自定义 manifest 文件的路径列表model_zoo_manifest_cache_enabled环境变量FIFTYONE_MODEL_ZOO_MANIFEST_CACHE_ENABLED默认False是否在进程生命周期内缓存 manifest 解析结果供高频访问场景如服务端使用见 fiftyone/core/config.py 与 fiftyone/zoo/models/init.py。十、删除已下载的模型Deleting zoo modelsPythondelete_zoo_model()使用 delete_zoo_model() 删除本地模型副本底层调用model.flush_model(model_path)清理磁盘文件import fiftyone.zoo as foz foz.delete_zoo_model(faster-rcnn-resnet50-fpn-coco-torch)CLIfiftyone zoo models deletefiftyone zoo models delete faster-rcnn-resnet50-fpn-coco-torch十一、向动物园添加自定义模型Adding models to the zooFiftyOne 是开源项目你可以通过提交 Pull Request 向公开 Model Zoo 贡献模型更常见的是你可以将自有模型加入本地 Model Zoo从而用与公开模型完全一致的 Python/CLI 语法加载与使用。编写 manifest JSON要添加模型只需编写一个符合下述格式的 JSON manifest 文件来描述模型。以下示例为yolo-v2-coco-tf1添加一个别名为yolo-v2-coco-tf1-high-conf的副本该副本仅返回置信度不低于 0.5 的预测{ models: [ { base_name: yolo-v2-coco-tf1-high-conf, base_filename: yolo-v2-coco-high-conf.weights, version: null, description: A YOLOv2 model with confidence threshold set to 0.5, manager: { type: fiftyone.core.models.ModelManager, config: { google_drive_id: 1ajuPZws47SOw3xJc4Wvk1yuiB3qv8ycr } }, default_deployment_config_dict: { type: fiftyone.utils.eta.ETAModel, config: { type: eta.detectors.YOLODetector, config: { config_dir: {{eta}}/tensorflow/darkflow/cfg/, config_path: {{eta}}/tensorflow/darkflow/cfg/yolo.cfg, confidence_thresh: 0.5 } } }, requirements: { cpu: { support: true, packages: [tensorflow2] }, gpu: { support: true, packages: [tensorflow-gpu2] } }, tags: [detection, coco, tf1], date_added: 2020-12-11 13:45:51 } ] }manifest 格式说明顶层必须包含models键其值为序列化的 ZooModel 类定义列表每个模型定义描述了两件事如何下载manager及其配置如直链 URL 或 Google Drive ID和如何加载default_deployment_config_dict指定模型类型与部署参数base_name是模型的唯一标识base_filename是模型文件的本地文件名requirements中可分别为 CPU/GPU 环境声明依赖包与支持情况tags、license、description等元信息会被fiftyone zoo models list与get_zoo_model()直接使用。上述示例之所以能仅通过 JSON 修改置信度阈值是因为底层eta.detectors.YOLODetector类恰好将confidence_thresh暴露为配置参数。在实际使用中通常不必在模型中硬编码置信度阈值——apply_model()本身支持传入可选的置信度阈值参数在推理后对任意模型产出的预测做后置过滤。注册 manifest 到配置将 manifest 通过model_zoo_manifest_paths配置项暴露给 FiftyOne最简单的方式是设置FIFTYONE_MODEL_ZOO_MANIFEST_PATHS环境变量export FIFTYONE_MODEL_ZOO_MANIFEST_PATHS/path/to/custom/manifest.json从源码看_build_zoo_models_manifest()会读取fo.config.model_zoo_manifest_paths中列出的所有 manifest 并与内置 manifest 合并见 fiftyone/zoo/models/init.py。使用自定义模型注册完成后即可像使用任何公开模型一样加载和应用自定义模型import fiftyone as fo import fiftyone.zoo as foz # 加载自定义模型 model foz.load_zoo_model(yolo-v2-coco-tf1-high-conf) # 将模型应用到数据集 dataset fo.load_dataset(...) dataset.apply_model(model, label_fieldpredictions)十二、补充远程模型来源管理Remote model sources除内置与本地 manifest 外FiftyOne 还支持注册远程模型来源如 GitHub 仓库使模型清单进一步扩展。相关函数定义在 fiftyone/zoo/models/init.pyCLI 子命令见 fiftyone/core/cli.pyfoz.list_zoo_model_sources()/fiftyone zoo models list-sources列出本地已注册的远程来源foz.register_zoo_model_source(url_or_gh_repo)/fiftyone zoo models register-source url注册远程来源支持 GitHub 仓库 URL、分支/提交 ref、user/repo[/ref]字符串或公开归档 URLfoz.delete_zoo_model_source(url_or_gh_repo)/fiftyone zoo models delete-source url删除远程来源及其关联的已下载模型源码会跳过顶层 model zoo 目录避免误删根目录。远程托管的模型由RemoteZooModel表示fiftyone/zoo/models/init.py其下载与加载逻辑委托给模型目录内的download_model()/load_model()模块方法实现。十三、Model Zoo 使用小结以 Faster R-CNN 检测模型为例一个完整的“下载 → 校验依赖 → 加载 → 推理 → 嵌入 → 清理”工作流如下import fiftyone.zoo as foz # 1. 列出与筛选模型 print(foz.list_zoo_models(tagsdetection)) # 2. 下载可省略load 时会自动下载 foz.download_zoo_model(faster-rcnn-resnet50-fpn-coco-torch) # 3. 校验/安装依赖 foz.ensure_zoo_model_requirements(faster-rcnn-resnet50-fpn-coco-torch) # 4. 加载模型 model foz.load_zoo_model(faster-rcnn-resnet50-fpn-coco-torch) # 5. 应用推理与生成嵌入 dataset foz.load_zoo_dataset(quickstart) dataset.take(10).apply_model(model, label_fieldfaster_rcnn) # 6. 查看磁盘路径并清理 print(foz.find_zoo_model(faster-rcnn-resnet50-fpn-coco-torch)) foz.delete_zoo_model(faster-rcnn-resnet50-fpn-coco-torch)Model Zoo 的核心价值在于统一的模型描述格式manifest、一致的 Python/CLI 操作接口、自动化的依赖管理与按需下载机制。无论是快速跑通一个预训练模型做基线实验还是通过自定义 manifest 将团队内部的私有模型纳入同一套工作流它都能显著降低模型接入与管理的成本。若需深入了解模型加载的底层部署机制可继续阅读 fiftyone/core/models.py 中的load_model()与ModelManager实现完整 API 签名与参数说明以 docs/source/model_zoo/api.rst 及上述源码为准。【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考