Cómo la API en lenguaje máquina de Keras facilita TensorFlow

Cómo la API en lenguaje máquina de Keras facilita TensorFlow

  • Inteligencia artificial
6 min de lectura Actualizado Aug 3, 2018

Puntos clave: Keras están un framework en Python que simplifica la construcción de redes neuronales con TensorFlow, mejorando la facilidad de utiliza para tareas de aprendizaje automático. Se centra en el desarrollo y ejecución de modelos para problemas de clasificación.

  • Keras opera en TensorFlow, cuDNN y CNTK.
  • Simplifica la implementación de soluciones de aprendizaje automático.

Keras están un framework de Python diseñado para Haz más fácil trabajar con Tensorflow (también escrito en Python). Construye redes neuronales que, por supuesto, son utilizan para problemas de clasificación. El problema de ejemplo que aparece a continuación están clasificación binaria. te puedes encontrar el código aquí. El problema de clasificación binaria aquí están determinar si un cliente comprará algo dado 14 funcionalidades diferentes. te puede Ve los datos aquí.

Los keras pueden funcionar encima de:

  • TensorFlow
  • cuDNN
  • CNTK

Aquí utilizamos Tensorflow. Así que instala Aconda y luego ejecuta estos comandos para instalar el resto.

El Código

    conda install theano
conda install tensorflow
conda install keras

En el código de abajo, tenemos un dataframe de forma (673,14), es decir, 673 filas y 14 columnas de características. Tomamos las columnas llamadas Buy y utiliza eso como etiquetas. te puede utiliza los métodos Keras con dataframes, numpy arrays o Tensors.

Declaramos nuestro modelo como Secuencial. Estos son un montón de capas.

Le decimos a Keras que devuelva las métricas de precisión = ['precisión'].

    import tensorflow as tf
from keras.models import Sequential
import pandas as pd
from keras.layers import Dense

url = 'https://raw.githubusercontent.com/werowe/
logisticRegressionBestModel/master/KidCreative.csv'

data = pd.read_csv(url, delimiter=',')

labels=data['Buy']
features = data.iloc[:,2:16]

model = Sequential()

model.add(Dense(units=64, activation='relu', input_dim=1))
model.add(Dense(units=14, activation='softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])

model.fit(labels, features,
          batch_size=12,
          epochs=10,
          verbose=1,
          validation_data=(labels, features))
          
model.evaluate(labels, features, verbose=0)

model.summary()

La salida es así. Como te puede Ve ejecutó el optimizador SGD (gradiente estándar de descenso) y categorical_crossentropy 10 veces, ya que establecimos las épocas en 10. Como usamos los mismos datos para entrenar y evaluar, Obtén una precisión de 0,9866. En utiliza real, dividiríamos los datos de entrada en datos de entrenamiento y prueba, siguiendo la convención estándar. La pérdida están 362,1225. Podríamos haber usado mse (error cuadrático medio), pero usamos categorical_crossentropy. El objetivo del modelo (en este caso sgd) están minimizar la función de pérdida, es decir, la diferencia entre los valores real y predicho.

    rain on 673 samples, validate on 673 samples
Epoch 1/10
2018-07-26 08:43:32.122722: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
673/673 [==============================] - 0s 494us/step - loss: 1679.5777 - acc: 0.9851 - val_loss: 362.1225 - val_acc: 0.9866
Epoch 2/10
673/673 [==============================] - 0s 233us/step - loss: 362.1225 - acc: 0.9866 - val_loss: 362.1225 - val_acc: 0.9866
Epoch 3/10
673/673 [==============================] - 0s 218us/step - loss: 362.1225 - acc: 0.9866 - val_loss: 362.1225 - val_acc: 0.9866
Epoch 4/10
673/673 [==============================] - 0s 208us/step - loss: 362.1225 - acc: 0.9866 - val_loss: 362.1225 - val_acc: 0.9866
Epoch 5/10
673/673 [==============================] - 0s 213us/step - loss: 362.1225 - acc: 0.9866 - val_loss: 362.1225 - val_acc: 0.9866
Epoch 6/10
673/673 [==============================] - 0s 212us/step - loss: 362.1225 - acc: 0.9866 - val_loss: 362.1225 - val_acc: 0.9866
Epoch 7/10
673/673 [==============================] - 0s 216us/step - loss: 362.1225 - acc: 0.9866 - val_loss: 362.1225 - val_acc: 0.9866
Epoch 8/10
673/673 [==============================] - 0s 218us/step - loss: 362.1225 - acc: 0.9866 - val_loss: 362.1225 - val_acc: 0.9866
Epoch 9/10
673/673 [==============================] - 0s 228us/step - loss: 362.1225 - acc: 0.9866 - val_loss: 362.1225 - val_acc: 0.9866
Epoch 10/10
673/673 [==============================] - 0s 239us/step - loss: 362.1225 - acc: 0.9866 - val_loss: 362.1225 - val_acc: 0.9866

>>>           
... model.evaluate(labels, features, verbose=0)
[362.1224654085746, 0.986627043090639]
>>> 
>>> model.summary()
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_1 (Dense)              (None, 64)                128       
_________________________________________________________________
dense_2 (Dense)              (None, 14)                910       
=================================================================
Total params: 1,038
Trainable params: 1,038
Non-trainable params: 0

Ahora te puede utiliza el método predict() para Haz alguna predicción sobre si una persona están probable que compre este producto o no.

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de Inteligencia artificial

¿Te interesa saber más de BMC?

El Brief están nuestro correo mensual sobre el mainframe y la orquestación empresarial: investigación, historias de clientes, noticias de productos, eventos.

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Tú te has suscrito a The Brief

El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.