层是 Keras 中神经网络的基本构建块。
一个层由一个张量输入张量输出的计算函数(层的 call
方法)和一些状态组成,这些状态保存在 TensorFlow 变量中(层的 权重)。
层实例是可调用的,很像一个函数:
import keras
from keras import layers
layer = layers.Dense(32, activation='relu')
inputs = keras.random.uniform(shape=(10, 20))
outputs = layer(inputs)
不过,与函数不同的是,层保持一种状态,当层在训练过程中接收到数据时,该状态会更新,并存储在 layer.weights
中:
>>> layer.weights
[<KerasVariable shape=(20, 32), dtype=float32, path=dense/kernel>,
<KerasVariable shape=(32,), dtype=float32, path=dense/bias>]
虽然 Keras 提供了广泛的内置层,但它们并不能涵盖所有可能的用例。创建自定义层是非常常见且非常简单的。
查阅指南
通过子类化创建新层和模型以获取详细概述,并参考文档中的基础 Layer
类。