Laboratorium SNN

Zaliczenie zajęć

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

RBF

Sieć Hopfielda

Sieć SOM

Keras i tensorflow

Głębokie sieci

Sieci splotowe

Sieci rekurencyjne

Autoenkodery

Sieci generatywne

Notatniki i zadania

Lab. 1 Wprowadzenie do Python i Jupyter
Lab. 2 Perceptron prosty
Lab. 3 MLP Softmax
Lab. 4 Generalizacja MLP
Lab. 5 RBF
Lab. 6 SOM
Lab. 7 Uczenie regułą Hebba
Lab. 8 Tensorflow i Keras
Lab. 9 Sieci splotowe
Lab. 10 Transfer learning
Lab. 11 Sieci rekurencyjne
Lab. 12 Autoenkodery

Ś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

Anaconda

Installing the classic Jupyter Notebook interface

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

Po wykonaniu zadania zapisz notatnik w repozytorium GitHub
Plik -> Zapisz notatnik w usłudze GitHub

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.)

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

Python is a programming language that lets you work quickly and integrate systems more effectively

www.learnpython.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.

Jupyter Notebook for Beginners: A Tutorial

NumPy NumPy is the fundamental package for scientific computing with Python

NumPy tutorial

Pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool

10 minutes to pandas

Using Pandas and Python to Explore Your Dataset by Reka Horvath

scikit-learn Simple and efficient tools for predictive data analysis

matplotlib comprehensive library for creating static, animated, and interactive visualizations in Python.

Matplotlib tutorial for beginner by Nicolas P. Rougier

Tensorflow

Keras