neoml-lib / neoml

Machine learning framework for both deep learning and traditional algorithms
https://www.abbyy.com/neoml/
Apache License 2.0
764 stars 126 forks source link

.NET Core Support #10

Open KSemenenko opened 4 years ago

KSemenenko commented 4 years ago

Is there any chance of supporting .net core? For C++ integration is possible to use the C++ CLR which can wrap C++ and make all classes available in the .NET environment.

Now there are very few normal libraries for .net, despite the fact that it has long been cross-platform.

SAngeliuk commented 4 years ago

Are you interested in a full wrapper or just an inference-wrapper?

KSemenenko commented 4 years ago

I have been looking for a library for .net for a long time to work with ML (nerual networls, GA, etc). I do not want to use TensorFlow and other python libraries. So I'm interested in the most comprehensive API possible. In general (except for ML.NET, which is still not very good), all available libraries are more or less dependent on TensorFlow. And I don’t understand why. Your library has everything what we need, a GPU, cross-platform, ready-made kits for building neural networks. So it would be great to be able to work with it from .NET If you need any help, then I'm ready :) @SAngeliuk

SAngeliuk commented 4 years ago

Sounds great) We don’t have a .Net wrapper because it isn’t our tech stack… However, if you can help we could do it together! Let’s discuss it: Stanislav.angelyuk@abbyy.com @KSemenenko

EeeasyBreezy commented 4 years ago

I'd like also to contribute to .NET Core implementation, but I've not any experience of open source projects so far. Hope it's not gonna be an obstacle to community

eugeneagafonov commented 3 years ago

I have created two wrappers for NeoProxy.h, one is based on interop and is potentially cross-platform when I will be able to figure out proper DllImports for other platforms: https://github.com/eugeneagafonov/neoml-interop-wrapper The other one is using managed C++ which is currently compiles only windows binaries, but much cleaner https://github.com/eugeneagafonov/neoml-managedcpp-wrapper

@SAngeliuk and everyone, I would appreciate help with reviewing the API (it's challenging to encapsulate with interfaces) and preparing side by side build with NeoML

;)

SAngeliuk commented 3 years ago

Thank you @eugeneagafonov! Great job! We will try to integrate your wrappers shortly.

eugeneagafonov commented 3 years ago

Thanks! Not sure if we need both, I think interop is the way to go until there is a way to compile managed C++ for non-windows. I can help with integration, if you can help setting up a placeholder empty netcore project in the repo, I can send an actual PR

eugeneagafonov commented 2 years ago

;)