detectron2.checkpoint

class detectron2.checkpoint.Checkpointer(model: torch.nn.Module, save_dir: str = '', *, save_to_disk: bool = True, **checkpointables: Any)[源代码]

基类: object

一个可以保存/加载模型以及其他可检查点对象的检查点工具。

__init__(model: torch.nn.Module, save_dir: str = '', *, save_to_disk: bool = True, **checkpointables: Any)None[源代码]
Parameters
  • model (nn.Module) – 模型。

  • save_dir (str) – 用于保存和查找检查点的目录。

  • save_to_disk (bool) - 如果为True,则将检查点保存到磁盘,否则禁用此检查点的保存功能。

  • checkpointables (object) – 任何可检查点对象,即具有state_dict()load_state_dict()方法的对象。例如,可以像Checkpointer(model, "dir", optimizer=optimizer)这样使用。

add_checkpointable(key: str, checkpointable: Any)None[源代码]

为这个检查点跟踪器添加可检查点对象。

Parameters
  • key (str) - 用于保存对象的键

  • checkpointable - 任何具有state_dict()load_state_dict()方法的对象

save(name: str, **kwargs: Any)None[源代码]

将模型和可检查点内容转储到文件。

Parameters
  • name (str) – 文件名。

  • kwargs (dict) - 要保存的额外任意数据。

load(path: str, checkpointables: Optional[List[str]] = None) → Dict[str, Any][源代码]

从给定的检查点加载。

Parameters
  • path (str) – 检查点(checkpoint)的路径或URL。如果为空,则不会加载任何内容。

  • checkpointables (list) - 要加载的可检查点名称列表。如果未指定(None),将加载所有可能的可检查点。

Returns

dict – 从检查点加载的未处理的额外数据。例如,那些通过save(**extra_data)()保存的数据。

has_checkpoint()bool[源代码]
Returns

bool - 目标目录中是否存在检查点。

get_checkpoint_file()str[源代码]
Returns

str - 目标目录中最新的检查点文件。

get_all_checkpoint_files() → List[str][源代码]
Returns

列表

目标目录中所有可用的检查点文件(.pth文件)

目录。

resume_or_load(path: str, *, resume: bool = True) → Dict[str, Any][源代码]

如果resume为True,该方法会尝试从最后一个检查点恢复(如果存在)。否则,从给定路径加载检查点。这在重新启动中断的训练任务时非常有用。

Parameters
  • path (str) – 检查点文件的路径。

  • resume (bool) - 如果为True,则从最后一个检查点恢复(如果存在)并加载模型以及所有可检查点内容。否则仅加载模型而不加载任何可检查点内容。

Returns

load() 相同。

tag_last_checkpoint(last_filename_basename: str)None[源代码]

标记最后一个检查点。

Parameters

last_filename_basename (str) – 最后一个文件名的基本名称。

class detectron2.checkpoint.PeriodicCheckpointer(checkpointer: fvcore.common.checkpoint.Checkpointer, period: int, max_iter: Optional[int] = None, max_to_keep: Optional[int] = None, file_prefix: str = 'model')[源代码]

基类: object

定期保存检查点。当调用.step(iteration)时,如果迭代次数是周期的整数倍或达到max_iter,它将在给定的检查点上执行checkpointer.save

checkpointer

底层检查点对象

Type

Checkpointer

__init__(checkpointer: fvcore.common.checkpoint.Checkpointer, period: int, max_iter: Optional[int] = None, max_to_keep: Optional[int] = None, file_prefix: str = 'model')None[源代码]
Parameters
  • checkpointer – 用于保存检查点的检查点对象。

  • period (int) - 保存检查点的周期。

  • max_iter (int) – 最大迭代次数。达到该值时,将保存名为"{file_prefix}_final"的检查点。

  • max_to_keep (int) – 要保留的最新检查点的最大数量,之前的检查点将被删除

  • file_prefix (str) – 检查点文件名的前缀

step(iteration: int, **kwargs: Any)None[源代码]

在给定的迭代中执行适当的操作。

Parameters
  • iteration (int) – 当前迭代次数,范围在[0, max_iter-1]之间。

  • kwargs (Any) – 要保存的额外数据,与 Checkpointer.save()中的相同。

save(name: str, **kwargs: Any)None[源代码]

参数与Checkpointer.save()相同。 使用此方法可在计划外手动保存检查点。

Parameters
  • name (str) – 文件名。

  • kwargs (Any) – 要保存的额外数据,与 Checkpointer.save()中的相同。

class detectron2.checkpoint.DetectionCheckpointer(model, save_dir='', *, save_to_disk=None, **checkpointables)[源代码]

基类:fvcore.common.checkpoint.Checkpointer

Checkpointer相同,但能够: 1. 处理detectron和detectron2模型库中的模型,并对旧版模型进行转换。 2. 正确加载仅在主工作节点上可用的检查点

load(path, *args, **kwargs)[源代码]