====== Laboratorium SNN ======
===== Zaliczenie zajęć =====
[[..:zaliczenie|Zaliczenie zajęć, projekty i propozycje tematów projektów]] \\
**Rozwiązanie muszą być wykonane samodzielnie. Nie jest dozwolone udostępnianie rozwiązań innym osobom**
Rozwiązania należy deponować w Moodle lub w repozytorium GitHub utworzonym na podstawie linku aktywującego zadanie.
Adresy aktywujące repozytorium GitHub do deponowania rozwiązań znajduja się w Moodle.\\
Strona kursu w Moodle: https://moodle.umk.pl/WFAIIS/course/view.php?id=41
===== Plan =====
- Wstęp do python, jupyter, numpy, pandas, matlibplot, scikit-learn
- Model neuronu McCulloch-Pittsa,
- Prerceptron
- MLP, badanie różnych konfiguracji treningu
- Ocena jakości modeli, generalizacja, dobór hiperparametrów
- RBF
- Uczenie konkurencyjne, gaz neuronowy
- Uczenie korelacyjne, reguła Hebba
- Keras, Tensorflow i głebokie uczenie
- Sieci splotowe CNN
- Transfer learning
- Sieci rekurencyjne RNN
- Autokodery, VAE
- Sieci generatywne GAN (?)
===== Notatniki i zadania =====
{{page>zajecia:nn_2025_1:lab:sidebar#Notatniki&noheader&nofooter}}
===== Środowisko pracy =====
Laboratoria realizowane są w języku Python z wykorzystaniem notatników Jupyter. Na pracowni komputerowej dostępna jest dystrybucja Anaconda (zalecane środowisko na zajęciach). Możliwe jest również wykorzystanie usług sieciowych umożliwiających edycję i uruchamianie notatników, jak Google Colab lub Binder. Python oraz jupyter-notebook dostępne są również na serwerze studenckim ''polon7.fizyka.umk.pl''
==== Praca lokalnie (na pracowni lub własnym komputerze) ====
- Jeśli chcesz korzystać z repozytoriów GitHub do przesyłania rozwiązań to utwórz kopie repozytorium z zajęć klikając na adres podany w Moodle
- Pobieramy notatnik ''ipynb'', np. klonując repozytorium GitHub
- Otwieramy wiersz poleceń Anaconda i przechodzimy do katalogu zawierającego pobrane pliki
- Uruchamiamy serwer Jupyter poleceniem \\ jupyter-notebook
lub jupyter-lab
- Po wykonaniu zadań należy zapisać notatnik wraz z wynikami
- Rozwiązanie umieszczamy w Moodle lub wypychamy do własnego repozytorium GitHub
**Instalacja Anaconda**
* [[https://www.anaconda.com/products/individual|Anaconda]]
* [[https://jupyter.readthedocs.io/en/latest/install/notebook-classic.html|Installing the classic Jupyter Notebook interface]]
* [[https://jupyterlab.readthedocs.io/en/stable/|JupyterLab]]
==== Google Colab (lub Binder) ====
Google colaboratory umożliwia zapis notatników do prywatnych repozytoriów GitHub, usługa Binder umożliwia wyłacznie import publicznych repozytoriów GitHub.
- Utwórz kopie repozytorium z notatnikiem poprzez link podany w Moodle \\ https://moodle.umk.pl/WFAIIS/course/view.php?id=41#section-1
- Uruchom notatnik w Google Colab klikając {{zajecia:mn_2020_2:colab-badge.png}}
- Po wykonaniu zadania zapisz notatnik w repozytorium GitHub \\ ''Plik'' -> ''Zapisz notatnik w usłudze GitHub''
* [[https://colab.research.google.com/|Google Colab]] (zalecane)
* dostęp do GPU
* wymagane konto Google i autoryzacja
* edytowane notatniki można zapisać na Dysku Google lub w GitHub (także w prywatnych repozytoriach)
* sesja aktywna dopóki jest otworzona w przeglądarce (max. 12h.)
* [[https://mybinder.org/|MyBinder]] (niezalecane)
* tylko CPU, min. 1GB RAM
* nie wymaga autoryzacji
* brak możliwości zachowania zmian pomiędzy sesjami
* sesja do 6 h., przerywana gdy brak aktywności przez 10 min
* często długotrwała procedura konfiguracji i niestabilna praca (brak zapisu może powodować utratę danych)
===== Kilka przydatnych odnośników =====
* [[https://www.python.org/|Python]] is a programming language that lets you work quickly and integrate systems more effectively
* [[https://www.learnpython.org/pl/|www.learnpython.org]]
* [[https://jupyter.org/|jupyter]] The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text.
* [[https://www.dataquest.io/blog/jupyter-notebook-tutorial/|Jupyter Notebook for Beginners: A Tutorial]]
* [[https://numpy.org/|NumPy]] NumPy is the fundamental package for scientific computing with Python
* [[https://numpy.org/devdocs/user/quickstart.html|NumPy tutorial]]
* [[https://pandas.pydata.org/|Pandas]] is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool
* [[https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html|10 minutes to pandas]]
* [[https://realpython.com/pandas-python-explore-dataset/#using-the-pandas-python-library|Using Pandas and Python to Explore Your Dataset]] by Reka Horvath
* [[https://scikit-learn.org/stable/|scikit-learn]] Simple and efficient tools for predictive data analysis
* [[https://matplotlib.org/|matplotlib]] comprehensive library for creating static, animated, and interactive visualizations in Python.
* [[https://github.com/rougier/matplotlib-tutorial|Matplotlib tutorial for beginner]] by Nicolas P. Rougier
* [[https://www.tensorflow.org/?hl=pl|Tensorflow]]
* [[https://keras.io/|Keras]]