Comments (3)
We discuss our compatibility guidance in the FAQ. Basically we guarantee that serialized models will be upwards compatible within the major version (e.g. a model trained in 4.0 will work with any release in the 4.x series, and a model trained in 4.1 will work in 4.1 or greater until we hit v5). We currently exclude the TensorFlow models from this as we're transitioning from the TF 1.x releases to the new tensorflow-java releases and TF-Java only just started to support TF's usual serialization mechanisms. Hopefully as TF-Java stabilises we'll be able to stabilise Tribuo's TF based models to provide the same upwards compatibility guarantee.
We take the serialisation compatibility seriously, for example in the upcoming 4.1 release there is a complete refactor of LinearSGDModel and LinearSGDTrainer to allow them to use optimised dense math functions, but LinearSGDModels from 4.0 will load fine in 4.1 (however if they are then saved out by Tribuo 4.1 then they won't load in Tribuo 4.0, as we only provide upwards compatibility). If a model from a 4.x release won't load in a later 4.y release then that's a bug and we'll fix it.
We're looking at alternative serialisation mechanisms to replace java.io.Serializable
as mentioned in the roadmap. I think we're leaning towards a protobuf based mechanism, but it's not decided yet. We're also looking at adding ONNX export support for Tribuo models. Both of these are likely to land in the 4.2 release, and we'll support converting back and forth between the new mechanism and java.io.Serializable
(though once a model has been exported as ONNX it will only load back in using Tribuo's ONNX support, it won't reconstruct the original Tribuo model class). Once we've adopted new serialisation mechanisms we hope to provide upwards compatibility across major versions.
from tribuo.
We've started landing ONNX export support in preparation for the 4.2 release - #154. Initially this will cover a subset of Tribuo's models, and probably not support arbitrary recursion over ensembles (i.e., an ensemble made up of ensembles). It will also have the start of an alternative serialization mechanism, as you'll be able to serialize provenance objects into protobufs. This will also expand in future releases to allow serialization of all of Tribuo's models as protobufs.
from tribuo.
As of 4.3 all models can be serialized into protobufs and we'll use that as the sole serialization mechanism for v5 replacing java.io.Serializable
(ONNX export will still be available for a subset of Tribuo models).
from tribuo.
Related Issues (20)
- Error on irises-tribuo-v4.ipynb HOT 1
- TransformedModel doesn't have a protobuf
- mRMR HOT 1
- FS using wrapper approaches HOT 7
- Docs recommending IJava HOT 2
- Problem deserializing the XGBoostModel HOT 1
- Do you have any plans to support time-series predictions? HOT 1
- When packaged into docker container: FileNotFoundException: File /lib/linux-musl/x86_64/libxgboost4j.so HOT 6
- Memory and SQLDataSource HOT 1
- About csvLoader.loadDataSource HOT 4
- Configuring HyperParameters HOT 4
- Question about input feature mapping HOT 9
- Llama APIs HOT 1
- Load data from List obj in memory HOT 1
- MLP HOT 1
- TensorFlow Isuue
- Training loss HOT 1
- Weight and Bias in NN HOT 3
- HDBSCAN implementation in 4.3+ HOT 4
- Clustering Issue with Loading the Data HOT 9
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 tribuo.