评价此页

torch.__future__#

创建日期:2024 年 2 月 5 日 | 最后更新:2025 年 6 月 12 日

torch.__future__.set_overwrite_module_params_on_conversion(value)[source]#

设置在转换 nn.Module 时,是分配新张量给参数,还是就地(in-place)修改现有参数。

启用此功能后,以下方法将为模块分配新参数:

  1. module.{device}()(例如 nn.Module.cuda()),用于在设备间移动模块

  2. module.{dtype}()(例如 nn.Module.float()),用于将模块转换为不同的数据类型(dtype)

  3. nn.Module.to()

  4. nn.Module.to_empty()

参数:

value (bool) – 是否分配新张量。

torch.__future__.get_overwrite_module_params_on_conversion()[source]#

返回在转换 torch.nn.Module 时,是分配新张量给参数,还是就地修改现有参数。默认为 False

更多信息请参阅 set_overwrite_module_params_on_conversion()

返回类型:

布尔值

torch.__future__.set_swap_module_params_on_conversion(value)[source]#

设置在转换 nn.Module 时,是否使用 swap_tensors() 而不是设置 .data 来就地修改现有参数;以及在向 nn.Module 加载 state dict 时,是否替代 param.copy_(state_dict[key])

注意

此函数优先级高于 get_overwrite_module_params_on_conversion()

启用此功能后,以下方法将就地交换现有参数:

  1. module.{device}()(例如 nn.Module.cuda()),用于在设备间移动模块

  2. module.{dtype}()(例如 nn.Module.float()),用于将模块转换为不同的数据类型(dtype)

  3. nn.Module.to()

  4. nn.Module.to_empty()

  5. nn.Module.load_state_dict()

设置此项后,load_state_dict() 的语义如下:

  1. 对于每个参数/缓冲区,其对应的 state_dict['key'] 通过 module_load() 进行转换(即 res = param.module_load(state_dict['key'])

  2. 必要时,res 将被包装在 Parameter

  3. 模块中的参数/缓冲区将通过 swap_tensors()res 进行交换

参数:

value (bool) – 是否使用 swap_tensors()

torch.__future__.get_swap_module_params_on_conversion()[source]#

返回在转换 nn.Module 时,是否使用 swap_tensors() 而不是设置 .data 来就地修改现有参数。默认为 False

更多信息请参阅 set_swap_module_params_on_conversion()

返回类型:

布尔值