Керас - Модули

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

Доступные модули

Давайте сначала посмотрим на список модулей, доступных в Keras.

  • Initializers- Предоставляет список функций инициализаторов. Мы можем узнать об этом подробнее в главе о слоях Keras . на этапе создания модели машинного обучения.

  • Regularizers- Предоставляет список функций регуляризаторов. Подробнее об этом можно узнать в главе « Слои Кераса».

  • Constraints- Предоставляет список функций ограничений. Подробнее об этом можно узнать в главе « Слои Кераса».

  • Activations- Предоставляет список функций активатора. Подробнее об этом можно узнать в главе « Слои Кераса».

  • Losses- Предоставляет список функций потерь. Мы можем узнать об этом подробно в главе « Обучение модели» .

  • Metrics- Предоставляет список функций метрик. Мы можем узнать об этом подробно в главе « Обучение модели» .

  • Optimizers- Предоставляет список функций оптимизатора. Мы можем узнать об этом подробно в главе « Обучение модели» .

  • Callback- Предоставляет список функций обратного вызова. Мы можем использовать его во время процесса обучения для печати промежуточных данных, а также для остановки самого обучения (EarlyStopping метод) на основе некоторого условия.

  • Text processing- Предоставляет функции для преобразования текста в массив NumPy, подходящий для машинного обучения. Мы можем использовать его на этапе подготовки данных машинного обучения.

  • Image processing- Предоставляет функции для преобразования изображений в массив NumPy, подходящий для машинного обучения. Мы можем использовать его на этапе подготовки данных машинного обучения.

  • Sequence processing- Предоставляет функции для создания временных данных из заданных входных данных. Мы можем использовать его на этапе подготовки данных машинного обучения.

  • Backend- Обеспечивает функцию внутренней библиотеки, такой как TensorFlow и Theano .

  • Utilities - Предоставляет множество полезных функций, полезных при глубоком обучении.

Покажи нам backend модуль и utils модель в этой главе.

бэкэнд- модуль

backend moduleиспользуется для внутренних операций keras. По умолчанию keras работает поверх серверной части TensorFlow. Если хотите, можете переключиться на другие серверы, такие как Theano или CNTK. Конфигурация бэкэнда по умолчанию определяется внутри вашего корневого каталога в файле .keras / keras.json.

Бэкэнд- модуль Keras можно импортировать, используя приведенный ниже код

>>> from keras import backend as k

Если мы используем бэкэнд по умолчанию TensorFlow , то функция ниже возвращает информацию на основе TensorFlow, как указано ниже:

>>> k.backend() 
'tensorflow'
>>> k.epsilon() 
1e-07
>>> k.image_data_format() 
'channels_last'
>>> k.floatx() 
'float32'

Давайте вкратце разберемся с некоторыми важными бэкэнд-функциями, используемыми для анализа данных -

get_uid ()

Это идентификатор графика по умолчанию. Это определено ниже -

>>> k.get_uid(prefix='') 
1 
>>> k.get_uid(prefix='') 2

reset_uids

Используется для сброса значения uid.

>>> k.reset_uids()

Теперь снова выполните get_uid () . Это будет сброшено и снова изменится на 1.

>>> k.get_uid(prefix='') 
1

заполнитель

Он используется для создания тензора заполнителя. Ниже показан простой заполнитель для хранения трехмерной формы -

>>> data = k.placeholder(shape = (1,3,3)) 
>>> data 
<tf.Tensor 'Placeholder_9:0' shape = (1, 3, 3) dtype = float32> 

If you use int_shape(), it will show the shape. 

>>> k.int_shape(data) (1, 3, 3)

точка

Он используется для умножения двух тензоров. Предположим, что a и b - два тензора, а c будет результатом умножения ab. Предположим, что форма - (4,2), а форма b - (2,3). Это определено ниже,

>>> a = k.placeholder(shape = (4,2)) 
>>> b = k.placeholder(shape = (2,3)) 
>>> c = k.dot(a,b) 
>>> c 
<tf.Tensor 'MatMul_3:0' shape = (4, 3) dtype = float32> 
>>>

те

Он используется для инициализации всех как one значение.

>>> res = k.ones(shape = (2,2)) 

