Ми використовуємо cookie-файли
Для оптимізації роботи нашого сайту ми використовуємо cookie-файли. Продовжуючи використовувати сайт, Ви погоджуєтеся з використанням cookie-файлів.
Новий дизайн
Панель керування
  • Русский
  • Українська
  • English
  • UAH
  • USD
  • RUB
  • EUR
  • 0-800-307-307 Гаряча лінія
  • +38 (044) 392-74-33 Київ
  • +38 (057) 728-39-00 Харків
  • +38 (056) 794-38-31 Дніпро
  • +38 (032) 229-58-93 Львів
  • +38 (048) 738-57-70 Одеса
  • +38(093) 170-15-42  Life
  • +38 (067) 400-88-44 Київстар
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7 (499) 348-28-61 Москва

Keras - Установка і настройка

  1. Як почати роботу з Keras?
  2. Установка Keras
  3. Завантаження даних з диска
  4. Визначення архітектури моделі Keras
  5. Підготовка моделі до роботи
  6. Приклад MNIST
  7. Підготовка данних

Якщо ви уважно стежите за технологічною сценою, ви напевно чули термін «глибоке навчання».

Ця технологія зробила революцію в штучному інтелекті, допомагаючи людству створювати машини і системи, про які раніше ми тільки мріяли. По суті, Deep Learning - це підсистема машинного навчання, в якій використовуються глибокі штучні нейронні мережі.

Простий у використанні і широко підтримуваний, Keras робить роботу з глибоким вивченням дуже зручною і ефективною.

Як почати роботу з Keras?

Глибокі нейронні мережі все більше входять в моду, але складність освоєння їх основних структур є серйозною перешкодою для використання багатьма розробниками, які погано знайомі з машинним навчанням.

Протягом 2010-2020 років було запропоновано кілька поліпшених і спрощених високорівневих API для побудови моделей нейронних мереж. Всі вони в цілому схожі, але демонструють значні відмінності при найближчому розгляді.

Keras - один з провідних API-інтерфейсів нейронних мереж високого рівня. Він написаний на Python і підтримує кілька внутрішніх обчислювальних движків нейронних мереж. Основна ідея розробки Keras - полегшити експерименти шляхом швидкого прототипування. Здатність перейти від ідеї до результату з найменшою можливою затримкою є ключем до гарних досліджень машинного інтелекту.

По суті - це просто Високорівнева бібліотека, побудована на основі Theano або TensorFlow. Keras надає API типу scikit-learn для побудови нейронних мереж. Розробники можуть використовувати Keras для швидкої побудови нейронних мереж, не турбуючись про математичних аспектах тензорною алгебри, чисельні методи і методи оптимізації.

Почати роботу з Keras без проблем може будь-який розробник, який вже мав справу із середовищем Python.

Установка Keras

Для початку роботи вам буде потрібно наступне встановлене програмне забезпечення:

  • мова Python 2.7+ (Python 3 також цілком підійде);
  • останню версію наукової бібліотеки SciPy з NumPy;
  • останню версію бібліотеки матриць Matplotlib – можна використовувати за бажанням, потрібна для візуалізації ресерч-аналізу даних;
  • останню версію бібліотеки чисельних обчислень Theano.

Далі встановіть пакет keras R з GitHub наступним чином:


Devtools :: install_github ( "rstudio / keras")

Інтерфейс Keras R за замовчуванням використовує серверний движок TensorFlow. Щоб встановити як базову бібліотеку Keras, так і бекенда TensorFlow, використовуйте функцію install_keras ():


library (keras)

install_keras ()

Це забезпечить вам стандартні установки Keras і TensorFlow на основі процесора. Якщо ви хочете більш індивідуальну установку, наприклад, бажаєте скористатися перевагами графічних процесорів NVIDIA, зверніться до документації по install_keras ().

Завантаження даних з диска

Спеціального способу завантаження даних в Keras з локального диска не існує, просто збережіть дані тесту і працюйте з ними у відповідній папці.


-- current directory 

-- data

|   --train

|    -- test

Якщо ваш потік каталогів такий, то для завантаження даних ви можете використовувати наступний код:


import os 

import numpy as np 

from keras.preprocessing import image



PATH = os.getcwd()



train_path = PATH+'/data/train/'

train_batch = os.listdir(train_path)

x_train = []



# if data are in form of images

for sample in train_data:

img_path = train_path+sample

x = image.load_img(img_path)...

Визначення архітектури моделі Keras

Базова структура даних Keras - це модель, спосіб організації шарів. У Keras є два основних типи моделей: послідовна модель і клас Model, який використовується з функціональним API. Найпростішим типом моделі є послідовна модель, лінійний стек шарів.

Послідовна модель являє собою лінійний стек шарів, і шари можна описати дуже просто.

Ось приклад з документації Keras, яка використовує model.add () для визначення двох щільних шарів в послідовної моделі:


import keras

from keras.models import Sequential

from keras.layers import Dense



#Create Sequential model with Dense layers, using the add method

model = Sequential()



#Dense implements the operation:

#        output = activation(dot(input, kernel) + bias)

#Units are the dimensionality of the output space for the layer,

#     which equals the number of hidden units

#Activation and loss functions may be specified by strings or classes

model.add(Dense(units=64, activation='relu', input_dim=100))

model.add(Dense(units=10, activation='softmax'))



#The compile method configures the model’s learning process

model.compile(loss='categorical_crossentropy',

              optimizer='sgd',

              metrics=['accuracy'])



#The fit method does the training in batches

# x_train and y_train are Numpy arrays --just like in the Scikit-Learn API.

model.fit(x_train, y_train, epochs=5, batch_size=32)



#The evaluate method calculates the losses and metrics

#     for the trained model

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)



