tf2.0keras一个简单的自定义层

自定义层
init() 首先是一些必要的参数的初始化
build() 主要声明需要更新的参数部分
call() 包含了主要层的实现
class MyLayer(tf.keras.layers.Layer):
    def __init__(self,output_dim):
    	#接收传的值
        self.output_dim=output_dim
        super(MyLayer,self).__init__()
        
    def build(self,input_shape):   
        #自定义的值,一般是用于call函数的实现的参数        
        self.weight=tf.Variable(tf.random.normal([input_shape[-1],self.output_dim]),name="dense_wight")
        self.bias=tf.Variable(tf.random.normal([self.output_dim]),name="bias_weight")
        super(MyLayer,self).build(input_shape)
    
    def call(self,input_tensor):
    	#层的主要计算
        out=tf.matmul(input_tensor,self.weight)+self.bias
        out=tf.nn.relu(out)
        put=tf.keras.layers.Dropout(0.1)(out)
        return out

你可能感兴趣的:(tensorflow)