nn3d
Sinir aglarini tarayicida canli 3D olarak izle. Egitim sirasinda her katmanin aktivasyonu ve her baglantinin agirligi gercek zamanli akar.
import nn3d
nn3d.show(model) # tarayici acilir
model.fit(X, y, callbacks=[nn3d.Monitor(X[:1])]) # egitim canli akar
Notebook'ta calisiyorsan baska hicbir sey gerekmez. Duz bir .py betiginde
betik bitince surec de biter; sonuna nn3d.wait() ekle.
Kurulum
pip install -e .
Kullanmak icin Node.js gerekmez — 3D cizici derlenmis halde paketin icinde gelir. Node yalnizca ciziciyi degistirmek istersen lazim (asagi bak).
Ne gorursun
- Katman kartlari — ad, noron/kanal sayisi, tensor sekli,
[ReLU]gibi aktivasyon - Noronlar — parlaklik ve buyukluk o anki aktivasyonu gosterir
- Baglantilar — turkuaz pozitif, kizil negatif agirlik; parlaklik
|agirlik|× kaynak aktivasyonu - Giris/cikis etiketleri — ozellik adlarin ("Hunger Level", "Fox Distance") aktivasyona gore renklenir
- Fare ile uzerine gel — o noronun butun baglantilari altin sariya doner, gerisi soner
- Metrikler —
loss,accuracy,val_loss… sag ustte canli
API
nn3d.show(model, ...)
Modeli cizer ve tarayiciyi acar. View dondurur.
| parametre | ne ise yarar |
|---|---|
sample |
verilirse ilk kare hemen gonderilir, ekran bos kalmaz |
input_labels |
giris noronlarinin adlari (ozellik sutunlarin) |
output_labels |
cikis noronlarinin adlari (sinif adlarin) |
max_neurons |
katman basina cizilecek nokta sayisi (varsayilan 16) |
port |
varsayilan 8092; doluysa otomatik bos porta gecer |
open_browser |
False yaparsan sadece URL basar |
nn3d.Monitor(sample, every=20, ...)
Keras callback'i. model.fit(callbacks=[...]) icine koy.
every her N batch'te bir kare gonderir. Her batch'te ekstra ileri yayilim
yapmak egitimi olculebilir sekilde yavaslatir; 20 akici gorunur ve maliyeti
ihmal edilebilir.
View.update(x, metrics=..., epoch=...)
Kendi dongunu yaziyorsan (RL, ozel egitim adimi) kareyi elle gonder.
Sanallastirma — ekranda gordugun gercek mi?
Evet, ama hepsi degil. Dense(3072) katmanini 3072 nokta cizmek hem okunmaz
hem de onceki katmanla arasinda 2.3 milyon kenar demektir; tarayici kilitlenir.
Bu yuzden her katmandan esit araliklarla max_neurons kadar temsilci noron
secilir; aktivasyonlar ve agirliklar ayni indislere gore kirpilir. Yani ekrandaki
her nokta ve her cizgi gercek bir noron/agirliktir — uydurma yok, sadece bir alt
kume. Bir noronun uzerine geldiginde ipucu kutusu gercek noron numarasini
yazar (noron 1847 / 3072), boylece hangi alt kumeye baktigini bilirsin.
Desteklenen katmanlar (Keras 3)
Dense · Conv1D/2D/3D · Conv2DTranspose · SeparableConv2D · LSTM · GRU ·
SimpleRNN · Flatten · Reshape · Dropout · BatchNormalization ·
LayerNormalization · MaxPooling* · AveragePooling* · Activation ·
LeakyReLU · ReLU · Softmax · Embedding
Agirliklar gorsellestirme icin (giris_birimi, cikis_birimi) matrisine indirgenir:
konvolusyon cekirdekleri uzamsal eksenler uzerinde toplanir, LSTM/GRU kapilari
ortalanir. Amac sayisal dogruluk degil, baglantinin isareti ve siddeti.
Mimari
Keras modeli ──build_graph()──▶ graph.json ──┐
├─▶ stdlib HTTP + SSE ──▶ Three.js cizici
ActivationTap.read(x) ──────▶ kare (base64 f32) ┘ (:8092) (tarayici)
- Sifir bagimlilik. Sunucu tamamen Python standart kutuphanesi. Akis icin
WebSocket yerine SSE kullaniliyor: akis tek yonlu (Python → tarayici), SSE tam
bunun icin var,
http.serverile calisir ve baglanti koptugunda kendi kendine yeniden baglanir. WebSocket ya harici bir paket ya da el yazmasi handshake isterdi; ikisi de "pip install nn3dyeter" hedefini bozardi. - Cizici modeli bilmez, sadece
src/nn3d/schema.py'deki semayi bilir. Bu yuzden ayni kod hem 10 noronluk bir oyun ajanini hem 12 blokluk bir transformer'i cizer. Baska bir cerceve (PyTorch, Unity, JS oyun) eklemek icin yeni bir cizici degil, sadece yeni bir adapter yazmak yeterli. - Tek geometri. Butun kenarlar tek bir
LineSegments, butun noronlar tek birPoints. Her karede yalnizca renk tamponu guncellenir; geometri hic degismez.
Ciziciyi degistirmek
cd viewer
npm install
npm run dev # canli gelistirme (once Python sunucusunu ayri calistir)
npm run build # src/nn3d/static/index.html icine derler
Derlenmis cikti pakete dahildir, bu yuzden npm run build ciktisini da
commit'lemek gerekir.
Ornekler
| dosya | ne |
|---|---|
examples/nn3d_baslangic.ipynb |
Bastan sona rehber: statik gorunum, canli egitim, elle kare gonderme, sanallastirma |
examples/churn_canli.py |
Duz betik ornegi (nn3d.wait() kullanimi) |
examples/kurs/ |
FNN / CNN / RNN / GAN kurs notebook'lari, nn3d eklenmis hali |
PYTHONPATH=src python examples/churn_canli.py
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nn3d-0.1.0.tar.gz.
File metadata
- Download URL: nn3d-0.1.0.tar.gz
- Upload date:
- Size: 272.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9408b568cadb42d1bdf0b4fac3a1e4e1d656f72f5a5491859d685ddf73a136c7
|
|
| MD5 |
c5a7c2769efe5cd850c30f9b7aa099dc
|
|
| BLAKE2b-256 |
c16dec185f15774288bf13786004da82b94fd21f1a0a6e96f2383f584ab82bf9
|
File details
Details for the file nn3d-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nn3d-0.1.0-py3-none-any.whl
- Upload date:
- Size: 200.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf31c5fa27b325af7271f31ebdfc6ffc7168e65f5a097824038870ceebce2eca
|
|
| MD5 |
fbb9ae98eb2bc7bd79031453d95bf2c9
|
|
| BLAKE2b-256 |
1b434351b2dab11e9a59425d4f98cfc118f5f310095cd73e2b8cccfe6a184f2b
|