审校 | 重楼
在深入研究这个令人兴奋的发展动向的细节之前,不妨先设想一个场景以便更好地理解。想象自己是一位高级数据科学家,主持一个复杂的图像分类项目。您那基于TensorFlow的模型表现得非常好。然而随着更多功能添加进来,您注意到一些团队成员因可扩展性而青睐JAX,另一些成员因易于使用而偏爱PyTorch。作为团队领导,您如何确保无缝协作,同时保持模型在各种深度学习框架中的效率?
Keras团队认识到这个挑战后推出了Keras Core,这个创新的多后端库实现了Keras API,支持TensorFlow、JAX和PyTorch。该库将在2023年秋季迎来Keras 3.0。但在我们直接介绍Keras 3.0之前,不妨先简单了解一下Keras的历史。
Keras的简史和通向3.0之路
2015年,Francois Chollet推出了Keras,这是用Python编写的开源深度学习库。这个简单而强大的API可以简化复杂的神经网络构建,迅速在研究人员、学生和专业人士当中流行起来。Keras逐渐得到了大幅改进,使其对深度学习社区更具吸引力。最终,Keras成为了谷歌尖端深度学习框架TensorFlow的一个组成部分。大约在同一时间,Facebook的人工智能研究实验室开发出了以直观灵活的模型构建而闻名的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等硬件上运行起来快得多。它还允许您为AI模型动态选择最佳后端,以确保最佳效率。这类性能优化特性非常重要,便于训练更多模型、进行更多实验,并大大加快获得结果的速度。
3.扩大的生态系统覆盖面
您的Keras模型可以用作PyTorch模块、TensorFlow SavedModels或JAX的大规模TPU训练基础设施的一部分。这意味着您可以利用每个框架的优势。因此,有了Keras 3.0扩大的生态系统,您不会被单一的生态系统所束缚。它就像一个通用适配器,让您可以把最喜欢的设备连接到任何机器上。
4.跨框架低级语言
引入keras_core.ops命名空间是一项突破性的特性,允许您编写一次自定义操作,就可以毫不费力地在不同深度学习框架中使用。keras_core.ops提供了一组类似流行的NumPy API的工具和函数,NumPy API是Python中广泛使用的数值计算库。这种级别的跨框架兼容性促进了代码的可重用性,并鼓励协作。
5.逐步披露复杂性
Keras 3.0的这种设计方法使其有别于其他深度学习框架。假设您是初学者,想用Keras 3.0构建一个简单的神经网络。它一开始就为您提供了最直接的工作流程。一旦熟悉了基本面,您就可以访问所有高级特性和低级功能。它不会将您限制在预定义的工作流程。这种方法的优点在于其适应性,颇受初学者和经验丰富的深度学习从业人员的欢迎。
6.用于层、模型、指标和优化器的无状态API
在深度学习的背景下,状态指在训练过程中变化的内部变量和参数。然而,JAX基于无状态原则进行操作,这意味着函数没有可变变量或内部状态。Keras 3.0通过Stateless 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
使用以下命令,将根目录改为clone keras-core:
cd keras-core
2.安装依赖项
打开您的间隔(interval),运行以下命令来安装所需的依赖项。
pip install -r requirements.txt
3.运行安装命令
运行以下脚本,以处理安装过程:
python pip_build.py--install
4.配置后端
默认情况下,Keras Core严格要求TensorFlow作为后端框架,但您可以使用以下两种方式配置它:
方法01:您可以将KERAS_BACKEND环境变量设置为首选的后端选项。
export ERAS_BACKEND = " jax”
方法02:您可以编辑位于~/. keras/keras.json的本地Keras配置文件。在文本编辑器中打开该文件,并将“backend”选项更改为首选的后端。
{
"backend": "jax",
"floatx": "float32",
"epsilon": 1e-7,
"image_data_format": "channels_last"
}
5.验证安装
为了确保Keras Core已与您选择的后端一并正确安装,可以通过导入库来测试它。打开Python解释器或Jupyter Notebook,运行以下命令:
import keras_core as keras
结语
虽然Keras 3.0有一些限制,比如当前的TensorFlow依赖以及针对其他后端的有限的tf.data支持,但这种框架的未来潜力大有希望。到目前为止,Keras已发布了测试版,他们鼓励开发人员提供宝贵的反馈。如果您有兴趣了解有关它的更多信息,可以在这里找到Keras Core(Keras 3.0)的文档:https://keras.io/api/。不要害怕尝试新想法。Keras 3.0是一个功能强大的工具,赶紧体验吧!
原文Keras 3.0: Everything You Need To Know,作者:Kanwal Mehreen