首页 > 其他 > 详细

自定义层or网络

时间:2020-12-12 09:34:28      阅读:28      评论:0      收藏:0      [点我收藏+]

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(<span class="hljs-string">‘w‘</span>, [imp_dim, outp_dim])
    self.bias = self.add_variable(<span class="hljs-string">‘b‘</span>, [outp_dim])

<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">call</span>(<span class="hljs-params">self, inputs, training=<span class="hljs-literal">None</span></span>):</span>
    out = <span class="hljs-built_in">input</span> @ self.kernel + self.bias

    <span class="hljs-keyword">return</span> 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)
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">call</span>(<span class="hljs-params">self, iputs, training=<span class="hljs-literal">None</span></span>):</span>
    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)

    <span class="hljs-keyword">return</span> x

自定义层or网络

原文:https://www.cnblogs.com/abdm-989/p/14123356.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!