The Great Autoencoder Bake Off

Overview

The Great Autoencoder Bake Off

The companion repository to a post on my blog. It contains all you need to reproduce the results.

Features

Currently featured autoencoders:

  • Shallow AE
  • Deep (vanilla) AE
  • Stacked AE
  • Sparse AE
  • Denoising AE
  • VAE
  • beta-VAE
  • vq-VAE

They are evaluated on MNIST for the following tasks:

  • Reconstruction quality
  • Quality of decoded samples from the latent space (if possible)
  • Quality of latent space interpolation
  • Structure of the latent space visualized with UMAP
  • ROC curve for anomaly detection with the reconstruction error
  • Classification accuracy of a linear layer fitted on the autoencoder's features

Installation

Clone the repository and create a new conda environment with:

conda create -n ae_bakeoff python=3.7
conda activate ae_bakeoff
conda install --file requirements.txt -c pytorch -c conda-forge

Verify the installation by running the tests:

cd ./tests
export PYTHONPATH="../src"
python -m unittest

Usage

To one-click reproduce all results, call:

cd ./src
python reproduce.py --batch_size 256 [--gpu]

If you want to run any specific experiment, call:

python run.py <autoencoder_type> --batch_size 256 [--gpu] [--anomaly]
You might also like...
This project uses reinforcement learning on stock market and agent tries to learn trading. The goal is to check if the agent can learn to read tape. The project is dedicated to hero in life great Jesse Livermore.

Reinforcement-trading This project uses Reinforcement learning on stock market and agent tries to learn trading. The goal is to check if the agent can

RepVGG: Making VGG-style ConvNets Great Again

This repository is the code that needs to be submitted for OpenMMLab Algorithm Ecological Challenge,the paper is RepVGG: Making VGG-style ConvNets Great Again

A discord Server Bot made with Python, This bot helps people feel better by inspiring them with motivational quotes or by responding with a great message, also the users of the server can create custom messages by telling the bot with Commands.
A discord Server Bot made with Python, This bot helps people feel better by inspiring them with motivational quotes or by responding with a great message, also the users of the server can create custom messages by telling the bot with Commands.

A discord Server Bot made with Python, This bot helps people feel better by inspiring them with motivational quotes or by responding with a great message, also the users of the server can create custom messages by telling the bot with Commands.

A sentence search engine that fetches examples from trusted news/media organisations. Great for writing better English.

A sentence search engine that fetches examples from trusted news/media websites. Great for improving writing & speaking better English.

The Simpsons and Machine Learning: What makes an Episode Great?

The Simpsons and Machine Learning: What makes an Episode Great? Check out my Medium article on this! PROBLEM: The Simpsons has had a decline in qualit

Info for The Great DataTas plot-a-thon
Info for The Great DataTas plot-a-thon

The Great DataTas plot-a-thon Datatas is organising a Data Visualisation competition: The Great DataTas plot-a-thon We will be using Tidy Tuesday data

neo Tool is great one in binary exploitation topic
neo Tool is great one in binary exploitation topic

neo Tool is great one in binary exploitation topic. instead of doing several missions by many tools and windows, you can now automate this in one tool in one session.. Enjoy it

Blender addon that enables exporting of xmodels from blender. Great for custom asset creation for cod games
Blender addon that enables exporting of xmodels from blender. Great for custom asset creation for cod games

Birdman's XModel Tools For Blender Greetings everyone in the custom cod community. This blender addon should finally enable exporting of custom assets

A great and handy python obfuscator for protecting code.
A great and handy python obfuscator for protecting code.

Python Code Obfuscator A handy and necessary tool that can protect your code anytime! Mostly Command Line tool that will obfuscate your code. Features

Athens: a great tool for taking notes and organising knowldge
Athens: a great tool for taking notes and organising knowldge

AthensSyncer Athens is a great tool for taking notes and organising knowldge. But it is a bummer that you cannot use it accross multiple devices. Well

Get input from OLED Joystick, Runs command, Displays output on OLED Screen (Great for P4wnP1)

