SciSharp / SiaNet

An easy to use C# deep learning library with CUDA/OpenCL support
https://scisharp.github.io/SiaNet
MIT License
380 stars 83 forks source link

Where's the code?? #39

Closed jsboige closed 5 years ago

jsboige commented 5 years ago

I'm deeply confused as to what's the extent of this repository. I have been trying to test the library but something is wrong: The examples projects are left unfinished and nowhere close to what the wiki advertises. Trying to actually get a prediction from the code, the Xor example does not seem to work (predicts NAN on the samples). Then trying to test Housing Prediction, where are SplitXY and SplitTrainTest advertised in the wiki example? Then trying to implement something similar, Dataframe.Reshape and CSVFrame[params string[] columns] don't seem to do anything interesting. Where does the rabbit hole stop? Is there anything functional at all?

deepakkumar1984 commented 5 years ago

Hey,

The repo is almost dead, since no one in the community is contributing now.

Regards, Deepak

On Sat, 17 Nov 2018, 02:41 Jean-Sylvain Boige, notifications@github.com wrote:

I'm deeply confused as to what's the extent of this repository. I have been trying to test the library but something is wrong: The examples projects are left unfinished and nowhere close to what the wiki advertises. Trying to actually get a prediction from the code, the Xor example does not seem to work (predicts NAN on the samples). Then trying to test Housing Prediction, where are SplitXY and SplitTrainTest advertised in the wiki example? Then trying to implement something similar, Dataframe.Reshape and CSVFrame[params string[] columns] don't seem to do anything interesting. Where does the rabbit hole stop? Is there anything functional at all?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/deepakkumar1984/SiaNet/issues/39, or mute the thread https://github.com/notifications/unsubscribe-auth/AGCQKYxhXKaNY9UTPAOQamNJZin9Q2qxks5uvuPGgaJpZM4Ymink .

jsboige commented 5 years ago

Well OK but can you tell me what to expect? I'm happy to contribute a pull request fixing a couple things if I know for sure that it's just a couple bad commits, and the overall CNTK wrapping is expected to work. That's what's suggested by the Wiki examples, I guess some code went missing with them and there are issues in DataFrame classes, but will the layers and model work for sure if I fix them? Not having even the Xor example functional in not really engaging.

deepakkumar1984 commented 5 years ago

Try to get this tree which seems to be working: https://github.com/deepakkumar1984/SiaNet/tree/1127016675dcd023e7aeed4241e25677dabba13d

On Sat, Nov 17, 2018 at 9:07 PM Jean-Sylvain Boige notifications@github.com wrote:

Well OK but can you tell me what to expect? I'm happy to contribute a pull request fixing a couple things if I know for sure that it's just a couple bad commits, and the overall CNTK wrapping is expected to work. That's what's suggested by the Wiki examples, I guess some code went missing with them and there are issues in DataFrame classes, but will the layers and model work for sure if I fix them? Not having even the Xor example functional in not really engaging.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/deepakkumar1984/SiaNet/issues/39#issuecomment-439607016, or mute the thread https://github.com/notifications/unsubscribe-auth/AGCQKTSKM9YWytPYY4EUMCYboYtztzqQks5uv-bsgaJpZM4Ymink .

-- Regards, Deepak

jsboige commented 5 years ago

Ok well I was able to get TimeSeriesPrediction and MiltiVariateTimeSeriesPrediction to display progresses over epochs. All other samples would threw exceptions, displayed NANs or did not exhibit improvements over time. Honestly it's too bad the current source is in that state. It seems indeed that the code should be close to functional. It would be nice if you can help me get most samples to work. I'll be happy to commit a couple fixes.

deepakkumar1984 commented 5 years ago

Will try to fix when have some time in future

On Sun, 18 Nov 2018, 04:11 Jean-Sylvain Boige, notifications@github.com wrote:

