32.4_修改__init__.py

32.4 修改__init__.py

到这里就完成了新DeZero的核心功能。我们将在dezero/core.py中完成目前所做的修改。从现在开始,我们使用dezero/core.py代替dezero/coresimple.py。为此,需要将用于初始化操作的dezero/init_.py修改成如下内容。

dezero/init.py

#从step23.py到step32.py使用simple_core  
is.simple_core  $=$  False #True  
if is-simple_core:fromdezero.core simplesimputVariablefromdezero.core simplesimportFunctionfromdezero.core simplesimportusing_configfromdezero.core simplesimportno_gradfromdezero.core simplesimportas_arrayfromdezero.core simplesimportas_variablefromdezero.core simplesimportsetup_variable  
else:fromdezero.core importVariablefromdezero.core importFunctionfromdezero.core import using_configfromdezero.core import no_gradfromdezero.core import as_arrayfromdezero.core import as_variablefromdezero.core import setup_variable

上面的代码将is.simple_core改为False,这样就可以从dezero/core.py中导入支持高阶导数的core文件了。

core SIMPLE.py中没有修改的类和函数也被复制到了dezero/core.py中,如Function类和using_config函数等。

本步骤到此结束。在下一个步骤,我们将使用新的DeZero自动计算高阶导数。

步骤33

使用牛顿法进行优化(自动计算)

我们在前面通过手动计算求出了二阶导数。这里我们使用新的DeZero来自动计算二阶导数。首先针对简单的计算求二阶导数。如果验证可行,之后使用牛顿法进行优化。