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

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

TensorFlow是由Google提供的一种机器学习框架,它是与Python一起使用以实现算法、深度学习应用等的开源框架。它用于研究和生产目的。

张量是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之上的。以下是代码片段−

更多Python相关文章,请阅读:Python 教程

示例

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’。

  • 它被编译并适应数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程