第四章

概括深度学习计算的各个重要组成部分,如模型构造、参数的访问和初始化等,自定义层,读取、存储和 使用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函数来读写模型参数。

最后更新于

这有帮助吗?