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

Creating an AEM Application using Adobe's archetype version 23

In this tutorial, I will show how to use Adobe's archetype to create an AEM application using version 23rd and up, above is the vid and below you will find some useful notes. 1. Pre-reqs Have access to an Adobe Experience Manager instance. You will need aem 6.3 Service Pack 3, AEM 6.4 or AEM 6.5 2. Creating an AEM application using archetype version 23 Look for the .m2 folder inside your user for your particular Operating System

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.

Create a custom AEM workflow process step with a dialog

In this tutorial I talk about how to create a custom workflow step process with an additional dialog for configuring it, above is the vid and below you will find some useful notes. 1. Pre-reqs Have access to an Adobe Experience Manager instance. 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. What is an AEM Workflow and workflow model Workflows allow you to automate different tasks inside AEM by defining a s