如何使用 Keras 和 Embedding 层在 Python 中共享层?
Keras 是作为 ONEIROS 项目(开放式神经电子智能机器人操作系统)研究的一部分而开发的。Keras 是一个用 Python 编写的深度学习 API。它是一个高级 API,具有高效的接口,有助于解决机器学习问题。它运行在 TensorFlow 框架之上。它的构建是为了帮助以快速的方式进行实验。它提供了开发和封装机器学习解决方案所必需的基本抽象和构建块。
它具有高度的可扩展性,并具有跨平台功能。这意味着 Keras 可以运行在 TPU 或 GPU 集群上。Keras 模型还可以导出到 Web 浏览器或手机上运行。
Keras 已经存在于 TensorFlow 包中。可以使用以下代码行访问它:
import tensorflow from tensorflow import keras
Keras 函数式 API 有助于创建与使用顺序 API 创建的模型相比更灵活的模型。函数式 API 可以处理具有非线性拓扑的模型,可以共享层并处理多个输入和输出。深度学习模型通常是一个包含多个层的有向无环图 (DAG)。函数式 API 有助于构建层图。
我们正在使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 有助于通过浏览器运行 Python 代码,并且无需任何配置即可免费访问 GPU(图形处理单元)。Colaboratory 是建立在 Jupyter Notebook 之上的。以下是使用 Python 实现 Keras 与 Embedding 层共享层的代码片段:
示例
print("Embedding for 2000 unique words mapped to 128-dimensional vectors") shared_embedding = layers.Embedding(2000, 128) print("Variable-length integer sequence") text_input_a = keras.Input(shape=(None,), dtype="int32") print("Variable-length integer sequence") text_input_b = keras.Input(shape=(None,), dtype="int32") print("Reuse the same layers to encode both the inputs") encoded_input_a = shared_embedding(text_input_a) encoded_input_b = shared_embedding(text_input_b)
代码来源 - https://tensorflowcn.cn/guide/keras/functional
输出
Embedding for 2000 unique words mapped to 128-dimensional vectors Variable-length integer sequence Variable-length integer sequence Reuse the same layers to encode both the inputs
解释
函数式 API 模型使用共享层。
这些共享层是可以多次在同一模型中重用的实例。
这些层学习与图中多个路径相对应的特征。
共享层还用于编码来自文本两个不同部分的输入,这些部分具有相同的词汇表。
这样,就可以在不同的输入之间共享信息。
因此,模型可以在较少的数据量上进行训练。
在上面的代码中,“Embedding”层在两个不同的文本之间共享。