1.如何自定义层
2.三种方法自定义层
方法一
import tensorflow as tf
#自定义全连接层
class Linear(tf.keras.layers.Layer):
def __init__(self, units=1, input_dim=4):
super(Linear, self).__init__()
# 随机初始化张量
w_init = tf.random_normal_initializer()
# tf.Variable用来初始化一些变量
self.w = tf.Variable(initial_value=w_init(shape=(input_dim, units),dtype='float32'), trainable=True)
b_init = tf.zeros_initializer()
self.b = tf.Variable(initial_value=b_init(shape=(units,),dtype='float32'),trainable=True)
def call(self, inputs):
return tf.matmul(inputs, self.w) + self.b
x = tf.constant(data) #(150,4)
linear_layer = Linear(units = 1, input_dim=4)
y = linear_layer(x)
print(y.shape) #(150,1)
方法二
# 使用self.add_weight来创建变量
class Linear(tf.keras.layers.Layer):
def __init__(self,units