• Stars
    star
    1,389
  • Rank 33,838 (Top 0.7 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

GAN Lab: An Interactive, Visual Experimentation Tool for Generative Adversarial Networks

GAN Lab: An Interactive, Visual Experimentation Tool for Generative Adversarial Networks

By Minsuk Kahng, Nikhil Thorat, Polo Chau, Fernanda Viégas, and Martin Wattenberg

Overview

GAN Lab is a novel interactive visualization tool for anyone to learn and experiment with Generative Adversarial Networks (GANs), a popular class of complex deep learning models. With GAN Lab, you can interactively train GAN models for 2D data distributions and visualize their inner-workings, similar to TensorFlow Playground.

GAN Lab uses TensorFlow.js, an in-browser GPU-accelerated deep learning library. Everything, from model training to visualization, is implemented with JavaScript. Users only need a web browser like Chrome to run GAN Lab. Our implementation approach significantly broadens people's access to interactive tools for deep learning.

Screenshot of GAN Lab

Working Demo

Click the following link:

https://poloclub.github.io/ganlab/

It runs on most modern web browsers. We suggest you use Google Chrome.

Development

This section describes how you can develop GAN Lab.

Install Dependencies

Run the following commands:

$ git clone https://github.com/poloclub/ganlab.git
$ cd ganlab
$ yarn prep

It's unlikely, but you may need to install some basic JavaScript-related dependencies (e.g., yarn).

Running Your Demo

Run the following command:

$ ./scripts/watch-demo

>> Waiting for initial compile...
>> 3462522 bytes written to demo/bundle.js (2.17 seconds) at 00:00:00
>> Starting up http-server, serving ./
>> Available on:
>>   http://127.0.0.1:8080
>> Hit CTRL-C to stop the server

Then visit http://localhost:8080/demo/.

The watch-demo script monitors for changes of typescript code (e.g., demo/ganlab.ts) and compiles the code for you.

Credit

GAN Lab was created by Minsuk Kahng, Nikhil Thorat, Polo Chau, Fernanda Viégas, and Martin Wattenberg, which was the result of a research collaboration between Georgia Tech and Google Brain/PAIR. We also thank Shan Carter and Daniel Smilkov, Google Big Picture team and Google People + AI Research (PAIR), and Georgia Tech Visualization Lab for their feedback.

For more information, check out our research paper:

Minsuk Kahng, Nikhil Thorat, Polo Chau, Fernanda Viégas, and Martin Wattenberg. "GAN Lab: Understanding Complex Deep Generative Models using Interactive Visual Experimentation." IEEE Transactions on Visualization and Computer Graphics, 25(1) (VAST 2018), Jan. 2019.

More Repositories

1

cnn-explainer

Learning Convolutional Neural Networks with Interactive Visualization.
JavaScript
7,942
star
2

transformer-explainer

Transformer Explained Visually: Learn How LLM Transformer Models Work with Interactive Visualization
JavaScript
2,466
star
3

diffusiondb

A large-scale text-to-image prompt gallery dataset based on Stable Diffusion
Python
1,181
star
4

wizmap

Explore and interpret large embeddings in your browser with interactive visualization! 📍
TypeScript
400
star
5

dodrio

Exploring attention weights in transformer-based models with linguistic knowledge.
Svelte
342
star
6

unitable

UniTable: Towards a Unified Table Foundation Model
Jupyter Notebook
330
star
7

awesome-grad-school

🎓 Advice and resources for thriving and surviving graduate school
Makefile
318
star
8

diffusion-explainer

Diffusion Explainer: Visual Explanation for Text-to-image Stable Diffusion
JavaScript
190
star
9

wordflow

Social and customizable AI writing assistant! ✍️
TypeScript
173
star
10

timbertrek

Explore and compare 1K+ accurate decision trees in your browser!
TypeScript
136
star
11

argo-graph-lite

Interactive Graph Visualization in Your Browser
JavaScript
110
star
12

jpeg-defense

SHIELD: Fast, Practical Defense and Vaccination for Deep Learning using JPEG Compression
Python
81
star
13

interactive-classification

Interactive Classification for Deep Learning Interpretation
JavaScript
76
star
14

ClickDiffusion

ClickDiffusion: Harnessing LLMs for Interactive Precise Image Editing
Python
64
star
15

supernova

Explore 160+ notebook visual analytics tools in your browser!
SCSS
61
star
16

argo-scholar

Literature Review Made Easy with Visualization
JavaScript
55
star
17

magic-crop

Crop your perfect headshot with AI!
JavaScript
53
star
18

webshap

JavaScript library to explain any machine learning models anywhere!
TypeScript
50
star
19

people-map

Visualization Tool for Mapping Out Researchers using Natural Language Processing
Python
50
star
20

mememo

A JavaScript library that brings vector search and RAG to your browser!
TypeScript
47
star
21

tsr-convstem

High-Performance Transformers for Table Structure Recognition Need Early Convolutions
Python
37
star
22

FairVis

FairVis: Visual Analytics for Discovering Intersectional Bias in Machine Learning
JavaScript
35
star
23

nova

Simple method to create notebook-ready visual analytics tools!
CSS
28
star
24

LLM-Attributor

LLM Attributor: Attribute LLM's Generated Text to Training Data
Jupyter Notebook
25
star
25

llm-self-defense

LLM Self Defense: By Self Examination, LLMs know they are being tricked
Python
25
star
26

bluff

Bluff: Interactively Deciphering Adversarial Attacks on Deep Neural Networks
Jupyter Notebook
22
star
27

visual-auditor

Interactive scalable auditing of model biases and vulnerabilities with interpretable mitigation
Jupyter Notebook
20
star
28

argo-graph

Cross-platform Interactive Large Graph Visualization tool using Web Technologies
JavaScript
19
star
29

gam-coach

Personal coach to help you obtain desired AI decisions!
JavaScript
17
star
30

robust-principles

Robust Principles: Architectural Design Principles for Adversarially Robust CNNs
Python
16
star
31

neuro-cartography

Scalable Automatic Visual Summarization of Concepts in Deep Neural Networks
Jupyter Notebook
15
star
32

Fine-tuning-LLMs

Finetune Llama 2 on Colab for free on your own data: step-by-step tutorial
Jupyter Notebook
13
star
33

CardiacAR

Mobile Augmented Reality for Cardiovascular Surgical Planning
Swift
12
star
34

visgrader

Automatic Grading for D3 Visualizations
Jupyter Notebook
10
star
35

revamp

Automated Simulations of Adversarial Attacks on Arbitrary Objects in Realistic Scenes
Jupyter Notebook
10
star
36

EnergyVis

JavaScript
8
star
37

telegam

TeleGam: Combining Visualization and Verbalization for Interpretable Machine Learning
JavaScript
7
star
38

wordflow-doc

AI Writing Assistant Google Doc Add-on
JavaScript
6
star
39

VisCUIT

JavaScript
6
star
40

RECAST

Svelte
5
star
41

NeuroMapper

JavaScript
5
star
42

detector-detective

DetectorDetective: Investigating the Effects of Adversarial Examples on Object Detectors
Jupyter Notebook
4
star
43

ConceptEvo

Jupyter Notebook
3
star
44

arcollab

ARCollab is a multi-user surgical planning tool in mobile AR aimed to enhance collaboration between surgeons and cardiologists.
Swift
3
star
45

skeletricks

Jupyter Notebook
2
star
46

diffusiondb-thumbnails

1.8 million image thumbnails sampled from DiffusionDB
2
star
47

argo-graph-share

A sample configuration of Argo Lite's Strapi sharing service
JavaScript
1
star
48

MisVis

JavaScript
1
star
49

wordflow-addon

Wordflow Google Doc Add-on Homepage
HTML
1
star
50

schedule-emails-on-mac

How to Schedule Emails on Mac: Write Emails in Mail and Send Them Later
AppleScript
1
star