Giter Site home page Giter Site logo

nn_vis's Introduction

An Interactive Node-Link Visualization of Convolutional Neural Networks

alt text

Abstract

Convolutional neural networks are at the core of state-of-the-art approaches to a variety of computer vision tasks. Visualizations of neural networks typically take the form of static node-link diagrams, which illustrate only the structure of a network, rather than the behavior. Motivated by this observation, this project presents a new interactive visualization of neural networks trained on handwritten digit recognition, with the intent of showing the actual behavior of the network given user-provided input. The user can interact with the network through a drawing pad, and watch the activation patterns of the network respond in real time.

Paper PDF

paper

Live demos

Live demos for all models are available at https://adamharley.com/nn_vis:

  1. 3d visualization of a multi-layer perceptron:

    cnn2d

  2. 3d visualization of a convolutional network:

    cnn2d

  3. 2d visualization of a multi-layer perceptron:

    cnn2d

  4. 2d visualization of a convolutional network:

    cnn2d

FAQ

  • Can I use this in my course/textbook/presentation?

    • Yes! Please just cite the work appropriately.
  • How do I cite you?

    • Here is a plaintext citation:

      A. W. Harley, "An Interactive Node-Link Visualization of Convolutional Neural Networks," in ISVC, pages 867-877, 2015

      Here is a bibtex snippet:

      @inproceedings{harley2015isvc,
      title = {An Interactive Node-Link Visualization of Convolutional Neural Networks},
      author = {Adam W Harley},
      booktitle = {ISVC},
      pages = {867--877},
      year = {2015}
      }
      
  • I tried to run the code locally, and I see classifications, but I do not see the network visualization. What's wrong?

    • This is probably related to json requests being blocked by something called CORS policy. The solution is to upload the code to a web address and run it from there, instead of running locally.

Contact: [email protected]

nn_vis's People

Contributors

aharley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nn_vis's Issues

Request for Guidance on Implementing Multi-Level Edge Connectivity

Hello,

I am working on a project aimed at developing educational tools to teach high school students about Convolutional Neural Networks (CNNs). I found your nn_vis tool to be a great starting point for this endeavor.

Feature Implementation Request:
I am interested in enhancing the nn_vis tool by adding a feature where clicking on a neuron or feature map box in a higher-level convolutional layer would display edges connecting it to its corresponding neurons or feature maps in the lower layer, continuing down to the first layer. This would help in illustrating the hierarchical structure of CNNs and the connection between different layers.

Purpose:
The purpose of this enhancement is to provide a more interactive and comprehensive understanding of how different layers in a CNN are interconnected, which is crucial for beginners in machine learning.

Request for Insights:
As I am planning to implement this feature myself, I would greatly appreciate any insights or guidance you could provide on how best to approach this modification. Specifically, I am interested in:

  • Understanding the current structure of the nn_vis tool, particularly how neurons and feature maps are represented and handled.
  • Suggestions on how to efficiently track and display connections between layers in the tool's existing framework.
  • Any potential challenges or considerations I should be aware of while implementing this feature.
  • It would be very helpful to know what are the functions handling calculating the edges and displaying them.

Vision
Note Nov 27, 2023
Here is an image of how I imagine the fully implemented version would look like.

Conclusion:
Your expertise and insights into the tool's design and functionality would be incredibly valuable for this enhancement. I am eager to learn from your experience and contribute to the development of this educational resource.

Thank you for your time and for creating such a valuable tool for the machine learning community.

Best regards,
Marco Qin
Brandeis University

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.