Skip to content
This repository was archived by the owner on Aug 31, 2026. It is now read-only.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

AutoEncoder Experimentation Framework

A comprehensive Python package for systematic exploration of autoencoder latent space discrimination capabilities across different datasets and architectures.

๐ŸŽฏ Project Overview

This project investigates how autoencoder neural networks represent different types of images and geometric features in latent space. The primary research goals are to:

  • Understand latent space discrimination capabilities
  • Determine when latent space breaks down for specific features
  • Identify minimum latent features needed for effective discrimination
  • Analyze how incrementally complex features are encoded

๐Ÿš€ Current Status

Phase 0: Migration from Jupyter Notebook to Python Package

  • โœ… TaskMaster-AI project management initialized
  • โœ… Git repository setup with comprehensive .gitignore
  • โœ… GitHub repository created and connected
  • โœ… Development environment configured
  • โœ… Python package structure created
  • ๐Ÿ”„ Data module implementation (in progress)

๐Ÿ““ Jupyter Notebook Development

CRITICAL: notebook_mcp Tools Required

โš ๏ธ IMPORTANT: All Jupyter notebook operations MUST use the notebook_mcp tools to prevent corruption:

  • NEVER use standard file editing tools on .ipynb files
  • ALWAYS use notebook_mcp tools for reading, editing, and creating notebooks
  • Investigate notebook issues independently using available MCP tools

Available Tools

  • File Operations: Create, delete, rename notebooks
  • Cell Operations: Add, edit, delete, move, split, merge cells
  • Content Reading: Read cells, metadata, outputs
  • Validation: Validate notebook structure
  • Export: Convert to other formats

Best Practices

  • Use notebooks as interfaces to the autoencoder_lib package
  • Keep core logic in Python modules, not notebook cells
  • Import and use package functions rather than defining in notebooks
  • Maintain clean separation between package code and notebook interface

See .cursor/rules/jupyter-notebook-mcp.mdc for complete guidelines.

๐Ÿ› ๏ธ Development Environment Setup

Prerequisites

  • Python 3.9+ (Anaconda recommended)
  • Git
  • GitHub account

Quick Setup

  1. Clone the repository:

    git clone https://github.com/Zanzagar/AutoEncoder_Experimentation.git
    cd AutoEncoder_Experimentation
  2. Create and activate virtual environment:

    # Windows
    python -m venv venv
    venv\Scripts\activate
    
    # macOS/Linux
    python -m venv venv
    source venv/bin/activate
  3. Install dependencies:

    pip install --upgrade pip
    pip install -r requirements.txt
  4. Verify installation:

    python -c "import torch, numpy, matplotlib; print('Environment setup successful!')"

Core Dependencies

  • Machine Learning: PyTorch, NumPy, Scikit-learn
  • Visualization: Matplotlib, Seaborn, Plotly
  • Data Processing: Pandas, H5PY
  • Development: Jupyter, Black, Flake8, Pytest
  • Dimensionality Reduction: UMAP, t-SNE

๐Ÿ“ Project Structure

AutoEncoder_Experimentation/
โ”œโ”€โ”€ autoencoder_lib/          # Python package (to be created)
โ”‚   โ”œโ”€โ”€ data/                 # Dataset generation and loading
โ”‚   โ”œโ”€โ”€ models/               # Autoencoder architectures
โ”‚   โ”œโ”€โ”€ experiment/           # Training and evaluation
โ”‚   โ”œโ”€โ”€ visualization/        # Plotting and analysis
โ”‚   โ””โ”€โ”€ utils/                # Helper functions
โ”œโ”€โ”€ notebooks/                # Jupyter interface notebooks
โ”œโ”€โ”€ scripts/                  # Utility scripts and PRD
โ”œโ”€โ”€ tasks/                    # TaskMaster-AI task management
โ”œโ”€โ”€ results/                  # Experiment outputs
โ””โ”€โ”€ tests/                    # Unit tests

๐Ÿ”ฌ Research Datasets

Current Datasets

  • Geological Patterns: Layered geological structures with varying complexity
    • consistent_layers/: Regular geological patterns
    • variable_layers/: Irregular geological patterns

Dataset Framework

The framework is designed to handle any generic dataset with the following capabilities:

  • Automatic dataset generation with visualization
  • t-SNE projection analysis
  • Class-based example visualization
  • Configurable complexity levels

๐Ÿง  Autoencoder Architectures

