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.
- 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.
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.
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.
Comentarios
Publicar un comentario