Ok well I was able to get TimeSeriesPrediction and MiltiVariateTimeSeriesPrediction to display progresses over epochs. All other samples would threw exceptions, displayed NANs or did not exhibit improvements over time. Honestly it's too bad the current source is in that state. It seems indeed that the code should be close to functional. It would be nice if you can help me get most samples to work. I'll be happy to commit a couple fixes.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/deepakkumar1984/SiaNet/issues/39#issuecomment-439634278, or mute the thread https://github.com/notifications/unsubscribe-auth/AGCQKeKpf-DTYeTMbLFGM4s11uPBa1_Pks5uwEpXgaJpZM4Ymink .

jsboige commented 5 years ago

I was able to get Mnist to work in MLP by adding a BatchNorm, though it does not seem necessary in Ms official example. They use a different training smaller set though, but switching your version to their training does not really improve the situation except for speed. Can you tell me a little more about what's happened with the missing code in master?

deepakkumar1984 commented 5 years ago

Fixed the XOR and Housing Regression sample. I have ported the projects to .Net core but its not completed due to reference to Accord.IO which is referencing to SharpLib using .NET framework. CSVDataFrame is currently depended on Accord dll which I would like to replace it. Need to implement Image Reader to load in batch from a folder. I will work on it sometime this week to continue contributing this repo. Hope to kickstart some interest... The wiki is outdated now so please refer the same codes fo now.

deepakkumar1984 commented 5 years ago

I will come up with a list of pending tasks and post it on the wiki to track.

jsboige commented 5 years ago

OK I'm still struggling to get anything functional, especially since I have sparsed changes of my own in 2 distinct branches now. I tried to merge my master branch with your last commits, but the "Common" project has disappeared from the main directory but is still referenced as outside of the main directory now. Can you check that?

deepakkumar1984 commented 5 years ago

I was porting the project to .NET core and missed uploading the common project. Now should be available.

jsboige commented 5 years ago

I merged your last changes, and the XOR example is still failing to learn and returning NAN on predictions

deepakkumar1984 commented 5 years ago

Rewriting Sianet from scratch. Not using CNTK or other framework

jsboige commented 5 years ago

That does not sound like a viable solution. You had a Keras-like wrapper with a neat API, actually much closer to an complete version that the Keras Sharp project itself. Now because there were issues with the bindings you want to rewrite the underlying engine itself? This is madness. Plug it to TensoflowSharp if you feel more comfortable, but don't sabotage yourself as I have seen so many doing.

deepakkumar1984 commented 5 years ago

I understand your concern. With the new approach, I am trying to redefine a new library which can be compiled with any CUDA version (> 8). I have a plan to rollout support for OpenCL as well in the near future which will help to run your training on any device like Intel CPU/GPU, NVIDIA, AMD, FPGA etc. If you want to support CNTK please use the branch: https://github.com/deepakkumar1984/SiaNet/tree/sianet-cntk For MxNet: https://github.com/deepakkumar1984/SiaNet/tree/sianet-mxnet

jsboige commented 5 years ago

OK of course I understand there are plenty good reasons to rewrite the engine. I just think you are missing the point.

There is a crucial need for a Keras-like wrapper on the .Net stack, which your library would practically fit entirely. https://github.com/cesarsouza was probably the most respected open source AI developer on the .Net stack until he was hired last year and dropped completely his open source activity, but even he had understood, just as https://github.com/jeffheaton did with encog, that there was no point competing with giants on the already too competitive deep learning engine market (CNTK will probably fail against TF for that matters).

You've got an incredible opportunity to fill the wrapper vacuum. It just makes me sick to the stomach knowing you will most probably fail miserably either for technical reasons or just for market reasons on the engine side, as I have seen too many developers get lost attempting to rewrite a sub-component of their project they were not happy with, (for good or bad reasons, that's no the question), without realizing that this was the dead of the project itself. Just don't make that capital mistake !!

Honestly, what is needed now is fixing your existing Keras-like API so that anyone downloading your code base will be able to get the samples running with performances the like of the equivalent raw CNTK (or Tensorflow Sharp), and then move towards a functional release.

Anything else is just a waste of your past and future time on this project.