Press "Enter" to skip to content

Keras 3.0:你需要知道的一切

Keras 3.0:你需要知道的一切 四海 第1张  

在我们深入了解这一令人兴奋的进展之前,让我们先通过一个场景来更好地理解它。想象一下,你是一位高级数据科学家,负责一个复杂的图像分类项目。你基于TensorFlow的模型表现出色。然而,随着你添加更多功能,你注意到一些团队成员更喜欢JAX以便于扩展性,而另一些人则更喜欢PyTorch的用户友好性。作为团队负责人,你如何确保不同深度学习框架下的无缝协作,同时保持模型的效率呢?

为了解决这个挑战,Keras团队推出了Keras Core——一个创新的多后端Keras API实现,支持TensorFlow、JAX和PyTorch。这个库将在2023年秋季发展为Keras 3.0。但在我们直接跳入Keras 3.0之前,让我们先简要回顾一下Keras的历史。

 

Keras和3.0之路的简要历史

 

2015年,François Chollet推出了Keras,一个用Python编写的开源深度学习库。这个简单而强大的API通过简化复杂的神经网络构建,迅速在研究人员、学生和专业人士中流行起来。随着时间的推移,Keras得到了显著的增强,使其在深度学习社区中更加有吸引力。最终,Keras成为了TensorFlow的一个重要组成部分,TensorFlow是谷歌的前沿深度学习框架。与此同时,Facebook的AI研究实验室开发了PyTorch,以其直观和灵活的模型构建而闻名。与此同时,JAX作为另一个强大的高性能机器学习研究框架出现了。随着这些框架的发展势头,开发人员开始面临在这些框架之间选择的困境。这导致了深度学习社区的进一步分裂。

为了应对这种碎片化框架所带来的挑战,Keras的开发人员决定再次改进这个库,从而催生了Keras 3.0。

 

Keras 3.0的显著特点

 

Keras 3.0使您能够与团队有效地协作。您可以通过结合TensorFlow、JAX和PyTorch的优势来开发复杂的模型,使用统一的前端。以下是Keras 3.0的一些绝对改变游戏规则的特点:

 

1. 多后端支持

 

Keras 3.0充当一个超级连接器,使得无缝使用TensorFlow、JAX和PyTorch成为可能。开发人员可以自由地混合和匹配最适合他们特定任务的工具,而无需改变代码。

 

2. 性能优化

 

性能优化是Keras 3.0的关键特点。默认情况下,Keras 3.0利用XLA(加速线性代数)编译。XLA编译优化了您的数学计算,使其在像GPU和TPU这样的硬件上运行得更快。它还允许您动态选择最佳后端,以确保最佳效率。这样的性能优化功能非常重要,让您能够训练更多模型,进行更多实验,并更快地获得结果。

 

3. 扩展的生态系统表面

 

您的Keras模型可以作为PyTorch模块、TensorFlow SavedModels或JAX的大规模TPU训练基础设施的一部分。这意味着您可以利用每个框架的优势。因此,借助Keras 3.0的扩展生态系统,您不会局限于一个单一的生态系统。它就像是一个通用适配器,让您可以将您喜爱的设备连接到任何机器上。

 

4. 跨框架低级语言

 

keras_core.ops命名空间的引入是一个开创性的功能,它使您能够编写一次自定义操作,并在不同的深度学习框架中轻松使用它们。这些keras_core.ops提供了一套工具和函数,类似于广泛使用的NumPy API,NumPy是Python中广泛使用的用于数值计算的库。这种跨框架兼容性水平促进了代码的可重用性和协作。

 

5. 逐步披露复杂性

 

Keras 3.0 的设计方法使其与其他深度学习框架有所区别。想象一下,你是一个初学者,想使用 Keras 3.0 构建一个简单的神经网络。它会在开始时为你呈现最直观的工作流程。一旦你熟悉了基础知识,你就可以访问所有的高级功能和低级功能。它不限制你只能使用预定义的工作流程。这种方法的优点在于它的适应性,对于初学者和经验丰富的深度学习从业者都非常友好。

 

6. 无状态的层、模型、度量和优化器的API

 

在深度学习的上下文中,状态指的是在训练过程中发生变化的内部变量和参数。然而,JAX 的工作原理是无状态的,意味着函数没有可变的变量或内部状态。Keras 3.0 通过无状态的 API来接纳 JAX 的无状态性。它允许深度学习的核心组件-层、模型、度量和优化器-以无状态的方式进行设计。这种独特的兼容性使得 Keras 3.0 在现代 AI 开发中成为不可或缺的工具。

 

开始使用 Keras 3.0

 

Keras Core 兼容 Linux 和 MacOS 系统。设置 Keras 3.0 是一个简单的过程。以下是您可以按照的逐步指南:

 

1. 克隆并导航到存储库

 

使用以下命令将存储库克隆到您的本地系统中

git clone https://github.com/keras-team/keras-core.git

 

使用以下命令将您的根目录更改为克隆的 keras-core:

cd keras-core

 

2. 安装依赖项

 

打开您的终端并运行以下命令来安装所需的依赖项。

pip install -r requirements.txt

 

4. 运行安装命令

 

运行以下脚本来处理安装过程:

python pip_build.py --install

 

5. 配置后端

 

默认情况下,Keras Core 严格要求 TensorFlow 作为后端框架,但您可以使用以下两种方法进行配置:

选项 01:您可以将 KERAS_BACKEND 环境变量设置为您首选的后端选项。

export KERAS_BACKEND="jax"

 

选项 02:您可以编辑位于 ~/.keras/keras.json 的本地 Keras 配置文件。在文本编辑器中打开该文件,并将 “backend” 选项更改为您首选的后端。

{
    "backend": "jax",
    "floatx": "float32",
    "epsilon": 1e-7,
    "image_data_format": "channels_last"
}

 

6. 验证安装

 

为了确保 Keras Core 正确安装并使用您选择的后端,您可以通过导入库来进行测试。打开一个 Python 解释器或 Jupyter Notebook,并运行以下命令:

import keras_core as keras

 

结束语

 

虽然 Keras 3.0 有一些限制,比如它目前依赖于 TensorFlow,并且在其他后端上对 tf.data 的支持有限,但这个框架的未来潜力是很有希望的。Keras 目前已发布了 beta 版本,并鼓励开发人员提供宝贵的反馈意见。如果您对它感兴趣,可以在这里找到 Keras Core (Keras 3.0) 的文档。不要害怕尝试新的想法。Keras 3.0 是一个强大的工具,现在是参与其发展的令人兴奋的时刻。 Kanwal Mehreen 是一位有志于成为软件开发人员的人,对数据科学和医学中人工智能的应用非常感兴趣。Kanwal 被选为 2022 年 Google 世代学者的亚太地区代表。Kanwal 热衷于通过撰写关于热门话题的文章来分享技术知识,并热衷于改善科技行业中女性的代表性。

Leave a Reply

Your email address will not be published. Required fields are marked *