Reusing Open-Source Models in AI Applications
Developing models for AI is usually not an easy task. Let's take a look at how open source is helping to change that.
Join the DZone community and get the full member experience.Join For Free
building machine and deep learning models from scratch is often not trivial, not for developers and sometimes not even for data scientists. fortunately, over the last few years, several models have been developed and shared that can be reused and sometimes extended. this allows developers adding ai to applications without having to be data scientists.
this article describes how to find open source ai models and introduces briefly onnx, which allows conversions between different model formats.
in order to find models, there isn't the one place to go to. in my experience, the best way to find models is to rely on google searches. that being said, there are a number of websites with a lot of interesting open-source models.
ibm model asset exchange
the ibm model asset exchange doesn't contain too many models yet, but i like the consumability for developers. as i blogged about, the models are put in docker containers and predictions can be done via rest apis. the models are published under open source licenses and the ip has been vetted. some of the models can be re-trained easily with custom data.
as the name implies the tensorflow models github project is specialized on tensorflow. this catalog has a big amount of models and many different types of models. many of the models are high quality and well documented, for example, the visual recognition models. for some of the other models, i'm not sure whether they are actively maintained. also, some of the models are not the trained models, but code to execute trainings of models.
caffe2 model zoo
the caffe2 model zoo is another website you might want to check out when looking for models. there is a bigger number of visual recognition models available for caffe and caffe2. as a developer without much data science background however, i've found it sometimes hard to understand what these models do and how to use them.
onnx model zoo
the open neural network exchange model zoo is a collection of pre-trained, state-of-the-art models in the onnx format. onnx is an open format to represent deep learning models. onnx was initiated by facebook and microsoft, ibm joined shortly after this.
there are several converters available to import onnx models in frameworks like tensorflow, coreml and caffe and vice versa converters to convert models from different deep learning frameworks into the onnx format. this allows developers, for example, to convert models that cannot be run natively on mobile devices into formats that can be executed on mobile devices. unfortunately, i haven't had any luck to get a sample working so far, but i'll keep trying as the different converters evolve.
this screenshot shows the currently available onnx converters:
Published at DZone with permission of Niklas Heidloff, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.