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
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>:
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:
[mailto:gneuralnetwork-bounces+mwurm=address@hidden] On Behalf Of
Sent: Sonntag, 20. März 2016 17:01
Subject: Gneuralnetwork Digest, Vol 1, Issue 11
Send Gneuralnetwork mailing list submissions to
To subscribe or unsubscribe via the World Wide Web, visit
or, via email, send a message with subject or body 'help' to
You can reach the person managing the list at
When replying, please edit your Subject line so it is more specific than
"Re: Contents of Gneuralnetwork digest..."
1. Re: documentation (Jean Michel Sellier)
Date: Sun, 20 Mar 2016 12:21:32 +0100
From: Jean Michel Sellier <address@hidden>
To: Robert Masur <address@hidden>
Subject: Re: [Gneuralnetwork] documentation
Content-Type: text/plain; charset="utf-8"
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
Otherwise, I'd suggest you to have a look at the documentation of Archimedes
(it's another one of my GNU packages):
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!
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
> 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
> @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
> Thanks & best regards,
> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
Gneuralnetwork mailing list
End of Gneuralnetwork Digest, Vol 1, Issue 11
Jean Michel Sellier, Ph.D., M.Sc.