
这一节开始,介绍一下tensorflow里的自定义功能,主要是自定义模型和自定义层的计算,这部分会涉及tf里函数式API编程的应用。自定义这些主要是为了让模型更加灵活,能够以自己定义的方式输出结果。像深度学习里比较常用的各种XXNet,都是这类自定义的层和模型组合起来的结果,之后我可能也会写一些比较经典的整合模型的结构。
首先先介绍下模型的自定义(Model),这部分和常用的Senquential类构造模型很相似。这里我们介绍另外一种基于tf.kears.Model类的模型构造方法。
以之前用过的多层感知机(MLP)为例,构建一个包含2层全连接层的模型。这里定义的MLP类重载了tf.kears.Model类的__init__函数和call函数。它们分别用于创建模型参数和定义前向计算。
import tensorflow as tf
import numpy as np
#自定义MLP模型结构
class MLP(tf.keras.Model):
def __init__(self):
super().__init__()
self.flatten = tf.keras.layers.Flatten()
self.dense1 = tf.keras.layers.Dense(units=256, activation='relu')
self.dens