242
242
< div class ="pytorch-left-menu-search ">
243
243
244
244
< div class ="version ">
245
- < a href ='https://pytorch.org/docs/versions.html '> main (2.3.0a0+git45c4a0c ) ▼</ a >
245
+ < a href ='https://pytorch.org/docs/versions.html '> main (2.3.0a0+git34f7dc9 ) ▼</ a >
246
246
</ div >
247
247
248
248
@@ -485,7 +485,7 @@ <h1>Source code for torch.__future__</h1><div class="highlight"><pre>
485
485
486
486
< div class ="viewcode-block " id ="set_overwrite_module_params_on_conversion "> < a class ="viewcode-back " href ="../../future_mod.html#torch.__future__.set_overwrite_module_params_on_conversion "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> set_overwrite_module_params_on_conversion</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> :</ span > < span class ="nb "> bool</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
487
487
< span class ="w "> </ span > < span class ="sd "> """</ span >
488
- < span class ="sd "> Sets whether to assign new tensors to the parameters instead of changing the</ span >
488
+ < span class ="sd "> Sets whether to assign new tensors to the parameters instead of changing the</ span >
489
489
< span class ="sd "> existing parameters in-place when converting an ``nn.Module``.</ span >
490
490
491
491
< span class ="sd "> When enabled, the following methods will assign new parameters to the module:</ span >
@@ -495,6 +495,9 @@ <h1>Source code for torch.__future__</h1><div class="highlight"><pre>
495
495
< span class ="sd "> (for converting a module to a different dtype)</ span >
496
496
< span class ="sd "> #. ``module.to()``</ span >
497
497
498
+ < span class ="sd "> Args:</ span >
499
+ < span class ="sd "> value (bool): Whether to assign new tensors or not.</ span >
500
+
498
501
< span class ="sd "> """</ span >
499
502
< span class ="k "> global</ span > < span class ="n "> _overwrite_module_params_on_conversion</ span >
500
503
< span class ="n "> _overwrite_module_params_on_conversion</ span > < span class ="o "> =</ span > < span class ="n "> value</ span > </ div >
@@ -503,28 +506,41 @@ <h1>Source code for torch.__future__</h1><div class="highlight"><pre>
503
506
< div class ="viewcode-block " id ="get_overwrite_module_params_on_conversion "> < a class ="viewcode-back " href ="../../future_mod.html#torch.__future__.get_overwrite_module_params_on_conversion "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> get_overwrite_module_params_on_conversion</ span > < span class ="p "> ()</ span > < span class ="o "> -></ span > < span class ="nb "> bool</ span > < span class ="p "> :</ span >
504
507
< span class ="w "> </ span > < span class ="sd "> """</ span >
505
508
< span class ="sd "> Returns whether to assign new tensors to the parameters instead of changing the</ span >
506
- < span class ="sd "> existing parameters in-place when converting an ``nn.Module`. Defaults to ``False``.</ span >
509
+ < span class ="sd "> existing parameters in-place when converting an ``nn.Module`` . Defaults to ``False``.</ span >
507
510
508
- < span class ="sd "> See :func:`~torch.nn.utils .set_overwrite_module_params_on_conversion` for more information.</ span >
511
+ < span class ="sd "> See :func:`~torch.__future__ .set_overwrite_module_params_on_conversion` for more information.</ span >
509
512
< span class ="sd "> """</ span >
510
513
< span class ="k "> return</ span > < span class ="n "> _overwrite_module_params_on_conversion</ span > </ div >
511
514
512
515
513
516
< div class ="viewcode-block " id ="set_swap_module_params_on_conversion "> < a class ="viewcode-back " href ="../../future_mod.html#torch.__future__.set_swap_module_params_on_conversion "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> set_swap_module_params_on_conversion</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> :</ span > < span class ="nb "> bool</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
514
517
< span class ="w "> </ span > < span class ="sd "> """</ span >
515
518
< span class ="sd "> Sets whether to use :func:`~torch.utils.swap_tensors` instead of setting ``.data`` to</ span >
516
- < span class ="sd "> change the existing parameters in-place when converting an ``nn.Module``.</ span >
519
+ < span class ="sd "> change the existing parameters in-place when converting an ``nn.Module`` and instead</ span >
520
+ < span class ="sd "> of ``param.copy_(state_dict[key])`` when loading a state dict into an ``nn.Module``.</ span >
517
521
518
522
< span class ="sd "> .. note::</ span >
519
523
< span class ="sd "> If :func:`~torch.__future__.get_overwrite_module_params_on_conversion` returns ``True``,</ span >
520
- < span class ="sd "> no swapping will occur.</ span >
524
+ < span class ="sd "> for methods other than :meth:`~nn.Module.load_state_dict` no swapping will occur.</ span >
521
525
522
526
< span class ="sd "> When enabled, the following methods will swap the existing parameters in-place:</ span >
523
527
524
528
< span class ="sd "> #. ``module.{device}()`` (e.g. ``module.cuda()``) for moving a module between devices</ span >
525
529
< span class ="sd "> #. ``module.{dtype}()`` (e.g. ``module.float()``) for converting a module to a different dtype</ span >
526
530
< span class ="sd "> (for converting a module to a different dtype)</ span >
527
531
< span class ="sd "> #. ``module.to()``</ span >
532
+ < span class ="sd "> #. ``module.load_state_dict(state_dict)``</ span >
533
+
534
+ < span class ="sd "> The semantics for :meth:`~nn.Module.load_state_dict` when this is set are as follows:</ span >
535
+
536
+ < span class ="sd "> #. For each parameter/buffer, its corresponding``state_dict['key']`` is transformed via</ span >
537
+ < span class ="sd "> :meth:`~torch.Tensor.module_load` (i.e. ``res = param.module_load(state_dict['key'])``)</ span >
538
+ < span class ="sd "> #. If necessary, ``res`` will be wrapped in an :class:`~nn.Parameter`</ span >
539
+ < span class ="sd "> #. The parameter/buffer in the module will be swapped via :func:`~torch.utils.swap_tensors`</ span >
540
+ < span class ="sd "> with ``res``</ span >
541
+
542
+ < span class ="sd "> Args:</ span >
543
+ < span class ="sd "> value (bool): Whether to use :func:`~torch.utils.swap_tensors` or not.</ span >
528
544
529
545
< span class ="sd "> """</ span >
530
546
< span class ="k "> global</ span > < span class ="n "> _swap_module_params_on_conversion</ span >
@@ -534,9 +550,9 @@ <h1>Source code for torch.__future__</h1><div class="highlight"><pre>
534
550
< div class ="viewcode-block " id ="get_swap_module_params_on_conversion "> < a class ="viewcode-back " href ="../../future_mod.html#torch.__future__.get_swap_module_params_on_conversion "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> get_swap_module_params_on_conversion</ span > < span class ="p "> ()</ span > < span class ="o "> -></ span > < span class ="nb "> bool</ span > < span class ="p "> :</ span >
535
551
< span class ="w "> </ span > < span class ="sd "> """</ span >
536
552
< span class ="sd "> Returns whether to use :func:`~torch.utils.swap_tensors` instead of setting .data to</ span >
537
- < span class ="sd "> change the existing parameters in-place when converting an nn.Module. Defaults to ``False``.</ span >
553
+ < span class ="sd "> change the existing parameters in-place when converting an `` nn.Module`` . Defaults to ``False``.</ span >
538
554
539
- < span class ="sd "> See :func:`~torch.nn.utils .set_swap_module_params_on_conversion` for more information.</ span >
555
+ < span class ="sd "> See :func:`~torch.__future__ .set_swap_module_params_on_conversion` for more information.</ span >
540
556
< span class ="sd "> """</ span >
541
557
< span class ="k "> return</ span > < span class ="n "> _swap_module_params_on_conversion</ span > </ div >
542
558
</ pre > </ div >
0 commit comments