如何使用 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 模型。
这表示每一层都有输入和输出。
在这里,显式地从单个层提取特征。