模型包 (Model Bundle)#
配置项 (Config Item)#
- class monai.bundle.ComponentLocator(excludes=None)[source]#
扫描 MONAI 包中所有可用的类和函数,并将它们与模块路径映射在表格中。它用于定位给定组件名称的模块路径。
- 参数:
excludes (
Union[Sequence[str],str,None]) – 如果 excludes 中的任何字符串存在于完整的模块名称中,则不导入该模块。
- class monai.bundle.ConfigComponent(config, id='', locator=None, excludes=None)[source]#
monai.bundle.ConfigItem的子类,此类使用带有字符串键的字典来表示 class 或 function 的组件,并支持实例化。目前,除了常规字面量外,还定义并解释了三个特殊键(被
_包围的字符串):由
"_target_"指定的 Python 模块的类或函数标识符,指示一个 MONAI 内置 Python 类或函数(例如"LoadImageDict")、完整模块名称(例如"monai.transforms.LoadImageDict")或可调用对象(例如"$@model.forward")。"_requires_"(可选):为此ConfigComponent对象指定引用 ID(以"@"开头的字符串)或依赖项的ConfigExpression。这些依赖项将在实例化此对象之前进行评估/实例化。当组件不通过参数显式依赖其他 ConfigItems,但需要预先实例化/评估依赖项时,此选项非常有用。"_disabled_"(可选):用于指示是否跳过实例化的标志。"_desc_"(可选):组件的自由文本描述,用于提高代码可读性。"_mode_"(可选):调用由"_target_"定义的component的运行模式。"default":返回component(**kwargs)"callable":返回component,或者如果提供了kwargs,则返回functools.partial(component, **kwargs)"debug":返回pdb.runcall(component, **kwargs)
配置内容中的其他字段是 Python 模块的输入参数。
from monai.bundle import ComponentLocator, ConfigComponent locator = ComponentLocator(excludes=["modules_to_exclude"]) config = { "_target_": "LoadImaged", "keys": ["image", "label"] } configer = ConfigComponent(config, id="test", locator=locator) image_loader = configer.instantiate() print(image_loader) # <monai.transforms.io.dictionary.LoadImaged object at 0x7fba7ad1ee50>
- 参数:
config (
Any) – 配置项的内容。id (
str) – 当前配置项的名称,默认为空字符串。locator (
Optional[ComponentLocator,None]) – 一个用于将模块名称字符串转换为实际 Python 模块的ComponentLocator。如果为 None,则使用ComponentLocator(excludes=excludes)。excludes (
Union[Sequence[str],str,None]) – 如果locator为 None,则创建一个带有excludes的新ComponentLocator。另请参阅:monai.bundle.ComponentLocator。
- instantiate(**kwargs)[source]#
基于
self.config内容实例化组件。目标组件必须是 class 或 function,否则返回 None。- 参数:
kwargs (
Any) – 实例化时用于覆盖/添加配置参数的参数。- 返回类型:
object
- class monai.bundle.ConfigExpression(config, id='', globals=None)[source]#
monai.bundle.ConfigItem的子类,该 ConfigItem 表示一个可执行表达式(基于eval()执行,如果是 import 语句,则将模块导入到 globals 中)。例如
import monai from monai.bundle import ConfigExpression config = "$monai.__version__" expression = ConfigExpression(config, id="test", globals={"monai": monai}) print(expression.evaluate())
- 参数:
config (
Any) – 配置项的内容。id (
str) – 当前配置项的名称,默认为空字符串。globals (
Optional[dict,None]) – 用于评估字符串的附加全局上下文。
- evaluate(globals=None, locals=None)[source]#
执行当前配置内容,如果是表达式,则返回结果(基于 Python eval())。更多详细信息:https://docs.pythonlang.cn/3/library/functions.html#eval。
- 参数:
globals (
Optional[dict,None]) – 除了self.globals之外,运行时表达式中使用的其他全局符号。locals (
Optional[dict,None]) – 除了globals之外,运行时表达式中可能使用的一些局部符号。
- 返回类型:
Union[str,Any,None]
引用解析器 (Reference Resolver)#
- class monai.bundle.ReferenceResolver(items=None)[source]#
用于管理一组
ConfigItem并解析它们之间引用的实用类。此类维护一组
ConfigItem对象及其关联的 ID。这些 ID 在集合内必须是唯一的。在ConfigItem中以@开头的字符串将被视为通过 ID 对其他ConfigItem对象的引用。由于ConfigItem可能具有嵌套的字典或列表结构,引用字符串还可以包含分隔符::,以通过字典的键索引或列表的整数索引引用子结构。在此类中,解析引用本质上是用相应的 Python 对象替换引用字符串。解析引用的典型工作流程如下:
通过
add_item()将多个ConfigItem对象添加到ReferenceResolver中。- 调用
get_resolved_content()自动解析引用。这是通过(递归)以下方式完成的: - 对于那些没有引用其他项的项,将其转换为对象。
如果它是可实例化的,则实例化它并在
resolved_content中缓存类实例。如果它是一个表达式,则对其求值并将值保存在
resolved_content中。
用相应的对象替换引用字符串。
- 调用
- 参数:
items (
Optional[Sequence[ConfigItem],None]) – 要解析的ConfigItem,稍后可以使用add_item()添加。
- add_item(item)[source]#
将
ConfigItem添加到解析器中。- 参数:
item (
ConfigItem) – 一个ConfigItem。- 返回类型:
None
- classmethod find_refs_in_config(config, id, refs=None)[source]#
递归搜索输入配置项的所有内容以获取引用的 ID。引用意味着:其他配置项的 ID(此配置项中的
"@XXX"),或者配置中的子项是 instantiable(可实例化的),或者配置中的子项是 expression(表达式)。对于 dict 和 list,递归检查子项。- 参数:
config (
Any) – 要搜索的输入配置内容。id (
str) – 输入配置项的 ID 名称。refs (
Optional[dict[str,int],None]) – ID 名称和找到的引用计数的字典,默认为 None。
- 返回类型:
dict[str,int]
- get_item(id, resolve=False, **kwargs)[source]#
通过 id 获取
ConfigItem。如果
resolve=True,则返回的项将被解析,即所有的引用字符串都会被相应的ConfigItem对象替换。- 参数:
id (
str) – 预期配置项的 ID。resolve (
bool) – 如果该项未被解析,是否对其进行解析,默认为 False。kwargs (
Any) – 传递给_resolve_one_item()的关键字参数。目前支持instantiate和eval_expr。两者默认都为 True。
- 返回类型:
UnionType[ConfigItem,None]
- get_resolved_content(id, **kwargs)[source]#
通过 id 获取解析后的
ConfigItem。- 参数:
id (
str) – 预期项的 ID 名称。kwargs (
Any) – 传递给_resolve_one_item()的关键字参数。目前支持instantiate、eval_expr和default。instantiate 和 eval_expr 默认都为 True;如果 id 不在配置内容中,则 default 为目标配置项,必须是 ConfigItem 对象。
- 返回类型:
Union[ConfigExpression,str,Any,None]
- classmethod iter_subconfigs(id, config)[source]#
遍历输入配置的子配置,输出 sub_id 使用 cls.sep 表示子结构。
- 参数:
id (
str) – 当前输入配置的 ID 字符串。config (
Any) – 要遍历的输入配置。
- 返回类型:
Iterator[tuple[str,str,Any]]
- classmethod match_refs_pattern(value)[source]#
匹配输入字符串的正则表达式以查找引用。引用字符串以
"@"开头,例如:"@XXX::YYY::ZZZ"。- 参数:
value (
str) – 要匹配正则表达式的输入值。- 返回类型:
dict[str,int]
- classmethod normalize_id(id)[source]#
规范化 ID 字符串以一致地使用 cls.sep。
- 参数:
id (
UnionType[str,int]) – 要规范化的 ID 字符串。- 返回类型:
str
- normalize_meta_id(config)[source]#
使用 DEPRECATED_ID_MAPPING 更新 config 中已弃用的标识符。这将使用它们的替代名称替换标记为已弃用的名称。
- 参数:
config (
Any) – 要更新的输入配置。- 返回类型:
Any
- remove_resolved_content(id)[source]#
按 id 删除解析后的
ConfigItem。- 参数:
id (
str) – 预期项的 ID 名称。- 返回类型:
Optional[Any,None]
- classmethod split_id(id, last=False)[source]#
通过 cls.sep 将 ID 字符串拆分为字符串列表。
- 参数:
id (
UnionType[str,int]) – 要拆分的 ID 字符串。last (
bool) – 是否拆分 ID 的最右侧部分。默认为 False(拆分所有部分)。
- 返回类型:
list[str]
配置解析器 (Config Parser)#
- class monai.bundle.ConfigParser(config=None, excludes=None, globals=None)[source]#
主要的配置解析器。它遍历结构化配置(以嵌套 Python 字典或列表的形式),创建
ConfigItem,并根据结构分配唯一的 ID。此类通过 ID 提供对配置中
ConfigItem集合的便捷访问。配置解析的典型工作流程如下:使用
config源初始化ConfigParser。调用
get_parsed_content()获取带有 id 的预期组件。
from monai.bundle import ConfigParser config = { "my_dims": 2, "dims_1": "$@my_dims + 1", "my_xform": {"_target_": "LoadImage"}, "my_net": {"_target_": "BasicUNet", "spatial_dims": "@dims_1", "in_channels": 1, "out_channels": 4}, "trainer": {"_target_": "SupervisedTrainer", "network": "@my_net", "preprocessing": "@my_xform"} } # in the example $@my_dims + 1 is an expression, which adds 1 to the value of @my_dims parser = ConfigParser(config) # get/set configuration content, the set method should happen before calling parse() print(parser["my_net"]["in_channels"]) # original input channels 1 parser["my_net"]["in_channels"] = 4 # change input channels to 4 print(parser["my_net"]["in_channels"]) # instantiate the network component parser.parse(True) net = parser.get_parsed_content("my_net", instantiate=True) print(net) # also support to get the configuration content of parsed `ConfigItem` trainer = parser.get_parsed_content("trainer", instantiate=False) print(trainer)
- 参数:
config (
Optional[Any,None]) – 要解析的输入配置源。excludes (
Union[Sequence[str],str,None]) – 导入模块以实例化组件时,从excludes中指定的模块中排除组件。globals (
Union[dict[str,Any],None,bool]) – 将预导入的包作为全局变量预导入到ConfigExpression,以便表达式(例如"$monai.data.list_data_collate")可以使用monai模块。当前支持的全局变量和别名名称为{"monai": "monai", "torch": "torch", "np": "numpy", "numpy": "numpy"}。这些是 MONAI 的最小依赖项。可以通过 globals={“itk”: “itk”} 包含其他包。将其设置为False以禁用 self.globals 模块导入。
另请参阅
monai.bundle.scripts.run
- __contains__(id)[source]#
如果 id 存储在此配置中,则返回 True。
- 参数:
id (
UnionType[str,int]) – 指定预期位置的 id。另请参阅__getitem__()。- 返回类型:
bool
- __getattr__(id)[source]#
获取具有指定
id的ConfigItem的解析结果(使用默认参数,例如lazy=True、instantiate=True和eval_expr=True)。当结果是 dict 或 list 时,它被包装在_ConfigProxy中,以便嵌套的属性和索引通过配置层次结构进行链式调用。例如,parser.training.trainer.max_epochs等同于parser.get_parsed_content("training::trainer::max_epochs")。- 参数:
id –
ConfigItem的 id。- 返回:
解析后的内容(实例、已评估的表达式或配置值)。当它是
dict或list时,它被包装在_ConfigProxy中,因此嵌套的属性/索引通过配置层次结构进行链式调用。
另请参阅
- __getitem__(id)[source]#
按 id 获取配置。
- 参数:
id (
UnionType[str,int]) –ConfigItem的 id,ID 中的"::"(或"#") 被解释为进入嵌套结构下一层的特殊字符。对列表使用从“0”开始的数字索引,对字典使用其他字符串。例如:"xform::5","net::channels"。""表示整个self.config。- 返回类型:
Any
- __setitem__(id, config)[source]#
按
id设置配置。请注意,此方法应在parse()或get_parsed_content()之前使用,以确保更新包含在解析的内容中。- 参数:
id (
UnionType[str,int]) –ConfigItem的 id,ID 中的"::"(或"#") 被解释为进入嵌套结构下一层的特殊字符。对列表使用从“0”开始的数字索引,对字典使用其他字符串。例如:"xform::5","net::channels"。""表示整个self.config。config (
Any) – 在位置id处设置的配置。
- 返回类型:
None
- __weakref__#
对象的弱引用列表(如果定义)
- classmethod export_config_file(config, filepath, fmt='json', **kwargs)[source]#
将配置内容导出到指定文件路径(目前支持 JSON 和 YAML 文件)。
- 参数:
config (
dict) – 要导出的源配置内容。filepath (
UnionType[str,PathLike]) – 要保存的目标文件路径。fmt (
str) – 配置内容的格式,目前支持"json"和"yaml"。kwargs (
Any) –json.dump或yaml.safe_dump的其他参数,取决于文件格式。
- 返回类型:
None
- get(id='', default=None)[source]#
按 id 获取配置。
- 参数:
id (
str) – 指定预期位置的 id。另请参阅__getitem__()。default (
Optional[Any,None]) – 如果指定的id无效,则返回的默认值。
- 返回类型:
Any
- get_parsed_content(id='', **kwargs)[source]#
获取具有指定
id的ConfigItem的解析结果。如果项是
ConfigComponent且instantiate=True,则结果为实例。如果项是
ConfigExpression且eval_expr=True,则结果为评估输出。否则,结果为 ConfigItem 的配置内容。
- 参数:
id (
str) –ConfigItem的 id,ID 中的"::"(或"#") 被解释为进入嵌套结构下一层的特殊字符。对列表使用从“0”开始的数字索引,对字典使用其他字符串。例如:"xform::5","net::channels"。""表示整个self.config。kwargs (
Any) – 传递给_resolve_one_item的附加关键字参数。目前支持lazy(是否保留当前配置缓存,默认为 True)、instantiate(是否实例化 ConfigComponent,默认为 True)和eval_expr(是否评估 ConfigExpression,默认为 True),default(如果 id 不在配置内容中,则返回的默认配置项)。
- 返回类型:
Any
- classmethod load_config_file(filepath, **kwargs)[source]#
加载具有指定文件路径的单个配置文件(目前支持 JSON 和 YAML 文件)。
- 参数:
filepath (
UnionType[str,PathLike]) – 要加载的目标文件路径,支持的后缀:.json, .yml, .yaml。kwargs (
Any) –json.load或`yaml.safe_load的其他参数,取决于文件格式。
- 返回类型:
dict
- classmethod load_config_files(files, **kwargs)[source]#
将多个配置文件加载到单个配置字典中。列表中的后续配置文件将覆盖或添加到前一个配置文件中。配置键中的
"::"(或"#") 被解释为进入嵌套结构下一层的特殊字符。- 参数:
files (
UnionType[str,PathLike,Sequence[UnionType[str,PathLike]],dict]) – 要加载的目标文件路径,支持的后缀:.json, .yml, .yaml。如果提供文件列表,将合并它们的内容。如果提供逗号分隔文件路径的字符串,将合并它们的内容。如果提供字典,则直接返回。kwargs (
Any) –json.load或`yaml.safe_load的其他参数,取决于文件格式。
- 返回类型:
dict
- parse(reset=True)[source]#
递归解析 self.config 以将宏标记替换为目标内容。然后递归解析配置源,并将每个项作为
ConfigItem添加到引用解析器中。- 参数:
reset (
bool) – 是否在解析前重置reference_resolver。默认为 True。- 返回类型:
None
- read_config(f, **kwargs)[source]#
从指定的 JSON/YAML 文件或字典中读取配置,并覆盖 self.config 字典中的配置内容。
- 参数:
f (
UnionType[str,PathLike,Sequence[UnionType[str,PathLike]],dict]) – 配置文件路径,内容必须是字典,如果提供文件列表,将合并它们的内容。如果直接提供字典,则将其用作配置。kwargs (
Any) –json.load或yaml.safe_load的其他参数,取决于文件格式。
- 返回类型:
None
- read_meta(f, **kwargs)[source]#
从指定的 JSON 或 YAML 文件读取元数据。作为字典的元数据将存储在
self.config["_meta_"]中。- 参数:
f (
UnionType[str,PathLike,Sequence[UnionType[str,PathLike]],dict]) – 元数据文件路径,内容必须是字典,如果提供文件列表,将合并它们的内容。如果直接提供字典,则将其用作元数据。kwargs (
Any) –json.load或yaml.safe_load的其他参数,取决于文件格式。
- 返回类型:
None
- resolve_macro_and_relative_ids()[source]#
递归解析 self.config 以将相对 ID 替换为绝对 ID(例如,@##A 表示上一级的 A),并将宏标记替换为目标内容。宏标记以“%”开头,可以来自其他结构化文件,例如:
"%default_net","%/data/config.json::net"。
- classmethod resolve_relative_ids(id, value)[source]#
为了简化嵌套配置内容中的引用或宏标记 ID,可以使用以 ID_SEP_KEY 开头的相对 ID 名称,例如,“@#A”表示同一级别的 A,“@##A”表示上一级的 A。它将相对 ID 解析为绝对 ID。例如,如果输入数据是:
{ "A": 1, "B": {"key": "@##A", "value1": 2, "value2": "%#value1", "value3": [3, 4, "@#1"]}, }
它会将 B 解析为 {“key”: “@A”, “value1”: 2, “value2”: “%B#value1”, “value3”: [3, 4, “@B#value3#1”]}。
- 参数:
id (
str) – 计算相对 ID 的当前配置项的 ID 名称。value (
str) – 要解析相对 ID 的输入值。
- 返回类型:
str
- set(config, id='', recursive=True)[source]#
按
id设置配置。- 参数:
config (
Any) – 在位置id处设置的配置。id (
str) – 指定预期位置的 id。另请参阅__setitem__()。recursive (
bool) – 如果嵌套 id 不存在,是否递归创建配置中的嵌套项。默认为 True。对于嵌套 id,对于缺失部分仅支持 dict。
- 返回类型:
None
- classmethod split_path_id(src)[source]#
将 src 字符串拆分为两部分:配置文件路径和组件 id。文件路径应以 (json|yaml|yml) 结尾。如果存在,组件 id 应以 :: 分隔。如果没有路径或 id,则返回 “”。
- 参数:
src (
str) – 要拆分的源字符串。- 返回类型:
tuple[str,str]
- update(pairs)[source]#
在 pairs 中设置
id和相应的配置内容,另请参阅__setitem__()。例如,parser.update({"train::epoch": 100, "train::lr": 0.02})- 参数:
pairs (
dict[str,Any]) – id 和配置对的字典。- 返回类型:
None
脚本 (Scripts)#
- monai.bundle.ckpt_export(net_id=None, filepath=None, ckpt_file=None, meta_file=None, config_file=None, key_in_ckpt=None, use_trace=None, input_shape=None, args_file=None, converter_kwargs=None, **override)[source]#
将模型检查点导出到给定的文件路径,并包含作为 JSON 文件提供的元数据和配置。
典型使用示例
python -m monai.bundle ckpt_export network --filepath <export path> --ckpt_file <checkpoint path> ...
- 参数:
net_id (
Optional[str,None]) – 配置中网络组件的 ID 名称,它必须是 torch.nn.Module。默认为 “network_def”。filepath (
Union[str,PathLike,None]) – 要导出的文件路径,如果文件名没有扩展名,它将变为 .ts。如果未指定 bundle_root,则默认为 “os.getcwd()” 下的 “models/model.ts”。ckpt_file (
Optional[str,None]) – 要加载的模型检查点文件路径。如果未指定 bundle_root,则默认为 “os.getcwd()” 下的 “models/model.pt”。meta_file (
Union[Sequence[str],str,None]) – 元数据文件路径,如果是文件路径列表,将合并它们的内容。如果未指定 bundle_root,则默认为 “os.getcwd()” 下的 “configs/metadata.json”。config_file (
Union[Sequence[str],str,None]) – 用于保存在 TorchScript 模型中并提取网络信息的配置文件路径。在 TorchScript 模型中保存的键为不带扩展名的配置文件名,保存的配置值始终以 JSON 格式序列化,无论原始文件格式是 JSON 还是 YAML。它可以是单个文件或文件列表。如果为 None,则必须在 args_file 中提供。key_in_ckpt (
Optional[str,None]) – 对于嵌套的 checkpoint(如 {“model”: XXX, “optimizer”: XXX, …}),指定模型权重的键。如果不是嵌套的 checkpoint,则无需设置。use_trace (
Optional[bool,None]) – 是否使用 torch.jit.trace 将 PyTorch 模型转换为 TorchScript 模型。input_shape (
Optional[Sequence[int],None]) – 将模型转换为 TorchScript 模型时,用于生成网络随机输入的形状。应为形如 [N, C, H, W] 或 [N, C, H, W, D] 的列表。如果未提供,将尝试从 metadata 配置中解析。args_file (
Optional[str,None]) – 一个 JSON 或 YAML 文件,用于提供此函数所有参数的默认值,从而简化命令行输入。converter_kwargs (
Optional[Mapping,None]) – convert_to_torchscript 所需的额外参数,输入参数中已有的参数除外。override (
Any) – 用于覆盖或添加相应配置内容的键值对。例如--_meta#network_data_format#inputs#image#num_channels 3。
- 返回类型:
None
- monai.bundle.trt_export(net_id=None, filepath=None, ckpt_file=None, meta_file=None, config_file=None, key_in_ckpt=None, precision=None, input_shape=None, use_trace=None, dynamic_batchsize=None, device=None, use_onnx=None, onnx_input_names=None, onnx_output_names=None, args_file=None, converter_kwargs=None, **override)[source]#
将模型 checkpoint 导出到指定文件路径,保存为基于 TensorRT 引擎的 TorchScript。目前,此 API 仅支持转换输入均为张量的模型。注意:从 TensorRT 10.5 开始,已移除对 NVIDIA Volta(具有计算能力 7.0 的 GPU)的支持。请查看 TensorRT 支持矩阵以了解支持哪些 GPU。
导出模型有两种方式:1. Torch-TensorRT 方式:PyTorch 模块 —> TorchScript 模块 —> 基于 TensorRT 引擎的 TorchScript。2. ONNX-TensorRT 方式:PyTorch 模块 —> TorchScript 模块 —> ONNX 模型 —> TensorRT 引擎 —> 基于 TensorRT 引擎的 TorchScript。
当通过第一种方式导出时,某些模型会遇到运行缓慢的问题,因为 Torch-TensorRT 可能仅将 PyTorch 模型的一小部分转换为 TensorRT 引擎。然而,当通过第二种方式导出时,某些 Python 数据结构(如 dict)是不支持的。如果通过 torch.jit.script 导出,某些 TorchScript 模型也不被 ONNX 支持。
典型使用示例
python -m monai.bundle trt_export --net_id <network definition> --filepath <export path> --ckpt_file <checkpoint path> --input_shape <input shape> --dynamic_batchsize <batch range> ...
- 参数:
net_id (
Optional[str,None]) – 配置中网络组件的 ID 名称,它必须是 torch.nn.Module。filepath (
Union[str,PathLike,None]) – 导出的文件路径,如果文件名没有扩展名,则自动加上 .ts。ckpt_file (
Optional[str,None]) – 要加载的模型 checkpoint 的文件路径。meta_file (
Union[Sequence[str],str,None]) – 元数据文件的路径。如果是文件路径列表,它们的内容将被合并。config_file (
Union[Sequence[str],str,None]) – 用于保存在基于 TensorRT 的 TorchScript 模型中并提取网络信息的配置文件路径。在模型中保存的键为不带扩展名的配置文件名,无论原始文件格式是 JSON 还是 YAML,保存的配置值始终以 JSON 格式序列化。它可以是单个文件或文件列表。如果为 None,则必须在 args_file 中提供。key_in_ckpt (
Optional[str,None]) – 对于嵌套的 checkpoint(如 {“model”: XXX, “optimizer”: XXX, …}),指定模型权重的键。如果不是嵌套的 checkpoint,则无需设置。precision (
Optional[str,None]) – 转换后的基于 TensorRT 引擎的 TorchScript 模型的权重精度。应为 ‘fp32’ 或 ‘fp16’。input_shape (
Optional[Sequence[int],None]) – 用于转换模型的输入形状。应为形如 [N, C, H, W] 或 [N, C, H, W, D] 的列表。如果未提供,将尝试从 metadata 配置中解析。use_trace (
Optional[bool,None]) – 是否使用 torch.jit.trace 将 PyTorch 模型转换为 TorchScript 模型,然后再将其转换为基于 TensorRT 引擎的 TorchScript 模型或 ONNX 模型(如果 use_onnx 为 True)。dynamic_batchsize (
Optional[Sequence[int],None]) – 一个包含三个元素的序列,用于定义待转换模型输入的 batch size 范围。应为形如 [MIN_BATCH, OPT_BATCH, MAX_BATCH] 的序列。转换后,模型输入的 batch size 应在 MIN_BATCH 和 MAX_BATCH 之间,OPT_BATCH 是 TensorRT 尝试优化的最佳性能 batch size。在应用程序中,OPT_BATCH 应为最常用的输入 batch size。device (
Optional[int,None]) – 用于转换和验证模型的目标 GPU 索引。use_onnx (
Optional[bool,None]) – 是否使用 ONNX-TensorRT 方式来导出基于 TensorRT 引擎的 TorchScript 模型。onnx_input_names (
Optional[Sequence[str],None]) – ONNX 模型的可选输入名称。此参数仅在 use_onnx 为 True 时有用。应为形如 [‘input_0’, ‘input_1’, …, ‘input_N’] 的序列,其中 N 等于模型输入的数量。如果未给出,将使用 [‘input_0’],这假定模型只有一个输入。onnx_output_names (
Optional[Sequence[str],None]) – ONNX 模型的可选输出名称。此参数仅在 use_onnx 为 True 时有用。应为形如 [‘output_0’, ‘output_1’, …, ‘output_N’] 的序列,其中 N 等于模型输出的数量。如果未给出,将使用 [‘output_0’],这假定模型只有一个输出。args_file (
Optional[str,None]) – 一个 JSON 或 YAML 文件,用于提供此函数所有参数的默认值,从而简化命令行输入。converter_kwargs (
Optional[Mapping,None]) – convert_to_trt 所需的额外参数,输入参数中已有的参数除外。override (
Any) – 用于覆盖或添加相应配置内容的键值对。例如--_meta#network_data_format#inputs#image#num_channels 3。
- 返回类型:
None
- monai.bundle.onnx_export(net_id=None, filepath=None, ckpt_file=None, meta_file=None, config_file=None, key_in_ckpt=None, use_trace=None, input_shape=None, args_file=None, converter_kwargs=None, **override)[source]#
将模型 checkpoint 导出为 onnx 模型。
典型使用示例
python -m monai.bundle onnx_export network --filepath <export path> --ckpt_file <checkpoint path> ...
- 参数:
net_id (
Optional[str,None]) – 配置中网络组件的 ID 名称,它必须是 torch.nn.Module。filepath (
Union[str,PathLike,None]) – 保存 onnx 模型的文件路径。ckpt_file (
Optional[str,None]) – 要加载的模型 checkpoint 的文件路径。meta_file (
Union[Sequence[str],str,None]) – 元数据文件的路径。如果是文件路径列表,它们的内容将被合并。config_file (
Union[Sequence[str],str,None]) – 包含提取出的网络信息的配置文件路径,key_in_ckpt (
Optional[str,None]) – 对于嵌套的 checkpoint(如 {“model”: XXX, “optimizer”: XXX, …}),指定模型权重的键。如果不是嵌套的 checkpoint,则无需设置。use_trace (
Optional[bool,None]) – 是否使用 torch.jit.trace 将 pytorch 模型转换为 torchscript 模型。input_shape (
Optional[Sequence[int],None]) – 将模型转换为 onnx 模型时,用于生成网络随机输入的形状。应为形如 [N, C, H, W] 或 [N, C, H, W, D] 的列表。如果未提供,将尝试从 metadata 配置中解析。args_file (
Optional[str,None]) – 一个 JSON 或 YAML 文件,用于提供此函数所有参数的默认值,从而简化命令行输入。converter_kwargs (
Optional[Mapping,None]) – convert_to_onnx 所需的额外参数,输入参数中已有的参数除外。override (
Any) – 用于覆盖或添加相应配置内容的键值对。例如--_meta#network_data_format#inputs#image#num_channels 3。
- 返回类型:
None
- monai.bundle.download(name=None, version=None, bundle_dir=None, source='monaihosting', repo=None, url=None, remove_prefix='monai_', progress=True, args_file=None)[source]#
从指定源或 url 下载 bundle。该 bundle 应为 zip 文件,并在下载后解压缩。此函数参考自:https://pytorch.ac.cn/docs/stable/_modules/torch/hub.html
典型使用示例
# Execute this module as a CLI entry, and download bundle from the model-zoo repo: python -m monai.bundle download --name <bundle_name> --version "0.1.0" --bundle_dir "./" # Execute this module as a CLI entry, and download bundle from specified github repo: python -m monai.bundle download --name <bundle_name> --source "github" --repo "repo_owner/repo_name/release_tag" # Execute this module as a CLI entry, and download bundle from ngc with latest version: python -m monai.bundle download --name <bundle_name> --source "ngc" --bundle_dir "./" # Execute this module as a CLI entry, and download bundle from monaihosting with latest version: python -m monai.bundle download --name <bundle_name> --source "monaihosting" --bundle_dir "./" # Execute this module as a CLI entry, and download bundle from Hugging Face Hub: python -m monai.bundle download --name "bundle_name" --source "huggingface_hub" --repo "repo_owner/repo_name" # Execute this module as a CLI entry, and download bundle via URL: python -m monai.bundle download --name <bundle_name> --url <url> # Execute this module as a CLI entry, and download bundle from ngc_private with latest version: python -m monai.bundle download --name <bundle_name> --source "ngc_private" --bundle_dir "./" --repo "org/org_name" # Set default args of `run` in a JSON / YAML file, help to record and simplify the command line. # Other args still can override the default args at runtime. # The content of the JSON / YAML file is a dictionary. For example: # {"name": "spleen", "bundle_dir": "download", "source": ""} # then do the following command for downloading: python -m monai.bundle download --args_file "args.json" --source "github"
- 参数:
name (
Optional[str,None]) – bundle 名称。如果 None 且 url 也为 None,则必须在 args_file 中提供。例如:model-zoo 中的 “spleen_ct_segmentation”、“prostate_mri_anatomy”:Project-MONAI/model-zoo。ngc 中的 “monai_brats_mri_segmentation”:https://catalog.ngc.nvidia.com/models?filters=&orderBy=scoreDESC&query=monai。version (
Optional[str,None]) – 要下载的目标 bundle 的版本名称,如:“0.1.0”。如果为 None,将下载最新版本(对于 Hugging Face Hub,则是 main 分支的最后一次提交)。bundle_dir (
Union[str,PathLike,None]) – 存储下载数据的目标目录。默认为 torch.hub.get_dir() 下的 bundle 子文件夹。source (
str) – 存储位置名称。当 url 为 None 时使用此参数。默认情况下,该值从环境变量 BUNDLE_DOWNLOAD_SRC 获取,应为 “ngc”、“monaihosting”、“github”、“ngc_private” 或 “huggingface_hub”。如果 source 为 “ngc_private”,则需要在环境变量中指定 NGC_API_KEY。repo (
Optional[str,None]) – 仓库名称。当 url 为 None 且 source 为 “github” 或 “huggingface_hub” 时使用此参数。如果 source 为 “github”,则应为 “repo_owner/repo_name/release_tag” 格式。如果 source 为 “huggingface_hub”,则应为 “repo_owner/repo_name” 格式。请注意,“monaihosting” 源的 bundle 也托管在 Hugging Face Hub 上,但 “repo_id” 始终为 “MONAI/bundle_name” 格式,因此对于 “monaihosting” 源,不需要此参数。如果 source 为 “ngc_private”,则应为 “org/org_name” 或 “org/org_name/team/team_name” 格式,或者您可以指定环境变量 NGC_ORG 和 NGC_TEAM。url (
Optional[str,None]) – 下载数据的 url。如果不为 None,数据将直接下载,且不会检查 source。如果 name 为 None,则文件名由 monai.apps.utils._basename(url) 确定。remove_prefix (
UnionType[str,None]) – 当 source 为 “ngc” 或 “ngc_private” 时使用此参数。目前,所有 ngc bundle 都有monai_前缀,而在其模型动物园(model zoo)对比中不存在该前缀。为了保持这两个来源之间的一致性,移除前缀是必要的。因此,如果指定了此项,下载的文件夹名称将移除该前缀。progress (
bool) – 是否显示进度条。args_file (
Optional[str,None]) – 一个 JSON 或 YAML 文件,用于提供此函数中所有参数的默认值。从而简化命令行输入。
- 返回类型:
None
- monai.bundle.load(name, model=None, version=None, workflow_type='train', model_file=None, load_ts_module=False, bundle_dir=None, source='monaihosting', repo=None, remove_prefix='monai_', progress=True, device=None, key_in_ckpt=None, config_files=(), workflow_name=None, args_file=None, copy_model_args=None, net_override=None)[source]#
加载 bundle 的模型权重或 TorchScript 模块。
- 参数:
name (
str) – bundle 名称。如果 None 且 url 也为 None,则必须在 args_file 中提供。例如:model-zoo 中的 “spleen_ct_segmentation”、“prostate_mri_anatomy”:Project-MONAI/model-zoo。ngc 中的 “monai_brats_mri_segmentation”:https://catalog.ngc.nvidia.com/models?filters=&orderBy=scoreDESC&query=monai。“monaihosting” 中的 “mednist_gan”:https://api.ngc.nvidia.com/v2/models/nvidia/monaihosting/mednist_gan/versions/0.2.0/files/mednist_gan_v0.2.0.zipmodel (
Optional[Module,None]) – 要更新的 pytorch 模块。默认为 None,使用 bundle 中的 “network_def”。version (
Optional[str,None]) – 要下载的目标 bundle 的版本名称,如:“0.1.0”。如果为 None,将下载最新版本。如果 source 为 “huggingface_hub”,此参数为 Git 修订版本 ID。workflow_type (
str) – 指定工作流类型:“train” 或 “training” 表示训练工作流,“infer”、“inference”、“eval” 或 “evaluation” 表示推理工作流,其他不支持的字符串将引发 ValueError。默认值为 train。model_file (
Optional[str,None]) – bundle 内模型权重或 TorchScript 模块的相对路径。如果为 None,将使用 “models/model.pt” 或 “models/model.ts”。load_ts_module (
bool) – 指定是否加载 TorchScript 模块的标志。bundle_dir (
Union[str,PathLike,None]) – 从中加载权重/TorchScript 模块的目录。默认为 torch.hub.get_dir() 下的 bundle 子文件夹。source (
str) – 存储位置名称。当 model_file 在本地不存在且需要先下载时使用此参数。默认情况下,该值从环境变量 BUNDLE_DOWNLOAD_SRC 获取,应为 “ngc”、“monaihosting”、“github” 或 “huggingface_hub”。repo (
Optional[str,None]) – 仓库名称。当 url 为 None 且 source 为 “github” 或 “huggingface_hub” 时使用此参数。如果 source 为 “github”,则应为 “repo_owner/repo_name/release_tag” 格式。如果 source 为 “huggingface_hub”,则应为 “repo_owner/repo_name” 格式。remove_prefix (
UnionType[str,None]) – 当 source 为 “ngc” 时使用此参数。目前,所有 ngc bundle 都有monai_前缀,而在其模型动物园(model zoo)对比中不存在该前缀。为了保持这三个来源之间的一致性,移除前缀是必要的。因此,如果指定了此项,下载的文件夹名称将移除该前缀。progress (
bool) – 下载时是否显示进度条。device (
Optional[str,None]) – 返回的权重或模块的目标设备。如果为 None,若存在则优先使用 “cuda”。key_in_ckpt (
Optional[str,None]) – 对于嵌套的 checkpoint(如 {“model”: XXX, “optimizer”: XXX, …}),指定模型权重的键。如果不是嵌套的 checkpoint,则无需设置。config_files (
Sequence[str]) – 将要加载的额外文件名。该参数仅在加载 TorchScript 模块时有效,详细信息请参阅 torch.jit.load 中的 _extra_files。workflow_name (
Union[str,BundleWorkflow,None]) – 指定的 bundle 工作流名称,应为字符串或类,默认为 “ConfigWorkflow”。args_file (
Optional[str,None]) – 一个 JSON 或 YAML 文件,用于提供 “download” 函数中所有参数的默认值。copy_model_args (
Optional[dict,None]) – monai.networks.copy_model_state 函数的其他参数。net_override (
Optional[dict,None]) – 用于覆盖 bundle 网络中参数的键值对,默认为 None。
- 返回类型:
Union[object,tuple[Module,dict,dict],Any]- 返回:
- 如果 load_ts_module 为 False 且 model 为 None,
如果无法在 bundle 中找到 “network_def”,则返回模型权重,否则返回已加载权重的实例化网络。
- 如果 load_ts_module 为 False 且 model 不为 None,
返回一个已加载权重的实例化网络。
- 如果 load_ts_module 为 True,返回一个包含 TorchScript 模块的元组,
以及相应的元数据字典和额外文件字典。请查阅 monai.data.load_net_with_metadata 以获取更多详细信息。
- monai.bundle.get_all_bundles_list(repo='Project-MONAI/model-zoo', tag='dev', auth_token=None)[source]#
获取存储在指定仓库的发布版本中、带有提供标签的所有 bundle 名称(及最新版本)。如果标签为 “dev”,将从 https://raw.githubusercontent.com/repo_owner/repo_name/dev/models/model_info.json 获取模型信息。参数的默认值对应于 MONAI model zoo 的发布版本。为了增加调用 Github API 的速率限制,您可以输入您的个人访问令牌。请查看以下链接以获取有关速率限制的更多详细信息:https://githubdocs.cn/en/rest/overview/resources-in-the-rest-api#rate-limiting
以下链接展示了如何创建您的个人访问令牌:https://githubdocs.cn/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
- 参数:
repo (
str) – 应为 “repo_owner/repo_name/” 格式。tag (
str) – 发布版本的标签名称。auth_token (
Optional[str,None]) – github 个人访问令牌。
- 返回类型:
list[tuple[str,str]]- 返回:
一个形如 (bundle 名称, 最新版本) 的元组列表。
- monai.bundle.get_bundle_info(bundle_name, version=None, repo='Project-MONAI/model-zoo', tag='dev', auth_token=None)[source]#
获取存储在指定仓库的发布版本中、带有提供标签且具有指定 bundle 名称和版本的 bundle 的所有信息(包括 “name” 和 “browser_download_url”)。为了增加调用 Github API 的速率限制,您可以输入您的个人访问令牌。请查看以下链接以获取有关速率限制的更多详细信息:https://githubdocs.cn/en/rest/overview/resources-in-the-rest-api#rate-limiting
以下链接展示了如何创建您的个人访问令牌:https://githubdocs.cn/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
- 参数:
bundle_name (
str) – bundle 名称。version (
Optional[str,None]) – 目标 bundle 的版本名称,如果为 None,将使用最新版本。repo (
str) – 应为 “repo_owner/repo_name/” 格式。tag (
str) – 发布版本的标签名称。auth_token (
Optional[str,None]) – github 个人访问令牌。
- 返回类型:
dict[str,Any]- 返回:
一个包含 bundle 信息的字典。
- monai.bundle.get_bundle_versions(bundle_name, repo='Project-MONAI/model-zoo', tag='dev', auth_token=None)[source]#
获取存储在指定仓库的发布版本中、带有提供标签的 bundle 的最新版本以及所有现有版本。如果标签为 “dev”,将从 https://raw.githubusercontent.com/repo_owner/repo_name/dev/models/model_info.json 获取模型信息。为了增加调用 Github API 的速率限制,您可以输入您的个人访问令牌。请查看以下链接以获取有关速率限制的更多详细信息:https://githubdocs.cn/en/rest/overview/resources-in-the-rest-api#rate-limiting
以下链接展示了如何创建您的个人访问令牌:https://githubdocs.cn/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
- 参数:
bundle_name (
str) – bundle 名称。repo (
str) – 应为 “repo_owner/repo_name/” 格式。tag (
str) – 发布版本的标签名称。auth_token (
Optional[str,None]) – github 个人访问令牌。
- 返回类型:
dict[str,UnionType[list[str],str]]- 返回:
一个包含 bundle 最新版本和所有版本的字典。
- monai.bundle.run(run_id=None, init_id=None, final_id=None, meta_file=None, config_file=None, logging_file=None, tracking=None, args_file=None, **override)[source]#
指定 config_file 以运行 monai bundle 组件和工作流。
典型使用示例
# Execute this module as a CLI entry: python -m monai.bundle run --meta_file <meta path> --config_file <config path> # Execute with specified `run_id=training`: python -m monai.bundle run training --meta_file <meta path> --config_file <config path> # Execute with all specified `run_id=runtest`, `init_id=inittest`, `final_id=finaltest`: python -m monai.bundle run --run_id runtest --init_id inittest --final_id finaltest ... # Override config values at runtime by specifying the component id and its new value: python -m monai.bundle run --net#input_chns 1 ... # Override config values with another config file `/path/to/another.json`: python -m monai.bundle run --net %/path/to/another.json ... # Override config values with part content of another config file: python -m monai.bundle run --net %/data/other.json#net_arg ... # Set default args of `run` in a JSON / YAML file, help to record and simplify the command line. # Other args still can override the default args at runtime: python -m monai.bundle run --args_file "/workspace/data/args.json" --config_file <config path>
- 参数:
run_id (
Optional[str,None]) – 要运行的预期配置表达式的 ID 名称,默认为 “run”。要运行此配置,目标配置必须包含此 ID。init_id (
Optional[str,None]) – 运行前要初始化的预期配置表达式的 ID 名称,默认为 “initialize”。对于配置文件和此 run 函数,它是可选的。final_id (
Optional[str,None]) – 运行后要完成的预期配置表达式的 ID 名称,默认为 “finalize”。对于配置文件和此 run 函数,它是可选的。meta_file (
Union[Sequence[str],str,None]) – 元数据文件的路径。如果是文件路径列表,它们的内容将被合并。默认为 None。config_file (
Union[Sequence[str],str,None]) – 配置文件的路径,如果为 None,则必须在 args_file 中提供。如果是文件路径列表,它们的内容将被合并。logging_file (
Optional[str,None]) – 程序中 logging 模块的配置文件。有关详细信息:https://docs.pythonlang.cn/3/library/logging.config.html#logging.config.fileConfig。默认为 None。tracking (
Union[str,dict,None]) –如果非 None,则启用运行时实验追踪,并可选择进行配置和扩展。如果为 “mlflow”,将向解析后的 bundle 添加 MLFlowHandler,并使用默认的追踪设置,其中下面显示的一组常见参数将被添加,并可通过此方法的 override 参数传递。
"output_dir": 在本地保存 mlflow 追踪输出的路径,默认为 “<bundle root>/eval”。"tracking_uri": 保存 mlflow 追踪输出的 uri,默认为 “/output_dir/mlruns”。"experiment_name": 此运行的实验名称,默认为 “monai_experiment”。"run_name": 当前运行的名称。"save_execute_config": 是否保存已执行的配置文件。它可以是 False、/path/to/artifacts 或 True。如果设为 True,将保存到默认路径 “<bundle_root>/eval”。默认为 True。
如果是其他字符串,则将其视为加载追踪设置的文件路径。如果是 dict,则将其视为追踪设置。将使用 tracking handlers 和 configs 的顶级项修补目标配置内容。有关详细的使用示例,请查看教程:Project-MONAI/tutorials。
args_file (
Optional[str,None]) – 一个 JSON 或 YAML 文件,用于为 run_id、meta_file、config_file、logging 和覆盖对提供默认值。从而简化命令行输入。override (
Any) – 用于覆盖或添加相应配置内容的键值对。例如--net#input_chns 42,--net %/data/other.json#net_arg。
- 返回类型:
None
- monai.bundle.verify_metadata(meta_file=None, filepath=None, create_dir=None, hash_val=None, hash_type=None, args_file=None, **kwargs)[source]#
基于预定义的 schema 验证提供的 metadata 文件。metadata 内容必须包含 schema 字段,用于指定要下载的 schema 文件的 URL。schema 标准遵循:https://schema.json.js.cn/。
- 参数:
meta_file (
Union[Sequence[str],str,None]) – 要验证的元数据文件的路径。如果为 None,则必须在 args_file 中提供。如果是文件路径列表,它们的内容将被合并。filepath (
Union[str,PathLike,None]) – 存储下载的 schema 的文件路径。create_dir (
Optional[bool,None]) – 如果目录不存在,是否创建目录,默认为 True。hash_val (
Optional[str,None]) – 如果非 None,定义用于验证下载的 schema 文件的哈希值。hash_type (
Optional[str,None]) – 如果非 None,定义用于验证下载的 schema 文件的哈希类型。默认为 “md5”。args_file (
Optional[str,None]) – 一个 JSON 或 YAML 文件,用于提供此函数中所有参数的默认值。从而简化命令行输入。kwargs (
Any) – jsonschema.validate() 的其他参数。有关详细信息:https://python-jsonschema.readthedocs.io/en/stable/validate/#jsonschema.validate。
- 返回类型:
None
- monai.bundle.verify_net_in_out(net_id=None, meta_file=None, config_file=None, device=None, p=None, n=None, any=None, extra_forward_args=None, args_file=None, **override)[source]#
验证元数据中定义的网络的输入和输出数据形状及数据类型。将根据 metadata 中要求的数据形状,使用伪造的 Tensor 数据进行测试。
典型使用示例
python -m monai.bundle verify_net_in_out network --meta_file <meta path> --config_file <config path>
- 参数:
net_id (
Optional[str,None]) – 要验证的网络组件的 ID 名称,它必须是 torch.nn.Module。meta_file (
Union[Sequence[str],str,None]) – 获取网络参数的元数据文件的路径。如果为 None,则必须在 args_file 中提供。如果是文件路径列表,它们的内容将被合并。config_file (
Union[Sequence[str],str,None]) – 获取网络定义的配置文件的路径。如果为 None,则必须在 args_file 中提供。如果是文件路径列表,它们的内容将被合并。device (
Optional[str,None]) – 运行网络前向计算的目标设备。如果为 None,若存在则优先使用 “cuda”。p (
Optional[int,None]) – 如果预期形状的维度为 “x**p”,则生成伪造数据形状的幂因子,默认为 1。n (
Optional[int,None]) – 如果预期形状的维度为 “x*n”,则生成伪造数据形状的乘法因子,默认为 1。any (
Optional[int,None]) – 如果预期形状的维度为 “*”,则生成伪造数据形状的指定大小,默认为 1。extra_forward_args (
Optional[dict,None]) – 包含网络前向函数其他参数的字典。默认为空字典。args_file (
Optional[str,None]) – 一个 JSON 或 YAML 文件,用于为 net_id、meta_file、config_file、device、p、n、any 和覆盖对提供默认值。从而简化命令行输入。override (
Any) – 用于覆盖或添加相应配置内容的键值对。例如--_meta#network_data_format#inputs#image#num_channels 3。
- 返回类型:
None
- monai.bundle.init_bundle(bundle_dir, ckpt_file=None, network=None, dataset_license=False, metadata_str=None, inference_str=None)[source]#
初始化一个新的 bundle 目录,其中包含一些默认配置文件和可选的网络权重。
典型用法示例
python -m monai.bundle init_bundle /path/to/bundle_dir network_ckpt.pt
- 参数:
bundle_dir (
UnionType[str,PathLike]) – 要创建的目录名称,必须不存在,但父目录必须存在。ckpt_file (
Union[str,PathLike,None]) – 可选的要复制到 bundle 中的 checkpoint 文件。network (
Optional[Module,None]) – 如果给出了该网络而不是 ckpt_file,则此网络的权重将存储在 bundle 中。dataset_license (
bool) – 如果为 True,将生成一个名为 “data_license.txt” 的默认许可证文件。如果您的 bundle 使用的数据声明了任何许可证条件,则必须使用此文件。metadata_str (
Union[str,dict,None]) – 可选的写入 bundle 的元数据字符串,如果未给出,将使用默认值。inference_str (
Union[str,dict,None]) – 可选的写入 bundle 的推理字符串,如果未给出,将使用默认值。
- 返回类型:
None
- monai.bundle.push_to_hf_hub(repo, name, bundle_dir, token=None, private=True, version=None, tag_as_latest_version=False, **upload_folder_kwargs)[source]#
将 MONAI bundle 推送到 Hugging Face Hub。
典型使用示例
python -m monai.bundle push_to_hf_hub --repo <HF repository id> --name <bundle name> --bundle_dir <bundle directory> --version <version> ...
- 参数:
repo (
str) – 命名空间(用户或组织)和以 / 分隔的仓库名称,例如 hf_username/bundle_name。bundle_name – 要推送的 bundle 目录的名称。
bundle_dir (
str) – bundle 目录的路径。token (
Optional[str,None]) – Hugging Face 身份验证令牌。默认为 None(将默认为存储的令牌)。private (
UnionType[bool,None]) – Hugging Face 上仓库的私有可见性。默认为 True。version_name – 要创建的版本标签的名称。默认为 None(不创建版本标签)。
tag_as_latest_version (
UnionType[bool,None]) – 是否将提交标记为 latest_version。使用 bundle.download() 时,将默认下载此版本。默认为 False。upload_folder_kwargs (
Any) – 传递给 HfApi.upload_folder 的关键字参数。
- 返回:
Hugging Face 仓库的 URL
- 返回类型:
repo_url
- monai.bundle.update_kwargs(args=None, ignore_none=True, **kwargs)[source]#
使用输入的 kwargs 更新 args 字典。对于 dict 数据,根据键递归更新内容。
示例
from monai.bundle import update_kwargs update_kwargs({'exist': 1}, exist=2, new_arg=3) # return {'exist': 2, 'new_arg': 3}
- 参数:
args (
Union[str,dict,None]) – 要更新的源 args 字典(或读取为字典的 json/yaml 文件名)。ignore_none (
bool) – 是否忽略值为 None 的输入参数,默认为 True。kwargs (
Any) – 要合并到 args 中的 key=value 对。
- 返回类型:
dict