模块工具¶
- class torcheval.tools.ModuleSummary¶
模块及其子模块的摘要。它收集以下信息:
名称
类型
参数数量
可训练参数的数量
估计的字节大小
此模块是否包含未初始化的参数
前向传播的FLOPs(“?”表示未计算)
反向传播的FLOPs(“?”表示未计算)
输入形状(“?” 表示未计算)
输出形状(“?” 表示未计算)
以毫秒为单位的前进耗时(“?”表示未计算)
- property flops_backward: int | Literal['?']¶
返回使用此模块进行反向计算的总FLOPs。
- property flops_forward: int | Literal['?']¶
返回使用此模块进行前向计算的总浮点运算次数。
- property forward_elapsed_time_ms: Literal['?'] | float¶
返回模块的前向时间,单位为毫秒。
- property has_uninitialized_param: bool¶
返回此模块中的参数是否未初始化
- property in_size: Literal['?'] | List[int]¶
返回模块的输入大小
- property module_name: str¶
返回此模块的名称
- property module_type: str¶
返回此模块的类型。
- property num_parameters: int¶
返回此模块中的参数总数。
- property num_trainable_parameters: int¶
返回此模块中可训练参数的总数(requires_grad=True)。
- property out_size: Literal['?'] | List[int]¶
返回模块的输出大小
- property size_bytes: int¶
返回模块的估计总大小(以字节为单位)。
- property submodule_summaries: Dict[str, 模块摘要]¶
一个字典,其中子模块的名称作为键,对应的
ModuleSummary对象作为值。这些可以遍历以进行可视化。
- torcheval.tools.get_module_summary(module: Module, module_args: Tuple[Any, ...] | None = None, module_kwargs: MutableMapping[str, Any] | None = None) 模块摘要¶
生成一个
ModuleSummary对象,然后分配其值并生成子模块树。- Parameters:
module – 要总结的模块。
module_args – 一个包含模块运行和计算FLOPs和激活大小的参数的元组。
module_kwargs –
任何要传递给模块的前向函数的kwargs参数。
注意
要计算FLOPs,你必须使用PyTorch 1.13或更高版本。
注意
如果模块包含任何惰性子模块,我们将不会计算FLOPs。
注意
目前仅支持输出单个张量的模块。 TODO: 支持模块更灵活的输出。