235
235
< div class ="pytorch-left-menu-search ">
236
236
237
237
< div class ="version ">
238
- < a href ='https://pytorch.org/docs/versions.html '> master (1.14.0a0+git4c20c05 ) ▼</ a >
238
+ < a href ='https://pytorch.org/docs/versions.html '> master (1.14.0a0+gite804c72 ) ▼</ a >
239
239
</ div >
240
240
241
241
@@ -503,9 +503,6 @@ <h1>Source code for torch._tensor</h1><div class="highlight"><pre>
503
503
504
504
505
505
< span class ="k "> def</ span > < span class ="nf "> _rebuild_from_type_v2</ span > < span class ="p "> (</ span > < span class ="n "> func</ span > < span class ="p "> ,</ span > < span class ="n "> new_type</ span > < span class ="p "> ,</ span > < span class ="n "> args</ span > < span class ="p "> ,</ span > < span class ="n "> state</ span > < span class ="p "> ):</ span >
506
- < span class ="k "> if</ span > < span class ="n "> new_type</ span > < span class ="ow "> is</ span > < span class ="n "> Tensor</ span > < span class ="p "> :</ span >
507
- < span class ="k "> return</ span > < span class ="n "> func</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> args</ span > < span class ="p "> )</ span >
508
-
509
506
< span class ="n "> ret</ span > < span class ="o "> =</ span > < span class ="n "> func</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> args</ span > < span class ="p "> )</ span >
510
507
< span class ="k "> if</ span > < span class ="nb "> type</ span > < span class ="p "> (</ span > < span class ="n "> ret</ span > < span class ="p "> )</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="n "> new_type</ span > < span class ="p "> :</ span >
511
508
< span class ="n "> ret</ span > < span class ="o "> =</ span > < span class ="n "> ret</ span > < span class ="o "> .</ span > < span class ="n "> as_subclass</ span > < span class ="p "> (</ span > < span class ="n "> new_type</ span > < span class ="p "> )</ span >
@@ -518,21 +515,7 @@ <h1>Source code for torch._tensor</h1><div class="highlight"><pre>
518
515
< span class ="p "> ):</ span >
519
516
< span class ="n "> ret</ span > < span class ="o "> .</ span > < span class ="n "> __setstate__</ span > < span class ="p "> (</ span > < span class ="n "> state</ span > < span class ="p "> )</ span >
520
517
< span class ="k "> else</ span > < span class ="p "> :</ span >
521
- < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> state</ span > < span class ="p "> ,</ span > < span class ="nb "> tuple</ span > < span class ="p "> ):</ span >
522
- < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> state</ span > < span class ="p "> )</ span > < span class ="o "> ==</ span > < span class ="mi "> 2</ span > < span class ="p "> :</ span >
523
- < span class ="k "> raise</ span > < span class ="ne "> RuntimeError</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "Invalid serialized state: </ span > < span class ="si "> {</ span > < span class ="n "> state</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
524
- < span class ="n "> dict_state</ span > < span class ="o "> =</ span > < span class ="n "> state</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ]</ span >
525
- < span class ="n "> slots_state</ span > < span class ="o "> =</ span > < span class ="n "> state</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span >
526
- < span class ="k "> else</ span > < span class ="p "> :</ span >
527
- < span class ="n "> dict_state</ span > < span class ="o "> =</ span > < span class ="n "> state</ span >
528
- < span class ="n "> slots_state</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span >
529
-
530
- < span class ="k "> for</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span > < span class ="n "> v</ span > < span class ="ow "> in</ span > < span class ="n "> dict_state</ span > < span class ="o "> .</ span > < span class ="n "> items</ span > < span class ="p "> ():</ span >
531
- < span class ="nb "> setattr</ span > < span class ="p "> (</ span > < span class ="n "> ret</ span > < span class ="p "> ,</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span > < span class ="n "> v</ span > < span class ="p "> )</ span >
532
-
533
- < span class ="k "> if</ span > < span class ="n "> slots_state</ span > < span class ="p "> :</ span >
534
- < span class ="k "> for</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span > < span class ="n "> v</ span > < span class ="ow "> in</ span > < span class ="n "> slots_state</ span > < span class ="o "> .</ span > < span class ="n "> items</ span > < span class ="p "> ():</ span >
535
- < span class ="nb "> setattr</ span > < span class ="p "> (</ span > < span class ="n "> ret</ span > < span class ="p "> ,</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span > < span class ="n "> v</ span > < span class ="p "> )</ span >
518
+ < span class ="n "> ret</ span > < span class ="o "> =</ span > < span class ="n "> torch</ span > < span class ="o "> .</ span > < span class ="n "> _utils</ span > < span class ="o "> .</ span > < span class ="n "> _set_obj_state</ span > < span class ="p "> (</ span > < span class ="n "> ret</ span > < span class ="p "> ,</ span > < span class ="n "> state</ span > < span class ="p "> )</ span >
536
519
< span class ="k "> return</ span > < span class ="n "> ret</ span >
537
520
538
521
@@ -669,31 +652,10 @@ <h1>Source code for torch._tensor</h1><div class="highlight"><pre>
669
652
< span class ="k "> return</ span > < span class ="n "> new_tensor</ span >
670
653
671
654
< span class ="k "> def</ span > < span class ="nf "> __reduce_ex__</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> proto</ span > < span class ="p "> ):</ span >
672
- < span class ="k "> if</ span > < span class ="nb "> type</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> )</ span > < span class ="ow "> is</ span > < span class ="n "> Tensor</ span > < span class ="p "> :</ span >
673
- < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _reduce_ex_internal</ span > < span class ="p "> (</ span > < span class ="n "> proto</ span > < span class ="p "> )</ span >
674
655
< span class ="k "> if</ span > < span class ="n "> has_torch_function_unary</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
675
656
< span class ="k "> return</ span > < span class ="n "> handle_torch_function</ span > < span class ="p "> (</ span > < span class ="n "> Tensor</ span > < span class ="o "> .</ span > < span class ="n "> __reduce_ex__</ span > < span class ="p "> ,</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,),</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> proto</ span > < span class ="p "> )</ span >
676
657
< span class ="n "> func</ span > < span class ="p "> ,</ span > < span class ="n "> args</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _reduce_ex_internal</ span > < span class ="p "> (</ span > < span class ="n "> proto</ span > < span class ="p "> )</ span >
677
- < span class ="c1 "> # Get the state of the python subclass</ span >
678
- < span class ="c1 "> # This loosely mimicks the function on the object class but since Tensor do not inherit</ span >
679
- < span class ="c1 "> # from it, we cannot call that function directly</ span >
680
- < span class ="c1 "> # https://github.com/python/cpython/blob/c83919bd635f4433f1c6ae8504996a9fe3c215e5/Objects/typeobject.c#L4891</ span >
681
- < span class ="n "> getstate_fn</ span > < span class ="o "> =</ span > < span class ="nb "> getattr</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="s2 "> "__getstate__"</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span >
682
- < span class ="k "> if</ span > < span class ="n "> getstate_fn</ span > < span class ="p "> :</ span >
683
- < span class ="n "> state</ span > < span class ="o "> =</ span > < span class ="n "> getstate_fn</ span > < span class ="p "> ()</ span >
684
- < span class ="k "> else</ span > < span class ="p "> :</ span >
685
- < span class ="n "> slots_to_save</ span > < span class ="o "> =</ span > < span class ="n "> copyreg</ span > < span class ="o "> .</ span > < span class ="n "> _slotnames</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="vm "> __class__</ span > < span class ="p "> )</ span > < span class ="c1 "> # type: ignore[attr-defined]</ span >
686
- < span class ="k "> if</ span > < span class ="n "> slots_to_save</ span > < span class ="p "> :</ span >
687
- < span class ="n "> state</ span > < span class ="o "> =</ span > < span class ="p "> (</ span >
688
- < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="vm "> __dict__</ span > < span class ="p "> ,</ span >
689
- < span class ="p "> {</ span >
690
- < span class ="n "> name</ span > < span class ="p "> :</ span > < span class ="nb "> getattr</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> name</ span > < span class ="p "> )</ span >
691
- < span class ="k "> for</ span > < span class ="n "> name</ span > < span class ="ow "> in</ span > < span class ="n "> slots_to_save</ span >
692
- < span class ="k "> if</ span > < span class ="nb "> hasattr</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> name</ span > < span class ="p "> )</ span >
693
- < span class ="p "> },</ span >
694
- < span class ="p "> )</ span >
695
- < span class ="k "> else</ span > < span class ="p "> :</ span >
696
- < span class ="n "> state</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="vm "> __dict__</ span >
658
+ < span class ="n "> state</ span > < span class ="o "> =</ span > < span class ="n "> torch</ span > < span class ="o "> .</ span > < span class ="n "> _utils</ span > < span class ="o "> .</ span > < span class ="n "> _get_obj_state</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> )</ span >
697
659
< span class ="k "> return</ span > < span class ="p "> (</ span > < span class ="n "> _rebuild_from_type_v2</ span > < span class ="p "> ,</ span > < span class ="p "> (</ span > < span class ="n "> func</ span > < span class ="p "> ,</ span > < span class ="nb "> type</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ),</ span > < span class ="n "> args</ span > < span class ="p "> ,</ span > < span class ="n "> state</ span > < span class ="p "> ))</ span >
698
660
699
661
< div class ="viewcode-block " id ="Tensor.storage "> < a class ="viewcode-back " href ="../../generated/torch.Tensor.storage.html#torch.Tensor.storage "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> storage</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
0 commit comments