Spaces:
Sleeping
Sleeping
Upload folder using huggingface_hub
Browse files- README.md +47 -47
- app.py +1 -1
- models/README.md +1 -1
- models/ethiopia_washed_custom_Noback_best_model.json +11 -11
- models/ethiopia_washed_history.json +281 -281
- models/ethiopia_washed_metrics.json +67 -67
- models/honduras_natural_custom_Noback_best_model.json +11 -11
- models/honduras_natural_history.json +281 -281
- models/honduras_natural_metrics.json +67 -67
README.md
CHANGED
|
@@ -39,9 +39,9 @@ pinned: false
|
|
| 39 |
| 🚀 **Web 部署** | Flask、Gunicorn 與 Docker,可部署至 Hugging Face Spaces。 |
|
| 40 |
| 🎨 **介面設計** | 暗色 Glassmorphism 儀表板,顯示模型輸出機率與架構資訊。 |
|
| 41 |
|
| 42 |
-
## 🧠
|
| 43 |
|
| 44 |
-
###
|
| 45 |
|
| 46 |
- 圖片由開發者自行拍攝,使用 OpenCV 依輪廓裁切成單顆咖啡豆。
|
| 47 |
- 裁切圖片由開發者人工標示為 `good`、`bad`、`back` 或 `idontknow`。
|
|
@@ -49,60 +49,60 @@ pinned: false
|
|
| 49 |
- Dataset 為私人資料,**不隨 GitHub repository 或 Hugging Face Model repository 發布**。
|
| 50 |
- Ethiopia Washed 與 Honduras Natural 已完成訓練;Kenya Natural 仍在資料整理與標註階段,暫不發布模型。
|
| 51 |
|
| 52 |
-
###
|
| 53 |
|
| 54 |
| 項目 | 設定 |
|
| 55 |
|---|---|
|
| 56 |
-
|
|
| 57 |
-
|
|
| 58 |
-
|
|
| 59 |
-
|
|
| 60 |
-
|
|
| 61 |
-
|
|
| 62 |
-
|
|
| 63 |
-
|
|
| 64 |
-
|
|
| 65 |
-
|
| 66 |
-
###
|
| 67 |
|
| 68 |
離線資料增強由 `data_augment.ipynb` 執行,每張來源 crop 產生兩個版本,包含 color jitter、random grayscale、Gaussian blur、sharpness adjustment 與 Gaussian noise。
|
| 69 |
|
| 70 |
-
## 📊
|
| 71 |
|
| 72 |
以下結果由修正後的 best-checkpoint 保存流程重新訓練取得。數值來自現有 augmented dataset 的 80/20 random validation split。
|
| 73 |
|
| 74 |
-
|
|
| 75 |
|---|---:|---:|---:|---:|---:|---:|
|
| 76 |
| Ethiopia Washed | 143 | 79.02% | 78.57% | 79.16% | 78.72% | 79.13% |
|
| 77 |
| Honduras Natural | 114 | 78.07% | 69.30% | 73.89% | 70.76% | 79.22% |
|
| 78 |
|
| 79 |
-
###
|
| 80 |
|
| 81 |
-
|
|
| 82 |
|---|---|---:|---:|---:|---:|
|
| 83 |
| Ethiopia Washed | bad | 84.42% | 78.31% | 81.25% | 83 |
|
| 84 |
| Ethiopia Washed | good | 72.73% | 80.00% | 76.19% | 60 |
|
| 85 |
| Honduras Natural | bad | 48.48% | 66.67% | 56.14% | 24 |
|
| 86 |
| Honduras Natural | good | 90.12% | 81.11% | 85.38% | 90 |
|
| 87 |
|
| 88 |
-
|
| 89 |
|
| 90 |
```text
|
| 91 |
Ethiopia Washed: [[65, 18], [12, 48]]
|
| 92 |
Honduras Natural: [[16, 8], [17, 73]]
|
| 93 |
```
|
| 94 |
|
| 95 |
-
> **
|
| 96 |
|
| 97 |
-
Honduras Natural
|
| 98 |
|
| 99 |
-
|
| 100 |
|
| 101 |
-
## 🚀
|
| 102 |
|
| 103 |
-
### Web
|
| 104 |
|
| 105 |
-
Python 3.10
|
| 106 |
|
| 107 |
```bash
|
| 108 |
conda create -n coffee-beans-env python=3.10
|
|
@@ -111,43 +111,43 @@ pip install -r requirements.txt
|
|
| 111 |
python app.py
|
| 112 |
```
|
| 113 |
|
| 114 |
-
|
| 115 |
|
| 116 |
-
|
| 117 |
|
| 118 |
-
###
|
| 119 |
|
| 120 |
```bash
|
| 121 |
pip install -r requirements-dev.txt
|
| 122 |
python train_all.py
|
| 123 |
```
|
| 124 |
|
| 125 |
-
|
| 126 |
|
| 127 |
-
## 📖
|
| 128 |
|
| 129 |
-
1.
|
| 130 |
-
2.
|
| 131 |
-
3.
|
| 132 |
-
4.
|
| 133 |
|
| 134 |
-
|
| 135 |
|
| 136 |
-
## 📂
|
| 137 |
|
| 138 |
```text
|
| 139 |
Good-or-Bad-CoffeeBeans/
|
| 140 |
-
├── models/ #
|
| 141 |
-
├── static/ # CSS
|
| 142 |
-
├── templates/ # Flask HTML
|
| 143 |
-
├── app.py # Web
|
| 144 |
-
├── train_all.py # Ethiopia
|
| 145 |
-
├── requirements.txt # Web
|
| 146 |
-
├── requirements-dev.txt#
|
| 147 |
-
└── coffee_beans_data/ #
|
| 148 |
```
|
| 149 |
|
| 150 |
-
## ⚠️
|
| 151 |
|
| 152 |
- Labels are manually assigned and are not a professional coffee-grading certification.
|
| 153 |
- Each deployed model is specific to one bean type.
|
|
@@ -155,11 +155,11 @@ Good-or-Bad-CoffeeBeans/
|
|
| 155 |
- Softmax output scores are not calibrated confidence intervals.
|
| 156 |
- Kenya Natural is under development and has no published model.
|
| 157 |
|
| 158 |
-
## 👨💻
|
| 159 |
|
| 160 |
- Author: dachen8173
|
| 161 |
- Stack: Python / PyTorch / Flask / OpenCV / JavaScript
|
| 162 |
- Contact: op.dada.op@gmail.com
|
| 163 |
- Instagram: [da_chen_527](https://www.instagram.com/da_chen_527) / [cofe_log](https://www.instagram.com/cofe_log)
|
| 164 |
|
| 165 |
-
|
|
|
|
| 39 |
| 🚀 **Web 部署** | Flask、Gunicorn 與 Docker,可部署至 Hugging Face Spaces。 |
|
| 40 |
| 🎨 **介面設計** | 暗色 Glassmorphism 儀表板,顯示模型輸出機率與架構資訊。 |
|
| 41 |
|
| 42 |
+
## 🧠 模型與資料集
|
| 43 |
|
| 44 |
+
### 資料集
|
| 45 |
|
| 46 |
- 圖片由開發者自行拍攝,使用 OpenCV 依輪廓裁切成單顆咖啡豆。
|
| 47 |
- 裁切圖片由開發者人工標示為 `good`、`bad`、`back` 或 `idontknow`。
|
|
|
|
| 49 |
- Dataset 為私人資料,**不隨 GitHub repository 或 Hugging Face Model repository 發布**。
|
| 50 |
- Ethiopia Washed 與 Honduras Natural 已完成訓練;Kenya Natural 仍在資料整理與標註階段,暫不發布模型。
|
| 51 |
|
| 52 |
+
### 模型
|
| 53 |
|
| 54 |
| 項目 | 設定 |
|
| 55 |
|---|---|
|
| 56 |
+
| 框架 | PyTorch |
|
| 57 |
+
| 架構 | Custom CNN:3 個 Conv/BatchNorm/ReLU/MaxPool 區塊,加上 256-unit 全連接層 |
|
| 58 |
+
| 任務 | 二元分類(`bad`、`good`) |
|
| 59 |
+
| 輸入 | RGB,128 × 128 |
|
| 60 |
+
| 前處理 | 補邊成正方形、縮放、轉換為 tensor,並以 mean/std 0.5 標準化 |
|
| 61 |
+
| 最佳化器 | Adam,learning rate `5e-5` |
|
| 62 |
+
| 損失函數 | 依訓練子集計算權重的交叉熵 |
|
| 63 |
+
| 訓練 | 最多 40 epochs,early stopping patience 10 |
|
| 64 |
+
| 切分 | 沿用既有 80/20 隨機訓練/驗證切分 |
|
| 65 |
+
|
| 66 |
+
### 資料增強
|
| 67 |
|
| 68 |
離線資料增強由 `data_augment.ipynb` 執行,每張來源 crop 產生兩個版本,包含 color jitter、random grayscale、Gaussian blur、sharpness adjustment 與 Gaussian noise。
|
| 69 |
|
| 70 |
+
## 📊 驗證結果
|
| 71 |
|
| 72 |
以下結果由修正後的 best-checkpoint 保存流程重新訓練取得。數值來自現有 augmented dataset 的 80/20 random validation split。
|
| 73 |
|
| 74 |
+
| 咖啡豆類型 | 驗證樣本數 | Accuracy | Macro precision | Macro recall | Macro F1 | Weighted F1 |
|
| 75 |
|---|---:|---:|---:|---:|---:|---:|
|
| 76 |
| Ethiopia Washed | 143 | 79.02% | 78.57% | 79.16% | 78.72% | 79.13% |
|
| 77 |
| Honduras Natural | 114 | 78.07% | 69.30% | 73.89% | 70.76% | 79.22% |
|
| 78 |
|
| 79 |
+
### 各類別結果
|
| 80 |
|
| 81 |
+
| 咖啡豆類型 | 類別 | Precision | Recall | F1 | 樣本數 |
|
| 82 |
|---|---|---:|---:|---:|---:|
|
| 83 |
| Ethiopia Washed | bad | 84.42% | 78.31% | 81.25% | 83 |
|
| 84 |
| Ethiopia Washed | good | 72.73% | 80.00% | 76.19% | 60 |
|
| 85 |
| Honduras Natural | bad | 48.48% | 66.67% | 56.14% | 24 |
|
| 86 |
| Honduras Natural | good | 90.12% | 81.11% | 85.38% | 90 |
|
| 87 |
|
| 88 |
+
混淆矩陣以實際標籤為列、預測標籤為欄,順序皆為 `[bad, good]`:
|
| 89 |
|
| 90 |
```text
|
| 91 |
Ethiopia Washed: [[65, 18], [12, 48]]
|
| 92 |
Honduras Natural: [[16, 8], [17, 73]]
|
| 93 |
```
|
| 94 |
|
| 95 |
+
> **評估限制:** 為保留目前專案流程,資料是在離線增強後才進行切分,因此同一來源 crop 的增強版本可能同時出現在訓練集與驗證集。驗證集也用於 early stopping,目前沒有獨立測試集。這些數字只代表本次驗證結果,不應視為完全排除資料洩漏的 benchmark。
|
| 96 |
|
| 97 |
+
Honduras Natural 對 `bad` 類別的表現仍較弱,尤其是 precision。單看 accuracy 會掩蓋此問題,因此同時呈現 macro 與各類別指標。
|
| 98 |
|
| 99 |
+
機器可讀的結果位於 `models/*_metrics.json`,各 epoch 紀錄位於 `models/*_history.json`。
|
| 100 |
|
| 101 |
+
## 🚀 快速開始
|
| 102 |
|
| 103 |
+
### Web 應用程式
|
| 104 |
|
| 105 |
+
建議使用 Python 3.10 或 3.11。
|
| 106 |
|
| 107 |
```bash
|
| 108 |
conda create -n coffee-beans-env python=3.10
|
|
|
|
| 111 |
python app.py
|
| 112 |
```
|
| 113 |
|
| 114 |
+
服務啟動後,開啟 <http://localhost:5000>。
|
| 115 |
|
| 116 |
+
應用程式啟動時,會從 `dada8173/coffee-bean-classifier-models` 的固定 revision `efc47d2ec57916c5ea152333bd801a07a6977f59` 下載權重。Hugging Face cache 會避免重複下載未變更的檔案;若 Hub 暫時無法使用,程式才會改用本機 `models/*.pth` 備援。需要強制使用本機模型時可設定 `USE_LOCAL_MODELS=1`;只有在刻意測試其他已發布版本時才應設定 `HF_MODEL_REVISION`。下載公開模型不需要 access token。
|
| 117 |
|
| 118 |
+
### 訓練與 notebooks
|
| 119 |
|
| 120 |
```bash
|
| 121 |
pip install -r requirements-dev.txt
|
| 122 |
python train_all.py
|
| 123 |
```
|
| 124 |
|
| 125 |
+
`train_all.py` 預設只訓練 Ethiopia Washed 與 Honduras Natural;Kenya Natural 仍在開發中。
|
| 126 |
|
| 127 |
+
## 📖 使用方式
|
| 128 |
|
| 129 |
+
1. 選擇對應咖啡豆類型的可用模型。
|
| 130 |
+
2. 開啟瀏覽器相機,或上傳支援格式的圖片。
|
| 131 |
+
3. 使用相機時可開啟即時辨識。
|
| 132 |
+
4. 查看預測標籤與模型輸出分數。
|
| 133 |
|
| 134 |
+
瀏覽器相機功能需要 HTTPS 或 localhost,並須取得使用者授權。
|
| 135 |
|
| 136 |
+
## 📂 專案結構
|
| 137 |
|
| 138 |
```text
|
| 139 |
Good-or-Bad-CoffeeBeans/
|
| 140 |
+
├── models/ # 模型設定、訓練紀錄與驗證指標
|
| 141 |
+
├── static/ # CSS、JavaScript 與範例圖片
|
| 142 |
+
├── templates/ # Flask HTML 模板
|
| 143 |
+
├── app.py # Web 推論與模型載入
|
| 144 |
+
├── train_all.py # Ethiopia/Honduras 訓練與評估
|
| 145 |
+
├── requirements.txt # Web 推論相依套件
|
| 146 |
+
├── requirements-dev.txt# 訓練與 notebook 相依套件
|
| 147 |
+
└── coffee_beans_data/ # 私人本機資料集;Git 會忽略此目錄
|
| 148 |
```
|
| 149 |
|
| 150 |
+
## ⚠️ 限制
|
| 151 |
|
| 152 |
- Labels are manually assigned and are not a professional coffee-grading certification.
|
| 153 |
- Each deployed model is specific to one bean type.
|
|
|
|
| 155 |
- Softmax output scores are not calibrated confidence intervals.
|
| 156 |
- Kenya Natural is under development and has no published model.
|
| 157 |
|
| 158 |
+
## 👨💻 開發者與授權
|
| 159 |
|
| 160 |
- Author: dachen8173
|
| 161 |
- Stack: Python / PyTorch / Flask / OpenCV / JavaScript
|
| 162 |
- Contact: op.dada.op@gmail.com
|
| 163 |
- Instagram: [da_chen_527](https://www.instagram.com/da_chen_527) / [cofe_log](https://www.instagram.com/cofe_log)
|
| 164 |
|
| 165 |
+
原始碼採用 MIT License;資料集維持私人狀態,不隨本專案發布。
|
app.py
CHANGED
|
@@ -27,7 +27,7 @@ MODEL_REPO_ID = os.environ.get(
|
|
| 27 |
"HF_MODEL_REPO_ID", "dada8173/coffee-bean-classifier-models"
|
| 28 |
)
|
| 29 |
MODEL_REPO_REVISION = os.environ.get(
|
| 30 |
-
"HF_MODEL_REVISION", "
|
| 31 |
)
|
| 32 |
USE_LOCAL_MODELS = os.environ.get("USE_LOCAL_MODELS", "").lower() in {
|
| 33 |
"1",
|
|
|
|
| 27 |
"HF_MODEL_REPO_ID", "dada8173/coffee-bean-classifier-models"
|
| 28 |
)
|
| 29 |
MODEL_REPO_REVISION = os.environ.get(
|
| 30 |
+
"HF_MODEL_REVISION", "efc47d2ec57916c5ea152333bd801a07a6977f59"
|
| 31 |
)
|
| 32 |
USE_LOCAL_MODELS = os.environ.get("USE_LOCAL_MODELS", "").lower() in {
|
| 33 |
"1",
|
models/README.md
CHANGED
|
@@ -33,7 +33,7 @@ The class order must match the output order used during training.
|
|
| 33 |
|
| 34 |
At startup, `app.py` downloads each matching `.pth` file from
|
| 35 |
`dada8173/coffee-bean-classifier-models` using pinned commit
|
| 36 |
-
`
|
| 37 |
the default when intentionally deploying another revision. Downloads use Hugging
|
| 38 |
Face's version-aware local cache. If the Hub is unavailable, the application
|
| 39 |
falls back to a matching local weight; set `USE_LOCAL_MODELS=1` to force that
|
|
|
|
| 33 |
|
| 34 |
At startup, `app.py` downloads each matching `.pth` file from
|
| 35 |
`dada8173/coffee-bean-classifier-models` using pinned commit
|
| 36 |
+
`efc47d2ec57916c5ea152333bd801a07a6977f59`. `HF_MODEL_REVISION` can override
|
| 37 |
the default when intentionally deploying another revision. Downloads use Hugging
|
| 38 |
Face's version-aware local cache. If the Hub is unavailable, the application
|
| 39 |
falls back to a matching local weight; set `USE_LOCAL_MODELS=1` to force that
|
models/ethiopia_washed_custom_Noback_best_model.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
-
{
|
| 2 |
-
"bean_type": "ethiopia_washed",
|
| 3 |
-
"architecture": "custom",
|
| 4 |
-
"img_size": 128,
|
| 5 |
-
"classes": [
|
| 6 |
-
"bad",
|
| 7 |
-
"good"
|
| 8 |
-
],
|
| 9 |
-
"model_file": "ethiopia_washed_custom_Noback_best_model.pth",
|
| 10 |
-
"metrics_file": "ethiopia_washed_metrics.json",
|
| 11 |
-
"display_name": "Ethiopia Washed - Custom CNN (Noback)"
|
| 12 |
}
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"bean_type": "ethiopia_washed",
|
| 3 |
+
"architecture": "custom",
|
| 4 |
+
"img_size": 128,
|
| 5 |
+
"classes": [
|
| 6 |
+
"bad",
|
| 7 |
+
"good"
|
| 8 |
+
],
|
| 9 |
+
"model_file": "ethiopia_washed_custom_Noback_best_model.pth",
|
| 10 |
+
"metrics_file": "ethiopia_washed_metrics.json",
|
| 11 |
+
"display_name": "Ethiopia Washed - Custom CNN (Noback)"
|
| 12 |
}
|
models/ethiopia_washed_history.json
CHANGED
|
@@ -1,282 +1,282 @@
|
|
| 1 |
-
[
|
| 2 |
-
{
|
| 3 |
-
"epoch": 1,
|
| 4 |
-
"train_loss": 1.263219588565491,
|
| 5 |
-
"train_accuracy": 0.5061511423550088,
|
| 6 |
-
"validation_loss": 0.6918301582336426,
|
| 7 |
-
"validation_accuracy": 0.6013986013986014
|
| 8 |
-
},
|
| 9 |
-
{
|
| 10 |
-
"epoch": 2,
|
| 11 |
-
"train_loss": 0.8212373721788135,
|
| 12 |
-
"train_accuracy": 0.4253075571177504,
|
| 13 |
-
"validation_loss": 0.691796600818634,
|
| 14 |
-
"validation_accuracy": 0.4195804195804196
|
| 15 |
-
},
|
| 16 |
-
{
|
| 17 |
-
"epoch": 3,
|
| 18 |
-
"train_loss": 0.7085306173049712,
|
| 19 |
-
"train_accuracy": 0.4446397188049209,
|
| 20 |
-
"validation_loss": 0.6918022632598877,
|
| 21 |
-
"validation_accuracy": 0.5874125874125874
|
| 22 |
-
},
|
| 23 |
-
{
|
| 24 |
-
"epoch": 4,
|
| 25 |
-
"train_loss": 0.6629954662390041,
|
| 26 |
-
"train_accuracy": 0.6186291739894552,
|
| 27 |
-
"validation_loss": 0.692229688167572,
|
| 28 |
-
"validation_accuracy": 0.5804195804195804
|
| 29 |
-
},
|
| 30 |
-
{
|
| 31 |
-
"epoch": 5,
|
| 32 |
-
"train_loss": 0.6709411046835995,
|
| 33 |
-
"train_accuracy": 0.6010544815465729,
|
| 34 |
-
"validation_loss": 0.6913071274757385,
|
| 35 |
-
"validation_accuracy": 0.5804195804195804
|
| 36 |
-
},
|
| 37 |
-
{
|
| 38 |
-
"epoch": 6,
|
| 39 |
-
"train_loss": 0.653107622700542,
|
| 40 |
-
"train_accuracy": 0.6449912126537786,
|
| 41 |
-
"validation_loss": 0.6869645714759827,
|
| 42 |
-
"validation_accuracy": 0.6853146853146853
|
| 43 |
-
},
|
| 44 |
-
{
|
| 45 |
-
"epoch": 7,
|
| 46 |
-
"train_loss": 0.6359432273673676,
|
| 47 |
-
"train_accuracy": 0.6783831282952548,
|
| 48 |
-
"validation_loss": 0.6831109523773193,
|
| 49 |
-
"validation_accuracy": 0.44755244755244755
|
| 50 |
-
},
|
| 51 |
-
{
|
| 52 |
-
"epoch": 8,
|
| 53 |
-
"train_loss": 0.6215834828168939,
|
| 54 |
-
"train_accuracy": 0.6309314586994728,
|
| 55 |
-
"validation_loss": 0.6756449937820435,
|
| 56 |
-
"validation_accuracy": 0.4825174825174825
|
| 57 |
-
},
|
| 58 |
-
{
|
| 59 |
-
"epoch": 9,
|
| 60 |
-
"train_loss": 0.6095518141932563,
|
| 61 |
-
"train_accuracy": 0.6678383128295254,
|
| 62 |
-
"validation_loss": 0.6631787419319153,
|
| 63 |
-
"validation_accuracy": 0.5664335664335665
|
| 64 |
-
},
|
| 65 |
-
{
|
| 66 |
-
"epoch": 10,
|
| 67 |
-
"train_loss": 0.5977175910359737,
|
| 68 |
-
"train_accuracy": 0.6889279437609842,
|
| 69 |
-
"validation_loss": 0.6542237997055054,
|
| 70 |
-
"validation_accuracy": 0.5524475524475524
|
| 71 |
-
},
|
| 72 |
-
{
|
| 73 |
-
"epoch": 11,
|
| 74 |
-
"train_loss": 0.5923221924183448,
|
| 75 |
-
"train_accuracy": 0.6731107205623902,
|
| 76 |
-
"validation_loss": 0.6427598595619202,
|
| 77 |
-
"validation_accuracy": 0.5594405594405595
|
| 78 |
-
},
|
| 79 |
-
{
|
| 80 |
-
"epoch": 12,
|
| 81 |
-
"train_loss": 0.5688371189554043,
|
| 82 |
-
"train_accuracy": 0.7082601054481547,
|
| 83 |
-
"validation_loss": 0.6323626637458801,
|
| 84 |
-
"validation_accuracy": 0.5734265734265734
|
| 85 |
-
},
|
| 86 |
-
{
|
| 87 |
-
"epoch": 13,
|
| 88 |
-
"train_loss": 0.5543311771483329,
|
| 89 |
-
"train_accuracy": 0.687170474516696,
|
| 90 |
-
"validation_loss": 0.6157304644584656,
|
| 91 |
-
"validation_accuracy": 0.6013986013986014
|
| 92 |
-
},
|
| 93 |
-
{
|
| 94 |
-
"epoch": 14,
|
| 95 |
-
"train_loss": 0.5415435294065828,
|
| 96 |
-
"train_accuracy": 0.7100175746924429,
|
| 97 |
-
"validation_loss": 0.5983814597129822,
|
| 98 |
-
"validation_accuracy": 0.6293706293706294
|
| 99 |
-
},
|
| 100 |
-
{
|
| 101 |
-
"epoch": 15,
|
| 102 |
-
"train_loss": 0.5299581497750508,
|
| 103 |
-
"train_accuracy": 0.7486818980667839,
|
| 104 |
-
"validation_loss": 0.5866342186927795,
|
| 105 |
-
"validation_accuracy": 0.6503496503496503
|
| 106 |
-
},
|
| 107 |
-
{
|
| 108 |
-
"epoch": 16,
|
| 109 |
-
"train_loss": 0.5125179690929205,
|
| 110 |
-
"train_accuracy": 0.7750439367311072,
|
| 111 |
-
"validation_loss": 0.5797297954559326,
|
| 112 |
-
"validation_accuracy": 0.6713286713286714
|
| 113 |
-
},
|
| 114 |
-
{
|
| 115 |
-
"epoch": 17,
|
| 116 |
-
"train_loss": 0.5040009153224463,
|
| 117 |
-
"train_accuracy": 0.7680140597539543,
|
| 118 |
-
"validation_loss": 0.5703222155570984,
|
| 119 |
-
"validation_accuracy": 0.6783216783216783
|
| 120 |
-
},
|
| 121 |
-
{
|
| 122 |
-
"epoch": 18,
|
| 123 |
-
"train_loss": 0.48477853936763554,
|
| 124 |
-
"train_accuracy": 0.7926186291739895,
|
| 125 |
-
"validation_loss": 0.5559291243553162,
|
| 126 |
-
"validation_accuracy": 0.6923076923076923
|
| 127 |
-
},
|
| 128 |
-
{
|
| 129 |
-
"epoch": 19,
|
| 130 |
-
"train_loss": 0.4833677645726866,
|
| 131 |
-
"train_accuracy": 0.7627416520210897,
|
| 132 |
-
"validation_loss": 0.5410254597663879,
|
| 133 |
-
"validation_accuracy": 0.7062937062937062
|
| 134 |
-
},
|
| 135 |
-
{
|
| 136 |
-
"epoch": 20,
|
| 137 |
-
"train_loss": 0.47811686002726295,
|
| 138 |
-
"train_accuracy": 0.7908611599297012,
|
| 139 |
-
"validation_loss": 0.5338454246520996,
|
| 140 |
-
"validation_accuracy": 0.7342657342657343
|
| 141 |
-
},
|
| 142 |
-
{
|
| 143 |
-
"epoch": 21,
|
| 144 |
-
"train_loss": 0.4612063278422833,
|
| 145 |
-
"train_accuracy": 0.7961335676625659,
|
| 146 |
-
"validation_loss": 0.523646891117096,
|
| 147 |
-
"validation_accuracy": 0.7202797202797203
|
| 148 |
-
},
|
| 149 |
-
{
|
| 150 |
-
"epoch": 22,
|
| 151 |
-
"train_loss": 0.4396921342307528,
|
| 152 |
-
"train_accuracy": 0.8014059753954306,
|
| 153 |
-
"validation_loss": 0.5196635723114014,
|
| 154 |
-
"validation_accuracy": 0.7272727272727273
|
| 155 |
-
},
|
| 156 |
-
{
|
| 157 |
-
"epoch": 23,
|
| 158 |
-
"train_loss": 0.4363301542500829,
|
| 159 |
-
"train_accuracy": 0.8330404217926186,
|
| 160 |
-
"validation_loss": 0.5153874754905701,
|
| 161 |
-
"validation_accuracy": 0.7622377622377622
|
| 162 |
-
},
|
| 163 |
-
{
|
| 164 |
-
"epoch": 24,
|
| 165 |
-
"train_loss": 0.4275727884840672,
|
| 166 |
-
"train_accuracy": 0.8330404217926186,
|
| 167 |
-
"validation_loss": 0.5052497386932373,
|
| 168 |
-
"validation_accuracy": 0.7622377622377622
|
| 169 |
-
},
|
| 170 |
-
{
|
| 171 |
-
"epoch": 25,
|
| 172 |
-
"train_loss": 0.40649927757117366,
|
| 173 |
-
"train_accuracy": 0.8418277680140598,
|
| 174 |
-
"validation_loss": 0.49567562341690063,
|
| 175 |
-
"validation_accuracy": 0.7552447552447552
|
| 176 |
-
},
|
| 177 |
-
{
|
| 178 |
-
"epoch": 26,
|
| 179 |
-
"train_loss": 0.39746694819369927,
|
| 180 |
-
"train_accuracy": 0.8400702987697716,
|
| 181 |
-
"validation_loss": 0.4961770474910736,
|
| 182 |
-
"validation_accuracy": 0.7832167832167832
|
| 183 |
-
},
|
| 184 |
-
{
|
| 185 |
-
"epoch": 27,
|
| 186 |
-
"train_loss": 0.404211174310406,
|
| 187 |
-
"train_accuracy": 0.8224956063268892,
|
| 188 |
-
"validation_loss": 0.4945208430290222,
|
| 189 |
-
"validation_accuracy": 0.7902097902097902
|
| 190 |
-
},
|
| 191 |
-
{
|
| 192 |
-
"epoch": 28,
|
| 193 |
-
"train_loss": 0.4025125237466581,
|
| 194 |
-
"train_accuracy": 0.8137082601054482,
|
| 195 |
-
"validation_loss": 0.48422667384147644,
|
| 196 |
-
"validation_accuracy": 0.7692307692307693
|
| 197 |
-
},
|
| 198 |
-
{
|
| 199 |
-
"epoch": 29,
|
| 200 |
-
"train_loss": 0.3945070078796159,
|
| 201 |
-
"train_accuracy": 0.8523725834797891,
|
| 202 |
-
"validation_loss": 0.48792701959609985,
|
| 203 |
-
"validation_accuracy": 0.7762237762237763
|
| 204 |
-
},
|
| 205 |
-
{
|
| 206 |
-
"epoch": 30,
|
| 207 |
-
"train_loss": 0.3658155489889725,
|
| 208 |
-
"train_accuracy": 0.859402460456942,
|
| 209 |
-
"validation_loss": 0.4910583794116974,
|
| 210 |
-
"validation_accuracy": 0.7762237762237763
|
| 211 |
-
},
|
| 212 |
-
{
|
| 213 |
-
"epoch": 31,
|
| 214 |
-
"train_loss": 0.3633354866127557,
|
| 215 |
-
"train_accuracy": 0.8576449912126538,
|
| 216 |
-
"validation_loss": 0.4889949858188629,
|
| 217 |
-
"validation_accuracy": 0.7762237762237763
|
| 218 |
-
},
|
| 219 |
-
{
|
| 220 |
-
"epoch": 32,
|
| 221 |
-
"train_loss": 0.3688585237061412,
|
| 222 |
-
"train_accuracy": 0.8506151142355008,
|
| 223 |
-
"validation_loss": 0.4916982650756836,
|
| 224 |
-
"validation_accuracy": 0.7762237762237763
|
| 225 |
-
},
|
| 226 |
-
{
|
| 227 |
-
"epoch": 33,
|
| 228 |
-
"train_loss": 0.3571993312642947,
|
| 229 |
-
"train_accuracy": 0.859402460456942,
|
| 230 |
-
"validation_loss": 0.4797869026660919,
|
| 231 |
-
"validation_accuracy": 0.7832167832167832
|
| 232 |
-
},
|
| 233 |
-
{
|
| 234 |
-
"epoch": 34,
|
| 235 |
-
"train_loss": 0.33788761585584215,
|
| 236 |
-
"train_accuracy": 0.8787346221441125,
|
| 237 |
-
"validation_loss": 0.4810600280761719,
|
| 238 |
-
"validation_accuracy": 0.7832167832167832
|
| 239 |
-
},
|
| 240 |
-
{
|
| 241 |
-
"epoch": 35,
|
| 242 |
-
"train_loss": 0.3369285811544093,
|
| 243 |
-
"train_accuracy": 0.8664323374340949,
|
| 244 |
-
"validation_loss": 0.47964662313461304,
|
| 245 |
-
"validation_accuracy": 0.7902097902097902
|
| 246 |
-
},
|
| 247 |
-
{
|
| 248 |
-
"epoch": 36,
|
| 249 |
-
"train_loss": 0.3247136227485375,
|
| 250 |
-
"train_accuracy": 0.9015817223198594,
|
| 251 |
-
"validation_loss": 0.4613395631313324,
|
| 252 |
-
"validation_accuracy": 0.7622377622377622
|
| 253 |
-
},
|
| 254 |
-
{
|
| 255 |
-
"epoch": 37,
|
| 256 |
-
"train_loss": 0.3240959414907834,
|
| 257 |
-
"train_accuracy": 0.8769771528998243,
|
| 258 |
-
"validation_loss": 0.4582526981830597,
|
| 259 |
-
"validation_accuracy": 0.7692307692307693
|
| 260 |
-
},
|
| 261 |
-
{
|
| 262 |
-
"epoch": 38,
|
| 263 |
-
"train_loss": 0.31223150668747607,
|
| 264 |
-
"train_accuracy": 0.8857644991212654,
|
| 265 |
-
"validation_loss": 0.4926481544971466,
|
| 266 |
-
"validation_accuracy": 0.7972027972027972
|
| 267 |
-
},
|
| 268 |
-
{
|
| 269 |
-
"epoch": 39,
|
| 270 |
-
"train_loss": 0.3200714421083722,
|
| 271 |
-
"train_accuracy": 0.8857644991212654,
|
| 272 |
-
"validation_loss": 0.48017311096191406,
|
| 273 |
-
"validation_accuracy": 0.8041958041958042
|
| 274 |
-
},
|
| 275 |
-
{
|
| 276 |
-
"epoch": 40,
|
| 277 |
-
"train_loss": 0.29528005837556137,
|
| 278 |
-
"train_accuracy": 0.8998242530755711,
|
| 279 |
-
"validation_loss": 0.4451611042022705,
|
| 280 |
-
"validation_accuracy": 0.7902097902097902
|
| 281 |
-
}
|
| 282 |
]
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"epoch": 1,
|
| 4 |
+
"train_loss": 1.263219588565491,
|
| 5 |
+
"train_accuracy": 0.5061511423550088,
|
| 6 |
+
"validation_loss": 0.6918301582336426,
|
| 7 |
+
"validation_accuracy": 0.6013986013986014
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
"epoch": 2,
|
| 11 |
+
"train_loss": 0.8212373721788135,
|
| 12 |
+
"train_accuracy": 0.4253075571177504,
|
| 13 |
+
"validation_loss": 0.691796600818634,
|
| 14 |
+
"validation_accuracy": 0.4195804195804196
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"epoch": 3,
|
| 18 |
+
"train_loss": 0.7085306173049712,
|
| 19 |
+
"train_accuracy": 0.4446397188049209,
|
| 20 |
+
"validation_loss": 0.6918022632598877,
|
| 21 |
+
"validation_accuracy": 0.5874125874125874
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"epoch": 4,
|
| 25 |
+
"train_loss": 0.6629954662390041,
|
| 26 |
+
"train_accuracy": 0.6186291739894552,
|
| 27 |
+
"validation_loss": 0.692229688167572,
|
| 28 |
+
"validation_accuracy": 0.5804195804195804
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"epoch": 5,
|
| 32 |
+
"train_loss": 0.6709411046835995,
|
| 33 |
+
"train_accuracy": 0.6010544815465729,
|
| 34 |
+
"validation_loss": 0.6913071274757385,
|
| 35 |
+
"validation_accuracy": 0.5804195804195804
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"epoch": 6,
|
| 39 |
+
"train_loss": 0.653107622700542,
|
| 40 |
+
"train_accuracy": 0.6449912126537786,
|
| 41 |
+
"validation_loss": 0.6869645714759827,
|
| 42 |
+
"validation_accuracy": 0.6853146853146853
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"epoch": 7,
|
| 46 |
+
"train_loss": 0.6359432273673676,
|
| 47 |
+
"train_accuracy": 0.6783831282952548,
|
| 48 |
+
"validation_loss": 0.6831109523773193,
|
| 49 |
+
"validation_accuracy": 0.44755244755244755
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"epoch": 8,
|
| 53 |
+
"train_loss": 0.6215834828168939,
|
| 54 |
+
"train_accuracy": 0.6309314586994728,
|
| 55 |
+
"validation_loss": 0.6756449937820435,
|
| 56 |
+
"validation_accuracy": 0.4825174825174825
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"epoch": 9,
|
| 60 |
+
"train_loss": 0.6095518141932563,
|
| 61 |
+
"train_accuracy": 0.6678383128295254,
|
| 62 |
+
"validation_loss": 0.6631787419319153,
|
| 63 |
+
"validation_accuracy": 0.5664335664335665
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"epoch": 10,
|
| 67 |
+
"train_loss": 0.5977175910359737,
|
| 68 |
+
"train_accuracy": 0.6889279437609842,
|
| 69 |
+
"validation_loss": 0.6542237997055054,
|
| 70 |
+
"validation_accuracy": 0.5524475524475524
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"epoch": 11,
|
| 74 |
+
"train_loss": 0.5923221924183448,
|
| 75 |
+
"train_accuracy": 0.6731107205623902,
|
| 76 |
+
"validation_loss": 0.6427598595619202,
|
| 77 |
+
"validation_accuracy": 0.5594405594405595
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"epoch": 12,
|
| 81 |
+
"train_loss": 0.5688371189554043,
|
| 82 |
+
"train_accuracy": 0.7082601054481547,
|
| 83 |
+
"validation_loss": 0.6323626637458801,
|
| 84 |
+
"validation_accuracy": 0.5734265734265734
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"epoch": 13,
|
| 88 |
+
"train_loss": 0.5543311771483329,
|
| 89 |
+
"train_accuracy": 0.687170474516696,
|
| 90 |
+
"validation_loss": 0.6157304644584656,
|
| 91 |
+
"validation_accuracy": 0.6013986013986014
|
| 92 |
+
},
|
| 93 |
+
{
|
| 94 |
+
"epoch": 14,
|
| 95 |
+
"train_loss": 0.5415435294065828,
|
| 96 |
+
"train_accuracy": 0.7100175746924429,
|
| 97 |
+
"validation_loss": 0.5983814597129822,
|
| 98 |
+
"validation_accuracy": 0.6293706293706294
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"epoch": 15,
|
| 102 |
+
"train_loss": 0.5299581497750508,
|
| 103 |
+
"train_accuracy": 0.7486818980667839,
|
| 104 |
+
"validation_loss": 0.5866342186927795,
|
| 105 |
+
"validation_accuracy": 0.6503496503496503
|
| 106 |
+
},
|
| 107 |
+
{
|
| 108 |
+
"epoch": 16,
|
| 109 |
+
"train_loss": 0.5125179690929205,
|
| 110 |
+
"train_accuracy": 0.7750439367311072,
|
| 111 |
+
"validation_loss": 0.5797297954559326,
|
| 112 |
+
"validation_accuracy": 0.6713286713286714
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
"epoch": 17,
|
| 116 |
+
"train_loss": 0.5040009153224463,
|
| 117 |
+
"train_accuracy": 0.7680140597539543,
|
| 118 |
+
"validation_loss": 0.5703222155570984,
|
| 119 |
+
"validation_accuracy": 0.6783216783216783
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"epoch": 18,
|
| 123 |
+
"train_loss": 0.48477853936763554,
|
| 124 |
+
"train_accuracy": 0.7926186291739895,
|
| 125 |
+
"validation_loss": 0.5559291243553162,
|
| 126 |
+
"validation_accuracy": 0.6923076923076923
|
| 127 |
+
},
|
| 128 |
+
{
|
| 129 |
+
"epoch": 19,
|
| 130 |
+
"train_loss": 0.4833677645726866,
|
| 131 |
+
"train_accuracy": 0.7627416520210897,
|
| 132 |
+
"validation_loss": 0.5410254597663879,
|
| 133 |
+
"validation_accuracy": 0.7062937062937062
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"epoch": 20,
|
| 137 |
+
"train_loss": 0.47811686002726295,
|
| 138 |
+
"train_accuracy": 0.7908611599297012,
|
| 139 |
+
"validation_loss": 0.5338454246520996,
|
| 140 |
+
"validation_accuracy": 0.7342657342657343
|
| 141 |
+
},
|
| 142 |
+
{
|
| 143 |
+
"epoch": 21,
|
| 144 |
+
"train_loss": 0.4612063278422833,
|
| 145 |
+
"train_accuracy": 0.7961335676625659,
|
| 146 |
+
"validation_loss": 0.523646891117096,
|
| 147 |
+
"validation_accuracy": 0.7202797202797203
|
| 148 |
+
},
|
| 149 |
+
{
|
| 150 |
+
"epoch": 22,
|
| 151 |
+
"train_loss": 0.4396921342307528,
|
| 152 |
+
"train_accuracy": 0.8014059753954306,
|
| 153 |
+
"validation_loss": 0.5196635723114014,
|
| 154 |
+
"validation_accuracy": 0.7272727272727273
|
| 155 |
+
},
|
| 156 |
+
{
|
| 157 |
+
"epoch": 23,
|
| 158 |
+
"train_loss": 0.4363301542500829,
|
| 159 |
+
"train_accuracy": 0.8330404217926186,
|
| 160 |
+
"validation_loss": 0.5153874754905701,
|
| 161 |
+
"validation_accuracy": 0.7622377622377622
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"epoch": 24,
|
| 165 |
+
"train_loss": 0.4275727884840672,
|
| 166 |
+
"train_accuracy": 0.8330404217926186,
|
| 167 |
+
"validation_loss": 0.5052497386932373,
|
| 168 |
+
"validation_accuracy": 0.7622377622377622
|
| 169 |
+
},
|
| 170 |
+
{
|
| 171 |
+
"epoch": 25,
|
| 172 |
+
"train_loss": 0.40649927757117366,
|
| 173 |
+
"train_accuracy": 0.8418277680140598,
|
| 174 |
+
"validation_loss": 0.49567562341690063,
|
| 175 |
+
"validation_accuracy": 0.7552447552447552
|
| 176 |
+
},
|
| 177 |
+
{
|
| 178 |
+
"epoch": 26,
|
| 179 |
+
"train_loss": 0.39746694819369927,
|
| 180 |
+
"train_accuracy": 0.8400702987697716,
|
| 181 |
+
"validation_loss": 0.4961770474910736,
|
| 182 |
+
"validation_accuracy": 0.7832167832167832
|
| 183 |
+
},
|
| 184 |
+
{
|
| 185 |
+
"epoch": 27,
|
| 186 |
+
"train_loss": 0.404211174310406,
|
| 187 |
+
"train_accuracy": 0.8224956063268892,
|
| 188 |
+
"validation_loss": 0.4945208430290222,
|
| 189 |
+
"validation_accuracy": 0.7902097902097902
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"epoch": 28,
|
| 193 |
+
"train_loss": 0.4025125237466581,
|
| 194 |
+
"train_accuracy": 0.8137082601054482,
|
| 195 |
+
"validation_loss": 0.48422667384147644,
|
| 196 |
+
"validation_accuracy": 0.7692307692307693
|
| 197 |
+
},
|
| 198 |
+
{
|
| 199 |
+
"epoch": 29,
|
| 200 |
+
"train_loss": 0.3945070078796159,
|
| 201 |
+
"train_accuracy": 0.8523725834797891,
|
| 202 |
+
"validation_loss": 0.48792701959609985,
|
| 203 |
+
"validation_accuracy": 0.7762237762237763
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"epoch": 30,
|
| 207 |
+
"train_loss": 0.3658155489889725,
|
| 208 |
+
"train_accuracy": 0.859402460456942,
|
| 209 |
+
"validation_loss": 0.4910583794116974,
|
| 210 |
+
"validation_accuracy": 0.7762237762237763
|
| 211 |
+
},
|
| 212 |
+
{
|
| 213 |
+
"epoch": 31,
|
| 214 |
+
"train_loss": 0.3633354866127557,
|
| 215 |
+
"train_accuracy": 0.8576449912126538,
|
| 216 |
+
"validation_loss": 0.4889949858188629,
|
| 217 |
+
"validation_accuracy": 0.7762237762237763
|
| 218 |
+
},
|
| 219 |
+
{
|
| 220 |
+
"epoch": 32,
|
| 221 |
+
"train_loss": 0.3688585237061412,
|
| 222 |
+
"train_accuracy": 0.8506151142355008,
|
| 223 |
+
"validation_loss": 0.4916982650756836,
|
| 224 |
+
"validation_accuracy": 0.7762237762237763
|
| 225 |
+
},
|
| 226 |
+
{
|
| 227 |
+
"epoch": 33,
|
| 228 |
+
"train_loss": 0.3571993312642947,
|
| 229 |
+
"train_accuracy": 0.859402460456942,
|
| 230 |
+
"validation_loss": 0.4797869026660919,
|
| 231 |
+
"validation_accuracy": 0.7832167832167832
|
| 232 |
+
},
|
| 233 |
+
{
|
| 234 |
+
"epoch": 34,
|
| 235 |
+
"train_loss": 0.33788761585584215,
|
| 236 |
+
"train_accuracy": 0.8787346221441125,
|
| 237 |
+
"validation_loss": 0.4810600280761719,
|
| 238 |
+
"validation_accuracy": 0.7832167832167832
|
| 239 |
+
},
|
| 240 |
+
{
|
| 241 |
+
"epoch": 35,
|
| 242 |
+
"train_loss": 0.3369285811544093,
|
| 243 |
+
"train_accuracy": 0.8664323374340949,
|
| 244 |
+
"validation_loss": 0.47964662313461304,
|
| 245 |
+
"validation_accuracy": 0.7902097902097902
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"epoch": 36,
|
| 249 |
+
"train_loss": 0.3247136227485375,
|
| 250 |
+
"train_accuracy": 0.9015817223198594,
|
| 251 |
+
"validation_loss": 0.4613395631313324,
|
| 252 |
+
"validation_accuracy": 0.7622377622377622
|
| 253 |
+
},
|
| 254 |
+
{
|
| 255 |
+
"epoch": 37,
|
| 256 |
+
"train_loss": 0.3240959414907834,
|
| 257 |
+
"train_accuracy": 0.8769771528998243,
|
| 258 |
+
"validation_loss": 0.4582526981830597,
|
| 259 |
+
"validation_accuracy": 0.7692307692307693
|
| 260 |
+
},
|
| 261 |
+
{
|
| 262 |
+
"epoch": 38,
|
| 263 |
+
"train_loss": 0.31223150668747607,
|
| 264 |
+
"train_accuracy": 0.8857644991212654,
|
| 265 |
+
"validation_loss": 0.4926481544971466,
|
| 266 |
+
"validation_accuracy": 0.7972027972027972
|
| 267 |
+
},
|
| 268 |
+
{
|
| 269 |
+
"epoch": 39,
|
| 270 |
+
"train_loss": 0.3200714421083722,
|
| 271 |
+
"train_accuracy": 0.8857644991212654,
|
| 272 |
+
"validation_loss": 0.48017311096191406,
|
| 273 |
+
"validation_accuracy": 0.8041958041958042
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"epoch": 40,
|
| 277 |
+
"train_loss": 0.29528005837556137,
|
| 278 |
+
"train_accuracy": 0.8998242530755711,
|
| 279 |
+
"validation_loss": 0.4451611042022705,
|
| 280 |
+
"validation_accuracy": 0.7902097902097902
|
| 281 |
+
}
|
| 282 |
]
|
models/ethiopia_washed_metrics.json
CHANGED
|
@@ -1,68 +1,68 @@
|
|
| 1 |
-
{
|
| 2 |
-
"accuracy": 0.7902097902097902,
|
| 3 |
-
"macro_avg": {
|
| 4 |
-
"precision": 0.7857142857142857,
|
| 5 |
-
"recall": 0.791566265060241,
|
| 6 |
-
"f1": 0.7872023809523809
|
| 7 |
-
},
|
| 8 |
-
"weighted_avg": {
|
| 9 |
-
"precision": 0.7951139769321587,
|
| 10 |
-
"recall": 0.7902097902097902,
|
| 11 |
-
"f1": 0.7912712287712286
|
| 12 |
-
},
|
| 13 |
-
"per_class": {
|
| 14 |
-
"bad": {
|
| 15 |
-
"precision": 0.8441558441558441,
|
| 16 |
-
"recall": 0.7831325301204819,
|
| 17 |
-
"f1": 0.8124999999999999,
|
| 18 |
-
"support": 83
|
| 19 |
-
},
|
| 20 |
-
"good": {
|
| 21 |
-
"precision": 0.7272727272727273,
|
| 22 |
-
"recall": 0.8,
|
| 23 |
-
"f1": 0.761904761904762,
|
| 24 |
-
"support": 60
|
| 25 |
-
}
|
| 26 |
-
},
|
| 27 |
-
"confusion_matrix": [
|
| 28 |
-
[
|
| 29 |
-
65,
|
| 30 |
-
18
|
| 31 |
-
],
|
| 32 |
-
[
|
| 33 |
-
12,
|
| 34 |
-
48
|
| 35 |
-
]
|
| 36 |
-
],
|
| 37 |
-
"confusion_matrix_labels": [
|
| 38 |
-
"bad",
|
| 39 |
-
"good"
|
| 40 |
-
],
|
| 41 |
-
"samples": 143,
|
| 42 |
-
"bean_type": "ethiopia_washed",
|
| 43 |
-
"architecture": "custom",
|
| 44 |
-
"input_size": 128,
|
| 45 |
-
"classes": [
|
| 46 |
-
"bad",
|
| 47 |
-
"good"
|
| 48 |
-
],
|
| 49 |
-
"dataset_path": "coffee_beans_data/ethiopia_washed/corp_augmented_dataNoback",
|
| 50 |
-
"split": "80/20 random split of the augmented dataset",
|
| 51 |
-
"split_limitations": "The existing project split was preserved. Augmented variants may cross the train/validation boundary, and no independent test set is used.",
|
| 52 |
-
"total_samples": 712,
|
| 53 |
-
"train_samples": 569,
|
| 54 |
-
"validation_samples": 143,
|
| 55 |
-
"training_class_counts": {
|
| 56 |
-
"bad": 333,
|
| 57 |
-
"good": 236
|
| 58 |
-
},
|
| 59 |
-
"class_weights": {
|
| 60 |
-
"bad": 0.8543543543543544,
|
| 61 |
-
"good": 1.2055084745762712
|
| 62 |
-
},
|
| 63 |
-
"epochs_completed": 40,
|
| 64 |
-
"best_epoch": 40,
|
| 65 |
-
"best_validation_loss": 0.4451611042022705,
|
| 66 |
-
"generated_at": "2026-09-08T14:27:10.375571+00:00",
|
| 67 |
-
"torch_version": "2.11.0+cu128"
|
| 68 |
}
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"accuracy": 0.7902097902097902,
|
| 3 |
+
"macro_avg": {
|
| 4 |
+
"precision": 0.7857142857142857,
|
| 5 |
+
"recall": 0.791566265060241,
|
| 6 |
+
"f1": 0.7872023809523809
|
| 7 |
+
},
|
| 8 |
+
"weighted_avg": {
|
| 9 |
+
"precision": 0.7951139769321587,
|
| 10 |
+
"recall": 0.7902097902097902,
|
| 11 |
+
"f1": 0.7912712287712286
|
| 12 |
+
},
|
| 13 |
+
"per_class": {
|
| 14 |
+
"bad": {
|
| 15 |
+
"precision": 0.8441558441558441,
|
| 16 |
+
"recall": 0.7831325301204819,
|
| 17 |
+
"f1": 0.8124999999999999,
|
| 18 |
+
"support": 83
|
| 19 |
+
},
|
| 20 |
+
"good": {
|
| 21 |
+
"precision": 0.7272727272727273,
|
| 22 |
+
"recall": 0.8,
|
| 23 |
+
"f1": 0.761904761904762,
|
| 24 |
+
"support": 60
|
| 25 |
+
}
|
| 26 |
+
},
|
| 27 |
+
"confusion_matrix": [
|
| 28 |
+
[
|
| 29 |
+
65,
|
| 30 |
+
18
|
| 31 |
+
],
|
| 32 |
+
[
|
| 33 |
+
12,
|
| 34 |
+
48
|
| 35 |
+
]
|
| 36 |
+
],
|
| 37 |
+
"confusion_matrix_labels": [
|
| 38 |
+
"bad",
|
| 39 |
+
"good"
|
| 40 |
+
],
|
| 41 |
+
"samples": 143,
|
| 42 |
+
"bean_type": "ethiopia_washed",
|
| 43 |
+
"architecture": "custom",
|
| 44 |
+
"input_size": 128,
|
| 45 |
+
"classes": [
|
| 46 |
+
"bad",
|
| 47 |
+
"good"
|
| 48 |
+
],
|
| 49 |
+
"dataset_path": "coffee_beans_data/ethiopia_washed/corp_augmented_dataNoback",
|
| 50 |
+
"split": "80/20 random split of the augmented dataset",
|
| 51 |
+
"split_limitations": "The existing project split was preserved. Augmented variants may cross the train/validation boundary, and no independent test set is used.",
|
| 52 |
+
"total_samples": 712,
|
| 53 |
+
"train_samples": 569,
|
| 54 |
+
"validation_samples": 143,
|
| 55 |
+
"training_class_counts": {
|
| 56 |
+
"bad": 333,
|
| 57 |
+
"good": 236
|
| 58 |
+
},
|
| 59 |
+
"class_weights": {
|
| 60 |
+
"bad": 0.8543543543543544,
|
| 61 |
+
"good": 1.2055084745762712
|
| 62 |
+
},
|
| 63 |
+
"epochs_completed": 40,
|
| 64 |
+
"best_epoch": 40,
|
| 65 |
+
"best_validation_loss": 0.4451611042022705,
|
| 66 |
+
"generated_at": "2026-09-08T14:27:10.375571+00:00",
|
| 67 |
+
"torch_version": "2.11.0+cu128"
|
| 68 |
}
|
models/honduras_natural_custom_Noback_best_model.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
-
{
|
| 2 |
-
"bean_type": "honduras_natural",
|
| 3 |
-
"architecture": "custom",
|
| 4 |
-
"img_size": 128,
|
| 5 |
-
"classes": [
|
| 6 |
-
"bad",
|
| 7 |
-
"good"
|
| 8 |
-
],
|
| 9 |
-
"model_file": "honduras_natural_custom_Noback_best_model.pth",
|
| 10 |
-
"metrics_file": "honduras_natural_metrics.json",
|
| 11 |
-
"display_name": "Honduras Natural - Custom CNN (Noback)"
|
| 12 |
}
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"bean_type": "honduras_natural",
|
| 3 |
+
"architecture": "custom",
|
| 4 |
+
"img_size": 128,
|
| 5 |
+
"classes": [
|
| 6 |
+
"bad",
|
| 7 |
+
"good"
|
| 8 |
+
],
|
| 9 |
+
"model_file": "honduras_natural_custom_Noback_best_model.pth",
|
| 10 |
+
"metrics_file": "honduras_natural_metrics.json",
|
| 11 |
+
"display_name": "Honduras Natural - Custom CNN (Noback)"
|
| 12 |
}
|
models/honduras_natural_history.json
CHANGED
|
@@ -1,282 +1,282 @@
|
|
| 1 |
-
[
|
| 2 |
-
{
|
| 3 |
-
"epoch": 1,
|
| 4 |
-
"train_loss": 0.9765957467323911,
|
| 5 |
-
"train_accuracy": 0.5066371681415929,
|
| 6 |
-
"validation_loss": 0.6960582733154297,
|
| 7 |
-
"validation_accuracy": 0.2543859649122807
|
| 8 |
-
},
|
| 9 |
-
{
|
| 10 |
-
"epoch": 2,
|
| 11 |
-
"train_loss": 0.7218032943463959,
|
| 12 |
-
"train_accuracy": 0.4557522123893805,
|
| 13 |
-
"validation_loss": 0.7038145661354065,
|
| 14 |
-
"validation_accuracy": 0.21052631578947367
|
| 15 |
-
},
|
| 16 |
-
{
|
| 17 |
-
"epoch": 3,
|
| 18 |
-
"train_loss": 0.6724163009002145,
|
| 19 |
-
"train_accuracy": 0.40486725663716816,
|
| 20 |
-
"validation_loss": 0.6928611993789673,
|
| 21 |
-
"validation_accuracy": 0.41228070175438597
|
| 22 |
-
},
|
| 23 |
-
{
|
| 24 |
-
"epoch": 4,
|
| 25 |
-
"train_loss": 0.6250287700543361,
|
| 26 |
-
"train_accuracy": 0.7146017699115044,
|
| 27 |
-
"validation_loss": 0.6836850047111511,
|
| 28 |
-
"validation_accuracy": 0.7894736842105263
|
| 29 |
-
},
|
| 30 |
-
{
|
| 31 |
-
"epoch": 5,
|
| 32 |
-
"train_loss": 0.6430877056796994,
|
| 33 |
-
"train_accuracy": 0.7278761061946902,
|
| 34 |
-
"validation_loss": 0.6853227615356445,
|
| 35 |
-
"validation_accuracy": 0.7807017543859649
|
| 36 |
-
},
|
| 37 |
-
{
|
| 38 |
-
"epoch": 6,
|
| 39 |
-
"train_loss": 0.5932178455116475,
|
| 40 |
-
"train_accuracy": 0.7278761061946902,
|
| 41 |
-
"validation_loss": 0.6959421038627625,
|
| 42 |
-
"validation_accuracy": 0.2982456140350877
|
| 43 |
-
},
|
| 44 |
-
{
|
| 45 |
-
"epoch": 7,
|
| 46 |
-
"train_loss": 0.5798883195471974,
|
| 47 |
-
"train_accuracy": 0.6747787610619469,
|
| 48 |
-
"validation_loss": 0.6998635530471802,
|
| 49 |
-
"validation_accuracy": 0.2631578947368421
|
| 50 |
-
},
|
| 51 |
-
{
|
| 52 |
-
"epoch": 8,
|
| 53 |
-
"train_loss": 0.5659138755460756,
|
| 54 |
-
"train_accuracy": 0.665929203539823,
|
| 55 |
-
"validation_loss": 0.6864909529685974,
|
| 56 |
-
"validation_accuracy": 0.5526315789473685
|
| 57 |
-
},
|
| 58 |
-
{
|
| 59 |
-
"epoch": 9,
|
| 60 |
-
"train_loss": 0.5397921431381091,
|
| 61 |
-
"train_accuracy": 0.7676991150442478,
|
| 62 |
-
"validation_loss": 0.677666425704956,
|
| 63 |
-
"validation_accuracy": 0.6666666666666666
|
| 64 |
-
},
|
| 65 |
-
{
|
| 66 |
-
"epoch": 10,
|
| 67 |
-
"train_loss": 0.5219969121755752,
|
| 68 |
-
"train_accuracy": 0.7920353982300885,
|
| 69 |
-
"validation_loss": 0.6777678728103638,
|
| 70 |
-
"validation_accuracy": 0.5964912280701754
|
| 71 |
-
},
|
| 72 |
-
{
|
| 73 |
-
"epoch": 11,
|
| 74 |
-
"train_loss": 0.5135227531458424,
|
| 75 |
-
"train_accuracy": 0.745575221238938,
|
| 76 |
-
"validation_loss": 0.6844081282615662,
|
| 77 |
-
"validation_accuracy": 0.5263157894736842
|
| 78 |
-
},
|
| 79 |
-
{
|
| 80 |
-
"epoch": 12,
|
| 81 |
-
"train_loss": 0.4908704122083377,
|
| 82 |
-
"train_accuracy": 0.7477876106194691,
|
| 83 |
-
"validation_loss": 0.6718830466270447,
|
| 84 |
-
"validation_accuracy": 0.6140350877192983
|
| 85 |
-
},
|
| 86 |
-
{
|
| 87 |
-
"epoch": 13,
|
| 88 |
-
"train_loss": 0.4826051550628865,
|
| 89 |
-
"train_accuracy": 0.7765486725663717,
|
| 90 |
-
"validation_loss": 0.6624081134796143,
|
| 91 |
-
"validation_accuracy": 0.6842105263157895
|
| 92 |
-
},
|
| 93 |
-
{
|
| 94 |
-
"epoch": 14,
|
| 95 |
-
"train_loss": 0.46433306056841284,
|
| 96 |
-
"train_accuracy": 0.7986725663716814,
|
| 97 |
-
"validation_loss": 0.6589961051940918,
|
| 98 |
-
"validation_accuracy": 0.6578947368421053
|
| 99 |
-
},
|
| 100 |
-
{
|
| 101 |
-
"epoch": 15,
|
| 102 |
-
"train_loss": 0.4400974667705266,
|
| 103 |
-
"train_accuracy": 0.8008849557522124,
|
| 104 |
-
"validation_loss": 0.6533895134925842,
|
| 105 |
-
"validation_accuracy": 0.6666666666666666
|
| 106 |
-
},
|
| 107 |
-
{
|
| 108 |
-
"epoch": 16,
|
| 109 |
-
"train_loss": 0.4371070521595204,
|
| 110 |
-
"train_accuracy": 0.8075221238938053,
|
| 111 |
-
"validation_loss": 0.6499096751213074,
|
| 112 |
-
"validation_accuracy": 0.6842105263157895
|
| 113 |
-
},
|
| 114 |
-
{
|
| 115 |
-
"epoch": 17,
|
| 116 |
-
"train_loss": 0.4170592013186058,
|
| 117 |
-
"train_accuracy": 0.8053097345132744,
|
| 118 |
-
"validation_loss": 0.6416586637496948,
|
| 119 |
-
"validation_accuracy": 0.7105263157894737
|
| 120 |
-
},
|
| 121 |
-
{
|
| 122 |
-
"epoch": 18,
|
| 123 |
-
"train_loss": 0.41721887240367656,
|
| 124 |
-
"train_accuracy": 0.8207964601769911,
|
| 125 |
-
"validation_loss": 0.6355786323547363,
|
| 126 |
-
"validation_accuracy": 0.7192982456140351
|
| 127 |
-
},
|
| 128 |
-
{
|
| 129 |
-
"epoch": 19,
|
| 130 |
-
"train_loss": 0.3968231345699952,
|
| 131 |
-
"train_accuracy": 0.8473451327433629,
|
| 132 |
-
"validation_loss": 0.6301834583282471,
|
| 133 |
-
"validation_accuracy": 0.7368421052631579
|
| 134 |
-
},
|
| 135 |
-
{
|
| 136 |
-
"epoch": 20,
|
| 137 |
-
"train_loss": 0.3726621565565599,
|
| 138 |
-
"train_accuracy": 0.8473451327433629,
|
| 139 |
-
"validation_loss": 0.6239787340164185,
|
| 140 |
-
"validation_accuracy": 0.7368421052631579
|
| 141 |
-
},
|
| 142 |
-
{
|
| 143 |
-
"epoch": 21,
|
| 144 |
-
"train_loss": 0.3750708812633447,
|
| 145 |
-
"train_accuracy": 0.8473451327433629,
|
| 146 |
-
"validation_loss": 0.615045964717865,
|
| 147 |
-
"validation_accuracy": 0.7368421052631579
|
| 148 |
-
},
|
| 149 |
-
{
|
| 150 |
-
"epoch": 22,
|
| 151 |
-
"train_loss": 0.35499391249850787,
|
| 152 |
-
"train_accuracy": 0.8539823008849557,
|
| 153 |
-
"validation_loss": 0.6041514277458191,
|
| 154 |
-
"validation_accuracy": 0.7631578947368421
|
| 155 |
-
},
|
| 156 |
-
{
|
| 157 |
-
"epoch": 23,
|
| 158 |
-
"train_loss": 0.331090675518576,
|
| 159 |
-
"train_accuracy": 0.8606194690265486,
|
| 160 |
-
"validation_loss": 0.5928549766540527,
|
| 161 |
-
"validation_accuracy": 0.7719298245614035
|
| 162 |
-
},
|
| 163 |
-
{
|
| 164 |
-
"epoch": 24,
|
| 165 |
-
"train_loss": 0.32689084284073483,
|
| 166 |
-
"train_accuracy": 0.9026548672566371,
|
| 167 |
-
"validation_loss": 0.5795340538024902,
|
| 168 |
-
"validation_accuracy": 0.7719298245614035
|
| 169 |
-
},
|
| 170 |
-
{
|
| 171 |
-
"epoch": 25,
|
| 172 |
-
"train_loss": 0.3171025345810747,
|
| 173 |
-
"train_accuracy": 0.8606194690265486,
|
| 174 |
-
"validation_loss": 0.5708882212638855,
|
| 175 |
-
"validation_accuracy": 0.7719298245614035
|
| 176 |
-
},
|
| 177 |
-
{
|
| 178 |
-
"epoch": 26,
|
| 179 |
-
"train_loss": 0.30806970596313477,
|
| 180 |
-
"train_accuracy": 0.8761061946902655,
|
| 181 |
-
"validation_loss": 0.564824640750885,
|
| 182 |
-
"validation_accuracy": 0.7894736842105263
|
| 183 |
-
},
|
| 184 |
-
{
|
| 185 |
-
"epoch": 27,
|
| 186 |
-
"train_loss": 0.2851240487225288,
|
| 187 |
-
"train_accuracy": 0.9092920353982301,
|
| 188 |
-
"validation_loss": 0.5641254186630249,
|
| 189 |
-
"validation_accuracy": 0.7982456140350878
|
| 190 |
-
},
|
| 191 |
-
{
|
| 192 |
-
"epoch": 28,
|
| 193 |
-
"train_loss": 0.30291247684343725,
|
| 194 |
-
"train_accuracy": 0.8849557522123894,
|
| 195 |
-
"validation_loss": 0.557503342628479,
|
| 196 |
-
"validation_accuracy": 0.7894736842105263
|
| 197 |
-
},
|
| 198 |
-
{
|
| 199 |
-
"epoch": 29,
|
| 200 |
-
"train_loss": 0.2793961090851674,
|
| 201 |
-
"train_accuracy": 0.9203539823008849,
|
| 202 |
-
"validation_loss": 0.5570541024208069,
|
| 203 |
-
"validation_accuracy": 0.7719298245614035
|
| 204 |
-
},
|
| 205 |
-
{
|
| 206 |
-
"epoch": 30,
|
| 207 |
-
"train_loss": 0.2735133843611827,
|
| 208 |
-
"train_accuracy": 0.8893805309734514,
|
| 209 |
-
"validation_loss": 0.555424153804779,
|
| 210 |
-
"validation_accuracy": 0.7719298245614035
|
| 211 |
-
},
|
| 212 |
-
{
|
| 213 |
-
"epoch": 31,
|
| 214 |
-
"train_loss": 0.25710611665143374,
|
| 215 |
-
"train_accuracy": 0.9137168141592921,
|
| 216 |
-
"validation_loss": 0.5596690773963928,
|
| 217 |
-
"validation_accuracy": 0.8333333333333334
|
| 218 |
-
},
|
| 219 |
-
{
|
| 220 |
-
"epoch": 32,
|
| 221 |
-
"train_loss": 0.26409966940373447,
|
| 222 |
-
"train_accuracy": 0.9336283185840708,
|
| 223 |
-
"validation_loss": 0.5455154180526733,
|
| 224 |
-
"validation_accuracy": 0.8333333333333334
|
| 225 |
-
},
|
| 226 |
-
{
|
| 227 |
-
"epoch": 33,
|
| 228 |
-
"train_loss": 0.2337114705448657,
|
| 229 |
-
"train_accuracy": 0.9269911504424779,
|
| 230 |
-
"validation_loss": 0.5335549116134644,
|
| 231 |
-
"validation_accuracy": 0.8070175438596491
|
| 232 |
-
},
|
| 233 |
-
{
|
| 234 |
-
"epoch": 34,
|
| 235 |
-
"train_loss": 0.23032094828322924,
|
| 236 |
-
"train_accuracy": 0.9380530973451328,
|
| 237 |
-
"validation_loss": 0.5321564674377441,
|
| 238 |
-
"validation_accuracy": 0.8333333333333334
|
| 239 |
-
},
|
| 240 |
-
{
|
| 241 |
-
"epoch": 35,
|
| 242 |
-
"train_loss": 0.22375348513632748,
|
| 243 |
-
"train_accuracy": 0.9513274336283186,
|
| 244 |
-
"validation_loss": 0.5280061960220337,
|
| 245 |
-
"validation_accuracy": 0.8333333333333334
|
| 246 |
-
},
|
| 247 |
-
{
|
| 248 |
-
"epoch": 36,
|
| 249 |
-
"train_loss": 0.20337354794012763,
|
| 250 |
-
"train_accuracy": 0.9668141592920354,
|
| 251 |
-
"validation_loss": 0.518876314163208,
|
| 252 |
-
"validation_accuracy": 0.8245614035087719
|
| 253 |
-
},
|
| 254 |
-
{
|
| 255 |
-
"epoch": 37,
|
| 256 |
-
"train_loss": 0.2041399356274478,
|
| 257 |
-
"train_accuracy": 0.9513274336283186,
|
| 258 |
-
"validation_loss": 0.5181131362915039,
|
| 259 |
-
"validation_accuracy": 0.7807017543859649
|
| 260 |
-
},
|
| 261 |
-
{
|
| 262 |
-
"epoch": 38,
|
| 263 |
-
"train_loss": 0.20407535913771233,
|
| 264 |
-
"train_accuracy": 0.9491150442477876,
|
| 265 |
-
"validation_loss": 0.5212715864181519,
|
| 266 |
-
"validation_accuracy": 0.7894736842105263
|
| 267 |
-
},
|
| 268 |
-
{
|
| 269 |
-
"epoch": 39,
|
| 270 |
-
"train_loss": 0.1843387596638857,
|
| 271 |
-
"train_accuracy": 0.9557522123893806,
|
| 272 |
-
"validation_loss": 0.5455327033996582,
|
| 273 |
-
"validation_accuracy": 0.8596491228070176
|
| 274 |
-
},
|
| 275 |
-
{
|
| 276 |
-
"epoch": 40,
|
| 277 |
-
"train_loss": 0.18404048206531895,
|
| 278 |
-
"train_accuracy": 0.9668141592920354,
|
| 279 |
-
"validation_loss": 0.5410023331642151,
|
| 280 |
-
"validation_accuracy": 0.8508771929824561
|
| 281 |
-
}
|
| 282 |
]
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"epoch": 1,
|
| 4 |
+
"train_loss": 0.9765957467323911,
|
| 5 |
+
"train_accuracy": 0.5066371681415929,
|
| 6 |
+
"validation_loss": 0.6960582733154297,
|
| 7 |
+
"validation_accuracy": 0.2543859649122807
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
"epoch": 2,
|
| 11 |
+
"train_loss": 0.7218032943463959,
|
| 12 |
+
"train_accuracy": 0.4557522123893805,
|
| 13 |
+
"validation_loss": 0.7038145661354065,
|
| 14 |
+
"validation_accuracy": 0.21052631578947367
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"epoch": 3,
|
| 18 |
+
"train_loss": 0.6724163009002145,
|
| 19 |
+
"train_accuracy": 0.40486725663716816,
|
| 20 |
+
"validation_loss": 0.6928611993789673,
|
| 21 |
+
"validation_accuracy": 0.41228070175438597
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"epoch": 4,
|
| 25 |
+
"train_loss": 0.6250287700543361,
|
| 26 |
+
"train_accuracy": 0.7146017699115044,
|
| 27 |
+
"validation_loss": 0.6836850047111511,
|
| 28 |
+
"validation_accuracy": 0.7894736842105263
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"epoch": 5,
|
| 32 |
+
"train_loss": 0.6430877056796994,
|
| 33 |
+
"train_accuracy": 0.7278761061946902,
|
| 34 |
+
"validation_loss": 0.6853227615356445,
|
| 35 |
+
"validation_accuracy": 0.7807017543859649
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"epoch": 6,
|
| 39 |
+
"train_loss": 0.5932178455116475,
|
| 40 |
+
"train_accuracy": 0.7278761061946902,
|
| 41 |
+
"validation_loss": 0.6959421038627625,
|
| 42 |
+
"validation_accuracy": 0.2982456140350877
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"epoch": 7,
|
| 46 |
+
"train_loss": 0.5798883195471974,
|
| 47 |
+
"train_accuracy": 0.6747787610619469,
|
| 48 |
+
"validation_loss": 0.6998635530471802,
|
| 49 |
+
"validation_accuracy": 0.2631578947368421
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"epoch": 8,
|
| 53 |
+
"train_loss": 0.5659138755460756,
|
| 54 |
+
"train_accuracy": 0.665929203539823,
|
| 55 |
+
"validation_loss": 0.6864909529685974,
|
| 56 |
+
"validation_accuracy": 0.5526315789473685
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"epoch": 9,
|
| 60 |
+
"train_loss": 0.5397921431381091,
|
| 61 |
+
"train_accuracy": 0.7676991150442478,
|
| 62 |
+
"validation_loss": 0.677666425704956,
|
| 63 |
+
"validation_accuracy": 0.6666666666666666
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"epoch": 10,
|
| 67 |
+
"train_loss": 0.5219969121755752,
|
| 68 |
+
"train_accuracy": 0.7920353982300885,
|
| 69 |
+
"validation_loss": 0.6777678728103638,
|
| 70 |
+
"validation_accuracy": 0.5964912280701754
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"epoch": 11,
|
| 74 |
+
"train_loss": 0.5135227531458424,
|
| 75 |
+
"train_accuracy": 0.745575221238938,
|
| 76 |
+
"validation_loss": 0.6844081282615662,
|
| 77 |
+
"validation_accuracy": 0.5263157894736842
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"epoch": 12,
|
| 81 |
+
"train_loss": 0.4908704122083377,
|
| 82 |
+
"train_accuracy": 0.7477876106194691,
|
| 83 |
+
"validation_loss": 0.6718830466270447,
|
| 84 |
+
"validation_accuracy": 0.6140350877192983
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"epoch": 13,
|
| 88 |
+
"train_loss": 0.4826051550628865,
|
| 89 |
+
"train_accuracy": 0.7765486725663717,
|
| 90 |
+
"validation_loss": 0.6624081134796143,
|
| 91 |
+
"validation_accuracy": 0.6842105263157895
|
| 92 |
+
},
|
| 93 |
+
{
|
| 94 |
+
"epoch": 14,
|
| 95 |
+
"train_loss": 0.46433306056841284,
|
| 96 |
+
"train_accuracy": 0.7986725663716814,
|
| 97 |
+
"validation_loss": 0.6589961051940918,
|
| 98 |
+
"validation_accuracy": 0.6578947368421053
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"epoch": 15,
|
| 102 |
+
"train_loss": 0.4400974667705266,
|
| 103 |
+
"train_accuracy": 0.8008849557522124,
|
| 104 |
+
"validation_loss": 0.6533895134925842,
|
| 105 |
+
"validation_accuracy": 0.6666666666666666
|
| 106 |
+
},
|
| 107 |
+
{
|
| 108 |
+
"epoch": 16,
|
| 109 |
+
"train_loss": 0.4371070521595204,
|
| 110 |
+
"train_accuracy": 0.8075221238938053,
|
| 111 |
+
"validation_loss": 0.6499096751213074,
|
| 112 |
+
"validation_accuracy": 0.6842105263157895
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
"epoch": 17,
|
| 116 |
+
"train_loss": 0.4170592013186058,
|
| 117 |
+
"train_accuracy": 0.8053097345132744,
|
| 118 |
+
"validation_loss": 0.6416586637496948,
|
| 119 |
+
"validation_accuracy": 0.7105263157894737
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"epoch": 18,
|
| 123 |
+
"train_loss": 0.41721887240367656,
|
| 124 |
+
"train_accuracy": 0.8207964601769911,
|
| 125 |
+
"validation_loss": 0.6355786323547363,
|
| 126 |
+
"validation_accuracy": 0.7192982456140351
|
| 127 |
+
},
|
| 128 |
+
{
|
| 129 |
+
"epoch": 19,
|
| 130 |
+
"train_loss": 0.3968231345699952,
|
| 131 |
+
"train_accuracy": 0.8473451327433629,
|
| 132 |
+
"validation_loss": 0.6301834583282471,
|
| 133 |
+
"validation_accuracy": 0.7368421052631579
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"epoch": 20,
|
| 137 |
+
"train_loss": 0.3726621565565599,
|
| 138 |
+
"train_accuracy": 0.8473451327433629,
|
| 139 |
+
"validation_loss": 0.6239787340164185,
|
| 140 |
+
"validation_accuracy": 0.7368421052631579
|
| 141 |
+
},
|
| 142 |
+
{
|
| 143 |
+
"epoch": 21,
|
| 144 |
+
"train_loss": 0.3750708812633447,
|
| 145 |
+
"train_accuracy": 0.8473451327433629,
|
| 146 |
+
"validation_loss": 0.615045964717865,
|
| 147 |
+
"validation_accuracy": 0.7368421052631579
|
| 148 |
+
},
|
| 149 |
+
{
|
| 150 |
+
"epoch": 22,
|
| 151 |
+
"train_loss": 0.35499391249850787,
|
| 152 |
+
"train_accuracy": 0.8539823008849557,
|
| 153 |
+
"validation_loss": 0.6041514277458191,
|
| 154 |
+
"validation_accuracy": 0.7631578947368421
|
| 155 |
+
},
|
| 156 |
+
{
|
| 157 |
+
"epoch": 23,
|
| 158 |
+
"train_loss": 0.331090675518576,
|
| 159 |
+
"train_accuracy": 0.8606194690265486,
|
| 160 |
+
"validation_loss": 0.5928549766540527,
|
| 161 |
+
"validation_accuracy": 0.7719298245614035
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"epoch": 24,
|
| 165 |
+
"train_loss": 0.32689084284073483,
|
| 166 |
+
"train_accuracy": 0.9026548672566371,
|
| 167 |
+
"validation_loss": 0.5795340538024902,
|
| 168 |
+
"validation_accuracy": 0.7719298245614035
|
| 169 |
+
},
|
| 170 |
+
{
|
| 171 |
+
"epoch": 25,
|
| 172 |
+
"train_loss": 0.3171025345810747,
|
| 173 |
+
"train_accuracy": 0.8606194690265486,
|
| 174 |
+
"validation_loss": 0.5708882212638855,
|
| 175 |
+
"validation_accuracy": 0.7719298245614035
|
| 176 |
+
},
|
| 177 |
+
{
|
| 178 |
+
"epoch": 26,
|
| 179 |
+
"train_loss": 0.30806970596313477,
|
| 180 |
+
"train_accuracy": 0.8761061946902655,
|
| 181 |
+
"validation_loss": 0.564824640750885,
|
| 182 |
+
"validation_accuracy": 0.7894736842105263
|
| 183 |
+
},
|
| 184 |
+
{
|
| 185 |
+
"epoch": 27,
|
| 186 |
+
"train_loss": 0.2851240487225288,
|
| 187 |
+
"train_accuracy": 0.9092920353982301,
|
| 188 |
+
"validation_loss": 0.5641254186630249,
|
| 189 |
+
"validation_accuracy": 0.7982456140350878
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"epoch": 28,
|
| 193 |
+
"train_loss": 0.30291247684343725,
|
| 194 |
+
"train_accuracy": 0.8849557522123894,
|
| 195 |
+
"validation_loss": 0.557503342628479,
|
| 196 |
+
"validation_accuracy": 0.7894736842105263
|
| 197 |
+
},
|
| 198 |
+
{
|
| 199 |
+
"epoch": 29,
|
| 200 |
+
"train_loss": 0.2793961090851674,
|
| 201 |
+
"train_accuracy": 0.9203539823008849,
|
| 202 |
+
"validation_loss": 0.5570541024208069,
|
| 203 |
+
"validation_accuracy": 0.7719298245614035
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"epoch": 30,
|
| 207 |
+
"train_loss": 0.2735133843611827,
|
| 208 |
+
"train_accuracy": 0.8893805309734514,
|
| 209 |
+
"validation_loss": 0.555424153804779,
|
| 210 |
+
"validation_accuracy": 0.7719298245614035
|
| 211 |
+
},
|
| 212 |
+
{
|
| 213 |
+
"epoch": 31,
|
| 214 |
+
"train_loss": 0.25710611665143374,
|
| 215 |
+
"train_accuracy": 0.9137168141592921,
|
| 216 |
+
"validation_loss": 0.5596690773963928,
|
| 217 |
+
"validation_accuracy": 0.8333333333333334
|
| 218 |
+
},
|
| 219 |
+
{
|
| 220 |
+
"epoch": 32,
|
| 221 |
+
"train_loss": 0.26409966940373447,
|
| 222 |
+
"train_accuracy": 0.9336283185840708,
|
| 223 |
+
"validation_loss": 0.5455154180526733,
|
| 224 |
+
"validation_accuracy": 0.8333333333333334
|
| 225 |
+
},
|
| 226 |
+
{
|
| 227 |
+
"epoch": 33,
|
| 228 |
+
"train_loss": 0.2337114705448657,
|
| 229 |
+
"train_accuracy": 0.9269911504424779,
|
| 230 |
+
"validation_loss": 0.5335549116134644,
|
| 231 |
+
"validation_accuracy": 0.8070175438596491
|
| 232 |
+
},
|
| 233 |
+
{
|
| 234 |
+
"epoch": 34,
|
| 235 |
+
"train_loss": 0.23032094828322924,
|
| 236 |
+
"train_accuracy": 0.9380530973451328,
|
| 237 |
+
"validation_loss": 0.5321564674377441,
|
| 238 |
+
"validation_accuracy": 0.8333333333333334
|
| 239 |
+
},
|
| 240 |
+
{
|
| 241 |
+
"epoch": 35,
|
| 242 |
+
"train_loss": 0.22375348513632748,
|
| 243 |
+
"train_accuracy": 0.9513274336283186,
|
| 244 |
+
"validation_loss": 0.5280061960220337,
|
| 245 |
+
"validation_accuracy": 0.8333333333333334
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"epoch": 36,
|
| 249 |
+
"train_loss": 0.20337354794012763,
|
| 250 |
+
"train_accuracy": 0.9668141592920354,
|
| 251 |
+
"validation_loss": 0.518876314163208,
|
| 252 |
+
"validation_accuracy": 0.8245614035087719
|
| 253 |
+
},
|
| 254 |
+
{
|
| 255 |
+
"epoch": 37,
|
| 256 |
+
"train_loss": 0.2041399356274478,
|
| 257 |
+
"train_accuracy": 0.9513274336283186,
|
| 258 |
+
"validation_loss": 0.5181131362915039,
|
| 259 |
+
"validation_accuracy": 0.7807017543859649
|
| 260 |
+
},
|
| 261 |
+
{
|
| 262 |
+
"epoch": 38,
|
| 263 |
+
"train_loss": 0.20407535913771233,
|
| 264 |
+
"train_accuracy": 0.9491150442477876,
|
| 265 |
+
"validation_loss": 0.5212715864181519,
|
| 266 |
+
"validation_accuracy": 0.7894736842105263
|
| 267 |
+
},
|
| 268 |
+
{
|
| 269 |
+
"epoch": 39,
|
| 270 |
+
"train_loss": 0.1843387596638857,
|
| 271 |
+
"train_accuracy": 0.9557522123893806,
|
| 272 |
+
"validation_loss": 0.5455327033996582,
|
| 273 |
+
"validation_accuracy": 0.8596491228070176
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"epoch": 40,
|
| 277 |
+
"train_loss": 0.18404048206531895,
|
| 278 |
+
"train_accuracy": 0.9668141592920354,
|
| 279 |
+
"validation_loss": 0.5410023331642151,
|
| 280 |
+
"validation_accuracy": 0.8508771929824561
|
| 281 |
+
}
|
| 282 |
]
|
models/honduras_natural_metrics.json
CHANGED
|
@@ -1,68 +1,68 @@
|
|
| 1 |
-
{
|
| 2 |
-
"accuracy": 0.7807017543859649,
|
| 3 |
-
"macro_avg": {
|
| 4 |
-
"precision": 0.6930415263748597,
|
| 5 |
-
"recall": 0.7388888888888889,
|
| 6 |
-
"f1": 0.7076023391812865
|
| 7 |
-
},
|
| 8 |
-
"weighted_avg": {
|
| 9 |
-
"precision": 0.8135743398901294,
|
| 10 |
-
"recall": 0.7807017543859649,
|
| 11 |
-
"f1": 0.7922437673130194
|
| 12 |
-
},
|
| 13 |
-
"per_class": {
|
| 14 |
-
"bad": {
|
| 15 |
-
"precision": 0.48484848484848486,
|
| 16 |
-
"recall": 0.6666666666666666,
|
| 17 |
-
"f1": 0.5614035087719298,
|
| 18 |
-
"support": 24
|
| 19 |
-
},
|
| 20 |
-
"good": {
|
| 21 |
-
"precision": 0.9012345679012346,
|
| 22 |
-
"recall": 0.8111111111111111,
|
| 23 |
-
"f1": 0.8538011695906432,
|
| 24 |
-
"support": 90
|
| 25 |
-
}
|
| 26 |
-
},
|
| 27 |
-
"confusion_matrix": [
|
| 28 |
-
[
|
| 29 |
-
16,
|
| 30 |
-
8
|
| 31 |
-
],
|
| 32 |
-
[
|
| 33 |
-
17,
|
| 34 |
-
73
|
| 35 |
-
]
|
| 36 |
-
],
|
| 37 |
-
"confusion_matrix_labels": [
|
| 38 |
-
"bad",
|
| 39 |
-
"good"
|
| 40 |
-
],
|
| 41 |
-
"samples": 114,
|
| 42 |
-
"bean_type": "honduras_natural",
|
| 43 |
-
"architecture": "custom",
|
| 44 |
-
"input_size": 128,
|
| 45 |
-
"classes": [
|
| 46 |
-
"bad",
|
| 47 |
-
"good"
|
| 48 |
-
],
|
| 49 |
-
"dataset_path": "coffee_beans_data/honduras_natural/corp_augmented_dataNoback",
|
| 50 |
-
"split": "80/20 random split of the augmented dataset",
|
| 51 |
-
"split_limitations": "The existing project split was preserved. Augmented variants may cross the train/validation boundary, and no independent test set is used.",
|
| 52 |
-
"total_samples": 566,
|
| 53 |
-
"train_samples": 452,
|
| 54 |
-
"validation_samples": 114,
|
| 55 |
-
"training_class_counts": {
|
| 56 |
-
"bad": 136,
|
| 57 |
-
"good": 316
|
| 58 |
-
},
|
| 59 |
-
"class_weights": {
|
| 60 |
-
"bad": 1.661764705882353,
|
| 61 |
-
"good": 0.7151898734177216
|
| 62 |
-
},
|
| 63 |
-
"epochs_completed": 40,
|
| 64 |
-
"best_epoch": 37,
|
| 65 |
-
"best_validation_loss": 0.5181131362915039,
|
| 66 |
-
"generated_at": "2026-09-08T14:27:32.126468+00:00",
|
| 67 |
-
"torch_version": "2.11.0+cu128"
|
| 68 |
}
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"accuracy": 0.7807017543859649,
|
| 3 |
+
"macro_avg": {
|
| 4 |
+
"precision": 0.6930415263748597,
|
| 5 |
+
"recall": 0.7388888888888889,
|
| 6 |
+
"f1": 0.7076023391812865
|
| 7 |
+
},
|
| 8 |
+
"weighted_avg": {
|
| 9 |
+
"precision": 0.8135743398901294,
|
| 10 |
+
"recall": 0.7807017543859649,
|
| 11 |
+
"f1": 0.7922437673130194
|
| 12 |
+
},
|
| 13 |
+
"per_class": {
|
| 14 |
+
"bad": {
|
| 15 |
+
"precision": 0.48484848484848486,
|
| 16 |
+
"recall": 0.6666666666666666,
|
| 17 |
+
"f1": 0.5614035087719298,
|
| 18 |
+
"support": 24
|
| 19 |
+
},
|
| 20 |
+
"good": {
|
| 21 |
+
"precision": 0.9012345679012346,
|
| 22 |
+
"recall": 0.8111111111111111,
|
| 23 |
+
"f1": 0.8538011695906432,
|
| 24 |
+
"support": 90
|
| 25 |
+
}
|
| 26 |
+
},
|
| 27 |
+
"confusion_matrix": [
|
| 28 |
+
[
|
| 29 |
+
16,
|
| 30 |
+
8
|
| 31 |
+
],
|
| 32 |
+
[
|
| 33 |
+
17,
|
| 34 |
+
73
|
| 35 |
+
]
|
| 36 |
+
],
|
| 37 |
+
"confusion_matrix_labels": [
|
| 38 |
+
"bad",
|
| 39 |
+
"good"
|
| 40 |
+
],
|
| 41 |
+
"samples": 114,
|
| 42 |
+
"bean_type": "honduras_natural",
|
| 43 |
+
"architecture": "custom",
|
| 44 |
+
"input_size": 128,
|
| 45 |
+
"classes": [
|
| 46 |
+
"bad",
|
| 47 |
+
"good"
|
| 48 |
+
],
|
| 49 |
+
"dataset_path": "coffee_beans_data/honduras_natural/corp_augmented_dataNoback",
|
| 50 |
+
"split": "80/20 random split of the augmented dataset",
|
| 51 |
+
"split_limitations": "The existing project split was preserved. Augmented variants may cross the train/validation boundary, and no independent test set is used.",
|
| 52 |
+
"total_samples": 566,
|
| 53 |
+
"train_samples": 452,
|
| 54 |
+
"validation_samples": 114,
|
| 55 |
+
"training_class_counts": {
|
| 56 |
+
"bad": 136,
|
| 57 |
+
"good": 316
|
| 58 |
+
},
|
| 59 |
+
"class_weights": {
|
| 60 |
+
"bad": 1.661764705882353,
|
| 61 |
+
"good": 0.7151898734177216
|
| 62 |
+
},
|
| 63 |
+
"epochs_completed": 40,
|
| 64 |
+
"best_epoch": 37,
|
| 65 |
+
"best_validation_loss": 0.5181131362915039,
|
| 66 |
+
"generated_at": "2026-09-08T14:27:32.126468+00:00",
|
| 67 |
+
"torch_version": "2.11.0+cu128"
|
| 68 |
}
|