Comments (2)
Another idea, is to let the Learn
methods take a SharpLearning.Containers.Matrices.IMatrix
, instead of an F64Matrix
, so that one can use their own custom class (as long as it the implements IMatrix
). This allows creating a wrapper for one of the Math.Net implementations.
BTW, congrats on creating the first .NET ML library that actually makes sense through-and-through.
from sharplearning.
Hi @diegoful,
Thanks for joining and adding to the discussion. Also, thanks for the kind words! I am glad that you find SharpLearning useful and that the design makes sense.
Using the IMatrix
interface in the learners is also something I have considered, since as you suggest, it would make it possible to create custom implementations, and thereby make the learners more open to other containers.
In the current state, the F64Matrix
has some view extensions, using pointers to avoid copying memory. These are not a part of the IMatrix
interface, and is used in some of the learners. But it might be possible to cleanup a bit to avoid using views, without decreasing the efficiency of the learners too much. So it is definitely a valid option.
Currently I am also considering to use the tensor type Microsoft is introducing. If this becomes a standard part of .net, i think it would make sense to use that implementation. This would also be useful when dealing with higher dimensional data for deep learning algorithms. My hope is that other libraries, like Math.net, would also adapt some interfacing to this type, if it becomes standard.
Using the tensor type, it would probably still make sense to hide the concrete implementation behind an interface, to still have the option of custom implementations.
best regards
Mads
from sharplearning.
Related Issues (20)
- Add parallelism to Bayesian Optimizer. Also allow resampling non-deterministic algorithms HOT 2
- TrimSplitLineTrimColumnsToDictionary throws a "key already exists" exception HOT 1
- Issue with loading model using GenericXmlDataContractSerializer: The deserializer has no knowledge of any type that maps to this name HOT 4
- Order of results from RandomSearch is not deterministic with different iteration counts. HOT 1
- Is there a way to keep textual labels / targets as a part of the trained model? HOT 5
- Serialization Exception HOT 2
- Continuously improving a neural network over time using small batches. HOT 1
- SharpLearning.XGBoost.dll is not compatible with .net core HOT 6
- Exception when serializing neural net to XML HOT 2
- Code sharing HOT 3
- A way to Save Bayesian Optimizer progress and continue later. HOT 1
- Access OOB data and OOB error calculations of Random Forest HOT 2
- how can i train the Neural Network with my own Training Pictures? HOT 1
- HPO wiki page
- How can I be able to learn with your repository HOT 3
- Looking for an example for loading from a Stream source HOT 4
- Error in getting started code example HOT 1
- Unhandled Exception: System.Runtime.Serialization.SerializationException: The internal array cannot expand to greater than Int32.MaxValue elements. HOT 1
- SharpLearning can only load models trained in python with xgboost==0.82 HOT 1
- Monitoring training progress HOT 1
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 sharplearning.