https://github.com/andrew-johnson-4/perplexity
A notational semantic for documenting neural networks through diagrams
https://github.com/andrew-johnson-4/perplexity
category-theory diagramming documentation domain-specific-language lambda-calculus modelling neural-network visual-programming
Last synced: 7 months ago
JSON representation
A notational semantic for documenting neural networks through diagrams
- Host: GitHub
- URL: https://github.com/andrew-johnson-4/perplexity
- Owner: andrew-johnson-4
- License: mit
- Created: 2022-04-25T21:15:01.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-05T02:58:58.000Z (about 2 years ago)
- Last Synced: 2025-01-11T01:57:18.103Z (9 months ago)
- Topics: category-theory, diagramming, documentation, domain-specific-language, lambda-calculus, modelling, neural-network, visual-programming
- Language: HTML
- Homepage: https://andrew-johnson-4.github.io/lsts-tutorial/
- Size: 210 KB
- Stars: 14
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Perplexity 😵
The Perplexity 😵 language is a notational semantic for documenting neural networks through diagrams.
# Scope
This visual language was created to help document neural networks.
The language may not be suitable to formally describe all characteristics of all possible neural network configurations.# Format
The Perplexity 😵 language consists of two languages: one [textual](/syntax.md), the other [visual](/syntax.md).
The visual language consists of two-dimensional images that can be created in Paint or other visual editors.
The textual language consists of [Typed Lambda Calculus expressions](https://andrew-johnson-4.github.io/lsts-tutorial/).Any file, textual or visual, defines a substitution rule according to its filename.
For example, a diagram "helpful.png" may be referred to as "helpful" in other textual language documentation.# Why?
UML is not information dense enough and often leaves out important details. Mathematical Notation is too information dense and often repeats itself. Perplexity 😵 is created specifically to model Neural Networks and cuts a lot of corners by specializing itself for this use-case.# Checklist for Documenting a Model
1. How many languages/algebras are you going to use in documentation?
> This determines the rank of your model. It is recommended to use different colored lines and circles
> when swapping between languages.
> For example, if you just want to document a TensorFlow model, then you only need Python and your model's rank will be 1.2. What prelude do you want to use?
> A prelude will include some terms that you then don't need to define again yourself. Each prelude defines its own ranks, kinds, types, values etc. Please consider using a prelude.# List of Preludes
Preludes are optional-ish.
- [Categorical Prelude](/categorical_prelude.md)
- [TensorFlow Prelude](/tensorflow_prelude.md)