1.keras.Sequential
2.Layer/Model
3.自定义层
# 自定义Dense层
class MyDense(layers.Layer):
# 初始化方法
def __init__(self,inp_dim,outp_dim):
# 调用母类的初始化
super(MyDense,self).__init__()
# self.add_variable作用是在创建这两个Variable时,同时告诉类这两个variable是需要创建的
# 当两个容器拼接时,会把这两个variable交给上面的容器来管理,统一管理,不需要人为管理参数
# 这个函数在母类中实现,所以可以直接调用
self.kernel = self.add_variable('w',[inp_dim,outp_dim])
self.bias = self.add_variable('b',[outp_dim])
def call(self,inputs,training = None):
out = inputs @ self.kernel + self.bias
return out
4.自定义网络
# 利用自定义层,创建自定义网络(5层)
class MyModel(keras.Model):
def __init__(self):
super(MyModel,self).__init__()
self.fc1 = MyDense(28*28,256)
self.fc2 = MyDense(256,128)
self.fc3 = MyDense(128,64)
self.fc4 = MyDense(64,32)
self.fc5 =