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 ...

Brighten Up Your AEM Assets: How to Configure Default Backgrounds and Transparent Modes in Adobe Dynamic Media

Introduction The Importance of a Good Background Defining Your Default Background in AEM Defining Your Default Background in Dynamic Media Classic Transparent Images with fmt=png-alpha Explicit Background Colors with ?bgc Final Thoughts Introduction Welcome to our deep dive into the wonderful world of image backgrounds! In this post, we're going to explore how to configure Dynamic Media Classic in Adobe Experience Manager (AEM) to not only define a default background image but also how to get your images to pop with ...

Exposing Reactjs component methods to Javascript or non-reactjs applications

blog-static-generator-new If you want to integrate your javascript or non-reactjs application with a reactjs app and be able to access reactjs components and call their methods to execute actions or get information out of them, 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 node.js installed 2. Exposing React JS to Javascript or non-reactjs applications ...