hparam
常规符号的标准超参数类。
类
DynamicModule 的一个基础超参数。 |
- class Hparam
基础类:
objectDynamicModule 的一个基础超参数。
这种Hparam的一个例子可能是具有身份依赖关系的hparam。
- ActiveSlice
Union[slice,LongTensor] 的别名
- Importance
Optional[Tensor] 的别名
- ImportanceEstimator
Callable[[],Optional[Tensor]] 的别名
- __init__(choices, original=None)
使用原始值和选择初始化Hparam。
- Parameters:
choices (Sequence[Tuple[int, ...] | int | float | CustomHPType]) –
原始 (元组[整数, ...] | 整数 | 浮点数 | 自定义HP类型 | 无) –
- Return type:
无
- property active: Tuple[int, ...] | int | float | CustomHPType
返回当前活动的值。
- property active_slice: slice | LongTensor
返回当前活动的排序索引或与活动值对应的切片。
- property choices: Sequence[Tuple[int, ...] | int | float | CustomHPType]
返回可用的选项。
- enforce_order(order=None)
存储对此订单的引用,并为active_slice强制执行订单。
此功能使用户能够强制执行active_slice的生成顺序。
示例
如果hparam的当前值为16且最大值为32,默认情况下active_slice将是
slice(16),这相当于range(16)(尽管更快)。当设置了order时,active_slice将返回self._order[:16]。待办事项:我们是否需要一个循环检测器在这里?
- Parameters:
order (Tensor | None) –
- Return type:
无
- property importance: Tensor | None
计算并返回hparam所代表的特征之间的归一化重要性。
请注意,重要性表示为一个1d张量,其长度等于hparam的最大选择(Hparam.max)。
例如,如果hparam表示Conv2d层的in_channels数量,那么重要性应该是一个1d张量,其重要性分数的长度等于in_channels的数量。
请注意,每个模块都应注册适当的重要性回调函数,以计算与hparam选择相关的实际重要性。如果hparam没有重要性的概念,此函数将返回None。
- property is_configurable
返回hparam是否可配置。
- property is_sortable
返回 hparam 是否可排序。
- property max: Tuple[int, ...] | int | float | CustomHPType
从选择中返回最大值。
- property min: Tuple[int, ...] | int | float | CustomHPType
从选择中返回最小值。
- property original: Tuple[int, ...] | int | float | CustomHPType
从选择中返回原始值。
- register_importance(importance_estimator)
为hparam注册重要性估计器。
此估计器不接受任何参数,并应返回一个单一参数(可选的一维张量),表示hparam所代表的特征之间的重要性。如果返回的参数是张量,则张量的长度必须等于hparam的最大选择(Hparam.max)。
- Parameters:
importance_estimator (Callable[[], Tensor | None]) –