@@ -21,7 +21,8 @@ public abstract class Optimizer : Trackable
2121 public static int GATE_OP = 1 ;
2222 public static int GATE_GRAPH = 2 ;
2323
24- public string Name { get ; set ; }
24+ string _name ;
25+ public string Name => _name ;
2526 public float LearningRate { get ; set ; }
2627 public Tensor LearningRateTensor { get ; set ; }
2728 public bool _use_locking ;
@@ -35,7 +36,7 @@ public Optimizer(float learning_rate, bool use_locking, string name = null)
3536 if ( String . IsNullOrEmpty ( name ) )
3637 throw new NotImplementedException ( "Must specify the optimizer name" ) ;
3738
38- Name = name ;
39+ _name = name ;
3940 _use_locking = use_locking ;
4041 LearningRate = learning_rate ;
4142 // Dictionary of slots.
@@ -391,22 +392,34 @@ protected T _call_if_callable<T>(T param)
391392 /// <param name="slot_name"></param>
392393 /// <param name="op_name"></param>
393394 /// <returns></returns>
394- protected RefVariable _zero_slot ( RefVariable var , string slot_name , string op_name )
395+ protected RefVariable _zeros_slot ( RefVariable var , string slot_name , string op_name )
395396 {
396397 var named_slots = _slot_dict ( slot_name ) ;
397398 if ( ! named_slots . ContainsKey ( _var_key ( var ) ) )
398399 {
399400 var new_slot_variable = slot_creator . create_zeros_slot ( var , op_name ) ;
401+ _restore_slot_variable ( slot_name : slot_name , variable : var , slot_variable : new_slot_variable ) ;
402+ named_slots [ _var_key ( var ) ] = new_slot_variable ;
400403 }
401404 return named_slots [ _var_key ( var ) ] ;
402405 }
403406
407+ /// <summary>
408+ /// Restore a newly created slot variable's value.
409+ /// </summary>
410+ protected void _restore_slot_variable ( string slot_name , RefVariable variable , RefVariable slot_variable )
411+ {
412+ var variable_key = _var_key ( variable ) ;
413+ // TODO
414+ }
415+
404416 protected Dictionary < string , RefVariable > _slot_dict ( string slot_name )
405417 {
406418 var named_slots = _slots . ContainsKey ( slot_name ) ? _slots [ slot_name ] : null ;
407419 if ( named_slots == null )
408420 {
409- _slots [ slot_name ] = new Dictionary < string , RefVariable > ( ) ;
421+ named_slots = new Dictionary < string , RefVariable > ( ) ;
422+ _slots [ slot_name ] = named_slots ;
410423 }
411424
412425 return named_slots ;
0 commit comments