CoolFace
Apppublic

RL-Project/Fetch-Reinforcement_learning_Project

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
app_test_2.py95 linesDownload Raw Back to old_apps
1# <-- this must come first, before any mujoco / gym imports2import os3os.environ["MUJOCO_GL"] = "osmesa"4 5 6import gradio as gr7import wandb8import requests9from PIL import Image10from io import BytesIO11 12# Connect to W&B13api = wandb.Api()14 15# Replace this with your correct run path16ENTITY = "jarrett-defreitas-university-of-rhode-island"  # your wandb username or team17PROJECT = "pickup-and-place"18RUN_ID = "trr5oagz"  # NOT the display name; the ID like "3xi2sld8"19 20run = api.run(f"{ENTITY}/{PROJECT}/{RUN_ID}")21 22# Collect all images and metrics23logged_images = []24logged_scalars = []25 26# Scan all rows of logged history27for row in run.scan_history():28    for key, val in row.items():29        # Handle images correctly30        if isinstance(val, list):31            for item in val:32                if isinstance(item, wandb.data_types.Image):33                    logged_images.append((key, item.url))34        elif isinstance(val, wandb.data_types.Image):35            logged_images.append((key, val.url))36        37        # Handle scalars (numbers like loss, accuracy)38        if isinstance(val, (int, float)):39            logged_scalars.append((key, val))40 41# Debug: show what was found42print("Logged Images:", logged_images)43print("Logged Scalars:", logged_scalars)44 45# --------------------------------------46# 3. Prepare Dropdown Choices47# --------------------------------------48 49image_keys = [key for key, _ in logged_images]50scalar_keys = [key for key, _ in logged_scalars]51 52# --------------------------------------53# 4. Define viewer functions54# --------------------------------------55 56# View image by selected key57def view_image(selected_key):58    for key, url in logged_images:59        if key == selected_key:60            response = requests.get(url)61            if response.status_code == 200:62                return Image.open(BytesIO(response.content))63            else:64                return None65    return None66 67# View scalar (number) by selected key68def view_scalar(selected_key):69    for key, value in logged_scalars:70        if key == selected_key:71            return f"{key}: {value}"72    return "Not found"73 74# --------------------------------------75# 5. Build the Gradio App76# --------------------------------------77 78with gr.Blocks() as demo:79    gr.Markdown("# ๐Ÿ“ˆ WandB Run Viewer")80    gr.Markdown("View images and metrics logged to a specific W&B run.")81 82    with gr.Tab("Logged Images"):83        img_selector = gr.Dropdown(choices=image_keys, label="Select an Image Key")84        img_display = gr.Image()85 86        img_selector.change(fn=view_image, inputs=img_selector, outputs=img_display)87 88    with gr.Tab("Logged Scalars"):89        scalar_selector = gr.Dropdown(choices=scalar_keys, label="Select a Scalar Metric")90        scalar_display = gr.Textbox()91 92        scalar_selector.change(fn=view_scalar, inputs=scalar_selector, outputs=scalar_display)93 94demo.launch(share=True)95