Common questions and answers for our Custom Training Tool
Can I really train a model on anything?
You can certainly try! Our API is super flexible and it will allow you to teach our system to recognize a variety of concepts.
How many images does it take to train a concept?
Generally we recommend at least 25-50 images to be used per concept with a variety of zooms, angles and lighting sources, but this will really depend on the subject matter. Something clear-cut like "baseball bat" may take only 15-20 images, while a more unique item like "Louisville Slugger Ash Wood Tee Ball Bat" might need 40-50.
Can I train on videos as well as images?
Not yet, but this will be introduced in the near future. Right now only images can be trained on.
What is the easiest way to upload concepts into a model?
The typical workflow for Custom Training is to:
- Upload inputs (images) with or without associated Concepts to an application
- Add concepts to the inputs (either positive or negative), and
- Train a model based on that.
An Application contains inputs and models, so you only add inputs to an application and not to a model. When you add inputs to an application and assign concepts to them, a new model "train" operation will pick up on those new concepts. You never need to tell the model that new images are added because it's already tied to the application.
Can I use your public models as a base for my custom model?
Abso-custom-lutely! We just introduced Base Workflows and this will allow you to train a custom model on top of a few of our public ones, so check that out here.
Can I access custom models on your Mobile SDK platform?
Indeed! Custom models are accessible via our API and our Mobile SDK platforms.
When would I use a “closed environment”?
If you expect to run a trained model on images that do not contain any of the concepts in your model, then you should set closed_environment to false (the default). Else, it should be set to true. In laymen's terms, if there's a chance that your model will see uploads from images that aren't necessarily in your training set, keep this as false.
What are negatives and do I need them?
Negatives are essentially a way of telling our system what an image definitely is not. As a hypothetical example, in a Lion King model you'd probably want to assign "Scar" as a Negative to an image of "Simba" and vice versa.
You'll want to have a 3 or 4-to-1 ratio of positives to negatives for any given Concept if you can provide them. Negatives are not 100% necessary but they can definitely help with overall accuracy.
What does concepts_mutually_exclusive mean?
If you want to see more than one concept returned in the same image (e.g. Eiffel Tower, sky, croissant, etc.), then this should be set to false. Otherwise, if you're only looking for one to be returned (e.g. Samsung Galaxy Note 5), then set it to true because it’ll make the percentages more accurate.
Why is it telling me that "Model training had no positive examples"?
This is our system's way of telling you that one or more concepts in your model are essentially "zombies" and not tied to any inputs. Once a concept is added to a model it must be used - else the system will complain about it.
My results aren't as accurate as I'd like them to be. How do I make them better?
Well that's a bummer! If your concepts aren't returning the accuracy you are desiring these actions may come to the rescue:
- Adding as many positive examples as possible from a variety of zooms, angles and lighting sources. The more the merrier - and the smarter our system will be!
- Setting concepts_mutually_exclusive to True in your model's settings. This will tell the system that only one concept is correct from the list for a given picture. (If you want your model to return more than one concept per image though, this will not apply)
- Altering a concept's Positive to Negative ratio so that it is 3 or 4-to-1. You'll want to provide Negatives if you can, but adding too many will actually be counterproductive so be careful.
- Checking out our Model Evaluation tool in the Explorer UI to see where your model is failing. This can tell you which concepts are performing better than others and how good your model is performing in general.
Why are deleted concepts still being counted towards my limit?
Concepts are actually counted across all model versions and thus deleted ones won't necessarily be subtracted from that (unless you delete the older model version that contained them). We can do this manually from our end if you'd like, so let us know if you need that!
Here are the endpoints to list and delete old versions if you'd like to do it manually via the API:
Do I add concepts to models or to inputs first?
Either of these are actually ok. You can add concepts directly to a model or you can add them to inputs that are in the same Application as your Model. Just note that if any concepts exist in your model and are not tied to any inputs, you will receive this when you try to do a Train:
Who owns the models and the data that I upload to your system? Will you share it with anyone?
Custom models are private and will never be shared with any third parties. If we do use them internally, it would be for training our own models and nothing else (promise). The data that you upload is yours and will always be yours.
Why is the API telling me that my Model ID isn't found?
If you're getting this then it's likely that you just need to use the model name here instead (i.e. not the super long alpha-numeric string of characters but the actual name that you gave to the model). And if you're using it in a cURL call or other HTTP request, make sure to encode any spaces with %20.
Is there a limit to the number of custom models that I can have? And will I be charged more if I create a lot of them?
The sky is your limit here! We won't prohibit you from creating a lot of models and we'll only ever charge you per custom concept, not by the number of models that you have.
Is there a walkthrough that I can use as an example?
Yep! Check it out here