Skip to content
Back to skills

2676 Ml Visualization Cbb44eaa

ASecurity

Specialized components for AI/ML research presentations.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
designtypescriptnode

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2676-ml-visualization_cbb44eaa --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2676 Ml Visualization Cbb44eaa?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2676 Ml Visualization Cbb44eaa
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2676-ml-visualization-cbb44eaa/badge)](https://www.skillsdirectory.com/skills/tools-only-2676-ml-visualization-cbb44eaa)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# ML Visualization Reference

Specialized components for AI/ML research presentations.

## Components

### AttentionHeatmap

Visualize transformer attention weights.

```tsx
import { AttentionHeatmap } from '../components';

const tokens = ['The', 'cat', 'sat', 'on', 'the', 'mat'];
const weights = [
  [0.8, 0.1, 0.05, 0.02, 0.02, 0.01],
  [0.2, 0.6, 0.1, 0.05, 0.03, 0.02],
  [0.1, 0.15, 0.5, 0.15, 0.05, 0.05],
  // ... rest of attention matrix
];

<AttentionHeatmap
  tokens={tokens}
  weights={weights}
  title="Self-Attention Layer 6"
  maxCellSize={40}
/>
```

**Props:**
- `tokens: string[]` - Input tokens
- `weights: number[][]` - 2D attention matrix (values 0-1)
- `title?: string` - Header label
- `maxCellSize?: number` - Maximum cell size in pixels (default: 40)

---

### AudioWaveform

Visualize audio signals for STT/TTS presentations.

```tsx
import { AudioWaveform, generateSampleWaveform } from '../components';

// Use sample data
const waveData = generateSampleWaveform(200);

<AudioWaveform
  data={waveData}
  width={600}
  height={120}
  label="Input Speech"
  timestamps={[
    { time: '25', label: 'Word 1' },
    { time: '60', label: 'Word 2' },
  ]}
/>
```

**Props:**
- `data: number[]` - Amplitude values (-1 to 1)
- `width?: number` - SVG width (default: 600)
- `height?: number` - SVG height (default: 120)
- `color?: string` - Waveform color (default: cyan)
- `showAxis?: boolean` - Show center axis (default: true)
- `label?: string` - Component label
- `timestamps?: { time: string, label: string }[]` - Marker annotations

---

### TrainingMetrics

Training loss and accuracy curves.

```tsx
import { TrainingMetrics, generateSampleTrainingData } from '../components';

// Sample data for demo
const trainingData = generateSampleTrainingData(50);

// Or use real data
const realData = [
  { epoch: 1, trainLoss: 2.3, valLoss: 2.5, trainAcc: 0.15, valAcc: 0.12, lr: 0.001 },
  { epoch: 2, trainLoss: 1.8, valLoss: 2.1, trainAcc: 0.35, valAcc: 0.28, lr: 0.001 },
  // ...
];

<TrainingMetrics
  data={realData}
  metrics={['loss', 'accuracy']}
  title="Training Progress"
  showBestEpoch={true}
/>
```

**Props:**
- `data: TrainingDataPoint[]` - Epoch-indexed training data
- `metrics?: ('loss' | 'accuracy' | 'learning_rate')[]` - Charts to show
- `height?: number` - Individual chart height (default: 280)
- `showBestEpoch?: boolean` - Mark best validation epoch (default: true)
- `title?: string` - Section header

**Data Shape:**
```typescript
interface TrainingDataPoint {
  epoch: number;
  trainLoss?: number;
  valLoss?: number;
  trainAcc?: number;
  valAcc?: number;
  lr?: number;
}
```

---

## Architecture Diagrams

For ML model architectures, use the `ArchitectureDiagram` component with domain-specific nodes:

```tsx
import { ArchitectureDiagram } from '../components';

const nodes = [
  { id: 'input', label: 'Input', sublabel: 'Audio', icon: '🎀', position: { x: 0, y: 100 } },
  { id: 'encoder', label: 'Encoder', sublabel: 'Transformer', icon: 'πŸ”„', position: { x: 200, y: 100 } },
  { id: 'decoder', label: 'Decoder', sublabel: 'Autoregressive', icon: 'πŸ“', position: { x: 400, y: 100 } },
  { id: 'output', label: 'Output', sublabel: 'Text', icon: 'πŸ“„', position: { x: 600, y: 100 } },
];

const edges = [
  { source: 'input', target: 'encoder', label: 'Mel Spectrogram' },
  { source: 'encoder', target: 'decoder', label: 'Hidden States', animated: true },
  { source: 'decoder', target: 'output', label: 'Tokens' },
];

<ArchitectureDiagram
  nodes={nodes}
  edges={edges}
  height={300}
/>
```

---

## Mermaid for Quick Diagrams

For simpler architecture diagrams:

```tsx
import { MermaidDiagram } from '../components';

const transformerDiagram = `
graph LR
    A[Input] --> B[Embedding]
    B --> C[Encoder Stack]
    C --> D[Decoder Stack]
    D --> E[Output Layer]

    subgraph Encoder
        C --> |Self-Attention| C1[Multi-Head]
        C1 --> C2[FFN]
    end
`;

<MermaidDiagram chart={transformerDiagram} />
```

---

## Slide Layouts for ML

### Model Overview Slide

```tsx
<SlideLayout chapter="03 β€” ARCHITECTURE" slideNumber={12}>
  <div className="h-full flex flex-col px-16 pt-16 pb-10">
    <h2 className="font-display text-3xl text-text-primary mb-6">
      Model Architecture
    </h2>

    <div className="flex-1">
      <ArchitectureDiagram
        nodes={architectureNodes}
        edges={architectureEdges}
        height={350}
      />
    </div>

    <div className="grid grid-cols-4 gap-4 mt-6">
      <div className="text-center">
        <div className="font-display text-2xl text-blueprint-cyan">12</div>
        <div className="text-xs text-text-muted">Layers</div>
      </div>
      <div className="text-center">
        <div className="font-display text-2xl text-blueprint-cyan">768</div>
        <div className="text-xs text-text-muted">Hidden Dim</div>
      </div>
      <div className="text-center">
        <div className="font-display text-2xl text-blueprint-cyan">12</div>
        <div className="text-xs text-text-muted">Attention Heads</div>
      </div>
      <div className="text-center">
        <div className="font-display text-2xl text-blueprint-cyan">110M</div>
        <div className="text-xs text-text-muted">Parameters</div>
      </div>
    </div>
  </div>
</SlideLayout>
```

### Training Results Slide

```tsx
<SlideLayout chapter="04 β€” RESULTS" slideNumber={20}>
  <div className="h-full flex flex-col px-12 pt-14 pb-8">
    <h2 className="font-display text-3xl text-text-primary mb-4">
      Training Convergence
    </h2>

    <TrainingMetrics
      data={trainingHistory}
      metrics={['loss', 'accuracy']}
      height={220}
      showBestEpoch
    />

    <div className="mt-4 p-4 bg-canvas-700/40 border border-blueprint-grid/40 rounded">
      <div className="flex justify-between text-sm">
        <span className="text-text-muted">Best Epoch:</span>
        <span className="text-text-primary">42</span>
      </div>
      <div className="flex justify-between text-sm mt-2">
        <span className="text-text-muted">Val Accuracy:</span>
        <span className="text-blueprint-cyan">94.2%</span>
      </div>
    </div>
  </div>
</SlideLayout>
```

### STT/TTS Pipeline Slide

```tsx
<SlideLayout chapter="02 β€” PIPELINE" slideNumber={8}>
  <div className="h-full flex flex-col px-16 pt-16 pb-10">
    <h2 className="font-display text-3xl text-text-primary mb-6">
      Speech-to-Text Pipeline
    </h2>

    <div className="flex gap-8">
      <div className="flex-1">
        <AudioWaveform
          data={inputWaveform}
          label="Input Audio"
          height={100}
        />
      </div>

      <div className="flex items-center">
        <div className="w-12 h-px bg-blueprint-cyan" />
        <div className="w-0 h-0 border-t-4 border-b-4 border-l-8 border-transparent border-l-blueprint-cyan" />
      </div>

      <div className="flex-1">
        <AttentionHeatmap
          tokens={['The', 'quick', 'brown', 'fox']}
          weights={attentionWeights}
          title="Attention"
          maxCellSize={30}
        />
      </div>
    </div>

    <div className="mt-6 p-4 bg-canvas-700/40 border border-blueprint-grid/40 rounded font-mono text-sm">
      <span className="text-text-muted">Output: </span>
      <span className="text-text-primary">"The quick brown fox jumps over the lazy dog"</span>
    </div>
  </div>
</SlideLayout>
```

---

## Best Practices

1. **Attention Heatmaps**: Limit to ~10 tokens for readability
2. **Training Curves**: Show 30-100 epochs for clear trends
3. **Architecture Diagrams**: Use icons and sublabels for clarity
4. **Audio Waveforms**: 100-300 data points for smooth appearance

## Sample Data Generators

```tsx
import {
  generateSampleWaveform,
  generateSampleTrainingData,
} from '../components';

// Generate demo audio waveform
const waveform = generateSampleWaveform(200); // 200 points

// Generate demo training history
const history = generateSampleTrainingData(50); // 50 epochs
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.