The thing about C++ would be, that it is easier for external users to adapt the library. Because then they can just inherit from the available classes and overwrite functions with own specific implementations. Think this is also the approach in tensorflow and for example in scikit-learn (http://scikit-learn.org/stable/), the popular machine learning library of python. Of course C is even more portable, but concerning long term usability C++ could have advantages. Concerning tensorflow: I did not work with it yet either. I got it as a feedback from some machine learning students. It is open source, published under the Apache v2 licence. I only had a first look over it and it appears like a lot of effort had already been invested into that library. From: Jean Michel Sellier [mailto:address@hidden Sent: Montag, 21. März 2016 11:06 To: Maximilian Wurm <address@hidden>; address@hidden Cc: Jean Michel Sellier <address@hidden> Subject: Re: [Gneuralnetwork] Styleguide, C or C++, Tensorflow Hey Max, Thanks for these very interesting comments! Personally, I like to program number crunching stuff in C or even in FORTRAN sometimes. I think these languages are more than OK for this particular task (I have a long experience with number crunching and I've seen all kind of things ;) ). But, again, it is a matter of taste I guess (unless you wanna use an interpreted language, then it's NOT a matter of taste, it's the wrong thing to do imho ;) ).. Concerning the headers, you are completely right. They have to be fixed (and actually I am working on that since yesterday). I am planning to release a new version next Saturday (hopefully) where the headers will be implemented the proper (C style) way. I also spotted a bunch of (minor) bugs and places for improvement (to make the code faster and use much less memory). So, hopefully, soon we will get to version 1.0 (may be in a few months?). Concerning tensorflow, I am not familiar with it but we can certainly learn "something" from it. Do you know what's its license? Furthermore, do you know what methods they use for training the network (I mean the optimizers)? Are they deterministic or stochastic? 2016-03-21 10:45 GMT+01:00 Maximilian Wurm <address@hidden>: Hey all,
what I would also find important is the definition or naming of a style guide, which we follow. (For example, I would not have known, that we define all the functions immediately within the headers and how to make proper comments in code.) If there are conventions for GNU let me know. I am participating in a GNU project for the first time. If we have a defined style, I would feel free to have a look over the code from time to time to make sure readability and tidiness.
Do we stay with c for the whole project? C++ had of course some advantages concerning extensibility in the end. I think there are also other GNU projects like Gnome which are (partly) written in c++. But let me know if this is nonsense.
Then, as an inspiration, I want to put a spotlight on tensorflow, the in my eyes most up-to-date opensource Machine Intelligence library, provided by the "Google-Brain" team: https://github.com/tensorflow/tensorflow/tree/master/tensorflow
Best regards, Max
-----Original Message----- From: gneuralnetwork-bounces+mwurm=address@hidden [mailto:gneuralnetwork-bounces+mwurm=address@hidden] On Behalf Of address@hidden Sent: Sonntag, 20. März 2016 17:01 To: address@hidden Subject: Gneuralnetwork Digest, Vol 1, Issue 11
Send Gneuralnetwork mailing list submissions to address@hidden
To subscribe or unsubscribe via the World Wide Web, visit https://lists.gnu.org/mailman/listinfo/gneuralnetwork or, via email, send a message with subject or body 'help' to address@hidden
You can reach the person managing the list at address@hidden
When replying, please edit your Subject line so it is more specific than "Re: Contents of Gneuralnetwork digest..."
Today's Topics:
1. Re: documentation (Jean Michel Sellier)
----------------------------------------------------------------------
Message: 1 Date: Sun, 20 Mar 2016 12:21:32 +0100 From: Jean Michel Sellier <address@hidden> To: Robert Masur <address@hidden> Cc: address@hidden Subject: Re: [Gneuralnetwork] documentation Message-ID: <CAHvOmR=address@hidden> Content-Type: text/plain; charset="utf-8"
Hi Robert,
MANY thanks for starting to work on the tutorial! I agree with you when you say that a technical documentation is important as well, but for now I guess a non-technical one is even more urgent because it can give the opportunity to non-programmers to understand what this package is about and how to use it.
Otherwise, I'd suggest you to have a look at the documentation of Archimedes (it's another one of my GNU packages):
www.gnu.org/software/archimedes
You will see that there is a LaTex file in the folder "doc" of the distribution tarball but also HTML and PDF online documentation. I would like to organize Gneural Network in the same way. The tutorial would be both in the "doc" folder and on the website. I will prepare a new section online as soon as the tutorial is ready.
One note though: please do not comment on the final part of the script which saves the output. I am already working on that to make it more general (and powerful). At the moment, the package takes for granted that the first neuron is the input neuron and the last neuron is the output of the network (i.e. the result to save). I am changing the situation so that, now, the first LAYER will be the input and the last layer will be the output of the network. This will make things waaay more powerful and useful!
I hope this helps and answers somehow to your comments/questions.
Thanks again for contributing to this project!
JM
2016-03-20 11:29 GMT+01:00 Robert Masur <address@hidden>:
> Hi Jean and Garvit, > > I am going to have a closer look at the script you mentioned and the > scripting language you included in version 0.5.0 to get a tutorial started. > > Something I don't understand yet is how the documentation shall be stored. > I was looking at other GNU projects documentation. Usually they either > have a manual section on their GNU project site or use a separate > project website including a wiki etc. It seems the most common format > for documentation is a (html) website. As mentioned earlier it is the > first GNU project I am contributing to. Currently I feel there is a > huge lack of information about the principles how to organize a GNU > project, about infrstructure (code repository, project websites etc.) > I would appreciate, if you (or someone else) could bring some light into the darkness. > > @Jean: Can you include a new section on the project website? What > format shall the tutorial have? > > Apart from the tutorial I find the technical developer documentation > quite important as it could be the basis for discussions about > architecture, design and implementation details that could bring the project forward. > > Thanks & best regards, > Robert > > > Am 19.03.2016 um 11:50 schrieb Jean Michel Sellier: > >> ory is something on the way and it will happen soon anyway. >> >> >
-- Jean Michel Sellier, Ph.D., M.Sc.
www.nano-archimedes.com
www.gnu.org/software/archimedes
www.gnu.org/software/nano-archimedes
www.gnu.org/software/gneuralnetwork
http://en.wikipedia.org/wiki/GNU_Archimedes -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.gnu.org/archive/html/gneuralnetwork/attachments/20160320/4ae13 918/attachment.html>
------------------------------
_______________________________________________ Gneuralnetwork mailing list address@hidden https://lists.gnu.org/mailman/listinfo/gneuralnetwork
End of Gneuralnetwork Digest, Vol 1, Issue 11 *********************************************
-- Jean Michel Sellier, Ph.D., M.Sc. |