#print the value 

>>> k.eval(res) 
array([[1., 1.], [1., 1.]], dtype = float32)

batch_dot

Он используется для пакетного произведения двух данных. Входной размер должен быть 2 или выше. Это показано ниже -

>>> a_batch = k.ones(shape = (2,3)) 
>>> b_batch = k.ones(shape = (3,2)) 
>>> c_batch = k.batch_dot(a_batch,b_batch) 
>>> c_batch 
<tf.Tensor 'ExpandDims:0' shape = (2, 1) dtype = float32>

переменная

Он используется для инициализации переменной. Выполним простую операцию транспонирования в этой переменной.

>>> data = k.variable([[10,20,30,40],[50,60,70,80]]) 
#variable initialized here 
>>> result = k.transpose(data) 
>>> print(result) 
Tensor("transpose_6:0", shape = (4, 2), dtype = float32) 
>>> print(k.eval(result)) 
   [[10. 50.] 
   [20. 60.] 
   [30. 70.] 
   [40. 80.]]

Если вы хотите получить доступ из numpy -

>>> data = np.array([[10,20,30,40],[50,60,70,80]]) 

>>> print(np.transpose(data)) 
   [[10 50] 
   [20 60] 
   [30 70] 
   [40 80]] 

>>> res = k.variable(value = data) 
>>> print(res) 
<tf.Variable 'Variable_7:0' shape = (2, 4) dtype = float32_ref>

is_sparse (тензор)

Он используется для проверки, является ли тензор разреженным.

>>> a = k.placeholder((2, 2), sparse=True) 

>>> print(a) SparseTensor(indices =       
   Tensor("Placeholder_8:0", 
   shape = (?, 2), dtype = int64), 
values = Tensor("Placeholder_7:0", shape = (?,), 
dtype = float32), dense_shape = Tensor("Const:0", shape = (2,), dtype = int64)) 

>>> print(k.is_sparse(a)) True

to_dense ()

Он используется для преобразования разреженного в плотный.

>>> b = k.to_dense(a) 
>>> print(b) Tensor("SparseToDense:0", shape = (2, 2), dtype = float32) 
>>> print(k.is_sparse(b)) False

random_uniform_variable

Он используется для инициализации с помощью uniform distribution концепция.

k.random_uniform_variable(shape, mean, scale)

Вот,

  • shape - обозначает строки и столбцы в формате кортежей.

  • mean - среднее значение равномерного распределения.

  • scale - стандартное отклонение равномерного распределения.

Давайте посмотрим на приведенный ниже пример использования -

>>> a = k.random_uniform_variable(shape = (2, 3), low=0, high = 1) 
>>> b = k. random_uniform_variable(shape = (3,2), low = 0, high = 1) 
>>> c = k.dot(a, b) 
>>> k.int_shape(c) 
(2, 2)

модуль utils

utilsпредоставляет полезные служебные функции для глубокого обучения. Некоторые методы, предоставляемыеutils модуль выглядит следующим образом -

HDF5Matrix

Он используется для представления входных данных в формате HDF5.

from keras.utils import HDF5Matrix data = HDF5Matrix('data.hdf5', 'data')

to_categorical

Он используется для преобразования вектора классов в матрицу двоичных классов.

>>> from keras.utils import to_categorical 
>>> labels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> to_categorical(labels) 
array([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
   [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], 
   [0., 0., 1., 0., 0., 0., 0., 0., 0., 0.], 
   [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.], 
   [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], 
   [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], 
   [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], 
   [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], 
   [0., 0., 0., 0., 0., 0., 0., 0., 1., 0.], 
   [0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]], dtype = float32)
>>> from keras.utils import normalize 
>>> normalize([1, 2, 3, 4, 5]) 
array([[0.13483997, 0.26967994, 0.40451992, 0.53935989, 0.67419986]])

print_summary

Он используется для печати сводки модели.

from keras.utils import print_summary print_summary(model)

plot_model

Он используется для создания представления модели в точечном формате и сохранения его в файл.

from keras.utils import plot_model 
plot_model(model,to_file = 'image.png')

Этот plot_model создаст изображение, чтобы понять производительность модели.