目录
* Outline <https://www.cnblogs.com/nickchen121/p/10922806.html#outline>
* keras.Sequential
<https://www.cnblogs.com/nickchen121/p/10922806.html#keras.sequential>
* Layer/Model <https://www.cnblogs.com/nickchen121/p/10922806.html#layermodel>
* MyDense <https://www.cnblogs.com/nickchen121/p/10922806.html#mydense>
* MyModel <https://www.cnblogs.com/nickchen121/p/10922806.html#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
热门工具 换一换