目录
- Outline
- keras.Sequential
- Layer/Model
- MyDense
- MyModel
Outline
keras.Sequential
keras.layers.Layer
keras.Model
keras.Sequential
model.trainable_variables # 管理参数
model.call()
network = Sequential([ layers.Dense(256, acitvaiton='relu'), layers.Dense(128, acitvaiton='relu'), layers.Dense(64, acitvaiton='relu'), layers.Dense(32, acitvaiton='relu'), layers.Dense(10) ]) network.build(input_shape=(None, 28 * 28)) network.summary()
Layer/Model
Inherit from keras.layers.Layer/keras.Model
__init__
call
Model:compile/fit/evaluate
MyDense
class MyDense(layers.Layer): def __init__(self, inp_dim, outp_dim): super(MyDense, self).__init__() self.kernel = self.add_variable('w', [imp_dim, outp_dim]) self.bias = self.add_variable('b', [outp_dim]) def call(self, inputs, training=None): out = input @ self.kernel + self.bias return out
MyModel
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 = MyDense(32, 10) def call(self, iputs, training=None): x = self.fc1(inputs) x = tf.nn.relu(x) x = self.fc2(x) x = tf.nn.relu(x) x = self.fc3(x) x = tf.nn.relu(x) x = self.fc4(x) x = tf.nn.relu(x) x = self.fc5(x) return x