Ir al contenido principal

How to import a Keras model into a Vue.js application using Tensorflow.Js

In this Tensorflow.js tutorial I will show how to create a really simple model using Keras, then convert the model and import it into a Vue.js app using tensorflow.js. Above is the vid and below you will find some of the steps followed.
  • There are two projects as show in the video, one written in python that trains the model using Keras, Tensorflow and other libraries. In that project there is also a dockerfile for the tensorflowjs_converter that will be used for converting the model for later use inside the javascript application.

  • And then there is a vue.js project that was created using the Tensorflow.js + Vue.js Starter Template that already has TF.js configured (If you want to see how I created that application you can read the Creating a Tensorflow.js Vue.js Simple Application In Javascript post plus video!).

  • Below are the most important parts from the video:

  1. 1.

    Pre-reqs

    • You need Anaconda with Keras and Tensorflow installed
    • Also node.js installed
      And docker installed (Optional!)
  2. 2.

    Keras/Tensorflow Python project

    • So first you need a model, in this case let's say that you created a model using Keras, you would then need to save it and finally transform it.
    • Create the model
        
      #%% Create the model
      def build_model(x_size, y_size):
          t_model = Sequential()
          t_model.add(Dense(x_size, input_shape=(x_size,)))
      
          t_model.compile(loss='mean_squared_error',
              optimizer='sgd',
              metrics=[metrics.mae])
          return(t_model)
      
      model = build_model(X_train.shape[1], y_train.shape[1])
        
      
    • Train the model
        
      history = model.fit(X_train, y_train,
          batch_size=batch_size,
          epochs=epochs,
          shuffle=True,
          verbose=2,
          validation_data=(X_test, y_test),
          callbacks=keras_callbacks)
        
      
    • And save the model
        
      model.save('./model/model.h5')
        
      
  3. 3.

    Convert the model using the tfjs Converter

    • If you have Docker installed, first build the image
        
      docker build -t tf-converter .
        
      
    • And finally use the tensorflow.js converter container giving it the path to the current keras model and the path for the converted model
        
      docker run -it --rm --name tf-converter -v "$(pwd)":/workdir tf-converter
                                            --input_format keras \
                                            ./model/-scaled-categorical/model.h5 \
                                            ./shared/model
        
      
    • If you don't have docker :(, you first need to install tensorflow.js
        
      pip install tensorflowjs
        
      
    • And then as before use the tensorflowjs_converter command
        
      tensorflowjs_converter --input_format keras \
                             ./model/-scaled-categorical/model.h5 \
                             ./shared/model
        
      
  4. 4.

    Vue.js + Tensorflow Javascript project

    • Load the model
        
      that.model = await tf.loadModel('/shared/model/model.json');
        
      
    • And then you can just take the inputs, transform them into a tensor and then predict the output
        
      
          predictValue(inputs) {
            const tfarray = tf.tensor2d(inputs, [1, inputs.length]);
            const prediction = this.model.predict(tfarray);
      
            prediction.print();
      
            return prediction.get(0, 0);
          }
        
      
  5. 5.

Comentarios

Entradas populares de este blog

How to copy files from and to a running Docker container

Sometimes you want to copy files to or from a container that doesn’t have a volume previously created, in this quick tips episode, you will learn how. Above is the vid and below you will find some useful notes. 1. Pre-reqs Have Docker installed 2. Start a Docker container For this video I will be using a Jenkins image as an example, so let’s first download it by using docker pull docker pull jenkins/jenkins:lts

How to create an AEM component using Reactjs

In this tutorial, I will show how to use use Adobe's archetype to create an AEM application with React.js support and also how to add a new React.js component so that it can be added into a page, above is the vid and below you will find some useful notes. In the second part we will see how to configure the Sling Model for the AEM React component. 1. Pre-reqs Have access to an Adobe Experience Manager instance. You will need aem 6.4 Service Pack 2 or newer. Have Maven installed, understand how it works and also understand how to use Adobe's archetype, you can watch my video about maven here: Creating an AEM application using Maven and Adobe's archetype 2.

Integrating Nodejs and Maven using The Maven Frontend Plugin

In this tutorial I show how to integrate nodejs with maven using the Maven Frontend Plugin, above is the vid and below you will find some useful notes. 1. Pre-reqs Have access to an Adobe Experience Manager instance if you want to install the AEM application and test it. The same pom configs shown here can be used for different types of applications Have Maven installed, understand how it works and also understand how to use Adobe's archetype, you can watch my video about maven here: Creating an AEM application using Maven and Adobe's archetype 2. Creating the base app