如何使用 Keras 与嵌入层共享 Python 层?

keraspythonserver side programmingprogramming

Keras 是作为 ONEIROS(开放式神经电子智能机器人操作系统)项目研究的一部分而开发的。Keras 是一个用 Python 编写的深度学习 API。它是一个高级 API,具有高效的界面,有助于解决机器学习问题。它运行在 Tensorflow 框架之上。它旨在帮助快速进行实验。它提供了开发和封装机器学习解决方案所必需的基本抽象和构建块。

它具有高度可扩展性,并具有跨平台能力。这意味着 Keras 可以在 TPU 或 GPU 集群上运行。Keras 模型也可以导出以在 Web 浏览器或手机中运行。

Keras 已经存在于 Tensorflow 包中。可以使用下面的代码行 − 进行访问

import tensorflow
from tensorflow import keras

与使用顺序 API 创建的模型相比,Keras 函数式 API 有助于创建更灵活的模型。函数式 API 可以处理具有非线性拓扑、可以共享层并处理多个输入和输出的模型。深度学习模型通常是包含多个层的有向无环图 (DAG)。函数式 API 有助于构建层图。

我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 有助于在浏览器上运行 Python 代码,并且不需要任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 是建立在 Jupyter Notebook 之上的。以下是使用 Python − 实现与 Embedding 层一起使用的 Keras 的代码片段

示例

print("将 2000 个唯一单词的嵌入映射到 128 维向量")
shared_embedding = layer.Embedding(2000, 128)
print("可变长度整数序列")
text_input_a = keras.Input(shape=(None,), dtype="int32")
print("可变长度整数序列")
text_input_b = keras.Input(shape=(None,), dtype="int32")
print("重复使用相同的层对两个输入进行编码")
encoded_input_a = shared_embedding(text_input_a)
encoded_input_b = shared_embedding(text_input_b)

代码来源 − https://www.tensorflow.org/guide/keras/ functional

输出

将 2000 个唯一单词的嵌入映射到 128 维向量
可变长度整数序列
可变长度整数序列
重复使用相同的层对两个输入进行编码

解释

  • Functional API 模型使用共享层。

  • 这些共享层是可以在同一模型中多次重复使用的实例。

  • 这些层学习与图中的多个路径相对应的特征。

  • 共享层还用于对来自两个不同部分的输入进行编码具有相似词汇的文本。

  • 这样,不同输入之间的信息共享就成为可能。

  • 因此,模型可以在较少的数据量上进行训练。

  • 上述代码中的"嵌入"层在两个不同的文本之间共享。


相关文章