Спасибо большое за видео. Сначала подумал, что несколько видео пропустит, ничего не понял с первого раза. Потом законспектировал предыдущие видео, три раза пересмотрел это видео, построчно разобрал программу и через 3 часа все стало предельно понятно)))
@selfedu_rus4 жыл бұрын
Да, это занятие не простое, приходится вникать, но по другому никак. То, что вы сделали над собой все эти усилия - очень здорово!
@ywbc12174 жыл бұрын
@@selfedu_rus спасибо вам
@reabstractor3 жыл бұрын
Если один просмотр этого видео принять за эпоху, то сколько нужно эпох, чтобы моя боилогическая нейронная сеть распознала всё содержимое видео?
@krv763 жыл бұрын
Я предлагаю принять просмотр этого видео за батч
@sanpavlovich97262 жыл бұрын
Ахахах
@sanpavlovich97262 жыл бұрын
Столько эпох, сколько тут лайков 👍
@Dmitrii-Zhinzhilov Жыл бұрын
Предполагаю, что тут всё же нужны видео разной тематики по теме + эксперименты + проекты (заказы). Иначе на "тестовой выборке" нейросеть вряд ли покажет хорошие результаты. P.S. Я запускаю 2 эпохи видео )) и через 3 месяца планирую ещё одну ))
@mif42223 жыл бұрын
Вот это уже было сложно, я конечно, в итоге, этот код понял, но самому такое написать, а тем более придумать... нужно много практики.
@СергейЮров-б6е2 жыл бұрын
Как хорошо, что я внимательно изучил плейлист ЦОС перед этим. В этом уроке осталось просто уловить последовательность действий. Ну и сам тензорфлоу все же специфичный фреймворк. Надо разбираться с его методами. Спасибо! Очень круто!
@userqh67vey62 жыл бұрын
Видео полезное. Симбиоз предыдущих уроков, немного ЦОС и особенностей Tensorflow2. Рекордное количество кода. Голова пухнет, особенно когда меняешь количество итераций + настройки оптимизации или параметры альфа и бетта и получаешь не то что ожидаешь. Как сказано ниже, нужно много эпох теории и эксперементов для понимания всего кода :) Лайк!
@discara3 жыл бұрын
использую этот же код для вкрб (который ты брал изначально) как же прекрасно, что я нашла этот плейлист, помогает "распутать мозги" нужны были видео про vgg + предыдущее + это спасибо огромное за объяснение, возможно буду использовать их в рпз :D
@discara3 жыл бұрын
написала для этого кода интерфейс на streamlit, даже есть задеплоенный вариант)
@itm61972 жыл бұрын
@@discara привет, а можешь скинуть ?
@argrigorov3 жыл бұрын
Интересен пример обработки изображений нефиксированного размера - чтобы можно было подавать на вход изображения различных размеров, и на выходе получать обработанное изображение такого же размера.
@ravenalbatros2 жыл бұрын
Можно просто подогнать любое изображение под сеть, - изменить качество, добавить дополнительную свертку в начало
@ll2pakll4 жыл бұрын
Мильярд лайкау)
@lyonya70253 жыл бұрын
Какой же ты крутой, ну просто трындец
@timon1816 Жыл бұрын
Ура! Я всё понял всего за 8 просмотров
@СарматПересветовАй бұрын
вопрос, на 12.36 когда мы вычисляем матрицу ГРАМА - в предыдущем уроке мы записывали что нужно перемножить "матрицу признаков" на матрицу признаков".транспонированную. А На этом уроке в фукции gram_matrix мы наоборот перемножаем "матрицу признаков".транспонированную на "матрицу признаков". насколько это правильно? или нам в принцыпе не важно что на что перемножать, главное что бы этот алгоритм применялся ко все обьектам одинаковый???
@yuriynaumov4466 Жыл бұрын
скажите пож-та, как сохранить веса модели и применить этот же стиль к другому изображению 224*224 ?
@mormonteg4073 Жыл бұрын
Как всё работает то понятно, но вот сама реализация... Тьма просто. До такого уровня еще долго. надо будет глянуть курс по тензорфлоу
@РоманЛ-г6ш3 жыл бұрын
Круто, конечно! Как я понимаю, приложение Prizma было основано на подобной сети (а может и прямо на этой?))). Один вопрос только возникает - зачем этой сети нужно еще одно измерение на подаваемых изображениях, если для положения/размера и цвета пикселя, вроде и трех достаточно?
@selfedu_rus3 жыл бұрын
Вы имеете в виду скрытые слои? Зачем там брать дополнительные каналы? Это нужно только для оценки степени стилизации изображения, т.к. понятие несколько абстрактное, вот и приходится применять более сложный подход (кстати, далеко не единственный, есть и другие методы оценки степени стилизации изображений).
@РоманЛ-г6ш3 жыл бұрын
@@selfedu_rus Нет, по этому поводу я, как ни странно, понял. Думаю, что понял) Поскольку контент - это четкое изображение, то нам достаточно выходов с одного слоя, чтобы приблизить стилизованную картинку к нему, а стиль - абстракция, поэтому нужно больше выходов, чтобы пытаться ему соответствовать при "размазывании контента". То есть нам нужно как бы сбалансировать "точную" передачу контента (и здесь этой точности добиться проще) наложением "точной стилизации" (здесь задача сложнее, поэтому "информации" нужно больше).
@РоманЛ-г6ш3 жыл бұрын
@@selfedu_rus мой вопрос более простого характера. Для подачи на вход сети VGG каких-либо изображений приходится добавлять дополнительную нулевую ось (делать np.expand (...axis=0)). Не могу понять, зачем у сети VGG такое требование. Просто интересно. В этом измерении можно еще какой-то параметр изображения задавать?
@selfedu_rus3 жыл бұрын
@@РоманЛ-г6ш а, ясно, это не то чтобы требование сети, скорее особенность реализации пакета Keras и Tensoflow. Они предполагают работу с пакетами данных (батчами), поэтому первая ось - это измерение для разных наблюдений (изображений). Если, например, подать тензор из двух изображений, то эта первая ось, как раз, и пригодится.
@РоманЛ-г6ш3 жыл бұрын
@@selfedu_rus точно, в стандартной ситуации пакеты же подаются, а мы по одному изображению прогоняем! Спасибо за пояснение!
@Alex-un3nz Жыл бұрын
в калабе ставьте Аппаратный ускоритель GPU и бедет счастье
@reklama633 жыл бұрын
А можно ли по какому-то алгоритму обучить сеть стилизации без тензорных векторов? Сделать 1000+ входных картинок (оригинал + стиль) и столько же выходных (стилизованных). Смотрю видео. До VGG16 было идеально понятно. Дальше с каждыми видео становится много загадочного. понимаю, что уровень моей математики не на столько продвинутый. ((
@wMonarch3 ай бұрын
Описать это видео можно одним словом - пиздец.
@veta_shine2 жыл бұрын
Скажите, пожалуйста, как нам сохранять навыки созданной модели? Ведь выходит, что в данном коде модель не сохраняет никаких навыков, каждый запуск изображений для нее - это чистый лист
@selfedu_rus2 жыл бұрын
save_weights() и load_weights() вроде такие методы для сохранения и загрузки коэффициентов модели, чтобы не обучать каждый раз заново
@fewra6002 жыл бұрын
Почему, если я подаю изображение большего размера на вход сети, то НС работает медленнее, но РАБОТАЕТ? При этом она даже значения выдаёт, как это, там же только 244х244 можно подавать?
@vovaaw7 ай бұрын
Посмотри ещё раз видео в котором рассказывается об операции maxpool
@VenatoresnamIgnotis3 жыл бұрын
Правильно ли я понимаю, что для каждой пары изображений нужно заново обучать сеть? Вернее сказать мы же ее не обучаем, а уменьшаем критерий ошибки ?
@selfedu_rus3 жыл бұрын
НС обучается на обучающей выборке, дальше она эксплуатируется на разных изображениях. Конечно, если задача меняется, скажем, обучили отличать мужчин от женщин, а собираетесь использовать для различения кошек и собак, то конечно, нужно обучать заново )
@VenatoresnamIgnotis3 жыл бұрын
@@selfedu_rus Ну т.е. в данном случае мы должны взять большое множество пар изображение-стиль чтобы обучить сеть конкретно задаче стилизации?
@vovaaw7 ай бұрын
@@VenatoresnamIgnotisда
@albertasatryan14772 жыл бұрын
А почему функция потерь не определяется в соответствии формулы, а просто берётся среднее через reduce_mean?
@selfedu_rus2 жыл бұрын
константные множители при оптимизации не имеют смысла, их можно отбросить по идее
@albertasatryan14772 жыл бұрын
@@selfedu_rus понятно, спасибо за ответ
@vanillaicecream49493 жыл бұрын
не могу понять, почему мы в видео vgg16, после загрузки изображения преобразовывали его в массив с помощью np.array, потом только загружали в preprocess для преобразования в bgr и добавляли ось, а тут мы сразу без преобразования в массив добавляем ось и запихиваем в preprocess. Помогите пожалуйста понять
@selfedu_rus3 жыл бұрын
А здесь это не принципиально, мы же не классификацию делаем, а лишь используем его обученные слои для оценки степени стилизации. Другая задача и преобразование делать смысла нет.
@andrey_sautenko2 жыл бұрын
Здравствуйте!Подскажите, пожалуйста, а если не использовать ноубук как Вы, а использовать Pycharm....Как загрузить изображения с компьютера, аналогично Вашим действиям?
@selfedu_rus2 жыл бұрын
еще проще, используйте Image.open(путь к файлу): from PIL import Image with Image.open("hopper.jpg") as im: im.rotate(45).show()
@andrey_sautenko2 жыл бұрын
@@selfedu_rus спасибо,Сергей!
@andrey_sautenko2 жыл бұрын
@@selfedu_rus уже сам нашел решение)
@костябельков4 жыл бұрын
Почти "Ни чего не понял, но очень интересно." хочется посмотреть на хотя бы маленькое шоу как работает НС. на не только лекцию прослушать.
@selfedu_rus4 жыл бұрын
под видео ссылка на программу, каждый себе может устроить маленькое шоу ))
@AcCeHu3aToP3 жыл бұрын
А есть ли предобученные модели для изображений большего размера чем 224x224? Как это все применять на практике, если размер изображений из "реального мира" гораздо больше?
@selfedu_rus3 жыл бұрын
Надо уже искать в сети, или делать, обучать самому, но это непросто.
@ivanbezrukov36803 жыл бұрын
Здравствуйте! Решил попробовать повторить то, что делалось в уроке. Единственным исключением было то, что делал не в гугл колаб, а в анаконде, открывал изображения при помощи opencv, командой cv2.imread. Изображение открывалось сразу в формате bgr, соответственно манипуляции с rgb->bgr->rgb можно было опустить. Дошел до конца, анаконда делает одну итерацию и все. Воевал несколько часов, в итоге скопировал Ваш код, только в начале свои изображения открывал так же при помощи imread, и приводил все к rgb командой cv2.cvtColor(img, cv2.COLOR_BGR2RGB). Все равно одна итерация и все. Код - прям копия, ctrl+c, ctrl+v. Подскажите пожалуйста, с чем это может быть связано?
@selfedu_rus3 жыл бұрын
Ну так сложно сказать, тем более, что в Анаконде никогда не работал, не знаю ее нюансов.
@mif42223 жыл бұрын
В смысле на 1 эпохе все застревало?
@networkpy83523 жыл бұрын
А почему Learning Rate такой высокий? Обычно же должен быть не более 1
@selfedu_rus3 жыл бұрын
Мы здесь меняем значения пикселей, для этого нужен высокий шаг изменения. Это не веса связей у НС.
@networkpy83523 жыл бұрын
@@selfedu_rus Кстати, я тестировал 1000 итераций обучения с лр=0.02. Результаты стали намного лучше выглядеть, сохраняется детализация.
@networkpy83523 жыл бұрын
@@selfedu_rus Вы не делали видео по переносу сразу нескольких стилей?
@selfedu_rus3 жыл бұрын
@@networkpy8352 нет, только так как в видео
@ravenalbatros2 жыл бұрын
жесть
@Zeding_Stuff Жыл бұрын
Сергей. здравствуйте. Спасибо за уроки! Учусь на 3 курсе информационной безопасности и делаю научный проект по объекту стеганографии. Если кратко, то моя задумка заключается в том. чтобы брать сообщение, которое нужно будет спрятать ("вписать") в изображение, разбить по символьно и через таблицу ascii представить в виде списка чисел от 0 до 255. Затем с помощью ГПСЧ с заданным сидом раскидать эти числа на холсте изображения в виде пикселей, и уже отталкиваясь от этих пикселей нейросеть должна генерировать какое-либо изображение (например, изображение кота). Скажите пожалуйста, какой тип НС для этого лучше подходит и слишком ли это сложная задача? Я пока только на 17 занятии, но дедлайны уже начинают гореть. В конце данного курса вы делали видео про генеративно-состязательную сеть (я очень поверхностно знаю что это), подойдут ли они для этой задачи, если на вход подавать не какой-то случайный шум, а конкретные значения символов сообщения по таблице ASCII? Подскажите, пожалуйста🙏
@artyomkolas68503 жыл бұрын
Большое спасибо за крутые видео и материалы!) Не могу пофиксить эту ошибку никак(( ValueError: Input 0 is incompatible with layer model_2: expected shape=(None, None, None, 3), found shape=(1, 224, 224, 4)
@selfedu_rus3 жыл бұрын
у вас последняя размерность тензора 4, а должно быть 3
@artyomkolas68503 жыл бұрын
@@selfedu_rus , спасибо, буду разбираться)
@cimoncimonoff5153 жыл бұрын
@@artyomkolas6850 если разобрались подскажите пожалуйста, никак не могу преобразовать
@artyomkolas68503 жыл бұрын
пока нет)
@fedotik8273 жыл бұрын
у меня та же проблема была, когда картинку в png формате загрузил, а оказалось что у изображения в png размерность 4, переделал ту же картинку в jpeg, у неё уже 3 было и всё заработало.
@evgenykolesenko2 жыл бұрын
Спасибо за видео, но я никак не могу решить проблему: ModuleNotFoundError: No module named 'google.colab'
@selfedu_rus2 жыл бұрын
это все в коллаборатории гугл нужно прописывать: colab.research.google.com