该教程展示了使用JAX,Flax和Optax进行MNIST数字分类的卷积神经网络(CNN)的构建,培训和评估。我们将介绍从环境设置和数据预处理到模型架构,训练循环实现,指标可视化以及最终对自定义图像的预测的所有内容。这种方法突出了这些图书馆的协同优势,以高效且可扩展的深度学习。
学习目标:
- 掌握JAX,亚麻和Optax的集成,以简化神经网络开发。
- 学习使用TensorFlow数据集(TFD)进行预处理和加载数据集。
- 实施CNN进行有效的图像分类。
- 使用关键指标(损失和准确性)可视化培训进度。
- 评估模型在自定义图像上的性能。
本文是数据科学博客马拉松的一部分。
目录:
- 学习目标
- JAX,亚麻和Optax Powerhouse
- JAX设置:安装和导入
- MNIST数据:加载和预处理
- 构建CNN
- 模型评估:指标和跟踪
- 训练循环
- 培训和评估执行
- 可视化性能
- 用自定义图像预测
- 结论
- 常见问题
JAX,亚麻和Optax Powerhouse:
高效,可扩展的深度学习需要强大的计算,模型设计和优化工具。 JAX,亚麻和Optax共同满足了这些需求:
JAX:数字计算卓越:
JAX提供了具有Numpy样界面的高性能数值计算。它的主要功能包括:
- 自动分化(自动克拉德):复杂功能的毫无梯度计算。
- 即时(JIT)汇编: CPU,GPU和TPU上的执行加速。
-
矢量化:通过
vmap
简化批处理处理。 - 硬件加速度:对GPU和TPU的本机支持。
亚麻:灵活的神经网络:
基于JAX的图书馆Flax为神经网络构建提供了一种用户友好且高度可定制的方法:
- 状态模块:简化的参数和状态管理。
-
简明API:使用
@nn.compact
装饰器的直观模型定义。 - 适应性:适用于从简单到复杂的各种体系结构。
- 无缝JAX集成:轻松利用JAX的功能。
Optax:全面优化:
Optax简化了梯度处理和优化,提供:
- 优化器品种:包括SGD,ADAM和RMSPROP在内的广泛优化器。
- 梯度操作:用于剪接,缩放和归一化的工具。
- 模块化设计:梯度转换和优化器的简单组合。
这个组合的框架为有效的深度学习模型开发提供了一个强大的模块化生态系统。
JAX设置:安装和导入:
安装必要的库:
!
导入基本库:
导入JAX 导入jax.numpy作为jnp 来自亚麻的亚麻亚麻作为nn 来自亚麻。培训进口train_state 导入Optax 导入numpy作为NP 导入Tensorflow_dataset作为TFD 导入matplotlib.pyplot作为PLT
MNIST数据:加载和预处理:
我们使用TFD加载和预处理MNIST数据集:
def get_datasets(): ds_builder = tfds.builder('mnist') ds_builder.download_and_prepare() train_ds = tfds.as_numpy(ds_builder.as_dataset(split ='train',batch_size = -1)) test_ds = tfds.as_numpy(ds_builder.as_dataset(split ='test',batch_size = -1)) train_ds ['image'] = jnp.float32(train_ds ['image']) / 255.0 test_ds ['image'] = jnp.float32(test_ds ['image']) / 255.0 返回train_ds,test_ds train_ds,test_ds = get_datasets()
图像归一化为[0,1]。
构建CNN:
我们的CNN架构:
CNN类(nn.模块): @nn.compact def __call __(self,x): x = nn.conv(功能= 32,kernel_size =(3,3))(x) x = nn.relu(x) x = nn.avg_pool(x,window_shape =(2,2),步幅=(2,2)) x = nn.conv(功能= 64,kernel_size =(3,3))(x) x = nn.relu(x) x = nn.avg_pool(x,window_shape =(2,2),步幅=(2,2)) x = x.Reshape(((x.Shape [0],-1))) x = nn.dense(功能= 256)(x) x = nn.relu(x) x = nn.dense(功能= 10)(x) 返回x
这包括卷积层,合并的层,更平坦的层和密集的层。
模型评估:指标和跟踪:
我们定义功能以计算损失和准确性:
DEF COMPUTE_METRICS(LOGITS,标签): 损失= jnp.mean(optax.softmax_cross_entropy(logits,jax.nn.one_hot(标签,num_classes = 10)))))) 精度= JNP.Mean(JNP.Argmax(logits,-1)==标签) 指标= {'损失':损失,'准确性':准确性} 返回指标 #...(train_step和eval_step函数在很大程度上保持不变)...
(Train_Step和eval_step功能将在此处包括,类似于原始代码。)
训练循环:
培训循环迭代更新模型:
#...(train_epoch和eval_model函数在很大程度上保持不变)...
(此处将包括Train_epoch和eval_model功能,类似于原始代码。)
培训和评估执行:
我们执行培训和评估过程:
#...(培训和评估执行代码在很大程度上保持不变)...
(培训和评估执行代码,包括参数初始化,优化器设置和培训循环,将包括此处,类似于原始代码。)
可视化性能:
我们使用matplotlib可视化培训和测试指标:
#...(matplotlib绘制代码在很大程度上保持不变)...
(此处将包括用于可视化损耗和准确性的Matplotlib绘制代码,类似于原始代码。)
使用自定义图像进行预测:
本节演示了自定义图像的预测(代码与原始图像的预测几乎相同)。
#...(用于上传,预处理和预测自定义图像的代码基本相同)...
结论:
该教程展示了JAX,亚麻和Optax在建造和培训CNN的效率和灵活性。 TFD的使用简化数据处理和度量可视化提供了宝贵的见解。在自定义图像上测试模型的能力突出了其实际适用性。
常见问题:
(常见问题解答与原始相同。)
提供的COLAB链接将在此处包括。请记住,用图像的实际路径替换/uploads/....webp
图像路径。
以上是使用JAX,亚麻和Optax的图像分类的详细内容。更多信息请关注PHP中文网其他相关文章!
![无法使用chatgpt!解释可以立即测试的原因和解决方案[最新2025]](https://img.php.cn/upload/article/001/242/473/174717025174979.jpg?x-oss-process=image/resize,p_40)
ChatGPT无法访问?本文提供多种实用解决方案!许多用户在日常使用ChatGPT时,可能会遇到无法访问或响应缓慢等问题。本文将根据不同情况,逐步指导您解决这些问题。 ChatGPT无法访问的原因及初步排查 首先,我们需要确定问题是出在OpenAI服务器端,还是用户自身网络或设备问题。 请按照以下步骤进行排查: 步骤1:检查OpenAI官方状态 访问OpenAI Status页面 (status.openai.com),查看ChatGPT服务是否正常运行。如果显示红色或黄色警报,则表示Open

2025年5月10日,麻省理工学院物理学家Max Tegmark告诉《卫报》,AI实验室应在释放人工超级智能之前模仿Oppenheimer的三位一体测试演算。 “我的评估是'康普顿常数',这是一场比赛的可能性

AI音乐创作技术日新月异,本文将以ChatGPT等AI模型为例,详细讲解如何利用AI辅助音乐创作,并辅以实际案例进行说明。我们将分别介绍如何通过SunoAI、Hugging Face上的AI jukebox以及Python的Music21库进行音乐创作。 通过这些技术,每个人都能轻松创作原创音乐。但需注意,AI生成内容的版权问题不容忽视,使用时务必谨慎。 让我们一起探索AI在音乐领域的无限可能! OpenAI最新AI代理“OpenAI Deep Research”介绍: [ChatGPT]Ope

ChatGPT-4的出现,极大地拓展了AI应用的可能性。相较于GPT-3.5,ChatGPT-4有了显着提升,它具备强大的语境理解能力,还能识别和生成图像,堪称万能的AI助手。在提高商业效率、辅助创作等诸多领域,它都展现出巨大的潜力。然而,与此同时,我们也必须注意其使用上的注意事项。 本文将详细解读ChatGPT-4的特性,并介绍针对不同场景的有效使用方法。文中包含充分利用最新AI技术的技巧,敬请参考。 OpenAI发布的最新AI代理,“OpenAI Deep Research”详情请点击下方链

CHATGPT应用程序:与AI助手释放您的创造力!初学者指南 ChatGpt应用程序是一位创新的AI助手,可处理各种任务,包括写作,翻译和答案。它是一种具有无限可能性的工具,可用于创意活动和信息收集。 在本文中,我们将以一种易于理解的方式解释初学者,从如何安装chatgpt智能手机应用程序到语音输入功能和插件等应用程序所独有的功能,以及在使用该应用时要牢记的要点。我们还将仔细研究插件限制和设备对设备配置同步

ChatGPT中文版:解锁中文AI对话新体验 ChatGPT风靡全球,您知道它也提供中文版本吗?这款强大的AI工具不仅支持日常对话,还能处理专业内容,并兼容简体中文和繁体中文。无论是中国地区的使用者,还是正在学习中文的朋友,都能从中受益。 本文将详细介绍ChatGPT中文版的使用方法,包括账户设置、中文提示词输入、过滤器的使用、以及不同套餐的选择,并分析潜在风险及应对策略。此外,我们还将对比ChatGPT中文版和其他中文AI工具,帮助您更好地了解其优势和应用场景。 OpenAI最新发布的AI智能

这些可以将其视为生成AI领域的下一个飞跃,这为我们提供了Chatgpt和其他大型语言模型聊天机器人。他们可以代表我们采取行动,而不是简单地回答问题或产生信息

使用chatgpt有效的多个帐户管理技术|关于如何使用商业和私人生活的详尽解释! Chatgpt在各种情况下都使用,但是有些人可能担心管理多个帐户。本文将详细解释如何为ChatGpt创建多个帐户,使用时该怎么做以及如何安全有效地操作它。我们还介绍了重要的一点,例如业务和私人使用差异,并遵守OpenAI的使用条款,并提供指南,以帮助您安全地利用多个帐户。 Openai


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。