d2l中save_hyperparameters忽略参数c的原因咨询
关于d2l中HyperParameters类save_hyperparameters方法的疑问解答
- 书中展示的HyperParameters类的
save_hyperparameters方法是教学用占位代码,仅用于定义接口、说明方法的存在与预期功能,并没有实现实际逻辑。而你实际运行时调用的是d2l库中已经完整实现的HyperParameters类,其save_hyperparameters方法包含了完整的参数处理逻辑。 - 库中实现的
save_hyperparameters方法核心作用是:将__init__方法接收的参数自动赋值为实例属性,但会跳过ignore列表中指定的参数。当你在子类B的__init__中调用self.save_hyperparameters(ignore=['c'])时,该方法会识别到需要忽略参数c,因此不会将c绑定为实例的属性,这就是实例化后不存在c属性的原因。 - 本质是你看到的书中代码是接口定义的演示,实际运行的是库的完整实现代码,两者不是同一套逻辑,所以能实现忽略参数的功能。
内容的提问来源于stack exchange,提问作者stackoverflow
相关产品推荐
相关产品推荐

