首頁 科技週邊 人工智慧 使用JAX,亞麻和Optax的圖像分類

使用JAX,亞麻和Optax的圖像分類

Mar 18, 2025 am 11:50 AM

該教程展示了使用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,亞麻和Optax的圖像分類

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

使用JAX,亞麻和Optax的圖像分類

構建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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1277
29
C# 教程
1257
24
如何使用AGNO框架構建多模式AI代理? 如何使用AGNO框架構建多模式AI代理? Apr 23, 2025 am 11:30 AM

在從事代理AI時,開發人員經常發現自己在速度,靈活性和資源效率之間進行權衡。我一直在探索代理AI框架,並遇到了Agno(以前是Phi-

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

OpenAI以GPT-4.1的重點轉移,將編碼和成本效率優先考慮 OpenAI以GPT-4.1的重點轉移,將編碼和成本效率優先考慮 Apr 16, 2025 am 11:37 AM

該版本包括三種不同的型號,GPT-4.1,GPT-4.1 MINI和GPT-4.1 NANO,標誌著向大語言模型景觀內的特定任務優化邁進。這些模型並未立即替換諸如

Andrew Ng的新簡短課程 Andrew Ng的新簡短課程 Apr 15, 2025 am 11:32 AM

解鎖嵌入模型的力量:深入研究安德魯·NG的新課程 想像一個未來,機器可以完全準確地理解和回答您的問題。 這不是科幻小說;多虧了AI的進步,它已成為R

火箭發射模擬和分析使用Rocketpy -Analytics Vidhya 火箭發射模擬和分析使用Rocketpy -Analytics Vidhya Apr 19, 2025 am 11:12 AM

模擬火箭發射的火箭發射:綜合指南 本文指導您使用強大的Python庫Rocketpy模擬高功率火箭發射。 我們將介紹從定義火箭組件到分析模擬的所有內容

Google揭示了下一個2025年雲上最全面的代理策略 Google揭示了下一個2025年雲上最全面的代理策略 Apr 15, 2025 am 11:14 AM

雙子座是Google AI策略的基礎 雙子座是Google AI代理策略的基石,它利用其先進的多模式功能來處理和生成跨文本,圖像,音頻,視頻和代碼的響應。由DeepM開發

您可以自己3D打印的開源人形機器人:擁抱面孔購買花粉機器人技術 您可以自己3D打印的開源人形機器人:擁抱面孔購買花粉機器人技術 Apr 15, 2025 am 11:25 AM

“超級樂於宣布,我們正在購買花粉機器人,以將開源機器人帶到世界上,” Hugging Face在X上說:“自從Remi Cadene從Tesla加入我們以來,我們已成為開放機器人的最廣泛使用的軟件平台。

DeepCoder-14b:O3-Mini和O1的開源競賽 DeepCoder-14b:O3-Mini和O1的開源競賽 Apr 26, 2025 am 09:07 AM

在AI社區的重大發展中,Agentica和AI共同發布了一個名為DeepCoder-14B的開源AI編碼模型。與OpenAI等封閉源競爭對手提供代碼生成功能

See all articles