在TensorFlow中實現(xiàn)自定義層有多種方法,下面是一種簡單的方法:
import tensorflow as tf
class CustomLayer(tf.keras.layers.Layer):
def __init__(self, output_dim, **kwargs):
self.output_dim = output_dim
super(CustomLayer, self).__init__(**kwargs)
def build(self, input_shape):
self.kernel = self.add_weight(name='kernel',
shape=(input_shape[1], self.output_dim),
initializer='uniform',
trainable=True)
super(CustomLayer, self).build(input_shape)
def call(self, inputs):
return tf.matmul(inputs, self.kernel)
def compute_output_shape(self, input_shape):
return (input_shape[0], self.output_dim)
input_data = tf.keras.layers.Input(shape=(10,))
custom_layer = CustomLayer(5)(input_data)
output = tf.keras.layers.Dense(1)(custom_layer)
model = tf.keras.models.Model(inputs=input_data, outputs=output)
model.compile(optimizer='adam', loss='mse')
model.summary()
通過上面的方法,我們可以輕松地實現(xiàn)自定義層,并將其集成到神經(jīng)網(wǎng)絡(luò)模型中。