“Namhyun-Kim” commited on
Commit
34abd42
·
1 Parent(s): 8fe68e9

Improve Space descriptions

Browse files
Files changed (2) hide show
  1. README.md +6 -0
  2. app.py +41 -2
README.md CHANGED
@@ -23,3 +23,9 @@ One-stop lab for exploring spectrograms, LWM embeddings, and lightweight evaluat
23
  1. Select the **Spectrograms** and **t-SNE Analysis** tabs to explore embeddings.
24
  2. Switch to **Modulation Classification** or **Joint SNR/Doppler Evaluation** to run the k-NN prototype with adjustable train/test splits.
25
  3. Provide custom data (optional) to benchmark against bundled samples.
 
 
 
 
 
 
 
23
  1. Select the **Spectrograms** and **t-SNE Analysis** tabs to explore embeddings.
24
  2. Switch to **Modulation Classification** or **Joint SNR/Doppler Evaluation** to run the k-NN prototype with adjustable train/test splits.
25
  3. Provide custom data (optional) to benchmark against bundled samples.
26
+
27
+ ## Tab Cheat Sheet
28
+ - **Spectrograms:** Inspect raw Sub-6 GHz spectrograms per technology/SNR/modulation/mobility before feature extraction.
29
+ - **t-SNE Analysis:** Recreate the "colored by SNR vs. modulation" comparisons from `plot/plot_tsne.py` with balanced sampling.
30
+ - **Modulation Classification:** Benchmark a lightweight k-NN head (standing in for the residual 1D-CNN) on LWM embeddings vs. raw inputs.
31
+ - **Joint SNR/Doppler Evaluation:** Compare MoE embeddings and raw spectrograms on the 14-way SNR/mobility task that feeds the beam selector.
app.py CHANGED
@@ -749,10 +749,26 @@ with gr.Blocks(title="LWM-Spectro Lab") as demo:
749
  with a lightweight k-NN prototype classifier for joint SNR/Doppler recognition.
750
  """
751
  )
 
 
 
 
 
 
 
 
 
752
 
753
  with gr.Tabs():
754
  with gr.Tab("Spectrograms"):
755
- gr.Markdown("Visualize raw 128×128 spectrograms with optional filters.")
 
 
 
 
 
 
 
756
  with gr.Row():
757
  with gr.Column(scale=1, min_width=320):
758
  spec_tech = gr.Dropdown(
@@ -781,6 +797,14 @@ with gr.Blocks(title="LWM-Spectro Lab") as demo:
781
  spec_tech.change(update_modulation_choices, inputs=spec_tech, outputs=spec_mod)
782
 
783
  with gr.Tab("t-SNE Analysis"):
 
 
 
 
 
 
 
 
784
  with gr.Row():
785
  with gr.Column(scale=1, min_width=300):
786
  gr.Markdown("### Filters")
@@ -865,7 +889,14 @@ with gr.Blocks(title="LWM-Spectro Lab") as demo:
865
  )
866
 
867
  with gr.Tab("Modulation Classification"):
868
- gr.Markdown("Compare LWM embeddings vs raw spectrograms for per-technology modulation classification.")
 
 
 
 
 
 
 
869
  with gr.Row():
870
  with gr.Column(scale=1, min_width=320):
871
  mod_tech = gr.Dropdown(
@@ -889,6 +920,14 @@ with gr.Blocks(title="LWM-Spectro Lab") as demo:
889
  )
890
 
891
  with gr.Tab("Joint SNR/Doppler Evaluation"):
 
 
 
 
 
 
 
 
892
  if evaluation_disabled:
893
  gr.Markdown(
894
  "⚠️ Precomputed MoE embeddings are not bundled in this Space build. Upload a dataset locally to run evaluations."
 
749
  with a lightweight k-NN prototype classifier for joint SNR/Doppler recognition.
750
  """
751
  )
752
+ gr.Markdown(
753
+ """
754
+ 📡 **Sub-6 GHz → mmWave Beam Prediction Task**
755
+ - LWM extracts signal-centric features from Sub-6 GHz spectrograms, mirroring the first stage of the beam prediction pipeline.
756
+ - A lightweight downstream model (residual 1D-CNN, ≈500k params) consumes those embeddings to rank mmWave beams from the codebook.
757
+ - The bundled dataset mixes six DeepMIMO scenarios that were held out from LWM pre-training, highlighting cross-scenario generalization.
758
+ - Use the tabs below to inspect raw inputs, visualize the embedding space, and benchmark simple classifiers before deploying larger heads.
759
+ """
760
+ )
761
 
762
  with gr.Tabs():
763
  with gr.Tab("Spectrograms"):
764
+ gr.Markdown(
765
+ """
766
+ ### 🔎 Spectrogram Studio
767
+ - Peek at the raw 128×128 Sub-6 GHz spectrograms that drive the beam prediction task.
768
+ - Filter by technology/SNR/modulation/mobility to understand how diverse the training pool is across scenarios.
769
+ - Use the gallery to sanity-check preprocessing before sending samples through LWM or downstream models.
770
+ """
771
+ )
772
  with gr.Row():
773
  with gr.Column(scale=1, min_width=320):
774
  spec_tech = gr.Dropdown(
 
797
  spec_tech.change(update_modulation_choices, inputs=spec_tech, outputs=spec_mod)
798
 
799
  with gr.Tab("t-SNE Analysis"):
800
+ gr.Markdown(
801
+ """
802
+ ### 🌀 Embedding vs. Raw Space
803
+ - Run quick t-SNE sweeps on either LWM embeddings or raw spectrogram vectors.
804
+ - Toggle **Color By** to mirror the "colored by modulation vs. SNR" comparisons from the CLI examples.
805
+ - Balanced per-SNR sampling plus configurable perplexity help match the figures you generate locally with `plot/plot_tsne.py`.
806
+ """
807
+ )
808
  with gr.Row():
809
  with gr.Column(scale=1, min_width=300):
810
  gr.Markdown("### Filters")
 
889
  )
890
 
891
  with gr.Tab("Modulation Classification"):
892
+ gr.Markdown(
893
+ """
894
+ ### 🎯 Lightweight Modulation Head
895
+ - Prototype how well the frozen LWM backbone separates modulation formats for each technology.
896
+ - The adaptive k-NN classifier approximates the behavior of the downstream residual 1D-CNN before heavy training.
897
+ - Sweep train/test splits and seeds to gauge robustness when only a portion of DeepMIMO-style data is labeled.
898
+ """
899
+ )
900
  with gr.Row():
901
  with gr.Column(scale=1, min_width=320):
902
  mod_tech = gr.Dropdown(
 
920
  )
921
 
922
  with gr.Tab("Joint SNR/Doppler Evaluation"):
923
+ gr.Markdown(
924
+ """
925
+ ### 🌪️ Joint Channel Dynamics Benchmark
926
+ - Evaluate the precomputed MoE embeddings on the 14-class joint SNR/Doppler recognition task.
927
+ - Mirrors the second stage of the beam prediction pipeline where mobility-aware cues guide codebook pruning.
928
+ - Upload or reference Hub-hosted tensors to compare MoE vs. raw spectrogram baselines before fine-tuning heavier heads.
929
+ """
930
+ )
931
  if evaluation_disabled:
932
  gr.Markdown(
933
  "⚠️ Precomputed MoE embeddings are not bundled in this Space build. Upload a dataset locally to run evaluations."