好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

自定义层or网络

目录

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

查看更多关于自定义层or网络的详细内容...

  阅读:34次