@@ -377,9 +377,8 @@ def minimize(self) -> Optional[torch.Tensor]:
377377
378378    @minimize .setter  
379379    def  minimize (self , loss : Optional [torch .Tensor ]) ->  None :
380-         if  loss  is  not None :
381-             if  not  isinstance (loss , torch .Tensor ):
382-                 raise  ValueError (f"`Result.minimize` must be a `torch.Tensor`, found: { loss }  )
380+         if  loss  is  not None  and  not  isinstance (loss , torch .Tensor ):
381+             raise  ValueError (f"`Result.minimize` must be a `torch.Tensor`, found: { loss }  )
383382        self ._minimize  =  loss 
384383
385384    @property  
@@ -388,7 +387,8 @@ def extra(self) -> Dict[str, Any]:
388387        Extras are any keys other than the loss returned by 
389388        :meth:`~pytorch_lightning.core.lightning.LightningModule.training_step` 
390389        """ 
391-         return  self .get ("_extra" , {})
390+         self .setdefault ("_extra" , {})
391+         return  self ["_extra" ]
392392
393393    @extra .setter  
394394    def  extra (self , extra : Dict [str , Any ]) ->  None :
@@ -605,7 +605,16 @@ def cpu(self) -> "ResultCollection":
605605        return  self .to (device = "cpu" )
606606
607607    def  __str__ (self ) ->  str :
608-         return  f"{ self .__class__ .__name__ } { self .training } { self .device } { repr (self )}  
608+         # sample output: `ResultCollection(minimize=1.23, {})` 
609+         minimize  =  f"minimize={ self .minimize }   if  self .minimize  is  not None  else  "" 
610+         # remove empty values 
611+         self_str  =  str ({k : v  for  k , v  in  self .items () if  v })
612+         return  f"{ self .__class__ .__name__ } { minimize } { self_str }  
613+ 
614+     def  __repr__ (self ):
615+         # sample output: `{True, cpu, minimize=tensor(1.23 grad_fn=<SumBackward0>), {'_extra': {}}}` 
616+         minimize  =  f"minimize={ repr (self .minimize )}   if  self .minimize  is  not None  else  "" 
617+         return  f"{{{ self .training } { repr (self .device )}   +  minimize  +  f"{ super ().__repr__ ()}  
609618
610619    def  __getstate__ (self , drop_value : bool  =  True ) ->  dict :
611620        d  =  self .__dict__ .copy ()
0 commit comments