使用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM