Jak w czystym Python’ie dokonać tokenizacji tekstu na ngramy oraz jak wygenerować słownik z wszystkimi możliwymi ngramami.
Continue readingPosts Tagged → python
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 readingBig 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 readingSieć 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.
Jak wygenerować obrazy z ciągiem losowych cyfr w Pythonie
Praca z sieciami neuronowymi wymaga dużej ilości danych, mocy obliczeniowej oraz poprawnie zdefiniowanej architektury sieci. Wszystkie trzy komponenty składają się na dobre wyniki podczas fazy testowania. Jednak co możemy zrobić gdy nasza sieć daje nam wyniki, dalekie od naszych oczekiwań.