Wpis z mikrobloga

No elo swiry z #python #machinelearning #tensorflow
Mam takie zadanie do wykonania, jestem newbie i zastanawiam sie nad generalnym podejsciem/architektura:

Generowanie textu na podstawie podprzednio widzianych zdan oraz przekazanego kontekstu (slowa kluczowe).
W pierwszym przypadku jak rozumiem, moge zastosowac jakas rekurencyjna warstwe np LSTM, GRU, zmapowac zdania na chary i jako cel ustawic wybor kolejnej litery - zrobiem pare takich.
Ale w jaki sposob moge przekazac konktekst wypowiedzi? Np. uczenie generowania zdan ala Shakespear lub Nietzsche? Zalozmy ze dane wejsciowe bede mial dodatkowo otagowane taka statyczna flaga oznaczajaca autora.
  • 28
  • Odpowiedz
@wafel93: DiCaprio to może dlatego, że ma jacht, ale nim nie pływa, tylko opalają się na nim prostytutki xD więc ekologicznie.

Wyjście z warstwy dense ma wymiary (batch, units) bo chyba w keras liczbę neuronów oznacza się units. U ciebie units warsty wyjściowej to jest liczba liter w komentarzu * liczba możliwych liter na danej pozycji. Nie wiem jak kodujesz litery. Ale na przykład w polskim alfabecie są 32 litery, więc units = 40 * 32 = 1280.

Więc u Ciebie wyjściem z sieci będzie (batch, 1280) i potem robisz reshape tego wyjścia na (batch, 40, 32). A następnie softmax względem 1 wymiaru (bo wymiar 0 to
  • Odpowiedz
@skrzacik320: Operacja sie udala, pacjent zmarl ¯\(ツ)_/¯
Zrobilem wlasnie przed chwila pierwszy prototyp sieci, pobawilem sie iloscia warstw (1-3), neuronow (64-512), epok (5-30) i czego bym nie zmienial to cienko to generuje w obecnej postaci. Przyklady:

Input:
test
tags = [
createTagInput(['#sustainability', '#ecology', '#instafacts
  • Odpowiedz
A co do modelu Seq2Seq wpadłem jeszcze na pomysł, że mogę dać na input encoder one-hot-encode tagi, które wpierw posortuję. To by mogło chyba nawet zadziałać.
  • Odpowiedz
W sumie to nie wiem, czy robie jakis kardynalny blad, czy to faktycznie nie ma racji dzialac dobrze w takim ukladzie :/ Sama funkcja loss tez niespecjalnie sie minimalizuje - w okolicach 3 epoki validation loss zaczyna sie rozbiegac i elo.


@wafel93: Nie robisz żadnego błędu. Po prostu trzeba było zacząć od czegoś prostego. Masz już określony input, output, loss, coś tam się optymalizuje, więc jest ok. Teraz pora eksperymentować
  • Odpowiedz
Dzindybry serdeczne pani @skrzacik320
Zrobilem kolejny model i chcialbym sie podpytac o architekture - wyglada tak:

Embedding(100, 5, input_length=8),


Input : 100 vocabulary size (99 najpopularniejszych tagow + padding), kazdy komentarz jest reprezentowany przez 8 tagow - przyklad [1, 53, 23, 6, 0, 0,
  • Odpowiedz
@skrzacik320: miałaś może chwilę czasu by zerknąć na te dane? () Zaraz zabieram się za kolejny model (mała wariacja z Dropout), ale generalnie mam wrażenie, że coś mocno nie gra - byłbym dużo spokojniejszy, gdyby te sieci generowały cokolwiek dłuższego niż 1-2 wyrazowe wypowiedzi (,)
  • Odpowiedz