Keras - установка и первое знакомство | #7 нейросети на Python
Вставка
- Опубліковано 28 чер 2020
- Установка пакета Keras - оболочки над TensorFlow. Сервис colabs от Google для экспериментов по построению и обучению нейросетей. Пример использования API Keras для задачи перевода градусов Цельсия в градусы Фаренгейта. Последовательная модель нейронной сети (keras.Sequential). Создание полносвязного слоя нейронов (Dense). Линейная активационная функция: activation='linear'. Компиляция модели сети: model.compile(). Запуск обучения сети: model.fit(). Подача на вход сети данных и вычисление выходного значения: model.predict(). Получение значений весовых коэффициентов: model.get_weights().
Телеграм-канал: t.me/machine_learning_selfedu
Инфо-сайт: proproprogs.ru
lesson 7. keras_grads.py: github.com/selfedu-rus/neural...
Коллаборатория Google: colab.research.google.com
Keras (документация): ru-keras.com
Памятники нужно ставить таким авторам. Все четко и просто.
Капец ну и канал. Спасибо всем высшим существам, что создают таких продуктивных альтруистов. Автору мой поклон
Бесконечное моё Вам уважение! Ваш канал - просто СОКРОВИЩЕ! Вы очень понятно и доступно всё объясняете. Спасибо Вам огромное за Вашу поставленную речь, все эти заранее заготовленные презентации, примеры, пояснения, за всё время, которое вы тратите, чтобы донести до зрителей эту информацию. Вы прямо таки настоящий Педагог!
Ещё раз спасибо!
Чел рассказывает лучше и понятнее, чем преподы в инсте
Низкий поклон тебе, посмотркл кучу уроков, но впервые всё понял)
Не знаю Автор ведёшь ли ты ещё свой канал, но знай, что ты очень талантливый человек! Хочу написать виртуального помошника по работе на основе нейросетей и благодаря тебе есть надежда, что у меня всё получится :) Спасибо тебе Автор и с Наступающиим :)
написал?
Респект таким преподавателям! Беру с Вас пример! Горжусь, что вы мой коллега на этом поприще
Замечательный урок, но, изучив перед этим нумпай, и запомнив, что стоит выбирать самые разные данные в выборке для более продуктивного обучения, я немного изменил логику получения выборки:
df = np.random.randint(-200, 200, 200)
df_out = np.array([x*1.8 + 32 for x in df]) (генерация массива по формуле)
Хватило всего 150 эпох для почти идеального результата
Вот веса: [array([[1.7999605]], dtype=float32), array([31.988386], dtype=float32)]
Так просто и понятно вообще мало кто умеет объяснять! Спасибо вам ОГРОМНОЕ!
Спасибо за нелёгкий труд! Не перестаю удивляться таким Учителям!
Лучшие объяснение которое я слушал. Спасибо. Очень хочется побольше уроков
Это лучшее и самое подробное объяснение, спасибо огромное автору за весь плейлист ❤
Огромная благодарность за этот титанический труд!
Просто огонь. Все понятно и доходчиво самое главное с примерами и объяснениями
Большое Вам спасибо , очень доступно , о сложном Вы говорите просто и становиться всё понятно.
Спасибо дорогая редакция, первая моя нейроночка под чутким руководством запустилась.
Огромное человеческое спасибо за труд.
Дружище ты лучший🤗 поклон тебе за твой труд 🙇🏻♂️
Благодарю! действительно, очень понятно. Отдельное спасибо за блокнот с уроком. Сначала результаты были другие, потом нашел у себя ошибку - в строке компиляции дважды указал с вместо с и f
Очень просто о сложном, талант!
Слушать одно удовольствие)
Спасибо, очень доходчиво все объясняешь!
Низкий поклон учителю!
Благодарю сердечно.
Хороший информационный концентрат
Спасибо! Пока не пробовал, но звучит круто! А сейчас пойду попробую))
Спасибо за частые комментарии что и для чего.
переписал в колаб, запустил - всё работает!
Отличная запись.
Спасибо!
Просто, лучший.
не смейте даже останавливаться)
не смотрел еще все ваши видео, не подскажите, у вас есть видео с объяснениями, практич примерами других алгоритмов машинного обучения?(деревья,леса и тд)
Спасибо! Пока нет )
Мдааа, наконец то я понял что такое нейронная сеть. Спасибо Вам большое!
Благодарю! Высший класс! 🔥🔥🔥👍
вы просто мастер, умница
Шикарно, большое спасибо!
ОГРОМНЕЙШЕЕ СПАСИБО!
Уроки очень информативные. Сейчас столкнулся с такой проблемой, повторено всё строка в строку, но при проверке, при подаче через predict 100, возвращает близкое к 13/14
Наконец-то я понял. Спасибо большое!
Скажу прямо объясняет очень грамотно и понятно нечего не упуская за это 👍даже если чётко следовать ролику все ровно возникаю ошибки.не в коем случае не Виню автора данного ролика но useram.которые начинают сложно
Спасибо за видео
Молодец. Спасибо. Ясно и понятно
Огромное человеческое спасибо, храни тебя боги(у меня всё)
вы ЛУЧШИЙ!
Нейросеть с одним нейроном и тот от фуражки =) но работает
Спасибо!
Большое спасибо!
Отлично. Спасибо
а для работы в блокноте Jupiter (colab) нужно скачивать пакеты на компьютер?
А что делать если моих выходных нейронов 2?,как я введу туда данные
На новых версиях надоп менять
model.predict([100])
На
model.predict(np.array([100]))
спасибо,это и искал)
Самый разжеванная лекция, я врубился, повторил. Спасибо огромное! С нетерпением жду продолжения с более сложныит примерами!
Подскажите пожалуйста, при обучении модели в строке history = model.fit(c, f, epochs=500, verbose=0) , есть ли возможность обучать подавая входные значения не рандомно , а последовательно в определенном порядке (это мне нужно для тренировки временных последовательностей , а там все таки важна последоваельность)
параметр shuffle=False, см. документацию: keras.rstudio.com/reference/fit.html
продолжай пожалуйста
Автор, спасибо большое дошел на урок по бэк керас и бланр у тебя есть и этот курс
круть
полностью повторяю и код и ошибка TypeError: compile() missing 1 required positional argument: 'self', может кто знает с чем связано? я устал искать решение...
Скажите пожалуйста, допстим есть большой датасет на котором сеть будет обучаться неделю. Хочется иметь под рукой инструмент используя который можно приостановить обучение когда это надо, и продолжить с той же точки когда потребуется. Такое практикуется в Keras? Если да, то как это можно реализовать? Или может на google colab есть такая возможность?
Да, в Keras это можно сделать. Детали не скажу. Идея - сохранить обученные коэффициенты, а затем, их загрузить и продолжить обучение. См. документацию.
@@selfedu_rus Идея ясна, спасибо!
Спасибо! Все понятно. Остался вопрос. Как система узнала, что на выходом слое один выход? Или выходного слоя нет, а есть только один нейрон...?
Мы в модели прописали: Dense(units=1, ...) здесь units - это число нейронов слоя (он единственный). На него поступает вектор входного сигнала, на выходе формируется ответ.
Спасибо за видео!
Замечу лишь не по теме, что ассемблер - это не машинный код.
А что мне дальше учить, что бы идти дальше после этого курса?
По поводу видеокарты, у кого стоит какая-нибудь RTX, хочется затестить, но вы на Windows
Как человек, который потратил день, пытаясь установить все на Windows, лучше установите Docker, передайте код через -v и используйте образ tensorflow:latest-gpu
В официальной документации TensorFlow есть руководство
Но именно эту задачу процессор прогоняет быстрее
А вот код из 14-го урока видеокарта гораздо быстрее прогонит
Пока логику не понял, если знаете, подскажите, пожалуйста
У меня получилось, что идеальное количество поколений лежит в районе от 600 до 800. Там значения веса(и вывода) практически перестают меняться
Привет, у меня слишком много зависимых пакетов при установки библиотек, то есть некоторые пакеты(по новее) не совместимы с tensorflow 2.5.0. Я пошёл устанавливать пакеты совместимые с tensorflow, то есть старые версии и у меня получилось установить grpcio, а остальные блокируются к установки прося установить другие пакеты связаные вместе с ними. Мне придётся всё по этапно откатывать или есть более простое решение?
Да, создайте виртуальное окружение для tensorflow и туда все установите с нужными версиями.
Добрый день! Не могу установить tensorflow в PyCharm. При импорте выдает ошибку. Есть какие-то нюансы, которые не были изложены в видео?
Да, возможно, на каждой системе проявляются свои нюансы установки. При ошибках лучше в инете искать там, как правило, уже имеются ответы.
Скорей всего у вас как и у меня старый проц не поддерживающий нужные наборы инструкций. Необходимо поставить python 3.7 + tensorflow 1.15
Кто знает, на каких версиях Tensorflow и Keras написаны примеры? В нашем 2024-м код уже не работает - в новых версиях другой порядок создания слоёв в model :(
есть такое, увы...
@@selfedu_rus tensorflow 2.12.0. Он же подтягивает за собой keras 2.12.0.
А вот tf-nightly ставить не стоит. И без него пока всё работает. А с ним - вылазят ошибки, видимо из-за версий, лень разбираться.
P.S. Это всё не избавляет от необходимости изучать новый keras :)
А можно спросить, если я сделал какую-то нейонку, ее обучил и хочу использовать то как сделать что-бы она не обучалась заново? Как сохранить полученную сеть?
model.save_weights() и model.load_weights()
Благодарю за уроки! А есть/будут видео о выводе моделей в продакшн?
Сейчас по ML делаю. После будет видно. Жизнь меняется на глазах ))
@@selfedu_rus по ML я смотрю) спасибо, как всегда на высоте!
Здравствуйте! Никаких слов не хватит, чтобы выразить всё моё восхищение Вашим контентом! Огромное Вам спасибо!
После реализации нейронной сети из видео мне захотелось аналогичным образом восстановить функцию для нелинейной зависимости (y=x^2), но после многочисленных экспериментов с количеством слоёв, функций активаций, оптимизаторов ничего не вышло(
Подскажите, пожалуйста, есть ли какая-то архитектура для решения такой задачи?
Спасибо ещё раз:)
Спасибо! Это задача регрессии. Здесь нужно вначале сформировать обучающую выборку (множество значений x и выходных значений y), а затем, на вход обычного полносвязного слоя подать вектор входных данных в виде, следующих признаков vector_x = [x, x^2, x^3, x^4] (это, как пример). Так часто делают, когда нужно выполнить аппроксимацию функции (в данном случае это будет полином 4-й степени). В процессе обучения коэффициенты перед всеми иксами кроме x^2 должны практически обнулиться и у вас получится аппроксимация. (Сеть берите очень простую - один скрытый слой, на выходе один нейрон и все)
А вообще, для таких задач НС не используют - слишком простые для них. Здесь обычный метод наименьших квадратов и все.
@@selfedu_rus Огромное спасибо за ответ!
Получается второе значение при вызове метода get_weights это весовой коэф. bias?
get_weights() возвращает все коэффициенты модели, либо слоя (если вызвать у слоя)
У кого не хотела устанавливаться библиотека, я решил проблему так:
1. Проверьте версии tensorflow и tf-nightly (Они должны быть одинаковыми, также обратите внимание на ошибку после установки tf-nightly)
2. Если версии расходятся, то попробуйте удалить и переустановить оба пакета (-pip uninstall tanserflow --upgrade) (-pip install tf-nightly --upgrade)
3. Также можете попробовать (-pip install tanserflow --upgrade) (-pip install tf-nightly --upgrade)
4. Если версии сошлись, то все должно работать, у меня сначала pycharm установил не ту версию tf-nightly
Удачи!
А какая вообще версия tensorflow должна быть, чтобы туториал работал?
У меня постоянно какие-то ошибки вылезают :(
Сейчас версия стоит 2.12
спасибо, касательно одинаковых версий tensorflow и tf-nightly все заработало только после даунгрейда tf-nightly до текущей версии tensorflow 2.14 Плюс последний импорт у меня взлетел в виде from keras.layers import Dense.
Попробовал сделать данный пример использую библиотеку keras и полностью написал сам. И заметил, что если задавать коэф. сходимости равный 1 и нормализовать выходные данные, то обучение происходит в разы быстрее и точнее для данного примера и примера, который с девочкой. Почему так?
да, это может так получилось именно для данного примера (повезло) и для выбранных функций активаций, в других ситуациях может быть совсем по другому ))
Добрый день!
Я правильно понимаю, что этот пример нужен был только для того, чтобы показать как работает Керас?
Ведь для решения можно было написать простую функцию.
да, верно
ERROR: Could not find a version that satisfies the requirement tensorflow
ERROR: No matching distribution found for tensorflow
ERROR: Could not find a version that satisfies the requirement tf-nightly
ERROR: No matching distribution found for tf-nightly
помогите!
Нужен пайтон 3.8.*, не выше!
9:55 Вопрос, почему нейрон bias вообще существует? И почему он создаётся автоматически? В других моделях я не встречал его. Без него никак?
он служит для смещения разделяющей гиперплоскости, без bias НС в общем будет работать неверно
@@selfedu_rus Спасибо!
у меня ругается на строку from tensorflow import keras , перепробовал и Python 3.7 b и python 3.8 , выдает сообщение : for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.
Пробовал загуглить эту ошибку, там много сообщений на эту тему. Вам нужно самостоятельно это изучить и разобраться. Со стороны однозначно не ответить.
А как эту нейронную сеть использовать в WIndows? Скомпилировать в exe и обращаться к нему? Я делаю программу на Delphi и хочу использовать в ней нейронку. Пожелания не программировать на Delphi - не надо, у меня на нём проект отлично и быстро работат.
здесь главное веса - результат обучения, а реализовать сеть - элементарно на любом языке программирования
@@selfedu_rus Ну я так и подумал, что надо свою сеть писать, жаль что нельзя также быстро её написать как на Keras
А может один нейрон принимать вход из двух чисел? Например:
Входные данные = np.matrix[[180, 60], [160, 50]]
Выходные данные= np.array[1, 0]
строгих ограничений на диапазон входных и выходных значений нет
а как можно будет подать эти два числа на model. predict?
можете посоветовать пожалуйста, у меня не получается
Насколько я знаю, для работы tensorflow помимо CUDA ещё нужен вспомогательный cuDNN
да, верно, его нужно отдельно устанавливать
Из-за того что не установлена cuDNN может возникнуть ошибки?
кстати по керас есть книга у его создателя, Франсуа Шолле
Спасибо!
Очень интересно.А если эти библиотеки не устанавливаются ? Я делал
# Requires the latest pip
pip install --upgrade pip
# Current stable release for CPU and GPU
pip install tensorflow
# Or try the preview build (unstable)
pip install tf-nightly
все равно ошибка
ОШИБКА: не удалось найти версию, удовлетворяющую тензорному потоку требований (из версий: нет)
ОШИБКА: не найдено подходящего распределения для тензорного потока
Что это значит?
СПАСИБО.
Tensorflow постоянно меняется и сейчас по умолчанию использует GPU для распараллеливания. Может здесь ошибка, а может в чем-то другом, сложно сказать. Как вариант, можно воспользоваться colab.research.google.com - колабораторией гугла и там все делать
@@selfedu_rus СПАСИБО
Для тензора необходима 64 битная версия Python + не старые процы поддерживающие минимум AVX
вообще не понятно как установить TensorFlow
Каковы мои шансы за две недели разобраться и обучить сеть различать кошек и собак? Если я не доучился два курса до программиста, 15 лет назад. В универе была и высшая математика, и теория вероятностей и дискретная математика.. БД, программирование на паскале и С++.. и вот я решил самодоучиться на программиста, и меня неожиданно пригласили именно на джуниорскую должность в области ML. А за плечами всего 4 курса питона и SQL с Linux. Навыки пайчарма, Докера, малы опыт НамПи мне не сильно помогут.
Автор, что порекомендуете следующим после этого курса из вашего ассортимента изучать? Я намерен завершить проект, даже если не успею в срок. Извините, имени не знаю.
подскажите, а что с сайтом? упал и не работает
Проблемы на стороне хостера - скоро заработает!
@@selfedu_rus спасибо за вашу работу и видео! Подскажите, по pytorch есть ли в планах записать обзоры и примеры настроки нс?
@@dmaximenko пока незнаю, сейчас голова занята курсом по Python ))
И это всё можно скомпилировать в apk?
То есть для Android? В принципе, можно создать такое приложение, но обычно Python + Keras используют для задач исследования, а реализацию делают на языках С++, Java.
@@selfedu_rus подскажите пож-ста, где можно посмотреть простую реализацию на java? а еще лучше урок с реализацией запишите ))) (простите за наглость)
но "куда" не идет на амд
можно и без нее
Не понятно, зачем устанавливать и стабильную версию TensorFlow и его ночную сборку. Во-первых, они могут быть не совместимы (например, разработчики начали использовать новую библиотеку), и тогда придётся разруливать зависимости. Во-вторых, ночная сборка имеет смысл только в том случае, если очень нужны новые функции, как минус ночная сборка может работать не стабильно, например, потому что не была в полном объёме протестирована.
Огромное спасибо за простой и понятный урок! Есть вопрос. Есть ли какой-нибудь общий алгоритм для нахождения необходимого количества нейронов?
Нет, это одна из теоретических проблем НС, точнее, как для многослойных НС на каждом слое выбрать нужное количество нейронов.
ох уж єта компилляция python кода 😅
Не видно изображения- нет четкости.
Похоже keras по удобнее pytorch. Да и примеров для него больше
Один из самых популярных + официальный бэкенд для Tensorflow
А зачем тут нужно писать нейронку?
Не легче
а = float(input())
b = a * 1.8 + 32
print(b)
? Или просто для примера ?
Легче, но плейлист называется "нейросети на Python", а не "базовый python"
Для тех, у кого проблемы с установкой TF на свой ПК:
Мне вот такое решение помогло:
ua-cam.com/video/5Ym-dOS9ssA/v-deo.html
Если у кого ошибка формата
ValueError: Could not interpret optimizer identifier:
Тогда -
Нужно вместо: model = keras.Sequential()
Использовать: model = tf.keras.Sequential()
Предварительно импортировав тензорфлоу: import tensorflow as tf
У меня вот такая ошибка возникает:
module 'keras.api._v2.keras' has no attribute 'optimizer'
у меня выдает 2 ошибки в строке from tensorflow.keras.layers import Dense: 1 - Cannot find reference 'keras' in '__init__.py', 2 - Unresolved reference 'Dense', что это может значить (я нуб в питоне, больно не бейте, только начинаю смотреть уроки)
Я так импортировал, все заработало:
import numpy as np
import matplotlib.pyplot as plt
from tensorflow import keras
from keras.src.layers.core.dense import Dense
почему после установки пакета тензор флоу и тс-найтли не работает строка from tensorflow.keras.layers import Dense ? как это можно исправить?
Решил ошибку?
попробуйте from keras.layers import Dense