目錄python
keras.Sequentialui
keras.layers.Layerlua
keras.Modelcode
model.trainable_variables # 管理參數ip
model.call()ci
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()
Inherit from keras.layers.Layer/keras.Modelinput
__init__it
callclass
Model:compile/fit/evaluatenetwork
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
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