Keras – установка и первое знакомство с нейросетями на Python | #7

Posted by


Keras – это библиотека глубокого обучения, написанная на Python, которая предоставляет пользователю простой и удобный интерфейс для построения нейронных сетей. Она позволяет легко создавать и обучать нейронные сети, а также проводить исследования в области искусственного интеллекта и глубокого обучения.

В этом руководстве мы рассмотрим, как установить Keras на вашем компьютере и создать первую нейронную сеть на Python.

Установка Keras

Для установки Keras вам потребуется установить Python и установщик пакетов pip, если у вас их еще нет. Для начала откройте терминал или командную строку и выполните следующие команды:

  1. Установите TensorFlow, базовую библиотеку, на которой работает Keras:
pip install tensorflow
  1. Установите саму библиотеку Keras:
pip install keras

После завершения установки вы можете начать использовать Keras для создания нейронных сетей на Python.

Первое знакомство с Keras

Давайте создадим простую нейронную сеть с одним скрытым слоем, которая будет классифицировать изображения из набора данных MNIST (набор данных рукописных цифр).

  1. Импортируйте необходимые библиотеки:
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.datasets import mnist
from keras.utils import to_categorical
  1. Загрузите данные:
(x_train, y_train), (x_test, y_test) = mnist.load_data()
  1. Предобработайте данные:
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255

y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
  1. Создайте модель нейронной сети:
model = Sequential()
model.add(Flatten(input_shape=(28, 28)))
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))
  1. Скомпилируйте модель:
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
  1. Обучите модель:
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_data=(x_test, y_test))

После обучения можно протестировать модель на тестовых данных и посмотреть ее точность:

loss, accuracy = model.evaluate(x_test, y_test)
print(f'Test loss: {loss}, Test accuracy: {accuracy}')

Это лишь простой пример того, как создать нейронную сеть с помощью Keras. Библиотека предоставляет более широкие возможности для настройки моделей, добавления различных слоев, использования предварительно обученных моделей и многое другое.

Мы рекомендуем ознакомиться с документацией Keras и провести больше экспериментов, чтобы лучше понять, как работать с этой мощной библиотекой для глубокого обучения.

0 0 votes
Article Rating
28 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@Pingvinok
1 month ago

Очень полезно, спасибо

@tonyhamster6742
1 month ago

Где взялась цифра 255?
x_train = x_train / 255

x_test = x_test / 255

@PhyzmatClass
1 month ago

Скажите, а эта программа при каждом новом запуске не будет заново обучаться? Вообще, если мы пишем на каком-либо языке нейросеть, то ведь надо как-то отсечь ту часть в которой обучаем от остальной, так сказать, рабочей части? Иначе каждый раз будет запускаться обучение?

@PhyzmatClass
1 month ago

Что означает dtype=float32? Здесь 32 как-то связана с тем, что 32 это смещение?

@ИльяСтепанов-о9е
1 month ago

спасибо!

@sergeygrebenyuk6172
1 month ago

Кто знает, на каких версиях Tensorflow и Keras написаны примеры? В нашем 2024-м код уже не работает – в новых версиях другой порядок создания слоёв в model 🙁

@dima_zero
1 month ago

По поводу видеокарты, у кого стоит какая-нибудь RTX, хочется затестить, но вы на Windows
Как человек, который потратил день, пытаясь установить все на Windows, лучше установите Docker, передайте код через -v и используйте образ tensorflow:latest-gpu
В официальной документации TensorFlow есть руководство
Но именно эту задачу процессор прогоняет быстрее
А вот код из 14-го урока видеокарта гораздо быстрее прогонит
Пока логику не понял, если знаете, подскажите, пожалуйста

@dima_zero
1 month ago

На новых версиях надо менять
model.predict([100])
На
model.predict(np.array([100]))

@RoMKiSS1
1 month ago

Не знаю Автор ведёшь ли ты ещё свой канал, но знай, что ты очень талантливый человек! Хочу написать виртуального помошника по работе на основе нейросетей и благодаря тебе есть надежда, что у меня всё получится 🙂 Спасибо тебе Автор и с Наступающиим 🙂

@artemgulyaev4192
1 month ago

у меня выдает 2 ошибки в строке from tensorflow.keras.layers import Dense: 1 – Cannot find reference 'keras' in '__init__.py', 2 – Unresolved reference 'Dense', что это может значить (я нуб в питоне, больно не бейте, только начинаю смотреть уроки)

@ЮрийСтаростин-я1щ
1 month ago

Не видно изображения- нет четкости.

@ChelSammi9837
1 month ago

в PyCharm пишет при установке Tensorflow о том что не хватает места , хотя места достаточно.
но слава Богу есть коллаборотория от Google

@mormonteg4073
1 month ago

Замечательный урок, но, изучив перед этим нумпай, и запомнив, что стоит выбирать самые разные данные в выборке для более продуктивного обучения, я немного изменил логику получения выборки:
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)]

@creator7822
1 month ago

Автор, спасибо большое дошел на урок по бэк керас и бланр у тебя есть и этот курс

@lehasaturn122
1 month ago

полностью повторяю и код и ошибка TypeError: compile() missing 1 required positional argument: 'self', может кто знает с чем связано? я устал искать решение…

@virn_17
1 month ago

А что мне дальше учить, что бы идти дальше после этого курса?

@SexMinister-s2h
1 month ago

Капец ну и канал. Спасибо всем высшим существам, что создают таких продуктивных альтруистов. Автору мой поклон

@user_userovich
1 month ago

Огромное спасибо за простой и понятный урок! Есть вопрос. Есть ли какой-нибудь общий алгоритм для нахождения необходимого количества нейронов?

@АртурЗарипов-ю9п
1 month ago

Большое спасибо!

@fruktiliyagoda
1 month ago

У меня получилось, что идеальное количество поколений лежит в районе от 600 до 800. Там значения веса(и вывода) практически перестают меняться