machine learning
resources
-
my grad paper prob defines all important basic terms.
-
Huggingface is a site where ppl share models, datasets and spaces(?). They monetize by providing compute.
frameworks comparison
as of 2025-05-09 pytorch is more popular than tensorflow. On the few threads I read pretty much everyone agreed PyTorch > TF
because TF has:
- more complex syntax.
- dependencies issues (specially on mac)
one guy said Keras has the ability to select the underlying API so you can choose between using TF or Pytorch or whatever else.
ordered by popularity:
PyTorch
(Facebook)
rapid prototyping due to simple syntax
good for: research, computer vision, natural language processing (NLP).
TensorFlow
(Google)
on this vid the guy said TF is more performant for large scale prod envs. Like fraud detection.
- supports tensor processing units (TPUs)
large scale, deployment flexibility and robust tools.
Keras
Jax
gainin popularity, especially in 'google crowd'.
model formats
- PyTorch native format (.pt, .pth)
- tied to pytorch, so you'll need a pytorch runtime to deploy
- TensorFlow native format (SavedModel, .h5, .keras)
- TensorFlow Lite (.tflite)
- designed for mobile & embedded devices.
- TFLite might also be able to run TF native models
- ONNX
- Open source, designed to allow models to be transferred between different frameworks and hardware.
- many ONNX runtimes optimized for various hardware and OS.
- Tensor RT engine (.engine)
Nvidia platfor for their tensor hardware. - ncnn - runtime with it's own model format.
- CoreML (.mlmodel, .mlpackage)
to deploy to Apple devices. These leverage Apple's Neural Engine hardware. - OpenVINO is a format of models that are optimized to run more efficiently on Intel GPU and NPU hardware.
some models can be trained in one framework and be used in another
A common workflow is train a model in a flexible framework like PyTorch or TF and then export to more specialized formats for efficient deployment on target platforms.
how to train my own model
- Choose Training framework: PyTorch, TensorFlow, Ultralytics (YOLO).
for integration, if i go with TF look into: ML Kit, or TFLite Task Library or MediaPipe. which are all google TF libs.
no code platforms for training
-
Roboflow
-
Ultralytics is a python package to train your own model. read license.
Ultralytics is built on top of PyTorch to quickly build and use YOLO models. -
Ultralytics HUB is a no code platform to train and deploy your own YOLO model. can think of it as a GUI for Ultralytics.
This seems awfully similar to roboflow. In fact, Ultralytics integrates with Roboflow. You can segment the workflow using both tools, the integration works like this:
prepare dataset in roboflow and export it to ultralytics -> train model in ultralytics -> use the model back in roboflow (to label new data for example).
this workflow is good because roboflow focuses more on the data side and ultralytics on advanced training.
the concensus is they are good for small/quick projects. for more complex pro work look into other models.
transfered learning
a common practice is to find a good model trained on a high quality dataset and retrain that model to detect a new category. This is called transfered learning and in a majority of cases is a good way to save time and also end up with a better model than one trained from scratch by yourself.