gneuralnetwork
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gneuralnetwork] Styleguide, C or C++, Tensorflow


From: Maximilian Wurm
Subject: Re: [Gneuralnetwork] Styleguide, C or C++, Tensorflow
Date: Mon, 21 Mar 2016 13:16:03 +0100

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?

 

Thanks!

 

JM

 

 

 

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
*********************************************



 

--


reply via email to

[Prev in Thread] Current Thread [Next in Thread]