Is there a common format for neural networks

瘦欲@ 提交于 2020-01-03 07:17:33

问题


Different teams use different libraries to train and run neural networks (caffe, torch, theano...). This makes sharing difficult: each library has its own format to store networks and you have to install a new library each time you want to test other teams' work.

I am looking for solutions to make this less tedious: - Is there a preferred (shared?) format to store neural networks? - Is there a service or library that can help handle different types of networks / or transform one type into another?

Thank you!


回答1:


Is there a preferred (shared?) format to store neural networks?

Each library / framework has its own serialization, e.g. Caffe uses Protocol Buffers, Torch has a built-in serialization scheme and Theano objects can be serialized with pickle.

In some cases like OverFeat or darknet the weights and biases are stored on-disk in binary format via plain fwrite-s of the corresponding float(or double) contiguous arrays (see this answer for more details). Note that this does not cover the architecture of the network / model which has to be known or represented separately (like declared explicitly at load time).

Also: a library like libccv stores the structure and the weights in a SQLite database.

Is there a service or library that can help handle different types of networks / or transform one type into another?

I don't think there is a single (meta) library that claims to do so. But it exists distinct projects that provide convenient converters.

Some examples (non exhaustive):

  • Caffe -> Torch: https://github.com/szagoruyko/loadcaffe
  • Torch -> Caffe: https://github.com/facebook/fb-caffe-exts
  • Caffe -> TensorFlow: https://github.com/ethereon/caffe-tensorflow

--

UPDATE (2017-09): two noticeable initiatives are:

(1) the ONNX format (a.k.a. Open Neural Network Exchange):

[...] a standard for representing deep learning models that enables models to be transferred between frameworks

See these blog posts.

(2) the CoreML format introduced by Apple:

[...] a public file format (.mlmodel) for a broad set of ML methods [...] Models in this format can be directly integrated into apps through Xcode.



来源:https://stackoverflow.com/questions/33828959/is-there-a-common-format-for-neural-networks

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!