第四章
概括深度学习计算的各个重要组成部分,如模型构造、参数的访问和初始化等,自定义层,读取、存储和 使用GPU
模型构造
模型参数的访问、初始化和共享
读写Gluon模型的参数
模型构造
Block类是nn模块里提供的一个模型构造类,可以继承它来定义我们想要的模型。
#这里定义的MLP类重载了Block类的__init__函 数和forward函数。它们分别用于创建模型参数和定义前向计算
from mxnet import nd
from mxnet.gluon import nn
class MLP(nn.Block):
# 声明带有模型参数的层,这里声明了两个全连接层
def __init__(self, **kwargs):
# 调用MLP父类Block的构造函数来进行必要的初始化。这样在构造实例时还可以指定其他函数
# 参数,如“模型参数的访问、初始化和共享”一节将介绍的模型参数
super(MLP, self).__init__(**kwargs)
self.hidden = nn.Dense(256, activation='relu')# 隐藏层
self.output = nn.Dense(10) # 输出层
# 定义模型的前向计算,即如何根据输入x计算返回所需要的模型输出
def forward(self, x):
return self.output(self.hidden(x))模型参数的访问、初始化和共享
在有些情况下,我们希望在多个层之间共享模型参数
读写Gluon模型的参数
Gluon的Block类提供了save_parameters函数和load_parameters函数来读写模型参数。
最后更新于
这有帮助吗?