Skip to content

amirh1385/SpikeSimulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

🧠 Spiking Neural Network with STDP – Python Simulation

این پروژه یک شبیه‌ساز ساده از شبکه‌های عصبی اسپایکینگ (Spiking Neural Networks) با الگوریتم یادگیری STDP (Spike-Timing Dependent Plasticity) است که توسط amirh1385 توسعه داده شده.

⚠️ هشدار مهم: این پروژه صرفاً برای اهداف آموزشی طراحی شده و هیچ تضمینی برای صحت کامل عملکرد آن وجود ندارد. ممکن است باگ‌ها یا رفتارهای غیرمنتظره داشته باشد. لطفاً با دید آزمایشی و تحقیقاتی از آن استفاده کنید.

✨ قابلیت‌ها:

  • مدل‌سازی نورون‌های اسپایکینگ با آستانه تحریک
  • اتصال نورون‌ها با سیناپس‌های قابل یادگیری
  • پیاده‌سازی الگوریتم STDP برای تنظیم وزن سیناپس‌ها بر اساس زمان اسپایک
  • امکان تعریف گروه‌های نورونی و اتصال تصادفی بین آن‌ها
  • شبیه‌سازی گام‌به‌گام فعالیت شبکه و پردازش اسپایک‌ها

🧩 ساختار کلاس‌ها:

Neuron: نورون با آستانه تحریک، ولتاژ داخلی، ورودی‌ها و خروجی‌ها

Synapse: سیناپس بین دو نورون با وزن قابل یادگیری بر اساس STDP

Network: مدیریت نورون‌ها، سیناپس‌ها، صف پردازش و گام‌های زمانی

🛠️ نحوه استفاده:

  1. ساخت شبکه و اضافه کردن نورون‌ها: net = Network() start, end = net.add_neurons_to_netowrk(count=10, threshold=1.0)

  2. اتصال نورون‌ها با سیناپس‌های تصادفی: net.random_synapses(start_index=start, end_index=end, min_weight=0.1, max_weight=1.0, min_synapses=2, max_synapses=5)

  3. تحریک نورون‌ها (اسپایک زدن): net.spike_neuron(neuron_index=3)

  4. اجرای گام‌های زمانی شبکه: for _ in range(100): net.step()

📚 الگوریتم STDP:

  • اگر نورون ورودی قبل از نورون خروجی اسپایک بزند → تقویت وزن سیناپس
  • اگر نورون خروجی قبل از نورون ورودی اسپایک بزند → تضعیف وزن سیناپس
  • وزن سیناپس همیشه بین ۰ و ۱ محدود می‌شود

📦 نصب و اجرا: این پروژه وابستگی خاصی ندارد و فقط از کتابخانه‌های استاندارد پایتون استفاده می‌کند: python Network.py

🙋‍♂️ توسعه‌دهنده: ساخته شده توسط amirh1385 اگر پیشنهادی برای بهبود یا رفع باگ دارید، خوشحال می‌شم در بخش Issues یا Pull Requests در GitHub مطرح کنید.

🧪 وضعیت فعلی: این پروژه در مرحله آزمایشی است و ممکن است در شرایط خاص به‌درستی عمل نکند. لطفاً در استفاده از آن احتیاط کنید و برای کاربردهای جدی علمی یا صنعتی از ابزارهای معتبرتر استفاده نمایید.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages