Comments (4)
I have similar question - ie what would be involved in importing a pre-trained network via the open source ONNX format?
https://github.com/onnx/models/tree/master/mnist
from kann.
No. ONNX is based on protobuf, which alone is many times larger than KANN. Supporting ONNX would defeat the goal of this project.
from kann.
I'm not sure I follow how ONNX would defeat the goal of the kann project. Protocol buffers are merely binary serialization format - the size and complexity directly proportional to the object model you are serializing. The purpose of ONNX is to provide an open mechanism for sharing trained network data between frameworks. People will not realistically write custom training routines with kann. I see ONNX as a translation layer - possibly a 1-way street. I like the lightweight model implementation, but am not interested in re-engineering the creation of established models, then training them. I would like to deploy a trained model with kann and use a "real" framework for training. I apologize if my use of the term "real" seems derogatory - it's not intended to be so. Just that Caffe, Tensorflow, Keras etc are established training frameworks, and I don't see kann as a viable competitor. Regardless, it would be helpful to describe how one applies/updates the weights to a kann model. Thank you for your work, this is very interesting.
from kann.
Parsing protobuf requires a protobuf-c, which is about the same size as kann. You additionally need translation code. With ONNX, kann won't be lightweight any more. ONNX support should be a separate project, not part of kann itself.
In fact, if the goal is to deploy the model, the much cleaner way is to start a brand-new project, taking bits of kann code and fit them into structs matching the ONNX definitions. The majority of code in kann is for autodiff and training. The forward pass can be implemented in ~1000 lines. Creating a translation layer between kann and ONNX probably needs more than that amount of code.
Anyway, I buy your point, but that is not happening in this repo.
from kann.
Related Issues (20)
- Is quantization supported in Kann? HOT 1
- More examples (classify text) HOT 1
- Can KANN train an embedding layer?
- Support for batch normalisation HOT 1
- Batch processing of large dataset
- Feature request: model conversion utility. HOT 1
- Convolutional recurrent neural network
- mnist-cnn example fail assert on training
- kann_class_error() is broken for KANN_C_CEB HOT 3
- VAE error
- How to extract outputs from a hidden layer of autoencoder? HOT 4
- A time series data example for LSTM HOT 1
- Why accuracy does not increase anymore at specific epoch? HOT 4
- Getting Started example not working on macOS 11.3, Apple M1 chip
- Transfrom script for dataset
- Exporting weights? HOT 2
- Can we define the neuron number for each layer?
- resnet
- Image classification of cats, dogs, and pandas
- Custom loss function example using kad_op functions HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kann.