Flutter Firebase ML Custom Examples
Flutter Firebase ML Custom: How To Examples
In this tutorial, we will explore various examples of using the firebase_ml_custom
package in Flutter. The firebase_ml_custom
package allows us to use custom machine learning models in our Flutter applications, leveraging the power of Firebase ML.
Installation
To get started, add the firebase_ml_custom
package to your Flutter project by adding the following line to your pubspec.yaml
file:
dependencies:
firebase_ml_custom: ^0.6.0
Then, run flutter pub get
to fetch the package.
Example 1: Text Classification
In this example, we will use a custom machine learning model to classify text into different categories. We assume that you already have a trained model ready for text classification.
- Import the necessary packages:
import 'package:firebase_ml_custom/firebase_ml_custom.dart';
import 'package:firebase_ml_custom/firebase_ml_custom.dart' as custom_ml;
- Load your custom model:
FirebaseCustomRemoteModel remoteModel = FirebaseCustomRemoteModel('your_model_name');
FirebaseModelManager modelManager = FirebaseModelManager.instance;
modelManager.registerRemoteModel(remoteModel);
- Perform text classification:
FirebaseModelInterpreter interpreter = FirebaseModelInterpreter.instance;
FirebaseModelInputOutputOptions inputOutputOptions = FirebaseModelInputOutputOptions([
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, sequenceLength, 1]),
FirebaseModelIOOption(FirebaseModelDataType.INT32, [1])
], [
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses])
]);
FirebaseModelInput modelInput = FirebaseModelInput.fromData([yourInputData]);
FirebaseModelOutput modelOutput = FirebaseModelOutput(outputBuffers);
interpreter.run(
remoteModel: remoteModel,
inputs: modelInput,
inputOutputOptions: inputOutputOptions,
output: modelOutput,
);
- Process the output:
TensorBuffer outputBuffer = modelOutput.getOutput(0);
List<List<dynamic>> outputClasses = outputBuffer.getDoubleList();
Example 2: Image Classification
In this example, we will use a custom machine learning model to classify images into different categories. We assume that you already have a trained model ready for image classification.
- Import the necessary packages:
import 'package:firebase_ml_custom/firebase_ml_custom.dart';
import 'package:firebase_ml_custom/firebase_ml_custom.dart' as custom_ml;
- Load your custom model:
FirebaseCustomRemoteModel remoteModel = FirebaseCustomRemoteModel('your_model_name');
FirebaseModelManager modelManager = FirebaseModelManager.instance;
modelManager.registerRemoteModel(remoteModel);
- Perform image classification:
FirebaseModelInterpreter interpreter = FirebaseModelInterpreter.instance;
FirebaseModelInputOutputOptions inputOutputOptions = FirebaseModelInputOutputOptions([
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, inputSize, inputSize, 3])
], [
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses])
]);
FirebaseModelInput modelInput = FirebaseModelInput.fromData([yourInputData]);
FirebaseModelOutput modelOutput = FirebaseModelOutput(outputBuffers);
interpreter.run(
remoteModel: remoteModel,
inputs: modelInput,
inputOutputOptions: inputOutputOptions,
output: modelOutput,
);
- Process the output:
TensorBuffer outputBuffer = modelOutput.getOutput(0);
List<List<dynamic>> outputClasses = outputBuffer.getDoubleList();
Example 3: Object Detection
In this example, we will use a custom machine learning model to perform object detection on images. We assume that you already have a trained model ready for object detection.
- Import the necessary packages:
import 'package:firebase_ml_custom/firebase_ml_custom.dart';
import 'package:firebase_ml_custom/firebase_ml_custom.dart' as custom_ml;
- Load your custom model:
FirebaseCustomRemoteModel remoteModel = FirebaseCustomRemoteModel('your_model_name');
FirebaseModelManager modelManager = FirebaseModelManager.instance;
modelManager.registerRemoteModel(remoteModel);
- Perform object detection:
FirebaseModelInterpreter interpreter = FirebaseModelInterpreter.instance;
FirebaseModelInputOutputOptions inputOutputOptions = FirebaseModelInputOutputOptions([
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, inputSize, inputSize, 3])
], [
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses]),
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses]),
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses]),
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses])
]);
FirebaseModelInput modelInput = FirebaseModelInput.fromData([yourInputData]);
FirebaseModelOutput modelOutput = FirebaseModelOutput(outputBuffers);
interpreter.run(
remoteModel: remoteModel,
inputs: modelInput,
inputOutputOptions: inputOutputOptions,
output: modelOutput,
);
- Process the output:
TensorBuffer outputBuffer1 = modelOutput.getOutput(0);
List<List<dynamic>> outputBoxes = outputBuffer1.getDoubleList();
TensorBuffer outputBuffer2 = modelOutput.getOutput(1);
List<List<dynamic>> outputClasses = outputBuffer2.getDoubleList();
TensorBuffer outputBuffer3 = modelOutput.getOutput(2);
List<List<dynamic>> outputScores = outputBuffer3.getDoubleList();
TensorBuffer outputBuffer4 = modelOutput.getOutput(3);
List<List<dynamic>> outputNumDetections = outputBuffer4.getDoubleList();
Example 4: Sentiment Analysis
In this example, we will use a custom machine learning model to perform sentiment analysis on text. We assume that you already have a trained model ready for sentiment analysis.
- Import the necessary packages:
import 'package:firebase_ml_custom/firebase_ml_custom.dart';
import 'package:firebase_ml_custom/firebase_ml_custom.dart' as custom_ml;
- Load your custom model:
FirebaseCustomRemoteModel remoteModel = FirebaseCustomRemoteModel('your_model_name');
FirebaseModelManager modelManager = FirebaseModelManager.instance;
modelManager.registerRemoteModel(remoteModel);
- Perform sentiment analysis:
FirebaseModelInterpreter interpreter = FirebaseModelInterpreter.instance;
FirebaseModelInputOutputOptions inputOutputOptions = FirebaseModelInputOutputOptions([
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, sequenceLength, 1])
], [
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses])
]);
FirebaseModelInput modelInput = FirebaseModelInput.fromData([yourInputData]);
FirebaseModelOutput modelOutput = FirebaseModelOutput(outputBuffers);
interpreter.run(
remoteModel: remoteModel,
inputs: modelInput,
inputOutputOptions: inputOutputOptions,
output: modelOutput,
);
- Process the output:
TensorBuffer outputBuffer = modelOutput.getOutput(0);
List<List<dynamic>> outputSentiment = outputBuffer.getDoubleList();
By following the steps outlined in each example, you can leverage the power of custom machine learning models in your Flutter applications.