Skip to content

Latest commit

 

History

History
95 lines (54 loc) · 5.63 KB

File metadata and controls

95 lines (54 loc) · 5.63 KB
graph LR
    BasePipeline["BasePipeline"]
    EnvironmentPipeline["EnvironmentPipeline"]
    DataloaderPipeline["DataloaderPipeline"]
    Environment["Environment"]
    DotSimulator["DotSimulator"]
    Network["Network"]
    DataLoader["DataLoader"]
    BasePipeline -- "is inherited by" --> EnvironmentPipeline
    BasePipeline -- "is inherited by" --> DataloaderPipeline
    EnvironmentPipeline -- "interacts with" --> Environment
    EnvironmentPipeline -- "utilizes" --> DotSimulator
    EnvironmentPipeline -- "drives" --> Network
    DataloaderPipeline -- "coordinates with" --> DataLoader
    DataloaderPipeline -- "drives" --> Network
    Environment -- "is interacted with by" --> EnvironmentPipeline
    DotSimulator -- "is utilized by" --> EnvironmentPipeline
    Network -- "is driven by" --> EnvironmentPipeline
    Network -- "is driven by" --> DataloaderPipeline
    DataLoader -- "is coordinated by" --> DataloaderPipeline
Loading

CodeBoardingDemoContact

Details

The bindsnet project's core architecture for SNN experiments revolves around a pipeline-driven approach. The BasePipeline establishes a foundational workflow, which is then specialized by EnvironmentPipeline for environment-interaction tasks and DataloaderPipeline for data management. These pipelines orchestrate interactions with key components: Environment (or GymEnvironment) for external world simulation, DotSimulator for specific dot-tracking environments, Network for the SNN model itself, and DataLoader (within bindsnet.datasets) for data provision. This modular design ensures clear separation of concerns, allowing for flexible and extensible experiment configurations.

BasePipeline

Serves as the abstract foundation for all experiment pipelines. It defines the generic workflow for executing SNN experiments, including initialization, stepping through the experiment, testing, recursive operations on sub-components, and plotting results. It ensures a consistent structure for various experiment types, aligning with the "Pipeline Architecture" pattern.

Related Classes/Methods:

EnvironmentPipeline

Specializes in orchestrating experiments that involve interaction with an external environment, particularly for training reinforcement learning agents or models that learn through environmental feedback. It manages the environment's state and drives the simulation forward, embodying the "Simulation & Environment Interaction" aspect.

Related Classes/Methods:

DataloaderPipeline

Manages the loading, preprocessing, and feeding of data into the SNN models during experiments. It ensures that data is available in the correct format and at the right time for the simulation or training process, aligning with the "Data Handling & Preprocessing" component pattern.

Related Classes/Methods:

Environment

Represents the external environment with which the SNN model interacts, providing observations and receiving actions. This component is crucial for reinforcement learning tasks.

Related Classes/Methods:

DotSimulator

A specialized environment simulator, often used within EnvironmentPipeline, for creating and managing moving "dots" in a grid. It provides observations and computes rewards based on the SNN's interaction with these dots.

Related Classes/Methods:

Network

Represents the core Spiking Neural Network (SNN) model that is being simulated or trained within the experiment. It receives inputs from either the environment or a dataloader and processes them.

Related Classes/Methods:

DataLoader

Provides functionalities for accessing, loading, and managing various datasets used as input for SNN experiments. It ensures data is prepared and delivered to the Network component.

Related Classes/Methods: