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
python DroneCAN code generation, interface and utilities

UAVCAN v0 stack in Python Python implementation of the UAVCAN v0 protocol stack. UAVCAN is a lightweight protocol designed for reliable communication

DroneCAN 11 Dec 12, 2022
In this project we will implement AirBnB clone using console

AirBnB Clone In this project we will implement AirBnB clone using console. Usage The shell should work like this

Nandweza Allan 1 Feb 07, 2022
The official Repository wherein newbies into Open Source can Contribute during the Hacktoberfest 2021

Hacktoberfest 2021 Get Started With your first Contrinution/Pull Request : Fork/Copy the repo by clicking the right most button on top of the page. Go

HacOkars 25 Aug 20, 2022
Download and process GOES-16 and GOES-17 data from NOAA's archive on AWS using Python.

Download and display GOES-East and GOES-West data GOES-East and GOES-West satellite data are made available on Amazon Web Services through NOAA's Big

Brian Blaylock 88 Dec 16, 2022
Сервис служит прокси между cервисом регистрации ошибок платформы и системой сбора ошибок Sentry

Sentry Reg Service Сервис служит прокси между Cервисом регистрации ошибок платформы и системой сбора ошибок Sentry. Как развернуть Sentry onpremise. С

Ingvar Vilkman 13 May 24, 2022
The tool helps to find hidden parameters that can be vulnerable or can reveal interesting functionality that other hunters miss.

The tool helps to find hidden parameters that can be vulnerable or can reveal interesting functionality that other hunters miss. Greater accuracy is achieved thanks to the line-by-line comparison of

197 Nov 14, 2022
Buggy script to play with GPOs

GPOwned /!\ This is a buggy PoC I made just to play with GPOs in my lab. Don't use it in production! /!\ The script uses impacket and ldap3 to update

45 Dec 15, 2022
Originally used during Marketplace.tf's open period, this program was used to get the profit of items bought with keys and sold for dollars.

Originally used during Marketplace.tf's open period, this program was used to get the profit of items bought with keys and sold for dollars. Practically useless for me now, but can be used as an exam

BoggoTV 1 Dec 11, 2021
Christmas tree on the desktop.

new-year-tree Christmas tree on the desktop. [Ссылка на статью habr]

Daniil Gorbenko 10 Dec 29, 2022
Bazel rules to install Python dependencies with Poetry

rules_python_poetry Bazel rules to install Python dependencies from a Poetry project. Works with native Python rules for Bazel. Getting started Add th

Martin Liu 7 Dec 15, 2021
CD for MachineLearnia

Codebase supporting my talk on CI/CD for MachineLearnia (Nov 12 2021) The dataset used is available here. The point of the talk is to demonstrate a si

0 Feb 23, 2022
Timetable scripts for python

Timetable Scripts timetable_to_json: https://beta.elektronplus.pl/timetable classes_taught_by_teacher: a.adam (aa) ['1Tc', '1Td', '3Te', '3Ti', '4Tf',

Elektron++ 2 Jan 02, 2022
Prophet is a tool to discover resources detailed for cloud migration, cloud backup and disaster recovery

Prophet is a tool to discover resources detailed for cloud migration, cloud backup and disaster recovery

22 May 31, 2022
A webapp for taking fast notes, designed for business, school, and collaboration with groups.

JOTS Journal of the Session A webapp for taking fast notes, designed for business, school, and collaboration with groups.

Zebadiah S. Taylor 2 Jun 10, 2022
Check broken access control exists in the Java web application

javaEeAccessControlCheck Check broken access control exists in the Java web application. 检查 Java Web 应用程序中是否存在访问控制绕过问题。 使用 python3 javaEeAccessControl

kw0ng 3 May 04, 2022
A simple website-based resource monitor for slurm system.

Slurm Web A simple website-based resource monitor for slurm system. Screenshot Required python packages flask, colored, humanize, humanfriendly, beart

Tengda Han 17 Nov 29, 2022
Um pequeno painel de consulta

Spynel Um pequeno painel com consultas de: IP CEP PLACA CNPJ OBS: caso execute o script pelo termux, recomendo que use o da F-Droid por ser mais atual

Spyware 12 Oct 25, 2022
Ultimate Score Server for RealistikOsu

USSR Ultimate Score Server for RealistikOsu (well not just us but it makes the acronym work.) Also I wonder how long this name will last. What is this

RealistikOsu! 15 Dec 14, 2022
System Design Assignments as part of Arpit's System Design Masterclass

System Design Assignments The repository contains a set of problem statements around Software Architecture and System Design as conducted by Arpit's S

Relog 1.1k Jan 09, 2023
Test to grab m3u from YouTube live.

YouTube_to_m3u https://raw.githubusercontent.com/benmoose39/YouTube_to_m3u/main/youtube.m3u Updated m3u links of YouTube live channels, auto-updated e

136 Jan 06, 2023