如何使用 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”层在两个不同的文本之间共享。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP