Как подготовить свой набор изображений в Keras | Глубокие нейронные сети на Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ม.ค. 2025

ความคิดเห็น • 119

  • @TheManMadeSelf
    @TheManMadeSelf ปีที่แล้ว +4

    Андрей, добрый день! Спасибо Вам за Ваши уроки. Это та база на которой очень удобно строить любые проекты. Все доходчиво, понятно и строго по делу.

  • @Александр-л8з3э
    @Александр-л8з3э 6 ปีที่แล้ว +11

    Спасибо! Талантливый преподаватель. Умеет объяснить сложные вещи человеческим языком.

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว +1

      Пожалуйста! Рад, что нравится!

  • @SM-cc8lt
    @SM-cc8lt 4 ปีที่แล้ว +5

    Единственное видео которое понятным языком, наглядно разъясняет как создать свой dataset. А то, возьми mnist добавь готовую модель нейросети, подожди, и вот чудо свершилось. Только ощущения что ты его создал, это "чудо", не было. Благодарю.

  • @JohnDoe-fv5cu
    @JohnDoe-fv5cu 2 ปีที่แล้ว

    Супер. Это один из лучших уроков, которые я встречал. Даже круче тех, что на английском в официальном канале тензорфлоу

  • @petroff_ss
    @petroff_ss 7 ปีที่แล้ว +26

    Спасибо большое! Вы лучший преподаватель на ютуб по нейросетям!

    • @AndreySozykin
      @AndreySozykin  7 ปีที่แล้ว +1

      +Сергей Петров, спасибо!

    • @runningbathattendantprogra9582
      @runningbathattendantprogra9582 7 ปีที่แล้ว +1

      Присоединяюсь! Андрей вы лучший! :) С Наступающим!

    • @ИгорьЛарин-з9ц
      @ИгорьЛарин-з9ц 7 ปีที่แล้ว +1

      Тоже присоединяюсь, не только по нейросетям) очень нравятся ваши уроки по телекоммуникациям

    • @AndreySozykin
      @AndreySozykin  7 ปีที่แล้ว +1

      Спасибо всем за приятные отзывы и поздравления!

    • @firstnamelastname1218
      @firstnamelastname1218 7 ปีที่แล้ว

      Подписываюсь

  • @antonvol
    @antonvol 6 ปีที่แล้ว +6

    Привет! Не могу понять, в каком месте нужно изменить информацию о выходных данных на one hot encoding?
    И стоит ли подобной модели скармливать 62 класса?
    Спасибо!

  • @СемёнСорокин-ю9р
    @СемёнСорокин-ю9р 6 ปีที่แล้ว +1

    Замечательно что нашел эти лекции. Вы читаете на "моей скорости"

  • @NaydenNenkov
    @NaydenNenkov 7 ปีที่แล้ว +4

    Потверждаю что очень харошие твои лекции!

    • @AndreySozykin
      @AndreySozykin  7 ปีที่แล้ว

      Спасибо!

    • @NaydenNenkov
      @NaydenNenkov 7 ปีที่แล้ว +1

      С Новым 2018 годом! Желаю здарове и успешно справлятся с новые предизвикателсьства!

  • @AlexAlex-ky4qm
    @AlexAlex-ky4qm 5 ปีที่แล้ว +4

    Спасибо за отличные уроки!

  • @dimar2712
    @dimar2712 3 ปีที่แล้ว +5

    Обучение прошло успешно. Каким образом использовать данную нейронную сеть для классификации других изображений? т.е на вход подаётся изображение, выводится класс.

  • @ВикторГандзюк-в4ч
    @ВикторГандзюк-в4ч 4 ปีที่แล้ว

    Добрый день Андрей, у меня вопрос, когда вы в видео(11:22 мин.) начинаете говорить про то что если там больше классов(больше 2 классов "кот собака и еще пару классов") то в этой части кода(model.compile( loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) ) надо поменять binary_crossentropy на categorical_crossentropy, также вы говорили что надо что-то еще поменять, вопрос а что там еще надо поменять и где надо поменять, можете объяснить(в каких частях кода надо менять)? И на что надо поменять?

  • @SM-cc8lt
    @SM-cc8lt 4 ปีที่แล้ว +3

    Andrey, а как вывести изображения, которые нейросеть не смогла распознать? В данном случае (16,42%) 616 не распознанных (распознанных неправильно) изображений. Это особенно интересно, когда точность около 99%.

  • @_bustion_1928
    @_bustion_1928 4 ปีที่แล้ว +4

    После построения и обучения сети возник вопрос, а как проверить нейросетью собственную картинку? (В какой тип данных при образовать картинку, чтобы можно было использовать простой model.predict()?)
    Обновлено: проблему решил и немного стыдно от простоты решения. Кому понадобиться, чтобы "впихнуть" в сверточную нейросеть картинку, нужно превратить эту картинку в 4-х мерный тензор. Для начала "превращаем" картинку в 3х мерный массив numpy, а после, с помощью tensorflow, превращаем этот массив в нужной размерности тензор, а там уже "по ситуации" (надеюсь кому-то пригодится)

    • @dimar2712
      @dimar2712 3 ปีที่แล้ว

      Спасибо большое, помог

  • @igga2181
    @igga2181 2 ปีที่แล้ว

    Здравствуйте, подскажите версии пакетов среды окружения (вылетает с ошибкой на model.fit). Спасибо

  • @ОльгаПрохоренко-ц4с
    @ОльгаПрохоренко-ц4с 2 ปีที่แล้ว

    Подскажите , в чем может быть дело, на тестовых данных показывает acc: 0.9 примерно, но когда прогоняешь картинку из трейн набора - нейронка не может ее правильно определить... *( я не пойму в чем загвоздка, по идее должна хотя бы примерно попадать в прогноз... но зачастую вообще рандомные предсказания. Где я накосячить мог.. ?

  • @Gleb_Pastushenko
    @Gleb_Pastushenko 4 ปีที่แล้ว

    Здравствуйте. А как загружать изображения при помощи такого генератора в случае регрессии? Задача определения возраста по фото. Есть фото и есть csv с колонками имя файла и возраст.

  • @vanessence9935
    @vanessence9935 6 ปีที่แล้ว +1

    Извиняюсь, что не совсем по теме. Подойдет ли обучающая выборка рукописных цифр для распознавания цифр печатных(счетчики, номера авто и т.п.)?

  • @johnnygames768
    @johnnygames768 6 ปีที่แล้ว +5

    К сожалению не описано как потом использовать данную сеть для распознования своих изображений.Очень бы хотелось увидеть. Пытался подогнать код из лекции "Применение нейронных сетей.....", но к сожалению на любую картинку сеть выдает "0" (первый прописанный в нее класс)...

    • @SM-cc8lt
      @SM-cc8lt 4 ปีที่แล้ว

      Скинь свой код на github чтобы посмотреть можно было.

  • @KaimanDoro
    @KaimanDoro 2 ปีที่แล้ว

    при замене binary_crossentropy на categorical_crossentropy возникает ошибка, вы в видео указали, что необходимо изменить данные на one hot encoding, но как это сделать?

  • @Собственник-т3к
    @Собственник-т3к 2 ปีที่แล้ว

    данные для проверки и данные для тестирования чем отличаются?

  • @mathematical4972
    @mathematical4972 3 ปีที่แล้ว

    Здравствуйте, подскажите пожалуйста, какие методы можно использовать при подготовке своего датасета для обнаружения объектов на изображении (в keras). Или допустим использование готового датасета (хотелось использовать MPII) ( как правильно импортировать эти изображения с метками). Не нашла, была ли эта информация у вас на канале? Спасибо

  • @MyLittleBroadway
    @MyLittleBroadway 5 ปีที่แล้ว +1

    А ежели я использую готовый датасет в формате CSV? Как его можно преобразовать в корректные данные для использования?

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว

      С помощью библиотеки pandas.

  • @Holstinin007
    @Holstinin007 4 ปีที่แล้ว +1

    при обучении мы указали весь каталог, но не уточнили какая из картинок собака или кошка. Как тогда передать список ответов?

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว

      Кошки и собаки записаны в разные подкаталоги. Класс изображения определяется по каталогу, в котором оно находится.

  • @ranetka1994
    @ranetka1994 4 ปีที่แล้ว

    Возможно ли на сврточную нейронную сеть подать изображение, где будет не 3 канала, а 400 (гиперспектральное изображение)

  • @timur17771
    @timur17771 5 ปีที่แล้ว

    Здравствуйте! Я использую windows. Какой путь мне указать в переменную data_dir в файле data_preparation?
    Выдает синтаксическую ошибку(unicode error).

  • @eugenydolgy1060
    @eugenydolgy1060 6 ปีที่แล้ว +2

    Andrey, а почему model.predict() из данной лекции возвращает только одно значение? Типа [0.93]. Ведь, по идее, binary должно быть [0.93, 0.70], и можно применить argmax. Или я чего-то недопонял?

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว +1

      model.predict() возвращает столькго значений, сколько нейронов на выходном слое. Если на выходном слое один нейрон, то и на выходе будет одно значение.
      Бинарная классификация как раз и означает, что используется одно выходное значение. Но этомузначению соответсвует два класса: 0 - один класс, 1 - другой класс.
      Если же на выходе несколько нейронов, то используется one hot encoding - каждый выход соответствует только одному классу.

    • @Holstinin007
      @Holstinin007 4 ปีที่แล้ว

      @@AndreySozykin ну допустим в данной модели model.predict() нам вернет 0,3 или 0,8. Как узнать собака это или кошка?

  • @АлександрПрошичев-у3у
    @АлександрПрошичев-у3у 4 ปีที่แล้ว +1

    Подскажите, после обучения нейросети как теперь вводить свои данные и получать ответ?
    Не знаю, как реализовать model.predict()

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว

      Вот пример - th-cam.com/video/F24eYE5VrKE/w-d-xo.html

  • @ckortez222
    @ckortez222 6 ปีที่แล้ว +1

    подскажите, откуда вы узнали о методе "flow_from_directory". Я не могу ничего подобного найти на официальной странице Keras.

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      Вот на официальном сайте - keras.io/preprocessing/image/

  • @denpanch3258
    @denpanch3258 ปีที่แล้ว

    Андрей, не подскажите ли, пожалуйста, если разрешение изображения больше указанных нами параметров, картинки обрежутся самостоятельно, или же просто не подойдут по характеристик?

    • @ГюставЭйфель-б3б
      @ГюставЭйфель-б3б ปีที่แล้ว

      val_generator = datagen.flow_from_directory(
      VAL_PATH,
      target_size=IMG_SIZE,
      batch_size=BATCH_SIZE,
      class_mode='binary')
      Тут в target_size мы указываем желаемый/необходимый размер до которого будет масштабировано изображение из датасета

  • @АнастасияЛаптева-э3п
    @АнастасияЛаптева-э3п 4 ปีที่แล้ว +1

    Добрый вечер, пытаюсь делать нейронные сети по Вашим урокам. Лучший материал в интернете, да и вообще единственный... Подскажите, пожалуйста, почему компилятор не хочет переваривать " model.fit_generator" (работаю в Visual Studio Code)

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว

      К сожалению, это видео уже успело устареть. В TF 2 изменился подход к работе со своими наборами данных. Вот ссылка на ноутбук с работающим кодом - colab.research.google.com/drive/1fEPOks5sf3EEkfZBHpIIXpXNdfYBuFiZ?usp=sharing

  • @alexl5607
    @alexl5607 6 ปีที่แล้ว +1

    Здравствуйте, подскажите пожалуйста как от сюда получить *.pb модель?

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      Вот обсуждение на SO - stackoverflow.com/questions/45466020/how-to-export-keras-h5-to-tensorflow-pb

  • @AlexAlex-ky4qm
    @AlexAlex-ky4qm 5 ปีที่แล้ว +1

    Скажи пожалуйста, если из вашего примера оставить только один вид скажем кошек, на что заменить "binary_crossentropy" и как обучить сеть? Спасибо!

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว

      Не понял, что значит один вид? Все равно должно быть два класса, например,.нужная порода кошки и все остальное.

    • @AlexAlex-ky4qm
      @AlexAlex-ky4qm 5 ปีที่แล้ว

      как пример, на фото много живностей) но нам нужно найти только кошек. как обучить сеть с одним видом? порода цвет нам не важен просто есть или нет кошка на картинке.

    • @user-xl2tf4gq1g
      @user-xl2tf4gq1g 5 ปีที่แล้ว

      тоже хотел бы узнать

  • @maksatkantai9703
    @maksatkantai9703 5 ปีที่แล้ว +1

    Как указать размер изображений? по пикселям или как?

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว

      Размер изображения в пикселях.

  • @sonfiree
    @sonfiree 6 ปีที่แล้ว +1

    А что делать с черно-белыми изображениями? У них всё равно три канала. В обычно случае помогает, image_array = np.expand_dims(image_array , -1), Но как добавить это в генератор?

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      При вызове flow_from_directory нужно указать color_mode="grayscale".

    • @sonfiree
      @sonfiree 6 ปีที่แล้ว

      Спасибо!

  • @ranetka1994
    @ranetka1994 4 ปีที่แล้ว +1

    Можно ли на вход сети подавать не изображение, а двумерную или трёхмерную матрицу чисел?

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว +1

      Изображение - это и есть двумерная матрица чисел. Трехмерная матрица - это видео. Его тоже можно подавать, но в трехмерную сверточную сеть.

    • @ranetka1994
      @ranetka1994 4 ปีที่แล้ว

      @@AndreySozykin Спасибо

  • @модернкомбат-н6г
    @модернкомбат-н6г 3 ปีที่แล้ว +1

    А как обучить капчу? Тоже как кот и собака? Только надо создать 26 директорий вместо 2??

  • @sergo1217
    @sergo1217 3 ปีที่แล้ว +1

    А если класс один? Например я хочу узнать является ли изображение скриншотом.

    • @AndreySozykin
      @AndreySozykin  3 ปีที่แล้ว

      Тогда это бинарная классификация. Например, 1 - это скриншот, 0 - не скриншот.

  • @ВладиславГорожеєв
    @ВладиславГорожеєв 6 ปีที่แล้ว +1

    Добрый день.Если готовить базу подобным методом, сеть будет работать по принципу обучение без учителя, я верно понимаю?

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว +1

      Нет, это обучение с учителем. Все изображения одного класса объекта должны быть в одном каталоге. Поэтому для каждого изображения известно, какой объект на нем находится.

  • @skillsforlive2900
    @skillsforlive2900 2 ปีที่แล้ว

    почему у меня Val_loss ниже чем loss и тоже самое с акуратностью? 55s - loss: 0.1162 - accuracy: 0.9665 - val_loss: 0.0726 - val_accuracy: 0.9800 - 55s/epoch - 232ms/step

  • @vergotten3413
    @vergotten3413 6 ปีที่แล้ว +1

    Скажи пожалуйста, как построить график точности классификации нейронной сети?

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      Не понял, какой график? Можно построить confusion matrix, которая показывает количество данных, отнесенных к каждому классу сетью, и правильный класс.
      Еще можно построить график качества обучения на каждой эпохе.
      Возможно, интересует что-то другое?

    • @vergotten3413
      @vergotten3413 6 ปีที่แล้ว +1

      Andrey Sozykin как бы так сказать, качество работы, т.е. насколько сеть лучше классифицирует с каждой эпохой ) вроде с методом model.fit нашел, а вот с генератором пока не понял как

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      Понял, про это будет отдельная лекция.

  • @ПетрЗинченко-п5т
    @ПетрЗинченко-п5т 6 ปีที่แล้ว +1

    Спасибо большое! Лекции супер!
    Подскажите пожалуйста где хранится натренированная сеть?

    • @stepan0806
      @stepan0806 4 ปีที่แล้ว +1

      th-cam.com/video/ro3s22RyvbA/w-d-xo.html

  • @ranetka1994
    @ranetka1994 4 ปีที่แล้ว

    Если изображение не квадратное, и оригинальный размер 95х177, тогда так и указывать 95х177?

  • @ПриманкаТВ-о6ш
    @ПриманкаТВ-о6ш 2 ปีที่แล้ว

    Названия самих фоток надеюсь не влияют особо ? Чтобы не нумеровать все фотки по порядку

  • @peterkruglov7299
    @peterkruglov7299 3 ปีที่แล้ว

    Андрей, спасибо Вам за курс! У меня к Вам 2 вопроса: 1. Проверочные данные. Можно ли на уровне keras указать какое количество из тренировочных данных будет браться для проверочных? Например, указать какой-либо процент. 2. Данные для тестирования. Зачем разбивать данные для тестирования на классы, если мы хотим проверить как работает сеть на данных, которые она не видела? Например, в соревновании kaggle, набор данных которого Вы используете в видео, набор для проверки не разбит на классы, а Вы этот набор разбиваете на классы из тренировочного. Заранее благодарен за Ваш ответ.

  • @MoRFaiR
    @MoRFaiR 3 ปีที่แล้ว

    Ваще не понятно как слои выбираются, почему там Conv2D/Activation/MaxPooling2D было 2 раза? Почему не 1 раз, не 12 раз, а 3?...

  • @TheMicstep
    @TheMicstep 6 ปีที่แล้ว

    Все очень хорошо но не видно схемы сети и что за что отечает на схеме

  • @Vikki_mami
    @Vikki_mami 5 ปีที่แล้ว

    Здравствуйте, не могу скачать файл train.zip с сайта.Подскажите , что можно сделать?

    • @nikolaydd6219
      @nikolaydd6219 4 ปีที่แล้ว

      Надо зарегистрироваться на том сайте - тогда откроется доступ к архивам. Проще зарегистрироваться через Гугл Аккаунт. Там вроде смс должна прийти на телефон, что вы подтверждаете использование Гугл Аккаунта.

    • @alekhineldar6307
      @alekhineldar6307 3 ปีที่แล้ว +1

      @@nikolaydd6219 может выложишь куда-то этот файл, мне не удается скормить kaggle мой телефон, после 3х неудачных попыток берет паузу в 24 часа

  • @RusproClubs
    @RusproClubs 7 หลายเดือนก่อน

    A как можно было бы ранжировать с присвоением оценки? Например светлая собака, или темная с рейтингом от 0 до 100.

  • @АртемСкачков-ч8л
    @АртемСкачков-ч8л 6 ปีที่แล้ว +1

    а как выделить найденный объект? Т.е. выделить в квадратик

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      Это уже другая задача, поиск объектов на изображениях. Вот видео о том, как это делать - th-cam.com/video/1KzKqxx-s-Q/w-d-xo.html

  • @ВикторияЯзева-ш9н
    @ВикторияЯзева-ш9н 6 ปีที่แล้ว

    Спасибо за лекции! Очень доступно

  • @sergekim
    @sergekim 6 ปีที่แล้ว +1

    А как обучать если данные не размечены

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      Можно использовать, например, автокодировщики.

    • @sergekim
      @sergekim 6 ปีที่แล้ว

      @@AndreySozykin спасибо!)

  • @justparody3350
    @justparody3350 4 ปีที่แล้ว

    Здравствуйте. Скопировал код из ссылки. Поменял только пути на свои. Выдает no much file or directory c:\\........cat.0.jpg
    Я уже столько всего перепробовал, чтобы исправить ошибку. Ничего не помогает. Все пути на латинице.

    • @ВИЛЬГЕЛЬМТЕЛЛЬ-ф7ш
      @ВИЛЬГЕЛЬМТЕЛЛЬ-ф7ш 2 ปีที่แล้ว

      Воооот!!! У меня такая же ошибка. Скажите, пожалуйста, сумели ли разрешить её? Если ещё помните)))

    • @ПавелБеляй
      @ПавелБеляй 2 ปีที่แล้ว

      @@ВИЛЬГЕЛЬМТЕЛЛЬ-ф7ш надо чтоб фотки называлились cat.idx.jpg
      ну или формат названия в коде поменяйте

    • @ПавелБеляй
      @ПавелБеляй 2 ปีที่แล้ว

      @@ВИЛЬГЕЛЬМТЕЛЛЬ-ф7ши dogs быть должно

    • @ПавелБеляй
      @ПавелБеляй 2 ปีที่แล้ว

      @@ВИЛЬГЕЛЬМТЕЛЛЬ-ф7ш у меня проблема в другом
      я сделал нейронку но не знаю как ее исполдьзовать

    • @ВИЛЬГЕЛЬМТЕЛЛЬ-ф7ш
      @ВИЛЬГЕЛЬМТЕЛЛЬ-ф7ш 2 ปีที่แล้ว

      @@ПавелБеляй на этом канале есть видео на такую тему

  • @palaxgachi4973
    @palaxgachi4973 6 ปีที่แล้ว +1

    StopIteration: Could not import PIL.Image. The use of `array_to_img` requires PIL.
    Возникает такая ошибка.

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      Не установлена библиотека pillow.

    • @palaxgachi4973
      @palaxgachi4973 6 ปีที่แล้ว

      Поидее установилось,но работать НС не хочет,выдает все туже ошибку(

    • @palaxgachi4973
      @palaxgachi4973 6 ปีที่แล้ว

      Все,проблему решил.Но теперь встал вопрос.Как проверить работает ли обученная нейросеть так,как следует.Использовал код,который вы показывали в "Анализируем изображения с помощью нейронных сетей".Мою нейросеть я обучил распозновать фигуры,пока что 2(если сработает,будет больше)Проблема в том,что она выдает всегда первое значение в "classes"

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      Скорее всего, сеть плохо обучилась. Сколько картинок было в обучающем наборе? Для качественного обучения нужно по несколько тысяч для каждого класса.

    • @palaxgachi4973
      @palaxgachi4973 6 ปีที่แล้ว +1

      при обучении точность составила 100%,картинок было больше 200 в каждом классе