기술 주변기기 일체 포함 Jax, Flax 및 Optax를 사용한 이미지 분류

Jax, Flax 및 Optax를 사용한 이미지 분류

Mar 18, 2025 am 11:50 AM

이 튜토리얼은 JAX, Flax 및 Optax를 사용하여 MNIST 숫자 분류를위한 CNN (Convolutional Neural Network)을 구축, 훈련 및 평가하는 것을 보여줍니다. 환경 설정 및 데이터 전처리에서 모델 아키텍처, 교육 루프 구현, 메트릭 시각화 및 사용자 정의 이미지에 대한 예측에 이르기까지 모든 것을 다룹니다. 이 접근법은 효율적이고 확장 가능한 딥 러닝을 위해 이러한 라이브러리의 시너지 강점을 강조합니다.

학습 목표 :

  • 간소화 된 신경망 개발을 위해 Jax, Flax 및 Optax의 통합을 마스터하십시오.
  • TFDS (Tensorflow DataSets)를 사용하여 전처리 및로드 데이터 세트를 배우십시오.
  • 효과적인 이미지 분류를 위해 CNN을 구현하십시오.
  • 주요 메트릭 (손실 및 정확성)을 사용하여 교육 진행 상황을 시각화합니다.
  • 사용자 정의 이미지에서 모델의 성능을 평가하십시오.

이 기사는 Data Science Blogathon의 일부입니다.

목차 :

  • 학습 목표
  • Jax, Flax 및 Optax Powerhouse
  • JAX 설정 : 설치 및 가져 오기
  • MNIST 데이터 : 로딩 및 전처리
  • CNN 구성
  • 모델 평가 : 메트릭 및 추적
  • 훈련 루프
  • 교육 및 평가 실행
  • 성능 시각화
  • 사용자 정의 이미지로 예측
  • 결론
  • 자주 묻는 질문

Jax, Flax 및 Optax Powerhouse :

효율적이고 확장 가능한 딥 러닝에는 계산, 모델 설계 및 최적화를위한 강력한 도구가 필요합니다. Jax, Flax 및 Optax는 이러한 요구를 종합적으로 해결합니다.

Jax : 수치 컴퓨팅 우수성 :

JAX는 Numpy와 같은 인터페이스로 고성능 수치 계산을 제공합니다. 주요 기능은 다음과 같습니다.

  • 자동 차별화 (AutoGrad) : 복잡한 기능에 대한 손쉬운 기울기 계산.
  • JIT (Just-In-Time) 컴파일 : CPU, GPU 및 TPU의 실행 가속화.
  • 벡터화 : vmap 통한 단순화 된 배치 처리.
  • 하드웨어 가속 : GPU 및 TPU에 대한 기본 지원.

아마 : 유연한 신경망 :

Jax 기반 라이브러리 인 Flax는 신경망 구성에 대한 사용자 친화적이고 고도로 사용자 정의 가능한 접근 방식을 제공합니다.

  • 상태가 높은 모듈 : 단순화 된 매개 변수 및 상태 관리.
  • Concise API : @nn.compact 데코레이터를 사용한 직관적 인 모델 정의.
  • 적응성 : 단순에서 복잡한 다양한 아키텍처에 적합합니다.
  • Seamless Jax 통합 : Jax의 기능을 쉽게 활용합니다.

Optax : 포괄적 인 최적화 :

Optax는 그라디언트 처리 및 최적화를 간소화하여 제공합니다.

  • Optimizer Variety : SGD, Adam 및 RMSPROP를 포함한 광범위한 최적화기.
  • 그라디언트 조작 : 클리핑, 스케일링 및 정규화 도구.
  • 모듈 식 설계 : 그라디언트 변환 및 최적화의 쉬운 조합.

이 결합 프레임 워크는 효율적인 딥 러닝 모델 개발을위한 강력한 모듈 식 생태계를 제공합니다.

Jax, Flax 및 Optax를 사용한 이미지 분류

JAX 설정 : 설치 및 가져 오기 :

필요한 라이브러리 설치 :

 ! PIP 설치 -업그레이드 -Q PIP JAX JAXLIB FLAX OPTAX TENSORFLOW -DATASETS
로그인 후 복사

필수 라이브러리 가져 오기 :

 Jax를 가져옵니다
jax.numpy를 JNP로 가져옵니다
아마 수입 리넨에서 Nn
flax에서 트레인 트레인 _state
Optax 가져 오기
Numpy를 NP로 가져옵니다
Tensorflow_datasets를 TFD로 가져옵니다
matplotlib.pyplot을 plt로 가져옵니다
로그인 후 복사

MNIST 데이터 : 로딩 및 전처리 :

TFDS를 사용하여 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, Flax 및 Optax를 사용한 이미지 분류

CNN 구성 :

CNN 아키텍처 :

 클래스 CNN (NN.Module) :
  @nn.compact
  def __call __ (self, x) :
    x = nn.conv (feations = 32, kernel_size = (3, 3)) (x)
    x = nn.relu (x)
    x = nn.avg_pool (x, window_shape = (2, 2), strides = (2, 2))
    x = nn.conv (feature = 64, kernel_size = (3, 3)) (x)
    x = nn.relu (x)
    x = nn.avg_pool (x, window_shape = (2, 2), strides = (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, Labels) :
  loss = jnp.mean (optax.softmax_cross_entropy (logits, jax.nn.one_hot (labels, 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 함수는 원래 코드와 유사하게 여기에 포함됩니다.)

교육 및 평가 실행 :

우리는 교육 및 평가 과정을 실행합니다.

 # ... (교육 및 평가 실행 코드는 크게 동일하게 유지됩니다) ...
로그인 후 복사

(매개 변수 초기화, Optimizer 설정 및 교육 루프를 포함한 교육 및 평가 실행 코드는 여기에 원래 코드와 유사하게 포함됩니다.)

성능 시각화 :

Matplotlib을 사용하여 교육 및 테스트 메트릭을 시각화합니다.

 # ... (matplotlib 플로팅 코드는 크게 동일하게 유지됩니다) ...
로그인 후 복사

(원래 코드와 유사하게 손실 및 정확도를 시각화하기위한 Matplotlib 플롯 코드가 여기에 포함됩니다.)

사용자 정의 이미지 예측 :

이 섹션은 사용자 정의 이미지에 대한 예측을 보여줍니다 (코드는 원본과 크게 동일하게 유지됨).

 # ... (사용자 정의 이미지에 대한 업로드, 전처리 및 예측을위한 코드는 거의 동일하게 유지됩니다) ...
로그인 후 복사

결론:

이 튜토리얼은 CNN을 구축하고 훈련하기위한 JAX, Flax 및 Optax의 효율성과 유연성을 보여주었습니다. TFD의 사용을 단순화하고 데이터 처리 및 메트릭 시각화는 귀중한 통찰력을 제공했습니다. 사용자 정의 이미지에서 모델을 테스트하는 기능은 실제 적용 가능성을 강조합니다.

자주 묻는 질문 :

(FAQ는 원본과 크게 동일하게 유지됩니다.)

제공된 Colab 링크가 여기에 포함됩니다. /uploads/....webp 이미지 경로를 이미지의 실제 경로로 바꾸는 것을 잊지 마십시오.

위 내용은 Jax, Flax 및 Optax를 사용한 이미지 분류의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Agno 프레임 워크를 사용하여 멀티 모달 AI 에이전트를 구축하는 방법은 무엇입니까? Agno 프레임 워크를 사용하여 멀티 모달 AI 에이전트를 구축하는 방법은 무엇입니까? Apr 23, 2025 am 11:30 AM

에이전트 AI에서 작업하는 동안 개발자는 종종 속도, 유연성 및 자원 효율성 사이의 상충 관계를 탐색하는 것을 발견합니다. 나는 에이전트 AI 프레임 워크를 탐구하고 Agno를 만났다 (이전에는 ph-이었다.

SQL에서 열을 추가하는 방법? - 분석 Vidhya SQL에서 열을 추가하는 방법? - 분석 Vidhya Apr 17, 2025 am 11:43 AM

SQL의 Alter Table 문 : 데이터베이스에 열을 동적으로 추가 데이터 관리에서 SQL의 적응성이 중요합니다. 데이터베이스 구조를 즉시 조정해야합니까? Alter Table 문은 솔루션입니다. 이 안내서는 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

임베딩 모델의 힘 잠금 해제 : Andrew Ng의 새로운 코스에 대한 깊은 다이빙 기계가 완벽한 정확도로 질문을 이해하고 응답하는 미래를 상상해보십시오. 이것은 공상 과학이 아닙니다. AI의 발전 덕분에 R이되었습니다

Rocketpy -Analytics Vidhya를 사용한 로켓 런칭 시뮬레이션 및 분석 Rocketpy -Analytics Vidhya를 사용한 로켓 런칭 시뮬레이션 및 분석 Apr 19, 2025 am 11:12 AM

Rocketpy : 포괄적 인 가이드로 로켓 발사 시뮬레이션 이 기사는 강력한 파이썬 라이브러리 인 Rocketpy를 사용하여 고출력 로켓 런칭을 시뮬레이션하는 것을 안내합니다. 로켓 구성 요소 정의에서 Simula 분석에 이르기까지 모든 것을 다룰 것입니다.

Google은 다음 2025 년 클라우드에서 가장 포괄적 인 에이전트 전략을 공개합니다. Google은 다음 2025 년 클라우드에서 가장 포괄적 인 에이전트 전략을 공개합니다. Apr 15, 2025 am 11:14 AM

Google의 AI 전략의 기초로서 Gemini Gemini는 Google의 AI 에이전트 전략의 초석으로 고급 멀티 모드 기능을 활용하여 텍스트, 이미지, 오디오, 비디오 및 코드에서 응답을 처리하고 생성합니다. Deepm에 의해 개발되었습니다

직접 3D 인쇄 할 수있는 오픈 소스 휴머노이드 로봇 : Hugging Face Pollen Robotics 직접 3D 인쇄 할 수있는 오픈 소스 휴머노이드 로봇 : Hugging Face Pollen Robotics Apr 15, 2025 am 11:25 AM

Hugging Face는 X에서“우리가 오픈 소스 로봇을 전 세계에 가져 오기 위해 꽃가루 로봇 공학을 획득하고 있음을 발표하게되어 기쁩니다.

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