如何使用 Keras 和 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 之上的。以下是使用 Keras 提取和重用层图中节点的代码片段:

示例

print("VGG19 model with pre-trained weights")
vgg19 = tf.keras.applications.VGG19()
features_list = [layer.output for layer in vgg19.layers]
feat_extraction_model = keras.Model(inputs=vgg19.input, outputs=features_list)

img = np.random.random((1, 224, 224, 3)).astype("float32")
print("Create feature-extraction model")
extracted_features = feat_extraction_model(img)

代码来源 - https://tensorflowcn.cn/guide/keras/functional

输出

VGG19 model with pre-trained weights
Downloading data from https://storage.googleapis.com/tensorflow/kerasapplications/vgg19/vgg19_weights_tf_dim_ordering_tf_kernels.h5
574717952/574710816 [==============================] - 6s 0us/step
Create feature-extraction model

解释

  • 由于层图是静态数据结构,因此可以访问它。

  • 这就是为什么函数式模型可以作为图像绘制的原因。

  • 还可以访问和重用中间层(节点)的激活。

  • 这对于特征提取非常有用。

  • 我们将使用 VGG19 模型,该模型使用 ImageNet 预训练权重。

  • 可以通过查询图数据结构来获得这些中间激活。

  • 这些特征可用于创建一个新的特征提取模型,该模型返回中间层激活的值。

更新于: 2021年1月18日

176 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.