From c3625391271af6dc80ad22ebcb6b7e28bebd630f Mon Sep 17 00:00:00 2001 From: Dylan Uys Date: Wed, 23 Oct 2024 19:33:34 -0700 Subject: [PATCH] return miner preds/labels in compute_miner_performance --- wandb_data/performance.py | 16 ++- wandb_data/wandb_miner_performance.ipynb | 142 ++++++++++++++--------- 2 files changed, 96 insertions(+), 62 deletions(-) diff --git a/wandb_data/performance.py b/wandb_data/performance.py index 8fcbead..35dadc9 100644 --- a/wandb_data/performance.py +++ b/wandb_data/performance.py @@ -12,7 +12,7 @@ def compute_miner_performance( download_fake_images=False, validator_run_name=None): - miner_perf = defaultdict(lambda: {'predictions': [], 'labels': []}) + miner_preds_labels = defaultdict(lambda: {'predictions': [], 'labels': []}) fake_image_preds = defaultdict(dict) for run in wandb_validator_runs: @@ -21,7 +21,7 @@ def compute_miner_performance( history_df = run.history() image_files = [f for f in run.files() if f.name.endswith(".png")] - for i, challenge_row in history_df.iterrows(): + for _, challenge_row in history_df.iterrows(): if start_ts is not None and challenge_row['_timestamp'] < start_ts: continue if end_ts is not None and challenge_row['_timestamp'] > end_ts: @@ -60,16 +60,20 @@ def compute_miner_performance( if pred == -1: continue - miner_perf[uid]['predictions'].append(pred) - miner_perf[uid]['labels'].append(label) + + miner_preds_labels[uid]['predictions'].append(pred) + miner_preds_labels[uid]['labels'].append(label) - metrics = {uid: compute_metrics(data['predictions'], data['labels']) for uid, data in miner_perf.items()} + metrics = { + uid: compute_metrics(data['predictions'], data['labels']) + for uid, data in miner_preds_labels.items() + } flattened_metrics = [] for uid, metric_dict in metrics.items(): flattened_metrics.append({'uid': uid, **metric_dict}) metrics_df = pd.DataFrame(flattened_metrics) - return metrics_df, fake_image_preds + return metrics_df, fake_image_preds, miner_preds_labels def compute_metrics(predictions, labels): diff --git a/wandb_data/wandb_miner_performance.ipynb b/wandb_data/wandb_miner_performance.ipynb index 213d449..52b150d 100644 --- a/wandb_data/wandb_miner_performance.ipynb +++ b/wandb_data/wandb_miner_performance.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 17, + "execution_count": 1, "id": "14848402081f829b", "metadata": { "ExecuteTime": { @@ -33,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 2, "id": "cf87818a8afd8bb8", "metadata": { "ExecuteTime": { @@ -47,15 +47,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Querying data for uid 0 starting at 2024-10-18T16:09:49\n" + "Querying data for uid 0 starting at 2024-10-22T13:09:49\n" ] } ], "source": [ "project = \"bitmind-subnet\" # mainnet wandb project name\n", "entity = \"bitmindai\"\n", - "validator_run_name = 'validator-122-1.2.1'\n", - "start_dt = '2024-10-18T16:09:49'\n", + "validator_run_name = None #'validator-122-1.2.2'\n", + "start_dt = '2024-10-22T13:09:49'\n", "# start_dt = formatted_ts_from_epoch(1729494162)\n", "end_dt = None\n", "\n", @@ -65,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 3, "id": "37dd8282", "metadata": {}, "outputs": [ @@ -73,7 +73,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Querying w&b with filters: {'display_name': 'validator-122-1.2.1', 'created_at': {'$gte': '2024-10-18T16:09:49'}}\n" + "Querying w&b with filters: {'created_at': {'$gte': '2024-10-22T13:09:49'}}\n" ] } ], @@ -83,7 +83,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 4, "id": "ae1fec8d", "metadata": {}, "outputs": [ @@ -121,20 +121,20 @@ " \n", " 0\n", " 0\n", - " 0.952703\n", - " 0.986014\n", - " 0.921569\n", - " 0.952703\n", - " 0.99223\n", - " 592\n", + " 0.852941\n", + " 1.0\n", + " 0.782609\n", + " 0.878049\n", + " 0.960474\n", + " 34\n", " \n", " \n", "\n", "" ], "text/plain": [ - " uid accuracy precision recall f1 auc sample_size\n", - "0 0 0.952703 0.986014 0.921569 0.952703 0.99223 592" + " uid accuracy precision recall f1 auc sample_size\n", + "0 0 0.852941 1.0 0.782609 0.878049 0.960474 34" ] }, "metadata": {}, @@ -142,7 +142,7 @@ } ], "source": [ - "metrics_df, fake_image_preds = compute_miner_performance(\n", + "metrics_df, fake_image_preds, miner_preds = compute_miner_performance(\n", " runs,\n", " miner_uid=miner_uid, # example uid\n", " start_ts=epoch_from_formatted_ts(start_dt),\n", @@ -285,7 +285,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 15, "id": "beff084a4853e438", "metadata": { "ExecuteTime": { @@ -299,15 +299,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Querying data for uid None starting at 2024-10-19T16:09:49\n" + "Querying data for uid None starting at 2024-10-22T16:09:49\n" ] } ], "source": [ "project = \"bitmind\" # mainnet wandb project name\n", "entity = \"bitmindai\"\n", - "validator_run_name = 'validator-39-1.2.0'\n", - "start_dt = '2024-10-19T16:09:49'\n", + "validator_run_name = 'validator-39-1.2.2'\n", + "start_dt = '2024-10-22T16:09:49'\n", "# start_dt = formatted_ts_from_epoch(1729494162)\n", "end_dt = None\n", "\n", @@ -317,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 16, "id": "d844f9310e28daa9", "metadata": { "ExecuteTime": { @@ -331,7 +331,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Querying w&b with filters: {'display_name': 'validator-39-1.2.0', 'created_at': {'$gte': '2024-10-19T16:09:49'}}\n" + "Querying w&b with filters: {'display_name': 'validator-39-1.2.2', 'created_at': {'$gte': '2024-10-22T16:09:49'}}\n" ] } ], @@ -341,7 +341,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 17, "id": "21ed23cf8d100746", "metadata": { "collapsed": false @@ -381,42 +381,62 @@ " \n", " 0\n", " 198\n", - " 0.525326\n", - " 0.505376\n", - " 0.982090\n", - " 0.667343\n", - " 0.605484\n", - " 691\n", + " 0.75\n", + " 0.75\n", + " 1.000000\n", + " 0.857143\n", + " 0.666667\n", + " 4\n", " \n", " \n", " 1\n", - " 196\n", - " 0.553687\n", - " 0.530410\n", - " 0.966495\n", - " 0.684932\n", - " 0.572205\n", - " 773\n", + " 218\n", + " 0.50\n", + " 1.00\n", + " 0.333333\n", + " 0.500000\n", + " 1.000000\n", + " 4\n", " \n", " \n", " 2\n", - " 130\n", - " 0.667162\n", - " 0.605568\n", - " 0.828571\n", - " 0.699732\n", - " 0.685439\n", - " 673\n", + " 225\n", + " 0.75\n", + " 0.75\n", + " 1.000000\n", + " 0.857143\n", + " 0.666667\n", + " 4\n", " \n", " \n", " 3\n", - " 125\n", - " 0.800718\n", - " 0.977273\n", - " 0.616487\n", - " 0.756044\n", - " 0.790426\n", - " 557\n", + " 217\n", + " 0.50\n", + " 1.00\n", + " 0.333333\n", + " 0.500000\n", + " 1.000000\n", + " 4\n", + " \n", + " \n", + " 4\n", + " 216\n", + " 0.75\n", + " 0.75\n", + " 1.000000\n", + " 0.857143\n", + " 0.666667\n", + " 4\n", + " \n", + " \n", + " 5\n", + " 196\n", + " 0.75\n", + " 0.75\n", + " 1.000000\n", + " 0.857143\n", + " 0.666667\n", + " 4\n", " \n", " \n", "\n", @@ -424,10 +444,12 @@ ], "text/plain": [ " uid accuracy precision recall f1 auc sample_size\n", - "0 198 0.525326 0.505376 0.982090 0.667343 0.605484 691\n", - "1 196 0.553687 0.530410 0.966495 0.684932 0.572205 773\n", - "2 130 0.667162 0.605568 0.828571 0.699732 0.685439 673\n", - "3 125 0.800718 0.977273 0.616487 0.756044 0.790426 557" + "0 198 0.75 0.75 1.000000 0.857143 0.666667 4\n", + "1 218 0.50 1.00 0.333333 0.500000 1.000000 4\n", + "2 225 0.75 0.75 1.000000 0.857143 0.666667 4\n", + "3 217 0.50 1.00 0.333333 0.500000 1.000000 4\n", + "4 216 0.75 0.75 1.000000 0.857143 0.666667 4\n", + "5 196 0.75 0.75 1.000000 0.857143 0.666667 4" ] }, "metadata": {}, @@ -435,7 +457,7 @@ } ], "source": [ - "metrics_df, fake_image_preds = compute_miner_performance(\n", + "metrics_df, fake_image_preds, miner_preds = compute_miner_performance(\n", " runs,\n", " miner_uid=miner_uid, # example uid\n", " start_ts=epoch_from_formatted_ts(start_dt),\n", @@ -445,6 +467,14 @@ "\n", "display(metrics_df)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6e60aee", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": {