Select Language: English | ไธญๆ
๐ฌ๐ง English Version (Click to Expand)
A unified, modular, and hardware-aware simulation framework and neuromorphic computing evaluation platform for Organic Optoelectronic and Memristive Devices.
It decouples experimental device measurements (from raw Excel/TXT files) from machine learning models. Using this platform, you can easily ingest raw device measurements and immediately test them across 19 diverse SOTA neuromorphic applications.
CIM_application_project/
โโโ core/ # 1. Core Physics & Simulation Kernel
โ โโโ __init__.py # Package public API exposure
โ โโโ physics.py # Device white noise, Poisson shot noise, LTP/LTD gradient modification
โ โโโ quantization.py # Learned Step Size Quantization (LSQ) & Straight-Through Estimator (STE)
โ โโโ layers.py # OrganicSynapseConv, QATMLPLayer, PhysicalReservoir
โ โโโ autotune.py # AutoTuner (using Optuna or grid search fallback for optimization)
โ
โโโ profiles/ # 2. Device Profile Manager
โ โโโ __init__.py # Package public API exposure
โ โโโ device_profile.py # Unified DeviceProfile data class
โ โโโ parser.py # Reads raw Excel (.xlsx) / TXT and fits models
โ โโโ fitter.py # Fits LTP/LTD polynomials & volatile relaxation constants
โ โโโ repository/ # Generated JSON configurations (e.g. OECT_Vision.json)
โ
โโโ data/ # 3. Data Storage Pointer
โ โโโ devices/ # Store raw experimental files (e.g. conductance.txt)
โ โโโ datasets/ # Datasets (MNIST, MIT-BIH, Sleep-EDF, CIFAR-10, etc.)
โ
โโโ tests/ # 4. Unit Test Suite (Subclasses of unittest.TestCase)
โ โโโ test_quantization.py # Tests LSQ/MinMax quantization and STE gradient flow
โ โโโ test_layers.py # Tests volatile DynamicOrganicSynapse & non-volatile SelfHealingCrossbar
โ โโโ test_compiler.py # Tests compiler logic and model synthesis
โ โโโ test_autotune.py # Tests Bayesian reservoir hyperparameter autotuning
โ
โโโ scripts/ # 5. One-Shot Demonstration & Plotting Utilities
โ โโโ verify_codesign_selfhealing.py # Verifies co-design training and self-healing under 10-year drift
โ โโโ evaluate_reliability.py # Runs 10-year reliability aging analysis on Yale faces
โ โโโ plot_benchmark.py # Plots bar chart comparing device metrics against platform SOTA
โ โโโ autotune_demo.py # Demonstration of Optuna reservoir hyperparameter tuning
โ โโโ generate_mock_device_data.py # Generates mock memristor/OECT measurements
โ
โโโ pyproject.toml # 6. Pip packaging and installation configuration
โโโ LICENSE # 7. MIT License file for open-source compliance
โโโ CONTRIBUTING.md # 8. Guide for contributing to the repository
โโโ run_tests.py # 9. Main unit test discovery and runner execution script
โโโ main.py # 10. Root-level unified CLI entry point
โ
โโโ applications/ # 11. Neural Network & Reservoir Applications
โโโ [ecg_cardio](applications/ecg_cardio) -> MIT-BIH classification (QAT MLP) | 97.91% ยฑ 0.45%
โโโ [fatigue_eeg](applications/fatigue_eeg) -> Sleep-EDF stage detection (Multi-Scale RC + QAT MLP) | 71.95% ยฑ 2.70%
โโโ [bearing_fault](applications/bearing_fault) -> CWRU fault detection (QAT MLP) | 99.80% ยฑ 0.25%
โโโ [chaotic_lorenz](applications/chaotic_lorenz) -> Lorenz attractor forecasting (Volatile RC) | NRMSE 0.0214%
โโโ [digit_rec](applications/digit_rec) -> Sequential MNIST digits recognition (Volatile RC) | 95.00%
โโโ [speech_emotion](applications/speech_emotion) -> RAVDESS speech emotion classification (QAT MLP) | 83.77% ยฑ 4.01%
โโโ [embodied_ai](applications/embodied_ai) -> Tactile multimodality materials classification (RC) | ~99.00%
โโโ [edge_llm](applications/edge_llm) -> Edge-LLM Sentinel anomaly interceptor (RF) | ~94% Intercept
โโโ [physical_attention](applications/physical_attention) -> Physical KV-Cache attention mechanism (Synergy) | ~95.00%
โโโ [fingerprint_rec](applications/fingerprint_rec) -> Fingerprint recognition (NIST + ResNet-18) | 92.19%
โโโ [cifar10_vision](applications/cifar10_vision) -> Bionic vision (CIFAR-10 + ResNet-18) | 90.15%
โโโ [face_rec](applications/face_rec) -> Yale Faces recognition (ResNet-18 + QAT Head) | 96.67%
โโโ [optoelectronic_vision](applications/optoelectronic_vision) -> Bionic Sensor-CIM integrated vision (OECT + ResNet-18) | 91.86%
โโโ [neuromorphic_stdp](applications/neuromorphic_stdp) -> Unsupervised SNN with STDP learning rule (SNN) | 22.78%
โโโ [neuromorphic_pid](applications/neuromorphic_pid) -> Adaptive PID controller under memristor noise | 55.80%
โโโ [tactile_eskin](applications/tactile_eskin) -> E-skin multi-class tactile sensor classification (CNN) | 100.00%
โโโ [neuromorphic_grasp](applications/neuromorphic_grasp) -> Robotic hand slippage reduction control | 98.24%
โโโ [seizure_detection](applications/seizure_detection) -> Seizure detection from multichannel EEG | 100.00%
โโโ [generative_aigc](applications/generative_aigc) -> ConvVAE Digit Image Generation & Reconstruction | MSE: 4.85e-3
โโโ [biohybrid_spiking](applications/biohybrid_spiking) -> Spiking coordination in biohybrid networks | 100.00%
To use this platform as an open-source library, clone this repository and run editable pip install in your environment:
git clone https://github.com/Leslie360/CIM_application_project.git
cd CIM_application_project
pip install -e .After installation, run the automated data preparation script to download standard vision datasets (MNIST, CIFAR-10) and generate lightweight mock data for proprietary medical/physical sensor datasets:
o-cimkit prepare-dataYou can run any of the 20+ applications directly via the global CLI or main.py:
# Run sMNIST digit recognition
o-cimkit run digit_rec
# Run Edge-LLM Sentinel anomaly detection
o-cimkit run edge_llm
# Run CIFAR-10 vision model for 10 epochs
o-cimkit run cifar10_vision --epochs 10
# Run generative VAE application
o-cimkit run generative_aigc --epochs 25
# Run Nano-GPT Large Language Model on Organic Memory
o-cimkit run cim_nano_gpt
# Run System-Level Architectural Profiler (DAC/ISCA/NeuroSim Metrics)
o-cimkit profile --app cim_nano_gpt
# Run top-journal comparative benchmark and publish reports
o-cimkit benchmark --apps cifar10_vision,generative_aigc --epochs 10To run bionic co-design compilation and self-healing validation on a device profile:
o-cimkit codesign --device FingerMemristorTo generate a premium, high-resolution physical diagnostics datasheet and curves for a device:
o-cimkit diagnose --device FingerMemristorWhen you get new raw experimental measurements (Excel or TXT file of current/conductance values):
- Save the file inside
data/devices/(e.g.,my_device.xlsx). - Run the parser:
# For nonvolatile memristors (e.g., 64 discrete states): python profiles/parser.py --file data/devices/my_device.xlsx --name MyMemristor --type nonvolatile --states 64 # For volatile short-term decay measurements: python profiles/parser.py --file data/devices/my_device.xlsx --name MyOECT --type volatile
- A JSON configuration containing all computed parameters will be saved to
profiles/repository/MyMemristor.json, which can be immediately used by all applications.
We provide an AutoTuner module (core/autotune.py) that utilizes Optuna (or a grid search fallback) to tune reservoir hyperparameters (spectral radius, input scaling, leaking rate) to automatically boost accuracy for your specific device characteristics:
from core.autotune import AutoTuner
# Define your evaluation function returning accuracy
def evaluate_fn(spectral_radius, input_scale, leaking_rate, ridge_alpha):
# Setup your reservoir and evaluate
return accuracy
# Tune for 30 trials
tuner = AutoTuner(target_accuracy_fn=evaluate_fn, n_trials=30)
best_params, best_accuracy = tuner.tune()๐จ๐ณ ไธญๆ็ (็นๅปๅฑๅผ)
้ๅฏนๆๆบๅ ็ตๅๅฟ้ปๅจไปถ็้ซ็กฌไปถๆ็ฅๅบฆใๆจกๅๅๅญ็ฎไธไฝไปฟ็ไธ็ฅ็ปๅฝขๆ่ฎก็ฎ่ฏไผฐๅนณๅฐใ
่ฏฅๅนณๅฐๆๅๅฐๅบๅฑ็็ฉ็ๅจไปถๅฎ้ชๆฐๆฎๆต้๏ผๆฏๆ raw Excel/TXT ๆฅๅ ฅ๏ผไธไธๅฑๆบๅจๅญฆไน ๆจกๅ่งฃ่ฆใไฝ ๅฏไปฅ้่ฟ็ฎๅ็็ฉ็้ ็ฝฎๆไปถ็ดๆฅๅฏนๆฅ 19 ็งไธๅๅๆฒฟ่ฎก็ฎ้ขๅ็็ฅ็ป็ฝ็ปไธๅจๅคๆฑ ็ฎๆณใ
ๆฏๆไธ้ฎไฝไธบ Python ๅบ่ฟ่กๅฎ่ฃ ๅๅผๅ๏ผ
git clone https://github.com/Leslie360/CIM_application_project.git
cd CIM_application_project
pip install -e .ๅฎ่ฃ ๅฎๆๅ๏ผ่ฏท่ฟ่ก่ชๅจๅๆฐๆฎๅๅค่ๆฌใ่ฏฅ่ๆฌไผ่ชๅจไธ่ฝฝๆ ๅ่ง่งๆฐๆฎ้๏ผๅฆ MNIST, CIFAR-10๏ผ๏ผๅนถไธบ้ฃไบๅฐ้ญ็ๅป็/็ฉ็ไธๆๆฐๆฎ้๏ผๅฆๅฟ็ตๅพใ่็ตๅพ๏ผ็ๆ่ฝป้็บง็ Mock ๆต่ฏๆฐๆฎ๏ผ็กฎไฟ้กน็ฎ่ฝๅคๅผ็ฎฑๅณ็จ๏ผ
o-cimkit prepare-dataๅฎ่ฃ
ๅฎๆฏๅ๏ผไฝ ๅฏไปฅ้่ฟๅ
จๅฑๅฝไปค o-cimkit ๆ้่ฟ่กไปปไฝๆจกๅ๏ผ
# ่ฟ่ก sMNIST ๆๅๆฐๅญ่ฏๅซ
o-cimkit run digit_rec
# ่ฟ่กๅคงๆจกๅ่พน็ผๅๅจๅผๅธธๆฆๆช
o-cimkit run edge_llm
# ๆๅฎ่ฎญ็ป่ฝฎๆฐ่ฟ่ก CIFAR-10 ไปฟ็่ง่ง็ณป็ป
o-cimkit run cifar10_vision --epochs 10
# ่ฟ่กๅๅ่ช็ผ็ ๅจ AIGC ๅพๅ็ๆๅบ็จ
o-cimkit run generative_aigc --epochs 25
# ่ฟ่กๆๅๆฒฟ็ Nano-GPT ็ๆๅผๅคงๆจกๅ (LLM on CIM)
o-cimkit run cim_nano_gpt
# ไธ้ฎ่ฟ่ก้กถๅๆ ๅ็กฌไปถๆ็ฅๅฏนๆฏ่ทๅๅนถ่พๅบๆฅๅ
o-cimkit benchmark --apps cifar10_vision,generative_aigc --epochs 10่ฟ่ก็กฌไปถๆ็ฅๅๅ่ฎพ่ฎก็ผ่ฏไธๅจ็บฟ่ชๆๆ ก้ช๏ผ่ฝฏ็กฌๅๅไผๅ๏ผ๏ผ
o-cimkit codesign --device FingerMemristorไธ้ฎ็ปๅถ็ฉ็็นๆง่ฏๆญๆฒ็บฟๅนถ็ๆๆฐๆฎๆๅๆฅๅ๏ผ
o-cimkit diagnose --device FingerMemristorๆไปฌๆไพไบ่ชๅจๅ่ฐไผๆจกๅ AutoTuner๏ผๅบไบ Optuna ๅฎ็ฐ๏ผๆ ็ฏๅขๆถ่ชๅจ้ๅ่ณ้ซๆ็ฝๆ ผๆ็ดข๏ผใๅฎ่ฝ้ๅฏนๆฐๅจไปถ็็ฉ็็นๆง๏ผๆถ้ดๅธธๆฐใ้็บฟๆงๅบฆ๏ผ๏ผ่ชๅจๆ็ดขๆไฝณ็ๅจๅฑ่ฐฑๅๅพใ่พๅ
ฅ็ผฉๆพใๆณๆผ็ไปฅๅ่ฏปๅบๅฑๆญฃๅๅ็ณปๆฐ๏ผไฝฟๆฐๅจไปถ็ไธ้ฎ่ฏๅซ็ฒพๅบฆๆๅคงๅใ