---
# System prepended metadata

title: Ray Example

---

# Ray Example code整體架構 
### 概要
這個程式範例旨在演示如何使用Ray Tune庫進行超參數調整，以最佳化卷積神經網絡模型的性能，並提升對CIFAR-10數據集的分類準確度。
我們使用PyTorch來建立卷積神經網絡，Ray Tune用於自動搜索最佳的超參數配置。

### 流程
load_data 函式：載入CIFAR-10數據集，進行數據預處理和標準化等
Net 類別：定義CNN神經網絡的架構。
train_cifar 函式：定義訓練過程，包括數據加載、模型訓練、計算損失、更新參數、驗證和保存checkpoint。
test_best_model函式：測試最佳模型的性能。
main 函式：主函式，用於執行超參數調整配置，包括採樣數量、最大回合數、使用GPU或CPU等...

### 流程圖

```flow
st=>start: 定義超參數空間(config)和超參數資源分配的方式(scheduler) :>
e=>end: 輸出最佳超參數
op1=>operation: 建立一個調整器(你的訓練函式、需要的資源和其他超參數會在這裡設定目標和配置)
op2=>operation: 超參數優化
op3=>operation: 訓練和評估模型
op4=>operation: 保存檢查點
op5=>inputoutput: 回報結果給RAY
cond=>condition: 是否達到num_samples

st->op1->op2->cond->op3
op3->op4->op5(left)->op2
cond(yes)->e
cond(no)->op3
```