zoukankan      html  css  js  c++  java
  • 使用tf.keras.layers.Layer自定义神经网络的层

    tensorflow中的类tf.keras.layers.Layer可用于创建神经网络中的层,使用说明如下。

    使用tf.keras.layers.Layer创建自定义的层

    import tensorflow as tf
    
    class MyLayer(tf.keras.layers.Layer):
        def __init__(self, num_outputs):
            super(MyLayer, self).__init__()
            self.num_outputs = num_outputs
    	
        def build(self, input_shape):
            self.kernel = self.add_variable("kernel",
                                            shape=[int(input_shape[-1]),
                                                   self.num_outputs])
            self.bias = self.add_variable("bias",
                                          shape=[self.num_outputs])
        def call(self, input):
            output = tf.matmul(input, self.kernel) + self.bias
            output = tf.nn.sigmoid(output)
            return output
    

    创建一个层

    layer1 = MyLayer(3)  # 创建一个由3个神经元构成的层
    layer1.build((2,))  # 设定神经层的输入的维度是2
    print(layer1.kernel)  #打印接入该神经层的权重矩阵
    print(layer1.bias)  #打印该层各神经元的偏置
    

    创建一个张量并输入该层

    a = tf.constant([[0.1,0.2],[0.3,0.4]])  # 创建一个张量
    print(layer1.call(a))  # 将张量输入该层
    

    参考文献:
    tensorflow2.0 - 自定义layer

  • 相关阅读:
    【bzoj1010】[HNOI2008]玩具装箱toy
    bzoj 3173
    bzoj 1179
    bzoj 2427
    bzoj 1051
    bzoj 1877
    bzoj 1066
    bzoj 2127
    bzoj 1412
    bzoj 3438
  • 原文地址:https://www.cnblogs.com/bill-h/p/13896863.html
Copyright © 2011-2022 走看看