Aktywne Wpisy
WielkiNos +20
Jednym z powodów braku chęci posiadania dziecka przez kobiety jest obawa, że po urodzeniu większość obowiązków spadnie na kobietę. Czyli prawie 70% kobiet uważa, że nie może liczyć na faceta. Z tego też może wynikać duża chęć uniezależnienia się finansowego od facetów i bycie samodzielną. No bo jeżeli nie można liczyć na faceta trzeba liczyć na siebie. Stąd stawianie na karierę i rozwijanie własnych pasji.
Zastanawia mnie tylko to nie lubienie dzieci
Zastanawia mnie tylko to nie lubienie dzieci
Dominek +213
W nawiązaniu do wczorajszego wpisu opiszę jak zrobiłem wczorajszą akcję.
*1. Podstawy*
najpierw ogarnąłem ten tutorial, by zrozumieć podstawy teoretyczne (może być pominięte ( ͡° ͜ʖ ͡°)). Ze swojej strony polecam cały cykl - na początek przygody z machine learning jak znalazł.
Generalna zasada jest taka, że sieć neuronowa nie wie co robi. Ona dostaje jakiś input i próbuje dać jakiś output. Ale nie ma pojęcia, że to co robi to generowanie tekstu. Najlepszym przykładem jest to, że w w.w. tutorialu OP używa tego samego mechanizmu do generowaniu poziomów w Mario Bros.
*2. Nauczenie sieci.*
W zasadzie każdy z was, nawet jeśli nie umie programować, jest w stanie nauczyć sieć neuronową "coś" generować i właśnie napiszę wam jak to zrobić.
W tutorialu jako przykład podali sieć char-rnn napisaną przez Andrej Karpathy. Jednak on użył biblioteki Torch napisanej w Lua, a ponieważ obu nie znam, to znalazłem pythonowy (tensorflow) odpowiednik.
Aby tego użyć, wystarczy ściągnąć plik .zip z GitHuba, albo sklonować. Zainstalować googlową blibliotekę "tensorflow" (pip install tensorflow).
Następnie w katalogu "data" utworzyć podkatalog o jakiejś nazwie, a w środku plik "input.txt" zawierający tekst do nauki. W moim przypadku były to wszystkie pasty z Mirko.
Ostatnim krokiem jest wpisanie komendy:
python train.py --data_dir data/pasty
W tym momencie sieć zaczyna się uczyć. W trakcie można próbować ją odpytać komendą
python sample.py --save_dir=save
Najfajniesze jest w tym wszystkim to, że na początku sieć wypluwa po prostu jakieś losowe znaki:
Po pewnym czasie sieć zauważa że linie mają określoną długość, że znaki interpunkcyjne są na końcu itp. By po nauczeniu wypluć coś takiego w przypadku Pana Tadeusza:
W wypadku sieci neuronowych dużo większe znaczenie ma ilość danych niż sama jakość algorytmu.
W przypadku past powstał niezły bełkot ( ͡° ͜ʖ ͡°) są lepsze sposoby na generowanie tekstu który faktycznie ma jakiś sens i mam nadzieje, że jeszcze dziś taki zobaczę ( ͡º ͜ʖ͡º)
*3. Zdobycie danych*
Oto kod którego użyłem do pobrania i częściowego oczyszczenia past: http://pastebin.com/Qg8N81sQ
Używam tam wykop-sdk
*4. Automatycznie wrzucanie past plusującym*
Aby automatycznie wrzucać pasty i móc wyjść z domu i późno wrócić (i tak też zrobiłem ( ͡° ͜ʖ ͡°) ) stworzyłem ten oto skrypcik http://pastebin.com/5XLZ1mTY i wrzuciłem go do crona na odpalanie się co 2 minuty.
Podsumowanie:
Wynik jest taki, że pasty to był niezły bełkot.
Sieć nie używa całych słów do generowania zdań, a pojedynczych znaków - dlatego możliwe było wygenerowanie słów nieistniejących takich jak Karyngarad (nazwa twierdzy z alternatywnego, #!$%@? uniwersum Tolkiena), Karytata (Ojciec Karyny) czy też całe sentencje jak "chwilo mi się urodziwy po ludzi to została procel #gorzesowalnie chcesraniu, co są dziewicza czy przed loszka.. w swoim chłop, dalej" - co zostało odebrane jak bełkot pijanego słowaka udającego Mickiewicza ( ͡° ͜ʖ ͡°)
@sokytsinolop @asdasdce2w macie kody :)
@meohaw: obserwuj gorące ;)