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
+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?)
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).
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?
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?
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 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.
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.
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.
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.
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.
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
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.
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 ?
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.
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.
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.
Final result: https://twitter.com/braddwyer/status/1330654868839784451
The full walkthrough video: https://www.youtube.com/watch?v=kBn7Cd8Z8yE