Tensorflow(二十五) —— 自定义层与网络结构
1. 自定义Dense案例
# 自定义Dense案例
class MyDense(keras.layers.Layer):
def __init__(self,inp_dim,outp_dim):
super(MyDense,self).__init__()
self.kernel = self.add_weight("w",[inp_dim,outp_dim])
self.bias = self.add_weight("b",[outp_dim])
def call(self,inputs,training = None):
out = inputs@self.kernel + self.bias
return out
layer = MyDense(28*28,10)
layer(tf.random.normal([20,28*28])).shape
2. 自定义model实例
# 自定义model实例
class MyModel(keras.Model):
def __init__(self):
super(MyModel,self).__init__()
self.Dense1 = MyDense(28*28,256)
self.Dense2 = MyDense(256,128)
self.Dense3 = MyDense(128,64)
self.Dense4 = MyDense(64,32)
self.Dense5 = MyDense(32,10)
def call(self,inputs,training = None):
print(inputs)
x = tf.nn.relu(self.Dense1(inputs))
x = tf.nn.relu(self.Dense2(x))
x = tf.nn.relu(self.Dense3(x))
x = tf.nn.relu(self.Dense4(x))
x = self.Dense5(x)
return x
model = MyModel()
model(tf.random.normal([20,28*28])).shape
本文为参考龙龙老师的“深度学习与TensorFlow 2入门实战“课程书写的学习笔记
by CyrusMay 2022 04 17