如何使用 Python 中的 Keras 从模型的单个层提取特征?


Tensorflow 是 Google 提供的一个机器学习框架。它是一个开源框架,与 Python 结合使用以实现算法、深度学习应用程序等等。它用于研究和生产目的。它具有优化技术,有助于快速执行复杂的数学运算。这是因为它使用 NumPy 和多维数组。这些多维数组也称为“张量”。该框架支持使用深度神经网络。

可以使用以下代码行在 Windows 上安装“TensorFlow”包:

pip install tensorflow

张量是 TensorFlow 中使用的数据结构。它有助于连接流图中的边。此流图称为“数据流图”。张量只不过是多维数组或列表。

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

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

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

import tensorflow
from tensorflow import keras

我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助通过浏览器运行 Python 代码,无需任何配置,并可免费访问 GPU(图形处理单元)。Colaboratory 是建立在 Jupyter Notebook 之上的。以下是代码片段:

示例

print("Feature extraction from one layer only")
initial_model = keras.Sequential(
   [
      keras.Input(shape=(250, 250, 3)),
      layers.Conv2D(32, 5, strides=2, activation="relu"),
      layers.Conv2D(32, 3, activation="relu", name="my_intermediate_layer"),
      layers.Conv2D(32, 3, activation="relu"),
   ]
)
print("Feature extraction from the model")
feature_extractor = keras.Model(
   inputs=initial_model.inputs,
   outputs=initial_model.get_layer(name="my_intermediate_layer").output,
)
print("The feature extractor method is called on test data")
x = tf.ones((1, 250, 250, 3))
features = feature_extractor(x)

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

输出

Feature extraction form one layer only 
Feature extraction form the model
The feature extractor method is called on test data

解释

  • 模型架构准备就绪后,对其进行训练。

  • 训练完成后,对其进行评估。

  • 将此模型保存到磁盘。

  • 可以在需要时恢复此模型。

  • 可以使用多个 GPU 来加速模型的训练。

  • 构建模型后,它的行为类似于函数式 API 模型。

  • 这表示每一层都有输入和输出。

  • 在这里,显式地从单个层提取特征。

更新于: 2021年1月18日

2K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告