For the ML-impaired, how portable is this process? Does it work on other ML platforms? Are the digital assets (specifically this MLMODEL file/bundle) easily transmuted to work with, say, TF?
I’m also ML impaired, but would people really train the model on a Mac? Surely you would want to train in the cloud or on something with a proper discrete GPU. It seems that a better article would be how to take e.g. yolo and convert it.
people do run Macs in datacenters, so if you wanted to have it run in a dc I’m sure you could. Secondly all pro level Macs have discrete graphics, so I’m not sure what you mean by “proper discrete gpu”
Not sure what you mean by "all pro level macs". But the macbook pro M1 has no discrete GPU. It does however have a "neural processor" to accelerate ML.
The article is not explicit about it but I think they’re using transfer learning. They take a general model trained, for instance, on ImageNet and use it to train a more specialised model to classify whatever you want. The training of the specialised model is way faster than the training of the general model.
Apple's main goal with Create ML is to make something app developers can use to add machine learning powered features to their apps. So it makes sense that they'd want something that you can train with the hardware you already have as an app developer.
It's actually pretty performant. I trained an object detector (from scratch) on my 2016 MBP in about 6 hours[1].
As of macOS 11 also support transfer learning for object detection which starts from pre-trained weights and should converge more quickly if your dataset is similar to COCO[2] but I haven't tested it out yet.
I did a quick Google search (so maybe I’m missing something) but there is no official support for converting Core ML — which is the foundation for Create ML — models to Tensorflow or PyTorch. You need to look for third-party libraries. Although there exist libraries to convert Tensorflow models to Core ML.
It’s not entirely clear to me exactly what was meant by the grandparent post by converting to PyTorch or Tensorflow.
There are two discrete concepts: training and inference. You can think of training a bit like the source code and inference a bit like running the compiled binary. The different frameworks have their own serialization formats for their model weights.
If the goal is to do inference using CoreML weights trained in CreateML on non-Apple platforms (eg on a server or android device), converting them to ONNX is a way to do that.
You probably won’t be able to pick up training on another framework though.
It's not a pre-existing standard, but it is a documented format. It's based on protocol buffers, so I would expect it's fairly easy to write your own reader if necessary.
I'm really curious if this training process is optimized for the new 8-core neural engine on the M1 SoC. I'd like to see a comparison between the performance on M1 vs Intel macs.
I supposed this might serve as a good demonstration of how the neural engine performs?
edit: Perhaps running inference in the iOS simulator on the macs would also be a comparison point?
CreateML is getting really impressive. I just went through the process of using it to train an Object Detection model to detect sharks and fish at an aquarium (and deploying the model to an iPhone) last week.
Do you think it would be possible to detect the species of shark? I was thinking about trying to detect what breed of dog or maybe species of fish someone caught.
I didn't clean it up and submit for app review but if you have XCode you can compile and run it by tweaking the sample app (start at 22:25 in the YouTube video above).
There are a handful of free tools you can use. We have write-ups of most of them in the "Labeling Your Images Yourself" section here: https://blog.roboflow.com/object-detection/
Roboflow (our startup) can import the annotation files from all of those tools and convert them to Create ML's format for you.
Create ML is awesome and very user friendly. I achieved impressive accurate results to classify Among Us game states on Apple Silicon Macs to support keyboard controls.
Next step will be to train the computer to detect who is acting suspiciously in the game, and then make the computer play the game for you so you don’t have to use any controls at all to play the game :p
Using CreateML is a vastly better experience on ease of use using Machine Learning models. Even CoreML which underpins CreateML allows you to use using GPT2 and Bert from from Huggingface (see https://github.com/huggingface/swift-coreml-transformers).
+1 on CreateML ease of use. Paired with some of the other models they provide out of the box, it can be very easy to get up and going quickly. I used it to create a mustache detector and before running an image through my model I needed to detect if an image had a face (images of hot dogs, for eg, were leading to weird results). I was delighted to find the ability to detect faces in a few lines of code right out of the box.
Now I just wish I could convert my model to Tensorflow! (or serve it over iCloud somehow?)
I am not too familiar with CreateML but take a look at Lobe. It allows you to export models and it also comes with the option of using MobileNet (which is more suitable for running on edge devices).
You can also find examples on how to use the exported model on Lobe's Github.
For anyone looking into alternatives, I am currently compiling a list here [0]. The focus of the research is software that aids with the entire flow of a typical ecologist who wishes to classify/detect different species.
There are a lot of great pieces of software out there for non-technical users.
Create ML has been generally available since 10.14 (2018)[0], while Lobe's product had a preview in 2018 and was bought by Microsoft the same year[1]. Apple has been pushing on-device ML for 4 years or so now[1], so, if anything, Lobe is Microsoft's answer to Apple.
Wondering if Create ML has a Sound Classifier as well.. Will make it easy to classify different bird's sounds or to identify music notes from different instruments.. something like piano/guitar notes classifier
Given pretty much every conversation on the topic of ML here advises people to use the proprietary NVidia ML tools with proprietary NVidia graphics drivers for NVidia cards, I'm failing to see this as any better or worse.
Is there a image classifier that use my Dropbox, scan all images sort by tag, and save all neural and tag data on folder itself ? That I can use to access all the images ?
58 comments
[ 4.6 ms ] story [ 105 ms ] threadHowever the other pro lines (MBP15/16 iMac Pro; Mac Pro) are all equipped with dGPUs
Also my Macbook Pro has an 8GB GPU.
It's actually pretty performant. I trained an object detector (from scratch) on my 2016 MBP in about 6 hours[1].
As of macOS 11 also support transfer learning for object detection which starts from pre-trained weights and should converge more quickly if your dataset is similar to COCO[2] but I haven't tested it out yet.
[1] https://blog.roboflow.com/createml/ [2] https://blog.roboflow.com/coco-dataset/
There are two discrete concepts: training and inference. You can think of training a bit like the source code and inference a bit like running the compiled binary. The different frameworks have their own serialization formats for their model weights.
If the goal is to do inference using CoreML weights trained in CreateML on non-Apple platforms (eg on a server or android device), converting them to ONNX is a way to do that.
You probably won’t be able to pick up training on another framework though.
https://apple.github.io/coremltools/coremlspecification/
Having that (3-clause BSD-licensed) code will help in writing the reverse converters.
I supposed this might serve as a good demonstration of how the neural engine performs?
edit: Perhaps running inference in the iOS simulator on the macs would also be a comparison point?
Final result: https://twitter.com/braddwyer/status/1330654868839784451
The full walkthrough video: https://www.youtube.com/watch?v=kBn7Cd8Z8yE
Check out the Oxford Pets dataset as a starting point (you can download in Create ML format from here): https://public.roboflow.com/object-detection/oxford-pets
Here are the weights: https://www.dropbox.com/s/c49a5zqqt1ml89o/Aquarium%202.mlmod...
Roboflow (our startup) can import the annotation files from all of those tools and convert them to Create ML's format for you.
These new chips run Create ML really well, no surprises there.
https://news.ycombinator.com/item?id=25254954
I open sourced it today: https://github.com/andresavic/AmongKey
thanks for making this open source!
Shameless plug: I made a Youtube video on how to use Style Transfer in CreateML see https://www.youtube.com/watch?v=adfCMup9YnM
Now I just wish I could convert my model to Tensorflow! (or serve it over iCloud somehow?)
You can also find examples on how to use the exported model on Lobe's Github.
There are a lot of great pieces of software out there for non-technical users.
[0] https://www.notion.so/pgyurov/Camera-Trap-Pipeline-Solution-...
0: https://developer.apple.com/documentation/createml
1: https://blogs.microsoft.com/blog/2018/09/13/microsoft-acquir...
1: https://www.zdnet.com/article/ai-big-data-and-the-iphone-her....
https://developer.apple.com/documentation/createml
https://developer.apple.com/videos/play/wwdc2019/425/
https://developer.apple.com/videos/play/wwdc2020/10043/
and style transfer to Create ML this year:
https://developer.apple.com/videos/play/wwdc2020/10642/