In the recent world of technology development and machine learning it’s no longer confined in the micro cloud but in mobile devices. As we know, TensorFlow Lite and PyTorch Mobile are two of the most commercially available tools for deploying models directly on phones and tablets. TensorFlow Lite and PyTorch mobile, both, are developed to operate on mobile, yet they stand distinct in their pros and cons. Here in this article we are to know what TensorFlow Lite is, what is PyTorch Mobile, their applications and differences between both.
Learning Outcomes
- Overview of device machine learning and why it is beneficial rather than cloud based systems.
- Learn about TensorFlow Lite and PyTorch Mobile used for mobile application deployment.
- How to convert trained models for deployment using TensorFlow Lite and PyTorch Mobile.
- Compare the performance, ease of use, and platform compatibility of TensorFlow Lite and PyTorch Mobile.
- Implement real-world examples of on-device machine learning using TensorFlow Lite and PyTorch Mobile.
This article was published as a part of the Data Science Blogathon.
What is On-Device Machine Learning?
We can perform AI on the mobile devices including smart phone, tablet or any other device using on device machine learning. We do not need to rely on services of clouds. These are fast response, security of sensitive information, and application can run with or without internet connectivity which are very vital in diverse applications; image recognition in real-time, machine translation, and augmented reality.
Exploring TensorFlow Lite
TensorFlow Lite is the TensorFlow version which is often used on devices with restricted capabilities. It works and is compatible with other operating systems such as the Android and the iPhone. It mainly centers itself in providing latency and high performance execution. As for TensorFlow Lite, there is a Model Optimizer that helps to apply certain methods, for example, quantization to models. This makes models faster and smaller for mobile deployment which is imperative in this practice to enhance efficiency.
Features of TensorFlow Lite
Below are some most important features of TensorFlow Lite:
- Small Binary Size: TensorFlow Lite binaries can be of very small size. It can be as small as 300KB.
- Hardware Acceleration: TFLite supports GPU and other hardware accelerators via delegates, such as Android’s NNAPI and iOS’s CoreML.
- Model Quantization: TFLite offers many different quantization methods to optimize performance and reduce model size without sacrificing too much accuracy.
PyTorch Mobile Implementation
PyTorch Mobile is the mobile extension of PyTorch. It is generally known for its flexibility in research and production. PyTorch Mobile makes it easy to take a trained model from a desktop environment and deploy it on mobile devices without much modification. It focuses more on the developer’s ease of use by supporting dynamic computation graphs and making debugging easier.
Features of PyTorch Mobile
Below are some important features of Pytorch Mobile:
- Pre-built Models: PyTorch Mobile provides a large range of pre-trained models that can be converted to run on mobile devices.
- Dynamic Graphs: It is one of PyTorch’s dynamic computation graphs that allow for flexibility during development.
- Custom Operators: PyTorch Mobile allows us to create custom operators, which can be useful for advanced use cases.
Performance Comparison: TensorFlow Lite vs PyTorch Mobile
When we discuss their performance, both frameworks are optimized for mobile devices, but TensorFlow Lite has high execution speed and resource efficiency.
- Execution Speed: TensorFlow Lite is generally faster due to its aggressive optimization, such as quantization and delegate-based acceleration. For example- NNAPI, and GPU.
- Binary Size: TensorFlow Lite has a smaller footprint, with binary sizes as low as 300KB for minimal builds. PyTorch Mobile binaries tend to be larger and require more fine-tuning for a lightweight deployment.
Ease of Use and Developer Experience
PyTorch Mobile is generally preferred by developers because of its flexibility and ease of debugging. It is because of dynamic computation graphs. This helps us to modify models at runtime, which is great for prototyping. On the other hand, TensorFlow Lite requires models to be converted to a static format before deployment, which can add complexity but result in more optimized models for mobile.
- Model Conversion: PyTorch Mobile allows us for direct export of PyTorch models, while TensorFlow Lite requires converting TensorFlow models using the TFLite Converter.
- Debugging: PyTorch’s dynamic graph makes it easier to debug models while they’re running, which is great for spotting issues quickly. With TensorFlow Lite’s static graph, debugging can be a bit difficult although TensorFlow provides tools such as Model Analyzer which can help us.
Supported Platforms and Device Compatibility
We can use both TensorFlow Lite and PyTorch Mobile on two major mobile platforms, Android and iOS.
TensorFlow Lite
When it comes to choosing which will support which hardware, TFLite is way more flexible. Due to the delegate system it supports not only CPUs and GPUs but also Digital Signal Processors (DSPs) and other chips that are deemed higher performers than the basic CPUs.
PyTorch Mobile
While PyTorch Mobile also supports CPUs and GPUs such as Metal for iOS and Vulkan for Android, it has fewer options for hardware acceleration beyond that. This means that TFLite may have the edge when we need broader hardware compatibility, especially for devices which have specialized processors.
Model Conversion: From Training to Deployment
The main difference between TensorFlow Lite and PyTorch Mobile is how models move from the training phase to being deployed on mobile devices.
TensorFlow Lite
If we want to deploy a TensorFlow model on mobile then it needs to be converted using the TFLite converter. This process can be optimized, such as quantization which will make the model fast and efficient for mobile Targets.
PyTorch Mobile
For PyTorch Mobile, we can save the model using TorchScript. The process is very simpler and easy, but it does not offer the same level of advanced optimization options that TFLite provides.
Use Cases for TensorFlow Lite and PyTorch Mobile
Explore the real-world applications of TensorFlow Lite and PyTorch Mobile, showcasing how these frameworks power intelligent solutions across diverse industries.
TensorFlow Lite
TFLite is a better platform for different applications that require quick responses such as real-time image classification or object detection. If we are working on devices with specialized hardware such as GPUs or Neural Processing Units. TFLite’s hardware acceleration features help the model run faster and more efficiently.
PyTorch Mobile
PyTorch Mobile is great for projects that are still evolving, such as research or prototype apps. Its flexibility makes it easy to experiment and iterate, which allows developers to make quick changes. PyTorch Mobile is ideal when we need to frequently experiment and deploy new models with minimal modifications.
TensorFlow Lite Implementation
We will use a pre-trained model (MobileNetV2) and convert it to TensorFlow Lite.
Loading and Saving the Model
The first thing that we do is import TensorFlow and load a pre-trained MobileNetV2 model. It is ready to utilize for pre-training on the ImageNet dataset, as has been seen in this model. The model.export (‘mobilenet_model’) writes the model in a format of TensorFlow’s SavedModel. This is the format required to convert it to the TensorFlow Lite Model (TFLite) that is used with mobile devices.
# Step 1: Set up the environment and load a pre-trained MobileNetV2 model
import tensorflow as tf
# Load a pretrained MobileNetV2 model
model = tf.keras.applications.MobileNetV2(weights="imagenet", input_shape=(224, 224, 3))
# Save the model as a SavedModel for TFLite conversion
model.export('mobilenet_model')
Convert the Model to TensorFlow Lite
The model is loaded from the saved model (mobilenet_model directory) using TFLiteConverter. The converter converts the model to a more lightweight .tflite format. Finally, the TFLite model is saved as mobilenet_v2.tflite for later use in mobile or edge applications.
# Step 2: Convert the model to TensorFlow Lite
converter = tf.lite.TFLiteConverter.from_saved_model('mobilenet_model')
tflite_model = converter.convert()
# Save the converted model to a TFLite file
with open('mobilenet_v2.tflite', 'wb') as f:
f.write(tflite_model)
Loading the TFLite Model for Inference
Now, we import the necessary libraries for numerical operations (numpy) and image manipulation (PIL.Image). The TFLite model is loaded using tf.lite.Interpreter and memory are allocated for input/output tensors. We retrieve details about the input/output tensors, like the shapes and data types, which will be useful when we preprocess the input image and retrieve the output.
import numpy as np
from PIL import Image
# Load the TFLite model and allocate tensors
interpreter = tf.lite.Interpreter(model_path="mobilenet_v2.tflite")
interpreter.allocate_tensors()
# Get input and output tensors
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
Preprocessing Input, Running Inference, and Decoding Output
We load the image (cat.jpg), resize it to the required (224, 224) pixels, and preprocess it using MobileNetV2’s preprocessing method. The preprocessed image is fed into the TFLite model by setting the input tensor using interpreter.set_tensor(), and we run inference using interpreter.invoke(). After inference, we retrieve the model’s predictions and decode them into human-readable class names and probabilities using decode_predictions(). Finally, we print the predictions.
# Load and preprocess the input image
image = Image.open('cat.jpg').resize((224, 224)) # Replace with your image path
input_data = np.expand_dims(np.array(image), axis=0)
input_data = tf.keras.applications.mobilenet_v2.preprocess_input(input_data)
# Set the input tensor and run the model
interpreter.set_tensor(input_details[0]['index'], input_data)
interpreter.invoke()
# Get the output and decode predictions
output_data = interpreter.get_tensor(output_details[0]['index'])
predictions = tf.keras.applications.mobilenet_v2.decode_predictions(output_data)
print(predictions)
Use the cat image below:
Output:
[ (‘n02123045’, ‘tabby’, 0.85), (‘n02124075’, ‘Egyptian_cat’, 0.07), (‘n02123159’, ‘tiger_cat’, 0.05)]
This means the model is 85% confident that the image is a tabby cat.
PyTorch Mobile Implementation
Now, we are going to implement PyTorch Mobile. We will use a simple pre-trained model like ResNet18, convert it to TorchScript, and run inference
Setting up the environment and loading the ResNet18 Model
# Step 1: Set up the environment
import torch
import torchvision.models as models
# Load a pretrained ResNet18 model
model = models.resnet18(pretrained=True)
# Set the model to evaluation mode
model.eval()
Converting the Model to TorchScript
Here, we define an example_input, which is a random tensor of size [1, 3, 224, 224]. This simulates a batch of 1 image with 3 color channels (RGB), and 224×224 pixels. It’s used to trace the model’s operations. torch.jit.trace() is a method that converts the PyTorch model into a TorchScript module. TorchScript allows you to serialize and run the model outside of Python, such as in C++ or mobile devices. The converted TorchScript model is saved as “resnet18_scripted.pt”, allowing it to be loaded and used later.
# Step 2: Convert to TorchScript
example_input = torch.randn(1, 3, 224, 224) # Example input for tracing
traced_script_module = torch.jit.trace(model, example_input)
# Save the TorchScript model
traced_script_module.save("resnet18_scripted.pt")
Load the Scripted Model and Make Predictions
We use torch.jit.load() to load the previously saved TorchScript model from the file “resnet18_scripted.pt”. We create a new random tensor input_data, again simulating an image input with size [1, 3, 224, 224]. The model is then run on this input using loaded_model(input_data). This returns the output, which contains the raw scores (logits) for each class. To get the predicted class, we use torch.max(output, 1) which gives the index of the class with the highest score. We print the predicted class using predicted.item().
# Step 3: Load and run the scripted model
loaded_model = torch.jit.load("resnet18_scripted.pt")
# Simulate input data (a random image tensor)
input_data = torch.randn(1, 3, 224, 224)
# Run the model and get predictions
output = loaded_model(input_data)
_, predicted = torch.max(output, 1)
print(f'Predicted Class: Halo')
Output:
Predicted Class: 107
Thus, the model predicts that the input data belongs to class index 107.
Conclusion
TensorFlow Lite gives more focus on mobile devices while PyTorch Mobile provides a more general CPU/GPU-deployed solution, both being optimized for the different applications of AI on mobile and edge devices. Compared to TensorFlow Lite, PyTorch Mobile offers greater portability while also being lighter than TensorFlow Lite and closely integrated with Google. Combined, they enable developers to implement real-time Artificial intelligence applications with high functionality on the developers’ handheld devices. These frameworks are empowering users with the capability to run sophisticated models on local machines and by doing so they are rewriting the rules for how mobile applications engage with the world, through fingertips.
Key Takeaways
- TensorFlow Lite and PyTorch Mobile empower developers to deploy AI models on edge devices efficiently.
- Both frameworks support cross-platform compatibility, enhancing the reach of mobile AI applications.
- TensorFlow Lite is known for performance optimization, while PyTorch Mobile excels in flexibility.
- Ease of integration and developer-friendly tools make both frameworks suitable for a wide range of AI use cases.
- Real-world applications span industries such as healthcare, retail, and entertainment, showcasing their versatility.
Frequently Asked Questions
A. TensorFlow Lite is used where we need high performance on mobile devices while PyTorch Mobile is used where we need flexibility and ease of integration with PyTorch’s existing ecosystem.
A. Yes, both TensorFlow Lite and PyTorch Mobile work on Android and iOS.
A. PyTorch Mobile is useful for applications that perform tasks such as Image, facial, and video classification, real-time object detection, speech-to-text conversion, etc.
A. TensorFlow Lite Mobile is useful for applications such as Robotics, IoT devices, Augmented Reality (AR), Virtual Reality (VR), Natural Language Processing (NLP), etc.
The media shown in this article is not owned by Analytics Vidhya and is used at the Author’s discretion.
ADVERTISEMENT:
sobat, pencinta slots pernahkah mendengar semboyan “slot gaco” Kalau? belum siap-siap, hati jatuh sama konsep slot gacor ini. merupakan slots mesin sering yang memberi win Ya. mesin-mesin, dikatakan ini bisa adalah andalannya buat membawa pulang hasil. tapi gimana, caranya sih jumpain slot demo tepat yang Tenang? Bro beri, kita santai aja di tempat ini Game
tergacor saat sekarang satu-satunya di yaitu Indonesia akan memberikan ROI tertinggi SEGERA
dengan dengan di :
Informasi mengenai KING SLOT, Segera Daftar Bersama king selot terbaik dan terpercaya no satu di Indonesia. Boleh mendaftar melalui sini king slot serta memberikan hasil kembali yang paling tinggi saat sekarang ini hanyalah KING SLOT atau Raja slot paling gacor, gilak dan gaco saat sekarang di Indonesia melalui program return tinggi di kingselot serta pg king slot
slot demo gacor
slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama kdwapp.com
akun demo slot gacor
akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama kdwapp.com
akun slot demo gacor
akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama kdwapp.com
akun demo slot pragmatic
akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama kdwapp.com
akun slot demo pragmatic
akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama kdwapp.com
akun slot demo
akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama kdwapp.com
akun demo slot
akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama kdwapp.com
slot demo gacor
slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama jebswagstore.com
akun demo slot gacor
akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama jebswagstore.com
akun slot demo gacor
akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama jebswagstore.com
akun demo slot pragmatic
akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama jebswagstore.com
akun slot demo pragmatic
akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama jebswagstore.com
akun slot demo
akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama jebswagstore.com
akun demo slot
akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama jebswagstore.com
slot demo gacor
slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama demoslotgacor.pro
akun demo slot gacor
akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama demoslotgacor.pro
akun slot demo gacor
akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama demoslotgacor.pro
akun demo slot pragmatic
akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama demoslotgacor.pro
akun slot demo pragmatic
akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama demoslotgacor.pro
akun slot demo
akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama demoslotgacor.pro
akun demo slot
akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama demoslotgacor.pro
slot demo gacor
slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama situsslotterbaru.net
akun demo slot gacor
akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama situsslotterbaru.net
akun slot demo gacor
akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama situsslotterbaru.net
akun demo slot pragmatic
akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama situsslotterbaru.net
akun slot demo pragmatic
akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama situsslotterbaru.net
akun slot demo
akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama situsslotterbaru.net
akun demo slot
akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama situsslotterbaru.net
situs slot terbaru
situs slot terbaru permainan paling top dan garansi imbal balik hasil besar bersama situsslotterbaru.net
slot terbaru
slot terbaru permainan paling top dan garansi imbal balik hasil besar bersama situsslotterbaru.net
jablay88 permainan paling top dan garansi imbal balik hasil besar bersama jablay88.biz
jadijp88 permainan paling top dan garansi imbal balik hasil besar bersama jadijp88.com
jazz88 permainan paling top dan garansi imbal balik hasil besar bersama jazz88.biz
jurutogel88 permainan paling top dan garansi imbal balik hasil besar bersama jurutogel88.net
kangbet88 permainan paling top dan garansi imbal balik hasil besar bersama kangbet88.biz
kilau88 permainan paling top dan garansi imbal balik hasil besar bersama kilau88.asia
kuningtoto88 permainan paling top dan garansi imbal balik hasil besar bersama kuningtoto88.net
lomboktoto88 permainan paling top dan garansi imbal balik hasil besar bersama lomboktoto88.org
mager88 permainan paling top dan garansi imbal balik hasil besar bersama mager88.biz
mantul888 permainan paling top dan garansi imbal balik hasil besar bersama mantul888.biz
mawartoto88 permainan paling top dan garansi imbal balik hasil besar bersama mawartoto88.asia
meriah88 permainan paling top dan garansi imbal balik hasil besar bersama meriah88.biz
moba88 permainan paling top dan garansi imbal balik hasil besar bersama moba88.org
paristogel88 permainan paling top dan garansi imbal balik hasil besar bersama paristogel88.biz
parsel88 permainan paling top dan garansi imbal balik hasil besar bersama parsel88.net
paus13 permainan paling top dan garansi imbal balik hasil besar bersama paus13.com
pay7777 permainan paling top dan garansi imbal balik hasil besar bersama pay7777.net
planetliga88 permainan paling top dan garansi imbal balik hasil besar bersama planetliga88.net
ratuslot88 permainan paling top dan garansi imbal balik hasil besar bersama ratuslot88.biz
rtp100 permainan paling top dan garansi imbal balik hasil besar bersama rtp100.net
ruby88 permainan paling top dan garansi imbal balik hasil besar bersama ruby88.org
rungkad88 permainan paling top dan garansi imbal balik hasil besar bersama rungkad88.biz
senopati88 permainan paling top dan garansi imbal balik hasil besar bersama senopati88.biz
sis88 permainan paling top dan garansi imbal balik hasil besar bersama sis88.biz
sistoto permainan paling top dan garansi imbal balik hasil besar bersama sistoto.net
sontogel88 permainan paling top dan garansi imbal balik hasil besar bersama sontogel88.com
spin98 permainan paling top dan garansi imbal balik hasil besar bersama spin98.biz
totosaja88 permainan paling top dan garansi imbal balik hasil besar bersama totosaja88.com
warung22 permainan paling top dan garansi imbal balik hasil besar bersama warung22.com
warung88 permainan paling top dan garansi imbal balik hasil besar bersama warung88.asia
winrate999 permainan paling top dan garansi imbal balik hasil besar bersama winrate999.biz
wuzz888 permainan paling top dan garansi imbal balik hasil besar bersama wuzz888.com
999jitu permainan paling top dan garansi imbal balik hasil besar bersama 999jitu.org
adu88 permainan paling top dan garansi imbal balik hasil besar bersama adu88.asia
basket88 permainan paling top dan garansi imbal balik hasil besar bersama basket88.net
batu88 permainan paling top dan garansi imbal balik hasil besar bersama batu88.biz
berita88 permainan paling top dan garansi imbal balik hasil besar bersama berita88.biz
bukalapak88 permainan paling top dan garansi imbal balik hasil besar bersama bukalapak88.net
cipit888 permainan paling top dan garansi imbal balik hasil besar bersama cipit888.asia
delta888 permainan paling top dan garansi imbal balik hasil besar bersama delta888.biz
dosen88 permainan paling top dan garansi imbal balik hasil besar bersama dosen88.org
jago17 permainan paling top dan garansi imbal balik hasil besar bersama jago17.com
jalantoto88 permainan paling top dan garansi imbal balik hasil besar bersama jalantoto88.biz
janjigacor88 permainan paling top dan garansi imbal balik hasil besar bersama janjigacor88.org
jitujp88 permainan paling top dan garansi imbal balik hasil besar bersama jitujp88.com
jokiwin88 permainan paling top dan garansi imbal balik hasil besar bersama jokiwin88.net
juragan66 permainan paling top dan garansi imbal balik hasil besar bersama juragan66.biz
kenzototo88 permainan paling top dan garansi imbal balik hasil besar bersama kenzototo88.biz
kkslot77slot permainan paling top dan garansi imbal balik hasil besar bersama kkslot77slot.com
kompas88 permainan paling top dan garansi imbal balik hasil besar bersama kompas88.biz
kopi88 permainan paling top dan garansi imbal balik hasil besar bersama kopi88.biz
kudajitu88 permainan paling top dan garansi imbal balik hasil besar bersama kudajitu88.biz
kursi88 permainan paling top dan garansi imbal balik hasil besar bersama kursi88.biz
liputan88 permainan paling top dan garansi imbal balik hasil besar bersama liputan88.net
livitoto88 permainan paling top dan garansi imbal balik hasil besar bersama livitoto88.net
lotus88 permainan paling top dan garansi imbal balik hasil besar bersama lotus88.asia
m77casino88 permainan paling top dan garansi imbal balik hasil besar bersama m77casino88.com
majujp88 permainan paling top dan garansi imbal balik hasil besar bersama majujp88.org
mamikos permainan paling top dan garansi imbal balik hasil besar bersama mamikos.org
mamikos88 permainan paling top dan garansi imbal balik hasil besar bersama mamikos88.com
masterplay88 permainan paling top dan garansi imbal balik hasil besar bersama masterplay88.asia
masterplay999 permainan paling top dan garansi imbal balik hasil besar bersama masterplay999.net
medantoto88 permainan paling top dan garansi imbal balik hasil besar bersama medantoto88.biz
medusa888 permainan paling top dan garansi imbal balik hasil besar bersama medusa888.com
meja88 permainan paling top dan garansi imbal balik hasil besar bersama meja88.biz
midasplay88 permainan paling top dan garansi imbal balik hasil besar bersama midasplay88.biz
mijit888 permainan paling top dan garansi imbal balik hasil besar bersama mijit888.net
mposun88 permainan paling top dan garansi imbal balik hasil besar bersama mposun88.net
ibisbudget88 permainan paling top dan garansi imbal balik hasil besar bersama ibisbudget88.com
mercure88 permainan paling top dan garansi imbal balik hasil besar bersama mercure88.com
hotel88 permainan paling top dan garansi imbal balik hasil besar bersama hotel88.net
sheraton88 permainan paling top dan garansi imbal balik hasil besar bersama sheraton88.com
ubud88 permainan paling top dan garansi imbal balik hasil besar bersama ubud88.asia
hardrock88 permainan paling top dan garansi imbal balik hasil besar bersama hardrock88.com
kuta88 permainan paling top dan garansi imbal balik hasil besar bersama kuta88.asia
nasigoreng88 permainan paling top dan garansi imbal balik hasil besar bersama nasigoreng88.com
sate88 permainan paling top dan garansi imbal balik hasil besar bersama sate88.com
rendang88 permainan paling top dan garansi imbal balik hasil besar bersama rendang88.asia
gadogado permainan paling top dan garansi imbal balik hasil besar bersama gadogado.org
kfc88 permainan paling top dan garansi imbal balik hasil besar bersama kfc88.net
pizzahut88 permainan paling top dan garansi imbal balik hasil besar bersama pizzahut88.net
starbucks88 permainan paling top dan garansi imbal balik hasil besar bersama starbucks88.live
sederhana permainan paling top dan garansi imbal balik hasil besar bersama sederhana.org
kopikenangan permainan paling top dan garansi imbal balik hasil besar bersama kopikenangan.asia
angkawin permainan paling top dan garansi imbal balik hasil besar bersama angkawin.net
rockygerung88 permainan paling top dan garansi imbal balik hasil besar bersama rockygerung88.com
monopoli88 permainan paling top dan garansi imbal balik hasil besar bersama monopoli88.com
kimjongun permainan paling top dan garansi imbal balik hasil besar bersama kimjongun.asia
catur88 permainan paling top dan garansi imbal balik hasil besar bersama catur88.asia
tato88 permainan paling top dan garansi imbal balik hasil besar bersama tato88.org
speaker88 permainan paling top dan garansi imbal balik hasil besar bersama speaker88.net
rajah permainan paling top dan garansi imbal balik hasil besar bersama rajah.asia
kunci gitar permainan paling top dan garansi imbal balik hasil besar bersama kuncigitar.org
gitar88 permainan paling top dan garansi imbal balik hasil besar bersama gitar88.asia
gambartato permainan paling top dan garansi imbal balik hasil besar bersama gambartato.com
gambar88 permainan paling top dan garansi imbal balik hasil besar bersama gambar88.org
maxwin888slot permainan paling top dan garansi imbal balik hasil besar bersama maxwin888slot.com
rumah permainan paling top dan garansi imbal balik hasil besar bersama rumah.asia
nada888 permainan paling top dan garansi imbal balik hasil besar bersama nada888.info
musik88 permainan paling top dan garansi imbal balik hasil besar bersama musik88.asia
sewarumah permainan paling top dan garansi imbal balik hasil besar bersama sewarumah.biz