Примеры архитектур сверточных сетей VGG-16 и VGG-19 | #15 нейросети на Python
Вставка
- Опубліковано 5 лют 2025
- Узнаете архитектуры сверточных нейронных сетей VGG-16 и VGG-19. Как их реализовать в пакете Keras на примере классификации изображений.
Телеграм-канал: t.me/machine_l...
Инфо-сайт: proproprogs.ru
lesson 15. vgg16.py: github.com/sel...
gist.github.co...
Спасибо тебе большое! Я уже интуитивно, когда не понимаю како-то материал, иду к сюда и ищу лекции-ролики, с полной уверенностью, что наконец-то я пойму материал и объяснят, как нельзя лучше! Ещё раз, спасибо тебе большущее!
Согласен абсолютно
низкий вам поклон за такой тщательный разбор! на ваших лекциях начинает приходить Понимание
Самый лучший канал. Успехов и продвижения !!!
Отличный урок, премного благодарен!
Очень хорошая подача материала, спасибо большое.
очень интересно и доступно.
но на 3:55 ,о что значит каждое значение карты признаков 2го сверточного слоя с размером ядра 3 на 3, эквивалент анализа ядра размерами 5 на 5? как она будет охватывать область 5 на 5?
вы имели ввиду по количеству настраиваемых параметров выходит оптимальнее, но при этом увеличивает глубину сети или нет?
где про это теорию можно прочитать, не подскажете, поискал в интернете , порисовал на листочке и слабо представляю связь?из-за того, что он отбрасывает границы изображения , но на прошлых уроках мы добавляли "рамки" чтобы не изменить количество?
Доброго здоровья и успехов автору этого цикла уроков! Готовлюсь по ним к ВКР, все понятно и по делу, спасибо!
Спасибо за ваши видеоуроки!
вот это я называю качественным контентом
Лайк и коммент из Турции. ТОПчик.
Здравствуйте Сергей, тут возник один вопрос, посерфил в интернете, но ответа не нашел, тут вы говорите на 4:40, что реализация с двумя последующими kernel эффективнее с точки зрения скорости обучения нейронной сети, но как такое возможно, ведь в первом случаи на том же примере VGG-16 у нас 38720 настраиваемых параметров, а в случаи с kernel (5*5) у нас будет ((5*5)*3+1)*64 = 4864 параметров, да, в ядре параметров меньше, но вот самих параметров между слоями больше, так почему тогда скорость обучения в первом случаи меньше, разве такое возможно, вроде наоборот, время больше, а плюс данной реализации в более лучшей специализации нейронов (следует из большого количества самих настраиваемых параметров) в двойной нелинейности, и в глубине самой сети, разве нет?
Там речь о том, что если вместо одного сверточного слоя с ядром 5х5 взять два последовательных слоя с ядрами 3х3, то объем вычислений снижается. Более ни очем.
@@selfedu_rus , да в случаи если у нас каждый слой имеет по одному фильтру, тогда да у нас будет именно такое поведение, но у нас же по 64 фильтра, так что параметров у нас в этом случаи будет больше, чем в случаи с kernel (5*5), я имею в виду что в данном случаи вычислений намного больше и плюс такого подхода не в вычислительной легкости, а в улучшении специализации нейронов, в большей нелинейности и в глубине самой сети.
@@g.s1849 а, да, действительно, не подумал об этом... тут скорее два слоя по одному фильтру и таких 64, вот тогда был бы выигрыш, вы правы, спасибо!
Пошла жара 🔥 😍
А есть ли проверка скорости и эффективности работы сети с 3x3x2 и 5x5x1? Два слоя нейронов делают нелинейную классификацию в пределах одного разрешения (размера картинки в ширину и высоту), тогда как один слой проводит прямую гиперплоскость. Возможно это тоже скажется на результатах.
Здравствуйте! Скажите пожалуйста, как можно сделать, чтобы нейросеть выдавала не число из базы ImageNet, а уже выдавала полный ответ, что изображено на картинке? Если вы это уже объясняли в своих видео, то можно вас в таком случае пожалуйста попросить ссылку на данный видеоролик?
как вариант спарсить с сайта)
keras.applications.vgg16.decode_predictions(res, top=3)
Выдаст список с топ3 наиболее вероятными вариантами с расшифровкой и вероятностями
Лайк за видео ! Очень познавательно.
Как я понял, VGG19 не принципиально отличается от VGG16 (кроме 3 лишних слоев), просто чуть лучше. Модели этих сетей весят почти одинаково.
На моих тестовых наборах с кошками и тд сети справились одинаково. Возможно где-то есть тестовые картинки, на которых можно увидеть разницу?
Есть идея прикрутить эту сеть к инетмагазину и рекомендовать юзером товары с похожими изображениями, помимо товаров с похожими свойствами.
image retrieval советую посмотреть, если интересно)
в начале написано " Постижение непостижимого". Однако все иначе. Здесь мы постигаем постижимое. И это как раз самое правильное для образовательного материала "Постигаем известное для дальнейших достижений"
Из трех изображений правильно распознало только одно и то с котом 😁
Подскажите !!!!!Как определить контуры распознанных объектов!!!?
Если сложение 2x сверток 3*3 дает 5*5, то что тогда дают 3, 4 или больше сверток 3*3? Каким полноразмерным сверткам они эквивалентны? Есть ли формула?
да сами прикиньте на листочке!
Спасибо!
подскажите где найти информацию, как свой датасет скормить этому роботу ? )
Буквально в этом видео показано как преобразовать изображение в формат подходящий для этой модели
всё работает )
даже породу собак распознает)
а как обычный фото пикселизировать в 224x224? что то не нашел в инете онлайн конвертеров в котором можно регулировать в 224
Это мы уже сами размер формируем, фотошоп, irfanview и другие программы работы с изображениями.
А почему нейронов с ReLu именно 4096?
Это сугубо решение разработчиков сети. Они так решили, попробовали и увидели, что это хорошо )
@@selfedu_rus 2:32 Каким образом 7*7*512 (=25088) подается на слой в 4096 нейронов? Или там сначала Flattern() делается в вектор 25088, а уже после него слой на 4096?
А как скачать те 533 мб для VGG16?
Я через Tensorflow это делал, там просто берем эту сетку и она автоматически скачивается.
Немного не понятен момент с тем, почему у нас несколько слоев подряд имеют одинаковую размерность, если каждый последующий слой берет карту признаков предыдущего. Разве карта признаков не будет другого размера? Или мы просто два раза подряд применяем сверточный фильтр к одинаковому слою? Тогда не понятен смысл этой операции
карта признаков будет того же размера. засчёт того, что добавляются дополнительные пиксели по краям картинки. в керасе, например, в Сonv2D это реализуется через параметр paddind = 'same'. в двух предыдущих уроках про это есть
@@ЕгорБеззубенко-в1п благодарю
а как загружать фото если я не в google colaboration
модуль Pillow
Nice good
Эта нейросеть плохо отгадывает, с фотографиями которые я загружал было все в порядке я их красиво обрезал и давал ей но она ошибается и говорит что мой друг это стиральная машина, потом загрузил туда какой то спорт кар а она сказала что это контейнеровоз (либо у нее отличное чувство юмора)
подстава какая-то не может всё быть ТАК ПРОСТО
12102024
ModuleNotFoundError: No module named 'google.colab' вылезает ошибка, библиотека pip install google-colab не помогает
и соответственно дальше вылезают ошибки для используется files, NameError: name 'files' is not defined
Я так понимаю надо где то регаться, чтобы фото грузились с облака, надо было тоже сказать об этом
Я решил эту проблему, но там другая проблема с модулем