如何使用 Keras 在 Python 中实现迁移学习?

keraspythonserver side programmingprogramming

Tensorflow 是 Google 提供的机器学习框架。它是一个开源框架,与 Python 结合使用,用于实现算法、深度学习应用程序等。它用于研究和生产目的。

Tensor 是 TensorFlow 中使用的数据结构。它有助于连接流程图中的边缘。此流程图称为"数据流图"。张量不过是一个多维数组或列表。

Keras 在希腊语中意为"号角"。Keras 是作为 ONEIROS(开放式神经电子智能机器人操作系统)项目研究的一部分而开发的。Keras 是一个用 Python 编写的深度学习 API。它是一个高级 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 之上。以下是代码片段 −

示例

model = keras.Sequential([
   keras.Input(shape=(784))
   layers.Dense(32,activation='relu'),
   layers.Dense(32,activation='relu'),
   layers.Dense(32,activation='relu'),
   layers.Dense(10),
])
print("加载预先训练的权重")
model.load_weights(...)
print("冻结除最后一层之外的所有层")
for layer in model.layers[:-1]:
   layer.trainable = False
print("重新编译模型并进行训练")
print("最后一层权重将被更新")
model.compile(...)
model.fit(...)

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

输出

加载预训练权重
冻结除最后一层以外的所有层
重新编译模型并进行训练
最后一层权重将被更新

解释

  • 迁移学习表示冻结模型中的底层并训练顶层。

  • 顺序模型已构建。

  • 旧模型的预训练权重已加载并与此模型绑定。

  • 除最后一层外,底层均已冻结。

  • 层进行迭代,除最后一层外,每一层的‘layer.trainable’都设置为‘False’。

  • 它已编译并适合数据。


相关文章