Тёмный

Строим Нейронную Сеть для Распознавания Изображений за 20 минут 

Etudarium
Подписаться 3,9 тыс.
Просмотров 113 тыс.
50% 1

В данной лекции мы с вами построим свою собственную нейронную сеть за 20 минут, которая сможет распознавать изображения одежды.
Полная версия курса лекций в книге на ЛитРес:
www.litres.ru/timur-kazancev/...
Онлайн версия курса:
edutoria.ru/course/ee695424-b...

Опубликовано:

 

1 май 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 115   
@user-ow1he8qm2h
@user-ow1he8qm2h Год назад
Урок супер! Спасибо!
@Dmitrii-Zhinzhilov
@Dmitrii-Zhinzhilov 7 месяцев назад
Благодарю! Отличный урок!!
@amaideltfly1512
@amaideltfly1512 8 месяцев назад
это было... чудесно🌟...ты лучший🎯
@luna4379
@luna4379 2 года назад
Как всегда полезно и доступно для новичков ☝Спасибо за такую работу
@user-rj7cg9ld4d
@user-rj7cg9ld4d 5 месяцев назад
🗿
@nouchance
@nouchance 3 года назад
Спасибо большое!
@seoonlyRU
@seoonlyRU Год назад
Вот это реально круто! Лайк от кодера-легенды СЕООНЛИ
@nailvagizov5581
@nailvagizov5581 Год назад
Очень интересная и полезная информация. Спасибо за видео
@user-or5rb1zr8o
@user-or5rb1zr8o 2 года назад
очень интересное видео) 👍🏻 спасибо за информацию
@youtubeyoutube6205
@youtubeyoutube6205 2 года назад
А можешь подсказать, как сделать сеть которая будет классифицировать голоса например мой/не мой, мужской/женский, взрослый/детский, как это сделать?! Какой тип нейронных сетей используется рас, в каком формате подаётся звук на вход сети два
@babylontower
@babylontower 3 года назад
Здорово!
@user-kb1cx9lk4m
@user-kb1cx9lk4m 2 года назад
Спасибо большое, очень доступно!
@aaaaaaapchi
@aaaaaaapchi Год назад
Хорошее видео!
@user-jp9le2un3w
@user-jp9le2un3w 2 года назад
Спасибо!
@gulginaavizo
@gulginaavizo 2 года назад
Интересная информация, благодарю 🙏
@PavelBlokhin-pf7iv
@PavelBlokhin-pf7iv 2 года назад
Шикарная информация, очень пригодилась. Всё понятно
@etudarium5387
@etudarium5387 2 года назад
Спасибо за обратную связь!
@ShooterStar
@ShooterStar Год назад
очень круто, спасибо!
@Adissey
@Adissey 2 года назад
Спасибо за материал, идеальное введение в ML для новичков
@johndonne2170
@johndonne2170 Год назад
Здравствуйте! Есть ли такое же видео для обучения машинному переводу в Google Colaboratory? То есть, загрузка параллельных данных и процесс настройки обучения?
@ezdeved
@ezdeved 2 года назад
Качественно, спасибо!
@andreiantipov6943
@andreiantipov6943 8 месяцев назад
Есть ли какие-то мобильные приложения для создания массива фотографий с участием того или иного объекта определенного класса? Например отфоткать со всех сторон и на разном удалении искомый объект?
@D.A.V.I.N.C.I
@D.A.V.I.N.C.I 27 дней назад
Учу нейронки и питон чисто для себя, давно хотел сделать себе голоссового ассистента по типу алисы или сири но которая будет более практически полезной
@kaktak9507
@kaktak9507 Год назад
Вы просто супер, спасибо за видео)
@natalinait6206
@natalinait6206 2 года назад
Очень полезная информация
@olegzaza
@olegzaza Год назад
А как эту обученную модель теперь скачать на комп и подключить к проекту?
@AlonsoImput
@AlonsoImput Год назад
Я, конечно, все понимаю. Но почему урок для новичков строится на преимущественно использовании готовых решений? Имхо, как было нихуя не понятно, как оно работает в своей основе, так и осталось. Было бы логично показать очень простой вариант, но написанный полностью с нуля, так и базовые принципы построения архитектуры стали бы понятными и можно было бы адаптировать полученные знания под другие ЯП.
@piggyoinky
@piggyoinky Год назад
подскажите а как обычно решается задача установления факта наличия или отсутствия какого то одного класса на фото
@user-dh6hp6zj1g
@user-dh6hp6zj1g 3 месяца назад
Объясните пожалуйста дилетанту) Вот есть например необходимость внедрить нейросеть для производства. Условно, по конвейеру идет деталь не той формы, камера фиксирует ее как брак. Для реализации я правильно понимаю что есть нет желания возиться с локальной установкой TF на комп то обучить модель можно через колаб, после чего выгрузить обученную модель. И загрузить ее например в open cv?
@nikitakolchanov350
@nikitakolchanov350 10 месяцев назад
Спасибо большое, а если хочешь свои картинки загрузить?
@user-Nachum
@user-Nachum 6 месяцев назад
Бомба
@snipernat2299
@snipernat2299 2 года назад
Очень познавательное видео, а можно где-то исходники этих фоток взять?
@ryso3d595
@ryso3d595 Год назад
Подскажите пожалуйста, а как изменить код чтобы использовать свою датабазу?
@andreiantipov6943
@andreiantipov6943 8 месяцев назад
Если возможен вариант когда фотография-изображение не содержит ни одного искомого изображения-объекта, то нужно еще один создавать класс None когда объекта на фото нет?
@yanavin2964
@yanavin2964 Год назад
я начал учить питон чтобы потом перейти на нейронку или ИИ скажите плз будет ли это актуально через 5-10 лет и какие перспективы у всего этого что можно будет делать с помощью этого?
@hypocrite0724
@hypocrite0724 Год назад
В целом, нейронки/ИИ обязательно будут актуальны через 5-10 лет, а то и 50, т.к. щас все стремятся к автоматизации, из-за чего ИИ не перестанет быть актуальным, если, конечно, всякие активисты не начнут устраивать митинги по защите ИИ от его эксплуатации ;)
@etudarium5387
@etudarium5387 Год назад
как сказал один ведущий нейронщик из Теслы, с появлением ChatGPT и ему подобных сервисов, скоро самым популярным языком программирования станет - английский)
@andreiantipov6943
@andreiantipov6943 8 месяцев назад
А если у меня свой набор фотографий-изображений по каждому классу, то как это загрузить в Keras?
@asfasf6729
@asfasf6729 2 года назад
Можете ли пжл выложить набранный код целиком, чтобы не набирать с экрана?
@sergeigamich
@sergeigamich Год назад
Здравствуйте! При выводе 25 картинок почему-то возникает ошибка: IndexError Traceback (most recent call last) in () 5 plt.yticks([]) 6 plt.imshow(x_train[i]) ----> 7 plt.xlabel(class_names[y_train[i]]) IndexError: list index out of range Не понимаю в чём может быть проблема. Код как в уроке.
@sergeigamich
@sergeigamich Год назад
Ошибку нашёл :) был пропущен один класс в списке, в итоге получилось 9 классов вместо 10-ти
@Anna-sw5hx
@Anna-sw5hx Месяц назад
у меня такая ошибка : 'str' object is not callable. подскажите пожалуйста как решить, писала всё как на видео
@krivdada
@krivdada Год назад
Делала пошагово, вчитывалась в каждую букву, но в итоге модель не смогла начать эпохи из-за неизвестной функции потерь "sparse_categoriсal_crossentropy". Помогите пожалуйста🥲
@krivdada
@krivdada Год назад
проблема решилась сменой литерала: loss=keras.losses.SparseCategoricalCrossentropy()
@user-qd5qc4oz7d
@user-qd5qc4oz7d 2 года назад
Скажите пожалуйста, как каждому из 10 нейронов был задан конкретный класс? Не понимаю где мы задали, что, например десятый нейрон активируется на ботинке?
@etudarium5387
@etudarium5387 2 года назад
Это уже готовый датасет (созданный специально для практики и обучения специалистов по МО), и в нем уже изначально заданы 10 классов для каждого типа одежды
@user-se2ox9ct5q
@user-se2ox9ct5q Год назад
@@etudarium5387 Здравствуйте. Подскажите, пожалуйста, как свой датасет использовать? Имеется архив изображений объекта интереса
@user-uk4ww6ln7q
@user-uk4ww6ln7q 2 года назад
про дата сеты что-то вообще информации мало... как подготовить свой датасет для обучения и какая структура данных должна быть в нем.. не подскажите где нарыть инфу ?
@etudarium5387
@etudarium5387 2 года назад
Обычно датасет предоставляет заказчик, например, выгружает файл со всеми данными в excel или .csv формате. Если хотите подготовить свой датасет, то для качественного обучения потребуются сотни и тысячи данных, но вы также можете сделать это самостоятельно. Есть также сайты, где можно скачать различные датасеты для практики, например, на github или kaggle
@user-zf1ck5ul4s
@user-zf1ck5ul4s 2 года назад
Здравствуйте! Спасибо за ваш канал. Решил поэкспериментировать с кодом где я преобразую 784 просто в строку без этих вот команд. Результат вроде бы должен быть одним и тем же. Но при обучении очень высокая ошибка, а у вас она порядка сотых.. у меня больше 2-х. Почему так? Вы может и не ответите мне, но я все же рискну и спрошу у вас))) А то вот полно таких видео с другими блогерами где вы все строго используете команду Flatten(input_shape=(28, 28, 1)). А почему в начале не преобразовать просто в одномерный вектор чтоб было соответствие вашей архитектуре сети? Тогда обучив сеть и взяв весовые коэффициенты путем перемножения матриц и функций активации ее можно использовать уже в других программах. А вот так как вы все рассматриваете однотипные примеры по распознаванию текста и прочего, не дает возможности строить нейронную сеть для любых задач. Потому что с одномерным вектором она никак не обучается правильно import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import numpy as np import matplotlib.pyplot as plt from tensorflow.keras.datasets import mnist # библиотека базы выборок Mnist from tensorflow import keras from tensorflow.keras.layers import Dense, Flatten (x_train, y_train), (x_test, y_test) = mnist.load_data() # стандартизация входных данных x_train = x_train / 255 x_train_my = x_train.flatten() x_test = x_test / 255 x_test_my = x_test.flatten() y_train_cat = keras.utils.to_categorical(y_train, 10) y_test_cat = keras.utils.to_categorical(y_test, 10) plt.imshow(x_train[2], cmap=plt.cm.binary) plt.show() x_train_my_2 = [] x_test_my_2 = [] for i in range(0, int(len(x_train_my)/784)): x_train_my_2.append(x_train_my[i:784 + i]) for ii in range(0, int(len(x_test_my)/784)): x_test_my_2.append(x_test_my[ii:784 + ii]) j = 59999 print(len(x_train_my_2[j])) print(y_train_cat[j]) model = keras.Sequential() model.add(Dense(128, input_shape=(784,), activation='relu')) model.add(Dense(10, activation='softmax')) print(model.summary()) model.compile(optimizer=keras.optimizers.Adam(0.001), loss='categorical_crossentropy', metrics=['accuracy']) model.fit(np.array(x_train_my_2), y_train_cat, batch_size=32, epochs=5, validation_split=0.2) model.evaluate(np.array(x_test_my_2), y_test_cat) А вот что выдает при обучении: Epoch 1/5 1500/1500 [==============================] - 4s 3ms/step - loss: 2.3098 - accuracy: 0.1074 - val_loss: 2.3103 - val_accuracy: 0.1040 Epoch 2/5 1500/1500 [==============================] - 3s 2ms/step - loss: 2.3006 - accuracy: 0.1151 - val_loss: 2.3081 - val_accuracy: 0.1073 Epoch 3/5 1500/1500 [==============================] - 4s 2ms/step - loss: 2.2931 - accuracy: 0.1226 - val_loss: 2.3148 - val_accuracy: 0.1024 Epoch 4/5 1500/1500 [==============================] - 4s 2ms/step - loss: 2.2795 - accuracy: 0.1344 - val_loss: 2.3242 - val_accuracy: 0.1042 Epoch 5/5 1500/1500 [==============================] - 4s 2ms/step - loss: 2.2580 - accuracy: 0.1529 - val_loss: 2.3411 - val_accuracy: 0.1020 очевидно что ничего не распознается правильно
@kirilllevin5372
@kirilllevin5372 2 года назад
у меня точно такая же проблема и ошибка точно такая же как и увас порядка 2.3
@redfun9099
@redfun9099 Год назад
Ну как с решением данной проблемы, я тоже заострил на данном моменте внимание и ни как не могу понять, что делать что бы данные распознавались правильно
@redfun9099
@redfun9099 Год назад
Если у вас получилось и если вам не трудно объяснить, прошу распишите!!!
@danielianhaik
@danielianhaik Год назад
Наконец то кто-то по человечески обяснил что такое бек пропагейшн, а не шестиэтажными формулами, а скорее всего те кто шестиэтажными формулами обясняют, сами не понимают о чем говорят. Спасибо.
@edc228
@edc228 5 месяцев назад
спасибо за видео все понятно объяснил и показал, решил сам написать, но очень долго обучается что делать? выше 0.17 попадание не доходит
@user-jj2fk5lo9v
@user-jj2fk5lo9v 5 месяцев назад
после блока x_train = x_train / 255 нужно проверить поменялся ли у тебя параметр по x то есть градация серого
@user-jj2fk5lo9v
@user-jj2fk5lo9v 5 месяцев назад
и глянь figsize , он должен быть 10,10
@Derregas
@Derregas 10 месяцев назад
А как заставить эту нейронку распознавать изображение не из выборки? Допустим, я загружаю изображение через load_img(' ') и передаю её в модель?
@user-rv6dl7op2l
@user-rv6dl7op2l Месяц назад
Здравствуйте, удалось найти?
@user-rv6dl7op2l
@user-rv6dl7op2l Месяц назад
Здравствуйте, удалось найти?
@savely7155
@savely7155 11 дней назад
Для начала стоит создать функцию нормализации фотографий (по примеру из начала кода автора, где изображения разбиваются на пиксели и определяются количество пикселей и границы цвета), потом нужно прогнать входное изображение через такую функцию и далее подать в model.predict()
@artgrail
@artgrail 2 года назад
Скажите, есть ли иная возможность приобрести ваш курс, кроме как на Udemy?
@etudarium5387
@etudarium5387 2 года назад
Здравствуйте! Сейчас пока в процессе переноса курсов на другую платформу. Можете скачать мою одноименную книгу на Литресе (автор Т.Казанцев)
@etudarium5387
@etudarium5387 8 месяцев назад
info-hit.ru/course-iskusstvennyy-intellekt-i-mashinnoe-obuchenie-osnovy-python/
@sorockinalex
@sorockinalex 3 месяца назад
Подскажите, а как теперь из этого кода сделать приложение для андроид?
@pdn_rus
@pdn_rus 2 года назад
в данном видеоролике какие алгоритмы классификации используются?
@pdn_rus
@pdn_rus 2 года назад
логическая регрессия?
@kolyangod2715
@kolyangod2715 2 года назад
Отличное видео! Не могли Вы рассмотреть создание нейросети, допустим, для определения заболеваний по МСКТ или КТ снимках?
@jenniekasseta
@jenniekasseta Год назад
Просто надо загрузить снимки заболеваний, а не одежды и все
@dios9168
@dios9168 Год назад
@@jenniekasseta можешь сказать как это сделать? Я вот насчёт пикселей не понял, зачем это?
@ISAWER1
@ISAWER1 10 месяцев назад
А книге "pytorch.освещая глубокое обучение" есть развернутый пример по КТ
@Denis_QA
@Denis_QA 6 месяцев назад
​@@dios9168чтобы вычислительные мощности компьютера тратили меньше времени на вычисления
@user-rv6dl7op2l
@user-rv6dl7op2l Месяц назад
Здравствуйте, тоже интересуюсь данной темой, вам удалось найти?
@applesin475
@applesin475 2 года назад
Etudarium, мне нужна ваша помощь, если не сложно, ответьте мне пожалуйста
@user-qf2xe2bd5r
@user-qf2xe2bd5r 4 месяца назад
Люди, если вы хотите углубится в эту тему то почитайте про свёрточные сети, их точность предсказания намного выше
@Romaboy
@Romaboy 2 года назад
Подписка, хороший контент
@passaw7
@passaw7 Год назад
Как сеть применима в жизни. Когда подаем большой снимок 1920х1080, где на одном участке фото может быть футболка. Но у нее может быть отличный от тренировочных фото угол, например 45° и другие отношения ширины и высоты, например широкая футболка. Нам нужна еще какая-то сеть определения позиции возможного класса на большом фото? А потом сделать сжатие фото до нужной модели? А как нормировать углы, это только на тренировке будет все четко и прямо.
@import_this
@import_this Год назад
Определение вещи на фото и определение места на фото это две независимые операции. По идее код должен принимать только фото объекта для определения, все что не относиться к этому процессу должно быть вынесено отдельно
@morgan3692
@morgan3692 Год назад
@@import_this эта сеть не применима в жизни, это пример, задача, которую студент учится решать в процессе обучения. Реальная есть будет состоять из большего количества слоев и нейронов. Нейронную сеть можно обучить находить объекты на изображении вне зависимости от их положения.
@import_this
@import_this Год назад
@@morgan3692 да, согласен. Но я ориентировался на свой опыт в ecommerce, где нет необходимости обучать искать, а есть конкретные фото товаров. Поэтому сказал, про то, что эти операции стоит разделить
@xyke_p
@xyke_p 11 месяцев назад
А узнать по какой картинке, из набора обучающих данных, нейросеть определила изображение?
@aleksandrbansh3074
@aleksandrbansh3074 8 месяцев назад
Вы так и не поняли , как работает нейросеть...
@savely7155
@savely7155 11 дней назад
Да, пересмотрите ещё разок видео. Нейросеть не сравнивает входное изображение с тестовыми, она соотносит входные данные с «весами» нейронов и приходит таким образом к ответу
@andreypuchkov3604
@andreypuchkov3604 Год назад
Спасибо за видео! А код программы в текстовом формате можно получить или только в книге?
@mertaii
@mertaii 7 месяцев назад
какой тип нейронной сети здесь?
@kirilllevin5372
@kirilllevin5372 2 года назад
Сделал все как в ролике .НО! получается постоянно очень большие ошибки и маленькая точность.Прошу помочь
@Rusia-16
@Rusia-16 Год назад
У меня вообще она ни разу не угадала )))
@user-qf2xe2bd5r
@user-qf2xe2bd5r 4 месяца назад
посмотри другой урок но не от этого автора
@jewelkz91
@jewelkz91 2 года назад
Спасибо, очень полезно)
@nikolaydd6219
@nikolaydd6219 2 года назад
Сделай пожалуста пример как потом эту обученную модель использовать в своём приложении на C++ C# Delphi JavaScript PHP
@alibakkuev470
@alibakkuev470 Год назад
Доброго времени суток. Можно ли обучить нейронку распознавать действия? Касаемо футбола. Отдал пас, забил гол, отдал голевую передачу, совершил перехват мяча, отобрал мяч, выбросил аут, подал угловой, сфолил, сфолил на нем и тд?
@etudarium5387
@etudarium5387 Год назад
насколько я знаю, в футбольной индустрии уже используются специальные программы, которые автоматически считывают все действия каждого футболиста на поле, включая все вами перечисленные , и выдают очень подробную статистику
@sorockinalex
@sorockinalex 3 месяца назад
Хотелось бы нейронку, которая бы определяла мой голос и выполняла голосовые команды, которые исходят от меня, а на от кого попало
@nilsharafutdinov3679
@nilsharafutdinov3679 Год назад
+
@torcher5023
@torcher5023 Год назад
Да уж, друзья, хочется верить, что когда-нибудь так называемое "машинное обучение" уйдëт от подбивки весов методом градиентного спуска до чего-нибудь более умного, но, видимо, пока не судьба.
@old891
@old891 2 месяца назад
Надо было все таки делить на 256)
@chaotic_fox7254
@chaotic_fox7254 2 месяца назад
0 из 10 мне писал class_names ошибка а только через полчаса случайно додумался поменять на list и тут же всё заработало. 0 из 10 не рекомендую. уточнять надо что писать class_names или list
@tsibulsky4900
@tsibulsky4900 10 месяцев назад
Ужасно раздражает музыка на фоне .. .. Зачем вообще накладывать какой-то шум который мешает слушать объяснение
@user-qf5dr3gc6t
@user-qf5dr3gc6t 5 месяцев назад
шиза
@user-qf5dr3gc6t
@user-qf5dr3gc6t 5 месяцев назад
Я в рот наоборот такие анекдоты
@user-qf5dr3gc6t
@user-qf5dr3gc6t 5 месяцев назад
Сразу мысли о выпевке
@user-qf5dr3gc6t
@user-qf5dr3gc6t 5 месяцев назад
и бабах
@Yurikuznet
@Yurikuznet 5 месяцев назад
а смысл освоить чужой готовый API? как оно работает это магия и все картинки с кружочками никак не помогут ее воспроизвести. еще и окружение гугловское. вы свою сеть строите или где?
@Rusia-16
@Rusia-16 Год назад
А у меня ни хрена не угадывает ! Какая то тупая сеть получилась )))
@LastWeg
@LastWeg 2 года назад
Очень похоже, что данная лекция это лайтовый плагиат с бесплатной лекции Андея Созыкина "Нейросети на Пайтон", которые присутствуют тут же на Ютубе.
@etudarium5387
@etudarium5387 2 года назад
Ваш комментарий оскорбителен и необоснован. Использование нейросети для распознавания изображений одежды (набор Fashion MNIST) представляет собой одну из самых популярных задач для тех, кто только начинает изучать нейронные сети и используется практически во всех курсах/книгах/учебниках/мануалах по машинному обучению и нейросетям. Если попробовать найти данную задачу в интернете, то можно легко получить сотни ссылок как на русском так и на английском языках, где объясняются как с ним работать, поэтому неудивительно, что какая-то часть контента будет похожа, ибо сам набор данных, который используется для обучения, является одинаковым для всех
@ivan_inanych
@ivan_inanych Год назад
ужас, чел даже не удосужился другой датасет взять, трижды пережёванный кал
@mo_dream
@mo_dream Год назад
plt.figure(figsize=(10,10)) for i in range (25): plt.subplot(5,5,i+1) plt.xticks([]) plt.yticks([]) plt.imshow(x_train[i]) plt.xlabel(class_names[y_train[i]]) Ругается на 3 строчку, поддчеркивает plt File "", line 3 plt.subplot(5,5,i+1) ^ IndentationError: expected an indented block
@ShooterStar
@ShooterStar Год назад
@@ruslooob они не умеют думать и переводить......
Далее
Donut through glass trick! 😳🍩 #shorts
00:19
Просмотров 3,7 млн
Китайка и Максим 778 серия😂😆
00:19
Делаю нейросеть с нуля
17:17
Просмотров 1,4 млн
Свёрточные нейронные сети
14:02