27 def map_optimizer_to_enum(optimizer_instance):
28 """
29 Maps an optimizer instance to the appropriate enum value.
30 Args:
31 optimizer_instance (Optimizer): An instance of an optimizer.
32 Returns:
33 optimizer_type: Corresponding enum value for the optimizer.
34 Raises:
35 TypeError: If the optimizer_instance is not a recognized optimizer type.
36 """
37
38 optimizer_to_enum = {SGD: optimizer_type.SGD, Adam: optimizer_type.ADAM}
39 for optimizer_class, enum_value in optimizer_to_enum.items():
40 if isinstance(optimizer_instance, optimizer_class):
41 return enum_value
42 raise TypeError(
43 f"Unsupported optimizer type: {type(optimizer_instance).__name__}. "
44 f"Supported types are: {list(optimizer_to_enum.keys())}.")