#The predict method applies the trained model to inputs

#     to generate outputs

classes = model.predict(x_test, batch_size=128)

Варто також відзначити, як мало фактичного коду в реальному коді в порівнянні, скажімо, з низькорівневими API TensorFlow. Для кожного визначення рівня потрібно один рядок коду, для компіляції (визначення процесу навчання) потрібно один рядок коду, а для підбору (навчання), оцінки (розрахунку втрат і метрик) і прогнозування вихідних даних навченої моделі потрібно по одному рядку коду.

Підготовка моделі до роботи

Ми починаємо зі створення послідовної моделі, а потім додаємо шари за допомогою оператора pipe (%>%):


model <- keras_model_sequential() 

model %>% 

  layer_dense(units = 256, activation = 'relu', input_shape = c(784)) %>% 

  layer_dropout(rate = 0.4) %>% 

  layer_dense(units = 128, activation = 'relu') %>%

  layer_dropout(rate = 0.3) %>%

  layer_dense(units = 10, activation = 'softmax')

Аргумент input_shape для першого шару визначає форму вхідних даних (числовий вектор довжиною 784, що представляє зображення в градаціях сірого). Останній шар виводить числовий вектор довжиною 10 (ймовірності для кожної цифри), використовуючи функцію активації softmax.

Використовуйте функцію summary (), щоб надрукувати деталі моделі:


summary(model)



Model

___________________________________________________________________________

Layer (type)                        Output Shape Param #     

===================================================================

dense_1 (Dense)                     (None, 256) 200960      

___________________________________________________________________________

dropout_1 (Dropout)               (None, 256) 0           

___________________________________________________________________________

dense_2 (Dense)                     (None, 128) 32896       

___________________________________________________________________________

dropout_2 (Dropout)               (None, 128) 0           

___________________________________________________________________________

dense_3 (Dense)                     (None, 10) 1290        

===================================================================

Total params: 235,146

Trainable params: 235,146

Non-trainable params: 0

___________________________________________________________________________

Потім скомпілюйте модель з відповідною функцією втрат, оптимізатором і метриками:


model %>% compile(

  loss = 'categorical_crossentropy',

  optimizer = optimizer_rmsprop(),

  metrics = c('accuracy')

Розпізнавання зображень з використанням навченої моделі

Приклад MNIST

Ми можемо вивчити основи Keras, пройшовши простий приклад: розпізнавання рукописних цифр з набору даних MNIST.

MNIST складається з 28 x 28 px зображень в градаціях сірого, наприклад:

5 0 4 1

Набір даних також включає в себе мітки для кожного зображення, які вказують нам, яка це цифра. Наприклад, мітки для зображень вище 5, 0, 4 і 1.

Підготовка данних

Набір даних MNIST включений в Keras і доступний за допомогою функції dataset_mnist ().

Тут ми завантажуємо набір даних, потім створюємо змінні для наших тестових і навчальних даних:

library (keras)

mnist <- dataset_mnist ()

x_train <- mnist $ train $ x

y_train <- mnist $ train $ y

x_test <- mnist $ test $ x

y_test <- mnist $ test $ y

Дані x - це тривимірний масив (зображення, ширина, висота) значень відтінків сірого. Щоб підготувати дані для навчання, ми конвертуємо тривимірні масиви в матриці, змінюючи ширину і висоту в одному вимірі (28x28 зображень зведені в довжину 784 вектора).

Потім ми конвертуємо значення в градаціях сірого з цілих чисел в діапазоні від 0 до 255 в значення з плаваючою комою в діапазоні від 0 до 1:


# reshape

x_train <- array_reshape (x_train, c (nrow (x_train), 784))

x_test <- array_reshape (x_test, c (nrow (x_test), 784))

# rescale

x_train <- x_train / 255

x_test <- x_test / 255

Зверніть увагу, що ми використовуємо функцію array_reshape (), а не функцію dim <- () для зміни форми масиву. Це робиться для того, щоб дані інтерпретувалися з використанням семантики основних рядків (на відміну від семантики основних стовпців за умовчанням в R), що, в свою чергу, є сумісним з тим, як числові бібліотеки, що викликаються Keras, інтерпретують вимірювання масиву.

Дані y є цілочисельний вектор зі значеннями в діапазоні від 0 до 9.

Щоб підготувати ці дані до навчання, ми однозначно кодируем вектори в двійкові матриці класів, використовуючи функцію Keras to_categorical ():

y_train <- to_categorical (y_train, 10)

y_test <- to_categorical (y_test, 10)

Цей приклад показує, як реалізувати сверточное нейронну мережу з розпізнавання образів з Keras. Такі моделі дозволяють досягти більш високої точності, ніж стандартні повністю підключені мережі, а робота з ними займає зовсім небагато часу.

 


 

Замовляйте хостинг в компанії “Хостинг Україна”. У нас Ви зможете підібрати той пакет послуг, який максимально відповідатиме потребам вашого бізнесу.

Якісний і не дорогий SSD хостинг від 1$, VPS на SSD від 12$, Cloud (хмарний) хостинг від 3$, Хмарний VPS від 6$. Виділений сервер або dedicated server.

Просто виберіть домен, Хостинг та встановіть потрібну CMS в один клік.

Ми пропонуємо найкращий віртуальний хостинг для сайтів на Joomla, Wordpress та інших популярних CMS з підтримкою PHP, Perl, MySQL.

У нас цілодобова технічна підтримка, Яка допоможе вирішити будь-які запитання щодо хостингу або домену.

 


Тільки зареєстровані користувачі можуть залишати коментарі

Підпишіться на розсилку

Будемо надсилати анонси нових статей і корисні поради раз в тиждень

Приєднуйтесь до нас в соціальних мережах