Supported Architectures

  • BasicAutoEncoder: Simple encoder-decoder structure
  • ConvolutionalAutoEncoder: CNN-based architecture for image data
  • VariationalAutoEncoder: VAE for probabilistic latent representations
  • DeepAutoEncoder: Multi-layer deep architecture

Architecture Framework

  • Generic architecture interface
  • Configurable latent dimensions
  • Modular encoder/decoder components
  • Support for custom architectures

๐ŸŽฎ Current Workflow (Jupyter Notebook)

The existing workflow consists of 5 sequential code blocks:

  1. Dataset Generation: Creates datasets with visualization and class examples
  2. Dataset Visualization: t-SNE projection of input datasets
  3. Model Definitions: Autoencoder architectures and dataset handling
  4. Experiment Execution: Systematic exploration with specified parameters
  5. Results Loading: Retrieval and visualization of saved experiments

๐ŸŽฏ Target Workflow (Python Package + Jupyter Interface)

Four Core Wrapper Functions

  1. Dataset Generation Wrapper: Generate any generic dataset with visualization
  2. Dataset Visualization Wrapper: t-SNE projection and dataset analysis
  3. Experiment Runner Wrapper: Systematic exploration of autoencoder models
  4. Results Loader Wrapper: Load and visualize results from saved experiments

๐Ÿ“Š Experiment Configuration

High-Level Parameters

  • Learning Rate: Optimizer learning rate
  • Architectures: List of autoencoder architectures to test
  • Random Seed: Consistent reproducibility
  • Latent Dimensions: Range of latent space dimensions
  • Dataset Path: Input dataset location
  • Output Directory: Results storage location

๐Ÿ” Visualization Features

Current Visualizations

  • Dataset class examples
  • t-SNE projections
  • Training/validation loss curves
  • Reconstruction quality comparisons
  • Latent space analysis
  • Performance grids

Consistency Requirements

  • Identical visualizations between run and load operations
  • Consistent random seeds for reproducibility
  • Same image selection for reconstruction examples
  • Unified color schemes and layouts

๐Ÿšง Known Issues

Visualization Consistency Problems

  • t-SNE projections use different seeds between run and load operations
  • Training/test reconstruction visualizations show different images
  • Performance grid missing training data (currently only shows test data)
  • Run vs load visualizations are inconsistent

๐Ÿค Contributing

Git Workflow

  • Never commit directly to main branch
  • Use feature branches: feature/module-name
  • Create pull requests for all merges
  • Follow commit message conventions

Branch Naming Conventions

  • feature/migrate-data-module: Data module migration
  • feature/migrate-models-module: Models module migration
  • feature/migrate-experiment-module: Experiment module migration
  • feature/migrate-visualization-module: Visualization module migration
  • bugfix/visualization-consistency: Fix visualization issues

Development Rules

  • All development in Python files within autoencoder_lib package
  • Jupyter notebooks serve only as clean interfaces
  • Preserve 100% of current functionality
  • Fix visualization consistency issues
  • Maintain reproducibility

๐Ÿ“ˆ TaskMaster-AI Integration

This project uses TaskMaster-AI for project management:

  • Comprehensive task breakdown and tracking
  • AI-powered task complexity analysis
  • Dependency management
  • Progress monitoring

๐Ÿ“„ License

MIT License - see LICENSE file for details.

๐Ÿ”— Links

๐ŸŽฏ Migration Goals

Critical Requirements

  • โœ… Preserve 100% of current functionality
  • ๐Ÿ”„ Fix visualization consistency issues between run and load operations
  • ๐Ÿ”„ Support any generic dataset and autoencoder architecture
  • ๐Ÿ”„ Implement high-level parameter configuration
  • ๐Ÿ”„ Create clean, maintainable Python package structure

Key Improvements

  • Reproducibility: Consistent visualizations with explicit seed management
  • Generalization: Abstract interfaces for datasets and architectures
  • Maintainability: Modular code structure for future development
  • Usability: Simple, intuitive interface for complex experiments

๐Ÿ“ˆ Task Management

This project uses TaskMaster-AI for systematic task management:

  • 15 main tasks organized by priority and dependencies
  • AI-powered complexity analysis for task breakdown
  • Research-backed task generation using Perplexity AI
  • Comprehensive progress tracking and dependency management

View current tasks: task-master list Get next task: task-master next

๐Ÿ“ž Contact

For questions about this research project, please open an issue or contact the development team.


Status: ๐Ÿšง Active Development - Migration Phase 0 Last Updated: 2025-05-27

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages