Делаем прогноз слов рекуррентной сетью. Embedding слой | #21 нейросети на Python

  Рет қаралды 22,876

selfedu

selfedu

Күн бұрын

Пікірлер: 61
@СарматПересветов
@СарматПересветов 20 күн бұрын
Во первых, большое спасибо за урок! Так же хотел сказать что при использовании Embedding слоя мы экономим место для обучающей выборки, но при этом целевые значения делаем one-hot-векторами , тоесть наоборот начинаем тратить больше памяти. Почему бы просто не сделать не сложную функцию, которая преобразовывала число в one-hot-верктор непосредственно перед передачей в нейронку, а до передачи, в самой обучающей выборке оно хранилось бы в виде числа, таким образом мы решили бы все проблемы.
@selfedu_rus
@selfedu_rus 20 күн бұрын
Спасибо! Все верно!
@_sort_
@_sort_ Жыл бұрын
Спасибо огромное за материал. Действительно хорошо помогает разобраться в теме. Из сухих статей и документации разобраться куда сложнее. У меня получилось улучшить данную модель путем увеличения контекста (то есть просто inp_words). И модель стала более осмысленно предсказывать слова, но в конце все равно бред начинается :). Очень интересная тема.
@kiber7575
@kiber7575 4 ай бұрын
как всегда Перфекто
@Quimorax
@Quimorax 4 жыл бұрын
Довольно сложная информация в видео, но очень интересная!
@selfedu_rus
@selfedu_rus 4 жыл бұрын
Это я ее еще предельно упростил, насколько смог )
@tsoer2976
@tsoer2976 4 жыл бұрын
Хотелось бы услышать от Вас word2vec метод
@простоМалышОва
@простоМалышОва 4 жыл бұрын
Super video
@mielierz
@mielierz 2 жыл бұрын
Как токенайзеру указать несколько разделителей?
@Дизельэлектроника
@Дизельэлектроника 2 жыл бұрын
Здравствуйте уважаемый автор видео , благодарю вас за ваши уроки , информация которую вы даете по нейронным сетям очень ценная ! В ваших уроках вы говорите что чем больше словарь для обучения тем лучше! Я для рекуррентной нейронной сети создал словарь около 200 тыс. слов и сразу столкнулся с ошибкой что невозможно выделить такое количество памяти ( в информации об ошибке конкретная цифра) для массива с формой (191548, 200000) и типом данных float32, пришлось в двое уменьшать словарь что бы нейронная сеть начала обучатся, и это с использованием embedding слоя, в итоге когда мы набираем словарь мы ждем что из нашей Н.С. получиться профессор русского языка и литературы а получаем Эллочку Людоедову, есть ли какая-то возможность исправить эту проблему и сделать так что б из за большого словаря не возникала ошибка?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Конечно! Никто такие большие выборки в памяти не хранит. Вам нужно посмотреть в сторону функций-генераторов, которые выдают порции данных для обучения, а не формировать тензор со всей информацией сразу.
@Responsible_Show-off
@Responsible_Show-off 10 ай бұрын
8:44 у меня ваш алгоритм в моменте компиляции слов на строке 49 ~ inp = x.reshape(1, inp_words, maxWordsCount) Выдает ошибку ~ ValueError: cannot reshape array of size 0 into shape (1,3,1000) При том всегда, и найти в чем причина я не могу, видимо одно из обновлений питона сделало такой формат изменения массивов невозможным, или я не знаю в чем причина... Потому что в конце концов не поняв почему написанный мной не сработал, я скопировал ваш с гита и все равно та же ошибка
@selfedu_rus
@selfedu_rus 10 ай бұрын
там версии пакетов поменялись, возможно, из-за этого
@Responsible_Show-off
@Responsible_Show-off 10 ай бұрын
@@selfedu_rus Да, например керас обновился, Tokenizer а более не существует, там теперь другая модель
@user-oz9rf6fm1w
@user-oz9rf6fm1w 3 жыл бұрын
Интересно, почему в таких сетях выделяют столько лишней памяти🤔 А если бы словарь состоял из 100000 слов, это 1 и 99999 нулей, логичнее было бы просто подавать 1 на номер соответствующего номеру слова узла, а остальные ставить по умолчанию 0, получается, нам нужно передать одно булевое значение на 1 узел🤔 Оказывается во 2 части видео про это говорится) Спасибо за еще один отлично поданный материал
@dzakarath
@dzakarath Жыл бұрын
даже нейронная сеть пытается наполнить позитивом пессимистиную жизнь
@dubinin_s
@dubinin_s 4 жыл бұрын
Какой-то грустный текст для обучения, может быть по этому сеть не захотела нормально обучатся)))
@selfedu_rus
@selfedu_rus 4 жыл бұрын
Ну какой под руку попал )) А качество здесь определенно из-за малого объема выборки, нужно несколько тысяч!
@franzditr6512
@franzditr6512 4 жыл бұрын
))) нейросеть оптимист😃
@ЛёшаШатурный
@ЛёшаШатурный 4 жыл бұрын
​@@selfedu_rus Спасибо за видео, а как Embedding слой работает с несколькими входными векторами(словами)? У меня есть догадка. Мы должны подать 1 на все 3 нужных нейрона. Вы показали пример его работы с частицей не, а у нас на вход подаётся 3 слова, а не одно.
@selfedu_rus
@selfedu_rus 4 жыл бұрын
@@ЛёшаШатурный не совсем понятно, три слова сразу или рекуррентно? Если сразу, значит, будет словарь, где каждой комбинации из трех слов соответствует число, а если последовательно, то это как раз и показано в видео
@dota2_bluelock
@dota2_bluelock 2 жыл бұрын
А почему вы выбрали вторым параметром на слое Embedding 256, если на следующем слое 128 нейронов?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
С потолка - это пример не более. С архитектурой надо играться и подбирать.
@МаратФаизов-б9т
@МаратФаизов-б9т 7 ай бұрын
дОБРЫЙ ДЕНЬ, ДАЙТЕ КОД КАК ИСПОЛЬЗОВАТЬ ДРУГОЙ ТЕКТС ПОТОМУ ЧТО НЕ ПОЛУЧАЕТСЯ ПОВТОРИТЬ ВАШУ РАБОТУ.
@serialdesignationn6019
@serialdesignationn6019 4 жыл бұрын
Nice vidio
@VenatoresnamIgnotis
@VenatoresnamIgnotis 3 жыл бұрын
Почему-то при добавлении дополнительного рекуррентного слоя выдает ошибку несовместимости слоев
@selfedu_rus
@selfedu_rus 3 жыл бұрын
входной тензор на второй слой не соответсвует, нужно прописать у предыдущего слоя параметр return_sequences=True. Подробнее здесь proproprogs.ru/neural_network/kak-rabotayut-rnn-glubokie-rekurrentnye-neyroseti
@VenatoresnamIgnotis
@VenatoresnamIgnotis 3 жыл бұрын
@@selfedu_rus это тема следующего урока оказывается) Сейчас переварю этот и начну следующий)
@dmitrymitrofanov3920
@dmitrymitrofanov3920 4 жыл бұрын
позитив добавляет годы свои вашей жизни раза к вашему огромные искорку в только глазах природные за важны но вы можете многого достичь и
@valeraplishkin
@valeraplishkin 2 жыл бұрын
а где скачать text
@Armkeyter
@Armkeyter 3 жыл бұрын
Подскажите, у меня вышла ошибка: cannot reshape array of size 0 into shape (1,3,1000) В вашем коде на github (lesson 21. RNN words predict.py) такая же ошибка, вы не знаете с чем это может быть связано?
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Проверил, все работает, вот ссылка на colab: colab.research.google.com/drive/1GT7hd04TGhIm_YTjFiRfzy2URnanSmAg
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Файл text тоже с гитхаба брал
@Armkeyter
@Armkeyter 3 жыл бұрын
@@selfedu_rus Только он закрыт)
@selfedu_rus
@selfedu_rus 3 жыл бұрын
@@Armkeyter Ну вроде сейчас должно colab.research.google.com/drive/1GT7hd04TGhIm_YTjFiRfzy2URnanSmAg?usp=sharing
@Armkeyter
@Armkeyter 3 жыл бұрын
@@selfedu_rus Спасибо большое, все работает)
@waldemar_7210
@waldemar_7210 2 жыл бұрын
Пишет ошибку cannot reshape array of size 0 into shape (1,3,1000). Покопался, скорее всего что-то работает неправильно в функции buildPhrase в строчке data = tokenizer.texts_to_sequences([texts])[0]. После этой строчки проверяю (пишу print(data)) и мне выдает пустую коллекцию [ ]. Поэтому в цикле to_categorical выдает размер коллекции (0, 1000), и поэтому нельзя поменять размер с (0, 1000) на (1,3,1000). Что делать? И зачем пишем data[0]
@Danyaaaa2077
@Danyaaaa2077 2 жыл бұрын
В функции buildPhrase после строки 'res = texts' (то есть после 45 строки, если ориентироваться по гит хабу) напишите строку 'tokenizer.fit_on_texts([texts])', это решит проблему А data[0] мы пишем, так как после метода 'tokenizer' в строке 'data = tokenizer.texts_to_sequences([texts])' мы получаем двумерный список (условно: [[1, 2, 3]]) и чтобы 'вытащить' одномерный список [1, 2, 3], который мы затем передадим в функцию to_categorical, мы индексируем двумерный список data как data[0], потому что у списка [1, 2, 3] индекс 0. Короче) data[0] = [1, 2, 3]; (числа 1, 2, 3 взяты для примера)
@NavAlextv
@NavAlextv 3 жыл бұрын
Друзья, а не подскажете, где можно взять текстовый файл для обучения? Что-то не увидел(((
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Только на сайте: proproprogs.ru/neural_network
@avemaria6854
@avemaria6854 Ай бұрын
сегодня вы какой-то грустный((
@franzditr6512
@franzditr6512 4 жыл бұрын
Прогноз цены акций надо сделать или доллара к рублю, практическое применение будетЬ)))
@selfedu_rus
@selfedu_rus 4 жыл бұрын
была такая мысль ) как вариант в одном из будущих занятий рассмотрю задачу регрессии на основе рекуррентных сетей
@barryalen529
@barryalen529 4 жыл бұрын
@@selfedu_rus Здравствуйте. Не могли бы вы привести пример структуры данных, которую мы получаем после выхода рекурентного слоя, просто ни как не могу понять что поступает на последний полносвязанный слой. Спасибо
@selfedu_rus
@selfedu_rus 4 жыл бұрын
@@barryalen529 просто тензор, размерностью вектора на батч (если many-ti-one)
@selfedu_rus
@selfedu_rus 4 жыл бұрын
@@barryalen529 обычный вектор (точнее батч векторов)
@archer_5079
@archer_5079 7 ай бұрын
Я не совсем понял. Число выходов на embedding слое 256, а число входов на первом внутреннем слое меньше. По видео так и не стало понятно что это за такое волшебное число ставиться на место 256 и почему оно может быть произвольным. Казалось что число выходов должно быть = числу нейронов на первом внутреннем.
@talkingbirb2808
@talkingbirb2808 4 ай бұрын
в нейронных сетях кол-во нейронов в слоях может различаться. Например, вы же не задавались вопросом, почему на внутреннем слое 128 нейронов, а на выходе у нас вектор длиной maxWordCount, да? Т.е. на выходе embedding мы имеет 256 нейронов, которые соединены со 128 нейронами внутреннего слоя с помощью весов. Типа есть веса W с индексами 1,1; 1,2; .... 1, 128; 2,1;...2,128;....256,1;... 256, 128
@sovransky
@sovransky 2 жыл бұрын
я не могу с этим ничего поделать как бы я не старался от судьбы не уйдешь мне не повезло родиться в бедной семье
@dmitrymitrofanov3920
@dmitrymitrofanov3920 4 жыл бұрын
позитив добавляет годы татьяна но панталоны фрак жилет всех маленьких ее совета девицу повезли к ней ныла в лете не правда ль я модный свет решил что для прихоти сморкаться кашлять и юный ум свободен вновь одет все перевелось корсет альбом княжну алину стишков чувствительных правда ль я модный свет решил что для прихоти сморкаться кашлять и юный ум свободен вновь одет все Александр Пушкин - Евгений Онегин:
@ЕвгенийСотников-щ9д
@ЕвгенийСотников-щ9д 3 жыл бұрын
Пушкин, Татьяна, ... панталоны ... нейронка умнее, чем нам кажется.
@ПавелПетров-й6ш
@ПавелПетров-й6ш 3 жыл бұрын
Автор все видео: "позитив добавляет годы"... Ээм... А дальше абракадабра. Я: КОНЕЧНО АБРАКАДАБРА, МОЖЕТ ТЫ ЕЩЕ МЕНЬШЕ СЛОВ СДЕЛАЕШЬ И ПРОБЕЛЫ СТАВИТЬ НЕ БУДЕШЬ?! Агрх!! Нейросети не достаточно данных, для построения осмысленных предложений. Кроме слов, нужны еще и знаки препинания. Хотя даже с неверными формами слов и без знаков, можно как-нибудь понять, что тебе "сказала" нейросеть. Большинство вариантов ответов, которые я получил и/или увидел в видео, имеют здравый смысл(ну или приближенный), если хотя бы поставить знаки препинания. Upd: Прочитав несколько комментов, понял, что про это уже сказали. Сори за Caps... и агресию. Сложный день...
@randan7773
@randan7773 3 ай бұрын
Это нейросеть озвучивает?
@Responsible_Show-off
@Responsible_Show-off 10 ай бұрын
Ну что ж, ваш алгоритм на textvectorization успешно проглотил войну и мир, и выдал это: Позитив добавляет годы и в дом и не отвечая ей отперла дверь и вошла скверно в моем доме любовникам девчонка бывал то что и мучило его и причиной его волнения был курагин за которым он сказал он по французски анатоль оглянулся на сестру и покорно встал готовый следовать за пьером пьер взяв его за руку и подставляя ему для поцелуя щеку с поднялись и другие княжна марья сидя в гостиной и слушая эти толки и пересуды стариков ничего не понимала сказала наташа что он не может быть и женой вс это ей казалось что вс это было дико и удивительно ей она не. Вроде смысл сохранить как то пытается.
@svorg8741
@svorg8741 3 жыл бұрын
Детский сад
@fakefox441
@fakefox441 2 жыл бұрын
Чел, это hello world!
@pages777
@pages777 2 ай бұрын
15102024
$1 vs $500,000 Plane Ticket!
12:20
MrBeast
Рет қаралды 122 МЛН
Почему Катар богатый? #shorts
0:45
Послезавтра
Рет қаралды 2 МЛН
Лекция. Контестные эмбеддинги. Word2Vec.
29:12
Deep Learning School
Рет қаралды 17 М.
Прикладное машинное обучение 1. Intro to NLP. Word embeddings
1:00:52
Практика программирования на Python 3, лекция №1
1:21:58
Тимофей Хирьянов
Рет қаралды 878 М.