Wielowarstwowa sieć neuronowa w Tensorflow do klasyfikacji cyfr z MNIST

We wpisie tym zbudujemy 5-warstwową w pełni połączoną (fully-connected) sieć neuronową klasyfikującą cyfry ze zbioru MNIST. W tym celu wykorzystamy Tensorflow oraz wprowadzimy nowe techniki pozwalające na uczenie głębszego modelu takie jak np. funkcje aktywacji: relu, elu, dropout oraz algorytm optymalizacyjny Adam.

Continue reading

Big Data na dysku, czyli jak przetwarzać pliki HDF5 w python

Czy nie macie problemu z przetwarzaniem ogromnego pliku z danymi, albo macie ogrom danych z czujników i nie wiecie jak je zapisać aby łatwo można było później je przetwarzać? Bo ja mam, znaczy miałem odkąd poznałem HDF5.

Biorąc się za jakąkolwiek robotę związaną z analizą danych mamy prosty workflow. Odczytujemy dane, wczytujemy je do pamięci następnie uruchamiamy stosowne algorytmy, dobieramy parametry i zbieramy wyniki. Jednak już na początku tego etapu możemy napotkać problemy. Co zrobić w sytuacji gdy mamy do wczytania ogromny plik, lub gdy mamy miliony małych plików? Jak to zmieścić w RAM’ie naszej maszyny? Odpowiedź jest prosta, wczytywać i przetwarzać dane partiami. Jednak takie podejście wymaga napisania dodatkowego kodu, jeżeli chcemy to zrobić ładnie i łatwo to z pomocą może nam przyjść HDF5.

Continue reading

Sieć konwolucyjna do rozpoznawania ciągu cyfr część 2

Jest to  druga część serii przedstawiającej sposób pracy z sieciami konwolucyjnymi (Conv Nets) z wykorzystaniem TensorFlow. Dokonamy w niej rozpoznania oraz klasyfikacji szeregu cyfr jednocześnie, co będzie wiązało się z kilkoma istotnymi zmianami w skrypcie w stosunku do poprzedniego wpisu. Stanowi to także dobry przykład do omówienia jednego z kluczowych elementów skutecznego uczenia czyli inicjalizacji wag w sieci.

Continue reading