Keras - Módulos
Como aprendimos anteriormente, los módulos de Keras contienen clases, funciones y variables predefinidas que son útiles para el algoritmo de aprendizaje profundo. Aprendamos los módulos proporcionados por Keras en este capítulo.
Módulos disponibles
Veamos primero la lista de módulos disponibles en Keras.
Initializers- Proporciona una lista de funciones de inicializadores. Podemos aprenderlo en detalle en el capítulo de capas de Keras . durante la fase de creación de modelos de aprendizaje automático.
Regularizers- Proporciona una lista de funciones de regularizadores. Podemos aprenderlo en detalle en el capítulo Capas de Keras .
Constraints- Proporciona una función de lista de restricciones. Podemos aprenderlo en detalle en el capítulo Capas de Keras .
Activations- Proporciona una lista de funciones de activador. Podemos aprenderlo en detalle en el capítulo Capas de Keras .
Losses- Proporciona una lista de funciones de pérdida. Podemos aprenderlo en detalle en el capítulo Entrenamiento de modelos .
Metrics- Proporciona una lista de funciones de métricas. Podemos aprenderlo en detalle en el capítulo Entrenamiento de modelos .
Optimizers- Proporciona una lista de funciones optimizadoras. Podemos aprenderlo en detalle en el capítulo Entrenamiento de modelos .
Callback- Proporciona una lista de funciones de devolución de llamada. Podemos usarlo durante el proceso de entrenamiento para imprimir los datos intermedios, así como para detener el entrenamiento en sí (EarlyStopping método) basado en alguna condición.
Text processing- Proporciona funciones para convertir texto en una matriz NumPy adecuada para el aprendizaje automático. Podemos usarlo en la fase de preparación de datos del aprendizaje automático.
Image processing- Proporciona funciones para convertir imágenes en una matriz NumPy adecuada para el aprendizaje automático. Podemos usarlo en la fase de preparación de datos del aprendizaje automático.
Sequence processing- Proporciona funciones para generar datos basados en el tiempo a partir de los datos de entrada dados. Podemos usarlo en la fase de preparación de datos del aprendizaje automático.
Backend- Proporciona la función de la biblioteca de backend como TensorFlow y Theano .
Utilities - Proporciona una gran cantidad de funciones útiles en el aprendizaje profundo.
Dejanos ver backend módulo y utils modelo en este capítulo.
módulo de backend
backend modulese utiliza para las operaciones de backend de Keras. De forma predeterminada, keras se ejecuta sobre el backend de TensorFlow. Si lo desea, puede cambiar a otros backends como Theano o CNTK. La configuración de backend de Defualt se define dentro de su directorio raíz en el archivo .keras / keras.json.
El módulo backend de Keras se puede importar usando el siguiente código
>>> from keras import backend as k
Si usamos TensorFlow backend predeterminado , la siguiente función devuelve información basada en TensorFlow como se especifica a continuación:
>>> k.backend()
'tensorflow'
>>> k.epsilon()
1e-07
>>> k.image_data_format()
'channels_last'
>>> k.floatx()
'float32'
Entendamos brevemente algunas de las funciones de backend importantes utilizadas para el análisis de datos:
get_uid ()
Es el identificador del gráfico predeterminado. Se define a continuación:
>>> k.get_uid(prefix='')
1
>>> k.get_uid(prefix='') 2
reset_uids
Se utiliza restablece el valor de uid.
>>> k.reset_uids()
Ahora, vuelva a ejecutar get_uid () . Esto se restablecerá y volverá a cambiar a 1.
>>> k.get_uid(prefix='')
1
marcador de posición
Se utiliza instancia un tensor de marcador de posición. A continuación se muestra un marcador de posición simple para mantener la forma 3-D:
>>> 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)
punto
Se utiliza para multiplicar dos tensores. Considere que ayb son dos tensores yc será el resultado de multiplicar ab. Suponga que una forma es (4,2) y la forma b es (2,3). Se define a continuación,
>>> 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>
>>>
unos
Se usa para inicializar todo como one valor.
>>> res = k.ones(shape = (2,2))
#print the value
>>> k.eval(res)
array([[1., 1.], [1., 1.]], dtype = float32)
batch_dot
Se utiliza para realizar el producto de dos datos en lotes. La dimensión de entrada debe ser 2 o superior. Se muestra a continuación:
>>> 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>
variable
Se utiliza para inicializar una variable. Realicemos una operación de transposición simple en esta variable.
>>> 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.]]
Si desea acceder desde 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 (tensor)
Se utiliza para comprobar si el tensor es escaso o no.
>>> 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 ()
Se utiliza para convertir escaso en denso.
>>> b = k.to_dense(a)
>>> print(b) Tensor("SparseToDense:0", shape = (2, 2), dtype = float32)
>>> print(k.is_sparse(b)) False
variable_uniforme_aleatoria
Se usa para inicializar usando uniform distribution concepto.
k.random_uniform_variable(shape, mean, scale)
Aquí,
shape - denota las filas y columnas en formato de tuplas.
mean - media de distribución uniforme.
scale - desviación estándar de distribución uniforme.
Echemos un vistazo al uso de ejemplo a continuación:
>>> 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)
módulo utils
utilsproporciona una función de utilidades útiles para el aprendizaje profundo. Algunos de los métodos proporcionados porutils módulo es el siguiente:
HDF5Matrix
Se utiliza para representar los datos de entrada en formato HDF5.
from keras.utils import HDF5Matrix data = HDF5Matrix('data.hdf5', 'data')
to_categorical
Se utiliza para convertir el vector de clase en una matriz de clase binaria.
>>> 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
Se utiliza para imprimir el resumen del modelo.
from keras.utils import print_summary print_summary(model)
plot_model
Se utiliza para crear la representación del modelo en formato de puntos y guardarla en un archivo.
from keras.utils import plot_model
plot_model(model,to_file = 'image.png')
Esta plot_model generará una imagen para comprender el desempeño del modelo.