Giter Site home page Giter Site logo

Duplicate efforts about sharplearning HOT 6 CLOSED

mdabros avatar mdabros commented on May 20, 2024
Duplicate efforts

from sharplearning.

Comments (6)

mdabros avatar mdabros commented on May 20, 2024 1

@cesarsouza Yes, compared to 2008/2009, it is definitely a whole other world today. Things have really been speeding up these past 5-10 years - and they donΒ΄t seem to be slowing down.

Thank you very much for sharing the implementations of Accord.NET and it sounds good with the move to the MIT license, it makes things alot more simple for people who want to use the library. You are of course also welcome to seek inspiration in SharpLearning – there are both good and bad things to choose from :-).

Why I chose to start my own project instead of using Accord.Net is a bit of a long story, but I will try to condense it to a few concrete reasons. Before I start, I should mention that I fully appreciate that the Accord.Net framework is a much larger package than SharpLearning, covering a much broader range of areas and topics, whereas SharpLearning only focuses on a subset of these. So I know a huge amount effort and work has gone into developing the framework, and I have a lot of respect for this.

I started looking into .NET machine learning libraries around 2011/2012. My reference at the time was sklearn from Python and I wanted something in .NET that could match the speed, efficiency, and ease of use of this library. My focus was on decision tree ensembles (Adaboost, RandomForest, and GradientBoost) for regression and classification. I found Accord.NET but at the time, for my specific case, it was lagging in the following areas:

  1. Supported algorithms (I believe only Adaboost classification was available at the time).
  2. Speed and memory consumption (sklearn was faster and more efficient with memory).
  3. Ease of use (at the time it was slightly complicated to setup a learner/teacher algorithm).

Again, the observations are only from my specific area of tree ensembles, and I know some of these have been improved since then.

Besides library specific reasons, I also chose to develop SharpLearning to learn more about machine learning, and in the end, this was probably the largest factor in my decision.

Regarding TensorFlowSharp and Keras-Sharp, I still have on my todo list to contribute with something useful on both projects. But as always, spare time is the main limiting factor.

Best regards
Mads

from sharplearning.

mdabros avatar mdabros commented on May 20, 2024

Hi @cesarsouza

Thanks for reaching out and thank you for your kind words. Also, thanks for your big efforts in bringing serious machine learning closer to .NET. We definitely share the same goal.

While I like the Accord.NET project, I enjoy my work on SharpLearning, which to me is a very focused effort to bring efficient machine learning to .NET, with an easy to use, high level interface. There are still many things I wish to improve and add to the project, so SharpLearning will continue to be my main focus.

With that said, I will be more than happy to contribute to projects, which can benefit both Accord.NET, SharpLearning, and other machine learning projects. So, even though I am not joining Accord.NET, I hope we can continue the discussion, learn from each other, and eventually achieve the overall goal of bringing serious machine learning to .NET.

Best regards
Mads

from sharplearning.

cesarsouza avatar cesarsouza commented on May 20, 2024

Hi @mdabros thank you very much for the response!

Please be sure I completely understand how you feel towards bringing SharpLearning to the .NET machine learning world. When I started Accord back in 2008/2009 there weren't many sources to look for inspiration, which is clearly very different from today's perspective. So far, I think you are doing perfectly right given that you have begun from the very start with a true open-source license (MIT). I am also in the process of converting most of the codebase of Accord.NET to MIT (accord-net/framework#940), so if you see any subparts of the project that you would like to see in SharpLearning and that I've written it myself (which you can see by the copyright header at the top of each file), please feel free to take inspiration and let me know if you would like it to be licensed under MIT.

But in any case, I would also like to know (if I may) - what has driven you to start your own project instead of using Accord.NET in the first place?

Kudos for the great work,
Cesar

from sharplearning.

cesarsouza avatar cesarsouza commented on May 20, 2024

Oh, and also before I forget - recently I had just managed to get Keras Sharp working with CNTK (ahead of TensorFlowSharp, which was the framework I had initially started with). If you would still like to contribute to that project, and add SharpLearning bindings to it, please feel free to do so.

Regards,
Cesar

from sharplearning.

mdabros avatar mdabros commented on May 20, 2024

I will close this issue for now.

@cesarsouza By the way, great work with getting Keras-Sharp running with CNTK, I will try out the as soon as time permits.

best regards
Mads

from sharplearning.

cesarsouza avatar cesarsouza commented on May 20, 2024

@mdabros,`

Cool, no worries. Keras# is still a work-in-progress - there are things that I managed to get working with TensorFlowSharp that I still haven't with CNTK and things with CNTK that I still haven't get working with TensorFlowSharp. However, both libraries are about to make new releases quite soon, so we will see if the situation will change after that!

Regards,
Cesar

from sharplearning.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.