在TensorFlow2.0中,任何一个自定义层都继承自tf.keras.layers.Layer,我们将其称为“父层”
自定义层中主要用到三个函数,build、call和__init__函数
首先是__init__函数,用来初始化参数,主要是输入的维度信息
class MyLayer(tf.keras.layers.Layer): #继承自Layer层
def __init__(self,output_dim): #self是必须的,后面加上要初始化的参数
self.output_dim=output_dim #载入参数
super(MyLayer,self).__init__() #向父类中进行注册
然后是build函数,生命需要更新的参数部分,如权重偏置,一般用self.kernel=tf.Variable(shape=[])等来声明需要更新的参数变量
def build(self, input_shape): #input参数中input_shape中形参是固定不变的写法
self.weight=tf.Variable(tf.random.normal([input_shape[-1],self.output_dim]),name='danse_weight')
self.bias=tf.Variable(tf.random.normal([self.output_dim]),name=