p4wnsolo-joyterm Gets text input from OLED Joystick Runs the command you typed Displays output on OLED Screen (Great for P4wnP1 - even better on Raspb

A great python/java dynamic DNS service for NameSilo, with log, email reminder...
A great python/java dynamic DNS service for NameSilo, with log, email reminder...

English NameSilo DDNS is a DDNS service for NameSilo domain names for home broadband , it can automatically detect IP changes in home broadband

Automatically pulls specified repository whenever a specified file is pushed. Great for working collaboratively when you need to run something locally.

autopull Simple python tool that allows you to automatically pull from a github repository whenever a file with a specified name is uploaded installat

This Open-Source project is great for sensor capture and storage solutions.

Phase 1 This project helps developers in the creation of extended realities that communicate with Arduino and require the security of blockchain stora

StrongSORT: Make DeepSORT Great Again
StrongSORT: Make DeepSORT Great Again

StrongSORT StrongSORT: Make DeepSORT Great Again StrongSORT: Make DeepSORT Great Again Yunhao Du, Yang Song, Bo Yang, Yanyun Zhao arxiv 2202.13514 Abs

Speech Enhancement Generative Adversarial Network Based on Asymmetric AutoEncoder
Speech Enhancement Generative Adversarial Network Based on Asymmetric AutoEncoder

ASEGAN: Speech Enhancement Generative Adversarial Network Based on Asymmetric AutoEncoder 中文版简介 Readme with English Version 介绍 基于SEGAN模型的改进版本,使用自主设计的非

Official Implementation of Swapping Autoencoder for Deep Image Manipulation (NeurIPS 2020)
Official Implementation of Swapping Autoencoder for Deep Image Manipulation (NeurIPS 2020)

Swapping Autoencoder for Deep Image Manipulation Taesung Park, Jun-Yan Zhu, Oliver Wang, Jingwan Lu, Eli Shechtman, Alexei A. Efros, Richard Zhang UC

An unofficial implementation of the paper "AutoVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss".

AutoVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss This is an unofficial implementation of AutoVC based on the official one. The reposi

Clockwork Variational Autoencoder
Clockwork Variational Autoencoder

Clockwork Variational Autoencoders (CW-VAE) Vaibhav Saxena, Jimmy Ba, Danijar Hafner If you find this code useful, please reference in your paper: @ar

Comments
  • In re: your Reddit post

    In re: your Reddit post

    You posted on Reddit.

    I think this is very cool.

    In the Reddit post you ask if you missed any AE types, but in the blog post you encourage people to add PRs to add AE types. I'm too new to do the latter, so I'm just going to mention the names I know.

    Your existing types:

    • Shallow AE
    • Deep (vanilla) AE
    • Stacked AE
    • Sparse AE
    • Denoising AE
    • VAE
    • beta-VAE
    • vq-VAE

    I'm curious to see if vqVAE2 does better than 1 in here.

    This list doesn't have

    • TD-VAE,
    • Contractive AE,
    • Undercomplete AE,
    • Convolutional AE,
    • Pixel VAE,
    • Conditional VAE,
    • DFC VAE,
    • Derivative Penalized VAE,
    • Stacked Similarity-Aware AE,
    • Replacement AE,
    • AE2-Net,
    • VAE-SNE,
    • Correspondence AE,
    • Adversarial Conditional AE,
    • Prior Flow VAE,
    • Factorized Gaussian Process VAE,
    • Scalable Gaussian Process VAE,
    • Sparse Gaussian Process VAE,
    • VAE-LSTM,
    • LSTM-based VAE (actually very different,)
    • SNF-CVAE,
    • MAD-VAE,
    • Disentangled Causal Effect VAE,
    • Coupled VAE,
    • Triplet Enhanced Autoencoder,
    • Hypergraph VAE,
    • Exemplar VAE,
    • Autoencoding VAE (amusingly it's a good name,)
    • Geometry-aware Hamiltonian VAE,
    • Quaternion-valued VAE,
    • Heirarchal Latent Embedding VQ-VAE,
    • Dirichlet Graph VAE,
    • Discriminative Mixture VAE,
    • Complex-valued VAE,
    • Variational Recurrent AE,
    • NCP-VAE,
    • Targeted VAE,
    • Heirarchical Sparse VAE,
    • Discrete Memory Addressing VAE,
    • Multi-adversarial VAE,
    • VAE-BRIDGE,
    • Cycle VAE,
    • Dynamic VAE,
    • DCAVN,
    • Ordinal Content VAE,
    • Quasi-symplectic Langevin VAE,
    • Stochastic Recurrent Networks,
    • Deep Kalman Filters,
    • Kalman VAEs,
    • Stochastic Recurrent NNs,
    • Disentangled Sequential AEs,
    • Neural Adaptive Sequential Monte Carlo

    and arguably

    • Variational Converter-Encoder

    plus things that don't apply, except maybe they do because gpt-3 makes images, like

    • Plan CVAE,
    • Condition-Transforming VAE,
    • Disentangled Causal Representation Learning
    opened by StoneCypher 3
Releases(v1.2)
  • v1.2(Mar 23, 2021)

    I am a dummy and forgot a power of two in the calculation of the anomaly score. This resulted in invalid scores. I now use BCE as a score to be consistent with training.

    Blog update will follow.

    Source code(tar.gz)
    Source code(zip)
  • v1.1(Mar 3, 2021)

    This release adds the MNIST alternatives Fashion-MNIST (FMNIST) and Kuzushiji-MNIST (KMNIST) as additional datasets. They are usable via the new CLI argument --dataset. The logs directory now has a sub-directory for each dataset.

    The training time of each autoencoder is now recorded and rendered as a markdown table.

    All changes are reflected in the results.

    Source code(tar.gz)
    Source code(zip)
Owner
Tilman Krokotsch
PhD student Deep Learning for Predictive Mainenance
Tilman Krokotsch
Mahadi-6 - This Is Bangladeshi All Sim 6 Digit Cloner Tools

BANGLADESHI ALL SIM 6 DIGIT CLONER TOOLS TOOLS $ apt update $ apt upgrade $ apt

MAHADI HASAN AFRIDI 2 Jan 23, 2022
Create or join a private chatroom without any third-party middlemen in less than 30 seconds, available through an AES encrypted password protected link.

PY-CHAT Create or join a private chatroom without any third-party middlemen in less than 30 seconds, available through an AES encrypted password prote

1 Nov 24, 2021
A python script to simplify recompiling, signing and installing reverse engineered android apps.

urszi.py A python script to simplify the Uninstall Recompile Sign Zipalign Install cycle when reverse engineering Android applications. It checks if d

Ahmed Harmouche 4 Jun 24, 2022
A Python library for inspecting JVM class files (.class)

lawu Lawu is a human-friendly library for assembling, disassembling, and exploring JVM class files. It's highly suitable for automation tasks. Documen

Tyler Kennedy 45 Oct 23, 2022
Simple Python script I use to manage and build my Reflux themes.

Simple Python script I use to manage and build my Reflux themes. Built for personal use, but anyone can easily fork and tweak to suit thier needs.

Ire 3 Jan 25, 2022
Repository voor verhalen over de woningbouw-opgave in Nederland

Analyse plancapaciteit woningen In deze notebook zetten we cijfers op een rij om de woningbouwplannen van Nederlandse gemeenten in kaart te kunnen bre

Follow the Money 10 Jun 30, 2022
Uma versão em Python/Ursina do aplicativo Real Drum (android).

Real Drum Descrição Esta é uma versão alternativa feita em Python com a engine Ursina do aplicatio Real Drum (presente no Google Play Store). Como exe

hayukimori 5 Aug 20, 2022
Web-based Sudoku solver built using Python. A demonstration of how backtracking works.

Sudoku Solver A web-based Sudoku solver built using Python and Python only The motivation is to demonstrate how Backtracking algorithm works. Some of

Jerry Ng 2 Dec 31, 2022
Code emulator plugin for IDA Pro

emu_ida Code emulator plugin for IDA Pro (v 0.0.6) The plugin is designed for simple data decryption and getting stack strings. Requirements Emulator

Andrey Zhdanov 11 Jul 06, 2022
Better GitHub statistics images for your profile, with stats from private and public repos

Better GitHub statistics images for your profile, with stats from private and public repos

Jacob Strieb 2k Dec 30, 2022
WinBoost: Boost your windows system.

Winboost runs a complete checkup of your entire system locating junk files, speed-reducing issues and causes of any system or application glitches or crashes. Through a lot of research and testing, w

Smit Parmar 4 Oct 01, 2021
take home quiz

guess the correlation data inspection a pretty normal distribution train/val/test split splitting amount .dataset: 150000 instances ├─8

HR Wu 1 Nov 04, 2021
A lightweight solution for local Particle development.

neopo A lightweight solution for local Particle development. Features Builds Particle projects locally without any overhead. Compatible with Particle

Nathan Robinson 19 Jan 01, 2023
This script provides LIVE feedback for On-The-Fly data collection with RELION

README This script provides LIVE feedback for On-The-Fly data collection with RELION (very useful to explore already processed datasets too!) Creating

cryoEM CNIO 6 Jul 14, 2022
Python Freecell Solver

freecell Python Freecell Solver Very early version right now. You can pick a board by changing the file path in freecell.py If you want to play a game

Ben Kaufman 1 Nov 26, 2021
Some basic sorting algos

Sorting-Algos Some basic sorting algos HacktoberFest 2021 This repository consists of mezzo-level projects that undertake a simple task and perform it

Manthan Ghasadiya 7 Dec 13, 2022
All kinds of programs are accepted here, raise a genuine PR, and claim a PR, Make 4 successful PR's and get the Stickers and T-Shirt from hacktoberfest 2021

this repository is excluded from hacktoberfest Hacktoberfest-2021 This repository aims to help code beginners with their first successful pull request

34 Sep 11, 2022
Wisdom Tree is a concentration app i am working on.

Wisdom Tree Wisdom Tree is a tui concentration app I am working on. Inspired by the wisdom tree in Plants vs. Zombies which gives in-game tips when it

NO ONE 241 Jan 01, 2023
A bot to view Dilbert comics directly from Discord and get updates of the comics automatically.

A bot to view Dilbert comics directly from Discord and get updates of the comics automatically

Raghav Sharma 3 Nov 30, 2022
Library support get vocabulary from MEM

Features: Support scraping the courses in MEM to take the vocabulary Translate the words to your own language Get the IPA for the English course Insta

Joseph Quang 4 Aug 13, 2022