Единственное видео которое понятным языком, наглядно разъясняет как создать свой dataset. А то, возьми mnist добавь готовую модель нейросети, подожди, и вот чудо свершилось. Только ощущения что ты его создал, это "чудо", не было. Благодарю.
Привет! Не могу понять, в каком месте нужно изменить информацию о выходных данных на one hot encoding? И стоит ли подобной модели скармливать 62 класса? Спасибо!
Обучение прошло успешно. Каким образом использовать данную нейронную сеть для классификации других изображений? т.е на вход подаётся изображение, выводится класс.
Добрый день Андрей, у меня вопрос, когда вы в видео(11:22 мин.) начинаете говорить про то что если там больше классов(больше 2 классов "кот собака и еще пару классов") то в этой части кода(model.compile( loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) ) надо поменять binary_crossentropy на categorical_crossentropy, также вы говорили что надо что-то еще поменять, вопрос а что там еще надо поменять и где надо поменять, можете объяснить(в каких частях кода надо менять)? И на что надо поменять?
Andrey, а как вывести изображения, которые нейросеть не смогла распознать? В данном случае (16,42%) 616 не распознанных (распознанных неправильно) изображений. Это особенно интересно, когда точность около 99%.
После построения и обучения сети возник вопрос, а как проверить нейросетью собственную картинку? (В какой тип данных при образовать картинку, чтобы можно было использовать простой model.predict()?) Обновлено: проблему решил и немного стыдно от простоты решения. Кому понадобиться, чтобы "впихнуть" в сверточную нейросеть картинку, нужно превратить эту картинку в 4-х мерный тензор. Для начала "превращаем" картинку в 3х мерный массив numpy, а после, с помощью tensorflow, превращаем этот массив в нужной размерности тензор, а там уже "по ситуации" (надеюсь кому-то пригодится)
Подскажите , в чем может быть дело, на тестовых данных показывает acc: 0.9 примерно, но когда прогоняешь картинку из трейн набора - нейронка не может ее правильно определить... *( я не пойму в чем загвоздка, по идее должна хотя бы примерно попадать в прогноз... но зачастую вообще рандомные предсказания. Где я накосячить мог.. ?
Здравствуйте. А как загружать изображения при помощи такого генератора в случае регрессии? Задача определения возраста по фото. Есть фото и есть csv с колонками имя файла и возраст.
К сожалению не описано как потом использовать данную сеть для распознования своих изображений.Очень бы хотелось увидеть. Пытался подогнать код из лекции "Применение нейронных сетей.....", но к сожалению на любую картинку сеть выдает "0" (первый прописанный в нее класс)...
при замене binary_crossentropy на categorical_crossentropy возникает ошибка, вы в видео указали, что необходимо изменить данные на one hot encoding, но как это сделать?
Здравствуйте, подскажите пожалуйста, какие методы можно использовать при подготовке своего датасета для обнаружения объектов на изображении (в keras). Или допустим использование готового датасета (хотелось использовать MPII) ( как правильно импортировать эти изображения с метками). Не нашла, была ли эта информация у вас на канале? Спасибо
Andrey, а почему model.predict() из данной лекции возвращает только одно значение? Типа [0.93]. Ведь, по идее, binary должно быть [0.93, 0.70], и можно применить argmax. Или я чего-то недопонял?
model.predict() возвращает столькго значений, сколько нейронов на выходном слое. Если на выходном слое один нейрон, то и на выходе будет одно значение. Бинарная классификация как раз и означает, что используется одно выходное значение. Но этомузначению соответсвует два класса: 0 - один класс, 1 - другой класс. Если же на выходе несколько нейронов, то используется one hot encoding - каждый выход соответствует только одному классу.
Андрей, не подскажите ли, пожалуйста, если разрешение изображения больше указанных нами параметров, картинки обрежутся самостоятельно, или же просто не подойдут по характеристик?
val_generator = datagen.flow_from_directory( VAL_PATH, target_size=IMG_SIZE, batch_size=BATCH_SIZE, class_mode='binary') Тут в target_size мы указываем желаемый/необходимый размер до которого будет масштабировано изображение из датасета
Добрый вечер, пытаюсь делать нейронные сети по Вашим урокам. Лучший материал в интернете, да и вообще единственный... Подскажите, пожалуйста, почему компилятор не хочет переваривать " model.fit_generator" (работаю в Visual Studio Code)
К сожалению, это видео уже успело устареть. В TF 2 изменился подход к работе со своими наборами данных. Вот ссылка на ноутбук с работающим кодом - colab.research.google.com/drive/1fEPOks5sf3EEkfZBHpIIXpXNdfYBuFiZ?usp=sharing
как пример, на фото много живностей) но нам нужно найти только кошек. как обучить сеть с одним видом? порода цвет нам не важен просто есть или нет кошка на картинке.
А что делать с черно-белыми изображениями? У них всё равно три канала. В обычно случае помогает, image_array = np.expand_dims(image_array , -1), Но как добавить это в генератор?
Нет, это обучение с учителем. Все изображения одного класса объекта должны быть в одном каталоге. Поэтому для каждого изображения известно, какой объект на нем находится.
почему у меня Val_loss ниже чем loss и тоже самое с акуратностью? 55s - loss: 0.1162 - accuracy: 0.9665 - val_loss: 0.0726 - val_accuracy: 0.9800 - 55s/epoch - 232ms/step
Не понял, какой график? Можно построить confusion matrix, которая показывает количество данных, отнесенных к каждому классу сетью, и правильный класс. Еще можно построить график качества обучения на каждой эпохе. Возможно, интересует что-то другое?
Andrey Sozykin как бы так сказать, качество работы, т.е. насколько сеть лучше классифицирует с каждой эпохой ) вроде с методом model.fit нашел, а вот с генератором пока не понял как
Андрей, спасибо Вам за курс! У меня к Вам 2 вопроса: 1. Проверочные данные. Можно ли на уровне keras указать какое количество из тренировочных данных будет браться для проверочных? Например, указать какой-либо процент. 2. Данные для тестирования. Зачем разбивать данные для тестирования на классы, если мы хотим проверить как работает сеть на данных, которые она не видела? Например, в соревновании kaggle, набор данных которого Вы используете в видео, набор для проверки не разбит на классы, а Вы этот набор разбиваете на классы из тренировочного. Заранее благодарен за Ваш ответ.
Надо зарегистрироваться на том сайте - тогда откроется доступ к архивам. Проще зарегистрироваться через Гугл Аккаунт. Там вроде смс должна прийти на телефон, что вы подтверждаете использование Гугл Аккаунта.
Здравствуйте. Скопировал код из ссылки. Поменял только пути на свои. Выдает no much file or directory c:\\........cat.0.jpg Я уже столько всего перепробовал, чтобы исправить ошибку. Ничего не помогает. Все пути на латинице.
Все,проблему решил.Но теперь встал вопрос.Как проверить работает ли обученная нейросеть так,как следует.Использовал код,который вы показывали в "Анализируем изображения с помощью нейронных сетей".Мою нейросеть я обучил распозновать фигуры,пока что 2(если сработает,будет больше)Проблема в том,что она выдает всегда первое значение в "classes"
Андрей, добрый день! Спасибо Вам за Ваши уроки. Это та база на которой очень удобно строить любые проекты. Все доходчиво, понятно и строго по делу.
Спасибо! Талантливый преподаватель. Умеет объяснить сложные вещи человеческим языком.
Пожалуйста! Рад, что нравится!
Единственное видео которое понятным языком, наглядно разъясняет как создать свой dataset. А то, возьми mnist добавь готовую модель нейросети, подожди, и вот чудо свершилось. Только ощущения что ты его создал, это "чудо", не было. Благодарю.
Супер. Это один из лучших уроков, которые я встречал. Даже круче тех, что на английском в официальном канале тензорфлоу
Спасибо большое! Вы лучший преподаватель на ютуб по нейросетям!
+Сергей Петров, спасибо!
Присоединяюсь! Андрей вы лучший! :) С Наступающим!
Тоже присоединяюсь, не только по нейросетям) очень нравятся ваши уроки по телекоммуникациям
Спасибо всем за приятные отзывы и поздравления!
Подписываюсь
Привет! Не могу понять, в каком месте нужно изменить информацию о выходных данных на one hot encoding?
И стоит ли подобной модели скармливать 62 класса?
Спасибо!
Замечательно что нашел эти лекции. Вы читаете на "моей скорости"
Спасибо!
Потверждаю что очень харошие твои лекции!
Спасибо!
С Новым 2018 годом! Желаю здарове и успешно справлятся с новые предизвикателсьства!
Спасибо за отличные уроки!
Пожалуйста!
Обучение прошло успешно. Каким образом использовать данную нейронную сеть для классификации других изображений? т.е на вход подаётся изображение, выводится класс.
Добрый день Андрей, у меня вопрос, когда вы в видео(11:22 мин.) начинаете говорить про то что если там больше классов(больше 2 классов "кот собака и еще пару классов") то в этой части кода(model.compile( loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) ) надо поменять binary_crossentropy на categorical_crossentropy, также вы говорили что надо что-то еще поменять, вопрос а что там еще надо поменять и где надо поменять, можете объяснить(в каких частях кода надо менять)? И на что надо поменять?
Andrey, а как вывести изображения, которые нейросеть не смогла распознать? В данном случае (16,42%) 616 не распознанных (распознанных неправильно) изображений. Это особенно интересно, когда точность около 99%.
После построения и обучения сети возник вопрос, а как проверить нейросетью собственную картинку? (В какой тип данных при образовать картинку, чтобы можно было использовать простой model.predict()?)
Обновлено: проблему решил и немного стыдно от простоты решения. Кому понадобиться, чтобы "впихнуть" в сверточную нейросеть картинку, нужно превратить эту картинку в 4-х мерный тензор. Для начала "превращаем" картинку в 3х мерный массив numpy, а после, с помощью tensorflow, превращаем этот массив в нужной размерности тензор, а там уже "по ситуации" (надеюсь кому-то пригодится)
Спасибо большое, помог
Здравствуйте, подскажите версии пакетов среды окружения (вылетает с ошибкой на model.fit). Спасибо
Подскажите , в чем может быть дело, на тестовых данных показывает acc: 0.9 примерно, но когда прогоняешь картинку из трейн набора - нейронка не может ее правильно определить... *( я не пойму в чем загвоздка, по идее должна хотя бы примерно попадать в прогноз... но зачастую вообще рандомные предсказания. Где я накосячить мог.. ?
Здравствуйте. А как загружать изображения при помощи такого генератора в случае регрессии? Задача определения возраста по фото. Есть фото и есть csv с колонками имя файла и возраст.
Извиняюсь, что не совсем по теме. Подойдет ли обучающая выборка рукописных цифр для распознавания цифр печатных(счетчики, номера авто и т.п.)?
К сожалению не описано как потом использовать данную сеть для распознования своих изображений.Очень бы хотелось увидеть. Пытался подогнать код из лекции "Применение нейронных сетей.....", но к сожалению на любую картинку сеть выдает "0" (первый прописанный в нее класс)...
Скинь свой код на github чтобы посмотреть можно было.
при замене binary_crossentropy на categorical_crossentropy возникает ошибка, вы в видео указали, что необходимо изменить данные на one hot encoding, но как это сделать?
данные для проверки и данные для тестирования чем отличаются?
Здравствуйте, подскажите пожалуйста, какие методы можно использовать при подготовке своего датасета для обнаружения объектов на изображении (в keras). Или допустим использование готового датасета (хотелось использовать MPII) ( как правильно импортировать эти изображения с метками). Не нашла, была ли эта информация у вас на канале? Спасибо
А ежели я использую готовый датасет в формате CSV? Как его можно преобразовать в корректные данные для использования?
С помощью библиотеки pandas.
при обучении мы указали весь каталог, но не уточнили какая из картинок собака или кошка. Как тогда передать список ответов?
Кошки и собаки записаны в разные подкаталоги. Класс изображения определяется по каталогу, в котором оно находится.
Возможно ли на сврточную нейронную сеть подать изображение, где будет не 3 канала, а 400 (гиперспектральное изображение)
Здравствуйте! Я использую windows. Какой путь мне указать в переменную data_dir в файле data_preparation?
Выдает синтаксическую ошибку(unicode error).
Andrey, а почему model.predict() из данной лекции возвращает только одно значение? Типа [0.93]. Ведь, по идее, binary должно быть [0.93, 0.70], и можно применить argmax. Или я чего-то недопонял?
model.predict() возвращает столькго значений, сколько нейронов на выходном слое. Если на выходном слое один нейрон, то и на выходе будет одно значение.
Бинарная классификация как раз и означает, что используется одно выходное значение. Но этомузначению соответсвует два класса: 0 - один класс, 1 - другой класс.
Если же на выходе несколько нейронов, то используется one hot encoding - каждый выход соответствует только одному классу.
@@AndreySozykin ну допустим в данной модели model.predict() нам вернет 0,3 или 0,8. Как узнать собака это или кошка?
Подскажите, после обучения нейросети как теперь вводить свои данные и получать ответ?
Не знаю, как реализовать model.predict()
Вот пример - th-cam.com/video/F24eYE5VrKE/w-d-xo.html
подскажите, откуда вы узнали о методе "flow_from_directory". Я не могу ничего подобного найти на официальной странице Keras.
Вот на официальном сайте - keras.io/preprocessing/image/
Андрей, не подскажите ли, пожалуйста, если разрешение изображения больше указанных нами параметров, картинки обрежутся самостоятельно, или же просто не подойдут по характеристик?
val_generator = datagen.flow_from_directory(
VAL_PATH,
target_size=IMG_SIZE,
batch_size=BATCH_SIZE,
class_mode='binary')
Тут в target_size мы указываем желаемый/необходимый размер до которого будет масштабировано изображение из датасета
Добрый вечер, пытаюсь делать нейронные сети по Вашим урокам. Лучший материал в интернете, да и вообще единственный... Подскажите, пожалуйста, почему компилятор не хочет переваривать " model.fit_generator" (работаю в Visual Studio Code)
К сожалению, это видео уже успело устареть. В TF 2 изменился подход к работе со своими наборами данных. Вот ссылка на ноутбук с работающим кодом - colab.research.google.com/drive/1fEPOks5sf3EEkfZBHpIIXpXNdfYBuFiZ?usp=sharing
Здравствуйте, подскажите пожалуйста как от сюда получить *.pb модель?
Вот обсуждение на SO - stackoverflow.com/questions/45466020/how-to-export-keras-h5-to-tensorflow-pb
Скажи пожалуйста, если из вашего примера оставить только один вид скажем кошек, на что заменить "binary_crossentropy" и как обучить сеть? Спасибо!
Не понял, что значит один вид? Все равно должно быть два класса, например,.нужная порода кошки и все остальное.
как пример, на фото много живностей) но нам нужно найти только кошек. как обучить сеть с одним видом? порода цвет нам не важен просто есть или нет кошка на картинке.
тоже хотел бы узнать
Как указать размер изображений? по пикселям или как?
Размер изображения в пикселях.
А что делать с черно-белыми изображениями? У них всё равно три канала. В обычно случае помогает, image_array = np.expand_dims(image_array , -1), Но как добавить это в генератор?
При вызове flow_from_directory нужно указать color_mode="grayscale".
Спасибо!
Можно ли на вход сети подавать не изображение, а двумерную или трёхмерную матрицу чисел?
Изображение - это и есть двумерная матрица чисел. Трехмерная матрица - это видео. Его тоже можно подавать, но в трехмерную сверточную сеть.
@@AndreySozykin Спасибо
А как обучить капчу? Тоже как кот и собака? Только надо создать 26 директорий вместо 2??
Да, примерно так. И на выходном слое softmax.
@@AndreySozykin спасибо
А если класс один? Например я хочу узнать является ли изображение скриншотом.
Тогда это бинарная классификация. Например, 1 - это скриншот, 0 - не скриншот.
Добрый день.Если готовить базу подобным методом, сеть будет работать по принципу обучение без учителя, я верно понимаю?
Нет, это обучение с учителем. Все изображения одного класса объекта должны быть в одном каталоге. Поэтому для каждого изображения известно, какой объект на нем находится.
почему у меня Val_loss ниже чем loss и тоже самое с акуратностью? 55s - loss: 0.1162 - accuracy: 0.9665 - val_loss: 0.0726 - val_accuracy: 0.9800 - 55s/epoch - 232ms/step
Скажи пожалуйста, как построить график точности классификации нейронной сети?
Не понял, какой график? Можно построить confusion matrix, которая показывает количество данных, отнесенных к каждому классу сетью, и правильный класс.
Еще можно построить график качества обучения на каждой эпохе.
Возможно, интересует что-то другое?
Andrey Sozykin как бы так сказать, качество работы, т.е. насколько сеть лучше классифицирует с каждой эпохой ) вроде с методом model.fit нашел, а вот с генератором пока не понял как
Понял, про это будет отдельная лекция.
Спасибо большое! Лекции супер!
Подскажите пожалуйста где хранится натренированная сеть?
th-cam.com/video/ro3s22RyvbA/w-d-xo.html
Если изображение не квадратное, и оригинальный размер 95х177, тогда так и указывать 95х177?
Названия самих фоток надеюсь не влияют особо ? Чтобы не нумеровать все фотки по порядку
У вас получилось со своими изображениями?
Андрей, спасибо Вам за курс! У меня к Вам 2 вопроса: 1. Проверочные данные. Можно ли на уровне keras указать какое количество из тренировочных данных будет браться для проверочных? Например, указать какой-либо процент. 2. Данные для тестирования. Зачем разбивать данные для тестирования на классы, если мы хотим проверить как работает сеть на данных, которые она не видела? Например, в соревновании kaggle, набор данных которого Вы используете в видео, набор для проверки не разбит на классы, а Вы этот набор разбиваете на классы из тренировочного. Заранее благодарен за Ваш ответ.
Ваще не понятно как слои выбираются, почему там Conv2D/Activation/MaxPooling2D было 2 раза? Почему не 1 раз, не 12 раз, а 3?...
Все очень хорошо но не видно схемы сети и что за что отечает на схеме
Здравствуйте, не могу скачать файл train.zip с сайта.Подскажите , что можно сделать?
Надо зарегистрироваться на том сайте - тогда откроется доступ к архивам. Проще зарегистрироваться через Гугл Аккаунт. Там вроде смс должна прийти на телефон, что вы подтверждаете использование Гугл Аккаунта.
@@nikolaydd6219 может выложишь куда-то этот файл, мне не удается скормить kaggle мой телефон, после 3х неудачных попыток берет паузу в 24 часа
A как можно было бы ранжировать с присвоением оценки? Например светлая собака, или темная с рейтингом от 0 до 100.
а как выделить найденный объект? Т.е. выделить в квадратик
Это уже другая задача, поиск объектов на изображениях. Вот видео о том, как это делать - th-cam.com/video/1KzKqxx-s-Q/w-d-xo.html
Спасибо за лекции! Очень доступно
А как обучать если данные не размечены
Можно использовать, например, автокодировщики.
@@AndreySozykin спасибо!)
Здравствуйте. Скопировал код из ссылки. Поменял только пути на свои. Выдает no much file or directory c:\\........cat.0.jpg
Я уже столько всего перепробовал, чтобы исправить ошибку. Ничего не помогает. Все пути на латинице.
Воооот!!! У меня такая же ошибка. Скажите, пожалуйста, сумели ли разрешить её? Если ещё помните)))
@@ВИЛЬГЕЛЬМТЕЛЛЬ-ф7ш надо чтоб фотки называлились cat.idx.jpg
ну или формат названия в коде поменяйте
@@ВИЛЬГЕЛЬМТЕЛЛЬ-ф7ши dogs быть должно
@@ВИЛЬГЕЛЬМТЕЛЛЬ-ф7ш у меня проблема в другом
я сделал нейронку но не знаю как ее исполдьзовать
@@ПавелБеляй на этом канале есть видео на такую тему
StopIteration: Could not import PIL.Image. The use of `array_to_img` requires PIL.
Возникает такая ошибка.
Не установлена библиотека pillow.
Поидее установилось,но работать НС не хочет,выдает все туже ошибку(
Все,проблему решил.Но теперь встал вопрос.Как проверить работает ли обученная нейросеть так,как следует.Использовал код,который вы показывали в "Анализируем изображения с помощью нейронных сетей".Мою нейросеть я обучил распозновать фигуры,пока что 2(если сработает,будет больше)Проблема в том,что она выдает всегда первое значение в "classes"
Скорее всего, сеть плохо обучилась. Сколько картинок было в обучающем наборе? Для качественного обучения нужно по несколько тысяч для каждого класса.
при обучении точность составила 100%,картинок было больше 200 в каждом классе