Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Francesco Faccio-2
Hi Brayan, 

thank you for your interest! Please use the maintainers mailing list for any conversation.

Yes, CNN is a part of the Matlab toolbox, but it doesn't strictly depend on the other functions of the package. 

I will take a look at your proposal before the end of the week (I'm a little busy because of OctConf).

Francesco

Da: Brayan Impatá <[hidden email]>
Inviato: lunedì 20 marzo 2017 09.07.42
A: Francesco Faccio
Oggetto: GSOC 17 - Octave - Reutilization of NNET on CNN Project
 
Hello Francesco,

my name is Brayan Stiven Zapata Impatá and I am writing you since I am interested in taking part of the GSoC 17 project you mentor on Octave called: Neural Networks package: Convolutional Neural Networks. Here, I leave you my Octave application form so you can learn more from me and my proposal: http://wiki.octave.org/User:Yayan

I have checked the NNET project and I have seen you are working on it. I guess that your main idea is building the CNN as a module inside this forge package, am I wrong? I think that would be a great idea!

Please, let me ask you for some help on the proposal so any help or suggestion would be really appreciated. Thanks for you attention,

Brayan.

Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Ankit
Hi Brayan,


Please, include your github profile link also there.

Cheers!!
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Brayan Impatá
Hi there,

I have just added the GitHub profile link. However, I haven't used it for a while since most of the projects I have worked on are private researches that are still unpublished or just simple programs I have written. I plan to upload a couple of those projects.

On 21 March 2017 at 11:02, Ankit <[hidden email]> wrote:
Hi Brayan,


Please, include your github profile link also there.

Cheers!!




--
View this message in context: http://octave.1599824.n4.nabble.com/Re-GSOC-17-Octave-Reutilization-of-NNET-on-CNN-Project-tp4682480p4682488.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.




--
Un saludo,
Brayan.
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Brayan Impatá
Hi,

I've seen we have a strong dependency to the Pytave project if we pretend to use Tensorflow/Keras through its Python interface. Shall we better move to use OCT files to define the CNN module and use the C++ API that Tensorflow exposes? It does not seems to be a good idea depending on another developing project.

On 21 March 2017 at 15:35, Brayan Impatá <[hidden email]> wrote:
Hi there,

I have just added the GitHub profile link. However, I haven't used it for a while since most of the projects I have worked on are private researches that are still unpublished or just simple programs I have written. I plan to upload a couple of those projects.

On 21 March 2017 at 11:02, Ankit <[hidden email]> wrote:
Hi Brayan,


Please, include your github profile link also there.

Cheers!!




--
View this message in context: http://octave.1599824.n4.nabble.com/Re-GSOC-17-Octave-Reutilization-of-NNET-on-CNN-Project-tp4682480p4682488.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.




--
Un saludo,
Brayan.



--
Un saludo,
Brayan.
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Rik-4
In reply to this post by Francesco Faccio-2
On 03/22/2017 09:00 AM, [hidden email] wrote:
Subject:
Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project
From:
Brayan Impatá [hidden email]
Date:
03/22/2017 01:07 AM
To:
[hidden email]
List-Post:
[hidden email]
Precedence:
list
MIME-Version:
1.0
References:
[hidden email] [hidden email] [hidden email]
In-Reply-To:
[hidden email]
Message-ID:
[hidden email]
Content-Type:
multipart/alternative; boundary=001a11422a3c89d27b054b4d3fa1
Message:
3

Hi,

I've seen we have a strong dependency to the Pytave project if we pretend to use Tensorflow/Keras through its Python interface. Shall we better move to use OCT files to define the CNN module and use the C++ API that Tensorflow exposes? It does not seems to be a good idea depending on another developing project.

I would say that many people overestimate the difficulty of using .oct files.  I re-wrote a lot of the documentation on using the external interface so I think the manual is pretty clear now.  And there are many usage examples in the libinterp/dldfcn directory to begin an implementation from.  Since Tensorflow exposes a C++ API it makes a whole lot of sense to me to use this approach rather than go through a longer path of Octave->Python->Tensorflow->Python->Octave.

The only caveat I see is this, "A word of caution: the APIs in languages other than Python are not yet covered by the API stability promises."  However, I doubt they are going to abandon C++ as an API.

---Rik

Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Brayan Impatá
Hi Rik,

I will give them a glance and a try. I have never wrote one so I guess that my proposal's timing would be more realistic given I get some experience with this. As for Tensorflow abandoning the C++ API, on November 2016 a contributor said that was unlikely since the Tensorflow serving uses it (check it here).

On 22 March 2017 at 17:21, Rik <[hidden email]> wrote:
On 03/22/2017 09:00 AM, [hidden email] wrote:
Subject:
Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project
From:
Brayan Impatá [hidden email]
Date:
03/22/2017 01:07 AM
To:
[hidden email]
List-Post:
[hidden email]
Precedence:
list
MIME-Version:
1.0
References:
[hidden email] [hidden email] [hidden email]
In-Reply-To:
[hidden email]
Message-ID:
[hidden email]
Content-Type:
multipart/alternative; boundary=001a11422a3c89d27b054b4d3fa1
Message:
3

Hi,

I've seen we have a strong dependency to the Pytave project if we pretend to use Tensorflow/Keras through its Python interface. Shall we better move to use OCT files to define the CNN module and use the C++ API that Tensorflow exposes? It does not seems to be a good idea depending on another developing project.

I would say that many people overestimate the difficulty of using .oct files.  I re-wrote a lot of the documentation on using the external interface so I think the manual is pretty clear now.  And there are many usage examples in the libinterp/dldfcn directory to begin an implementation from.  Since Tensorflow exposes a C++ API it makes a whole lot of sense to me to use this approach rather than go through a longer path of Octave->Python->Tensorflow->Python->Octave.

The only caveat I see is this, "A word of caution: the APIs in languages other than Python are not yet covered by the API stability promises."  However, I doubt they are going to abandon C++ as an API.

---Rik




--
Un saludo,
Brayan.
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Francesco Faccio


2017-03-22 19:13 GMT+01:00 Brayan Impatá <[hidden email]>:
Hi Rik,

I will give them a glance and a try. I have never wrote one so I guess that my proposal's timing would be more realistic given I get some experience with this. As for Tensorflow abandoning the C++ API, on November 2016 a contributor said that was unlikely since the Tensorflow serving uses it (check it here).

On 22 March 2017 at 17:21, Rik <[hidden email]> wrote:
On 03/22/2017 09:00 AM, [hidden email] wrote:
Subject:
Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project
From:
Brayan Impatá [hidden email]
Date:
03/22/2017 01:07 AM
To:
[hidden email]
List-Post:
[hidden email]
Precedence:
list
MIME-Version:
1.0
References:
[hidden email] [hidden email] [hidden email]
In-Reply-To:
[hidden email]
Message-ID:
[hidden email]
Content-Type:
multipart/alternative; boundary=001a11422a3c89d27b054b4d3fa1
Message:
3

Hi,

I've seen we have a strong dependency to the Pytave project if we pretend to use Tensorflow/Keras through its Python interface. Shall we better move to use OCT files to define the CNN module and use the C++ API that Tensorflow exposes? It does not seems to be a good idea depending on another developing project.

I would say that many people overestimate the difficulty of using .oct files.  I re-wrote a lot of the documentation on using the external interface so I think the manual is pretty clear now.  And there are many usage examples in the libinterp/dldfcn directory to begin an implementation from.  Since Tensorflow exposes a C++ API it makes a whole lot of sense to me to use this approach rather than go through a longer path of Octave->Python->Tensorflow->Python->Octave.

The only caveat I see is this, "A word of caution: the APIs in languages other than Python are not yet covered by the API stability promises."  However, I doubt they are going to abandon C++ as an API.

---Rik




--
Un saludo,
Brayan.
Dear Rik, Brayan,
 
In my opinion it is better to use the Python API. I agree on the fact that it would be easier to do everything in terms of OCT-files and I see a lot of improvement in the C++ API and documentation since TensorFlow 1.0 [1].

However, the Python API is the most extended and it is stable. With the experimental C++ API, there could be a lot of incompatibilities between minor releases [2] and this would make the maintainance of the package extremely difficult.

As a developer, I encourage collaboration across projects and I think that the right approach to the community should be as open and collaborative as possible. This means that if this project depends on Pytave and Pytave is under development, then a small part of the work should be devoted to fix features of Pytave that we need.

Francesco

[1]https://www.tensorflow.org/api_docs/cc/
[2]https://www.tensorflow.org/programmers_guide/version_semantics
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Francesco Faccio
In reply to this post by Brayan Impatá

2017-03-21 15:35 GMT+01:00 Brayan Impatá <[hidden email]>:
Hi there,

I have just added the GitHub profile link. However, I haven't used it for a while since most of the projects I have worked on are private researches that are still unpublished or just simple programs I have written. I plan to upload a couple of those projects.

On 21 March 2017 at 11:02, Ankit <[hidden email]> wrote:
Hi Brayan,


Please, include your github profile link also there.

Cheers!!




--
View this message in context: http://octave.1599824.n4.nabble.com/Re-GSOC-17-Octave-Reutilization-of-NNET-on-CNN-Project-tp4682480p4682488.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.




--
Un saludo,
Brayan.
Hi Brayan,

could you please specify in your timeline when you plan to add parallelization options in your code?
Also, I would like to know what kind of tests you plan to write.

Thank you,

Francesco
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Brayan Impatá
Hi Francesco,

I agree with you in the use of the Python API, it is my preferable interface to Tensorflow. We could aim to work on Pytave so we could call a Python script in charge of executing the Tensorflow code. However, I do also agree with Rik: this would be a long path that would abstract us from dealing directly with Tensorflow from Octave. The Python script would be in

As for parallelization, do you mean by parallelization options adding the possibility to chose to run the code on GPU or CPU? If we plan to use Tensorflow, that will only depend on the distribution installed since they are different if you plan to run Tensorflow over GPU or CPU [1]. In running time the distribution would be detected and the workload would be share among the detected devices depending on such installation.

Regarding the tests, I have described my plan at the end of the timeline in my Octave application form. [2]

[1] https://www.tensorflow.org/install/install_linux
[2] http://wiki.octave.org/User:Yayan#Y:_Your_task

On 27 March 2017 at 00:21, Francesco Faccio <[hidden email]> wrote:

2017-03-21 15:35 GMT+01:00 Brayan Impatá <[hidden email]>:
Hi there,

I have just added the GitHub profile link. However, I haven't used it for a while since most of the projects I have worked on are private researches that are still unpublished or just simple programs I have written. I plan to upload a couple of those projects.

On 21 March 2017 at 11:02, Ankit <[hidden email]> wrote:
Hi Brayan,


Please, include your github profile link also there.

Cheers!!




--
View this message in context: http://octave.1599824.n4.nabble.com/Re-GSOC-17-Octave-Reutilization-of-NNET-on-CNN-Project-tp4682480p4682488.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.




--
Un saludo,
Brayan.
Hi Brayan,

could you please specify in your timeline when you plan to add parallelization options in your code?
Also, I would like to know what kind of tests you plan to write.

Thank you,

Francesco



--
Un saludo,
Brayan.
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Brayan Impatá
Hi Francesco,

I agree with you in the use of the Python API, it is my preferable interface to Tensorflow. We could aim to work on Pytave so we could call a Python script in charge of executing the Tensorflow code. However, I do also agree with Rik: this would be a long path that would abstract us from dealing directly with Tensorflow from Octave. The Python script would be in charge of everything and Octave would end up being only a dumb client with no information about Tensorflow.

As for parallelization, do you mean by parallelization options adding the possibility to chose to run the code on GPU or CPU? If we plan to use Tensorflow, that will only depend on the distribution installed since they are different if you plan to run Tensorflow over GPU or CPU [1]. In running time the distribution would be detected and the workload would be share among the detected devices depending on such installation.

Regarding the tests, I have described my plan at the end of the timeline in my Octave application form. [2]

[1] https://www.tensorflow.org/install/install_linux
[2] http://wiki.octave.org/User:Yayan#Y:_Your_task

On 27 March 2017 at 10:52, Brayan Impatá <[hidden email]> wrote:
Hi Francesco,

I agree with you in the use of the Python API, it is my preferable interface to Tensorflow. We could aim to work on Pytave so we could call a Python script in charge of executing the Tensorflow code. However, I do also agree with Rik: this would be a long path that would abstract us from dealing directly with Tensorflow from Octave. The Python script would be in

As for parallelization, do you mean by parallelization options adding the possibility to chose to run the code on GPU or CPU? If we plan to use Tensorflow, that will only depend on the distribution installed since they are different if you plan to run Tensorflow over GPU or CPU [1]. In running time the distribution would be detected and the workload would be share among the detected devices depending on such installation.

Regarding the tests, I have described my plan at the end of the timeline in my Octave application form. [2]

[1] https://www.tensorflow.org/install/install_linux
[2] http://wiki.octave.org/User:Yayan#Y:_Your_task

On 27 March 2017 at 00:21, Francesco Faccio <[hidden email]> wrote:

2017-03-21 15:35 GMT+01:00 Brayan Impatá <[hidden email]>:
Hi there,

I have just added the GitHub profile link. However, I haven't used it for a while since most of the projects I have worked on are private researches that are still unpublished or just simple programs I have written. I plan to upload a couple of those projects.

On 21 March 2017 at 11:02, Ankit <[hidden email]> wrote:
Hi Brayan,


Please, include your github profile link also there.

Cheers!!




--
View this message in context: http://octave.1599824.n4.nabble.com/Re-GSOC-17-Octave-Reutilization-of-NNET-on-CNN-Project-tp4682480p4682488.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.




--
Un saludo,
Brayan.
Hi Brayan,

could you please specify in your timeline when you plan to add parallelization options in your code?
Also, I would like to know what kind of tests you plan to write.

Thank you,

Francesco



--
Un saludo,
Brayan.



--
Un saludo,
Brayan.
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Brayan Impatá
Hello,

I sadly notify you that I have deleted my proposal from the GSoC site. I just got to know that this kind of paid  programs are not compatible with the national grant I have been recently awarded for carrying my PhD studies. Nevertheless, I still want to dedicate part of my time collaborating on Octave. Since the CNN module is presented as a GSoC proposal, I guess I should leave this for the candidates.I'll give Pytave a glance so hopefully I can help others with this project.

On 27 March 2017 at 10:53, Brayan Impatá <[hidden email]> wrote:
Hi Francesco,

I agree with you in the use of the Python API, it is my preferable interface to Tensorflow. We could aim to work on Pytave so we could call a Python script in charge of executing the Tensorflow code. However, I do also agree with Rik: this would be a long path that would abstract us from dealing directly with Tensorflow from Octave. The Python script would be in charge of everything and Octave would end up being only a dumb client with no information about Tensorflow.

As for parallelization, do you mean by parallelization options adding the possibility to chose to run the code on GPU or CPU? If we plan to use Tensorflow, that will only depend on the distribution installed since they are different if you plan to run Tensorflow over GPU or CPU [1]. In running time the distribution would be detected and the workload would be share among the detected devices depending on such installation.

Regarding the tests, I have described my plan at the end of the timeline in my Octave application form. [2]

[1] https://www.tensorflow.org/install/install_linux
[2] http://wiki.octave.org/User:Yayan#Y:_Your_task

On 27 March 2017 at 10:52, Brayan Impatá <[hidden email]> wrote:
Hi Francesco,

I agree with you in the use of the Python API, it is my preferable interface to Tensorflow. We could aim to work on Pytave so we could call a Python script in charge of executing the Tensorflow code. However, I do also agree with Rik: this would be a long path that would abstract us from dealing directly with Tensorflow from Octave. The Python script would be in

As for parallelization, do you mean by parallelization options adding the possibility to chose to run the code on GPU or CPU? If we plan to use Tensorflow, that will only depend on the distribution installed since they are different if you plan to run Tensorflow over GPU or CPU [1]. In running time the distribution would be detected and the workload would be share among the detected devices depending on such installation.

Regarding the tests, I have described my plan at the end of the timeline in my Octave application form. [2]

[1] https://www.tensorflow.org/install/install_linux
[2] http://wiki.octave.org/User:Yayan#Y:_Your_task

On 27 March 2017 at 00:21, Francesco Faccio <[hidden email]> wrote:

2017-03-21 15:35 GMT+01:00 Brayan Impatá <[hidden email]>:
Hi there,

I have just added the GitHub profile link. However, I haven't used it for a while since most of the projects I have worked on are private researches that are still unpublished or just simple programs I have written. I plan to upload a couple of those projects.

On 21 March 2017 at 11:02, Ankit <[hidden email]> wrote:
Hi Brayan,


Please, include your github profile link also there.

Cheers!!




--
View this message in context: http://octave.1599824.n4.nabble.com/Re-GSOC-17-Octave-Reutilization-of-NNET-on-CNN-Project-tp4682480p4682488.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.




--
Un saludo,
Brayan.
Hi Brayan,

could you please specify in your timeline when you plan to add parallelization options in your code?
Also, I would like to know what kind of tests you plan to write.

Thank you,

Francesco



--
Un saludo,
Brayan.



--
Un saludo,
Brayan.



--
Un saludo,
Brayan.
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Carnë Draug
In reply to this post by Rik-4
On 22 March 2017 at 16:21, Rik <[hidden email]> wrote:
> [...]
> Since Tensorflow exposes a C++ API it
> makes a whole lot of sense to me to use this approach rather than go
> through a longer path of Octave->Python->Tensorflow->Python->Octave.

I thought the same but was told that TensorFlow C++ API is not only
quite unstable, it also only provides the computational part.  The
interesting machine learning bits are only in Python.

Carnë

Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Francesco Faccio
In reply to this post by Brayan Impatá
2017-03-28 17:08 GMT+02:00 Brayan Impatá <[hidden email]>:
Hello,

I sadly notify you that I have deleted my proposal from the GSoC site. I just got to know that this kind of paid  programs are not compatible with the national grant I have been recently awarded for carrying my PhD studies. Nevertheless, I still want to dedicate part of my time collaborating on Octave. Since the CNN module is presented as a GSoC proposal, I guess I should leave this for the candidates.I'll give Pytave a glance so hopefully I can help others with this project.

--
Un saludo,
Brayan.

Brayan,

your help will be much appreciated. Thank you for the discussion we had on how to interface Octave and Python.
I hope you will continue to interact with the community and collaborate on this project,

Best,

Francesco
Reply | Threaded
Open this post in threaded view
|

Re: GSOC 17 - Octave - Reutilization of NNET on CNN Project

Francesco Faccio
In reply to this post by Carnë Draug
2017-03-28 18:18 GMT+02:00 Carnë Draug <[hidden email]>:
On 22 March 2017 at 16:21, Rik <[hidden email]> wrote:
> [...]
> Since Tensorflow exposes a C++ API it
> makes a whole lot of sense to me to use this approach rather than go
> through a longer path of Octave->Python->Tensorflow->Python->Octave.

I thought the same but was told that TensorFlow C++ API is not only
quite unstable, it also only provides the computational part.  The
interesting machine learning bits are only in Python.

Carnë
Hi Carnë,

I probably was wrong on that. It seems that in TensorFlow 1.0 the C++ API has been slightly extended [1] and now it supports also the training part. 

By the way, the Python API has a lot more features, it's easier to use, better documented and it's stable. For a good student, learning how to use Pytave providing patches or fixing bugs if needed, can be a nice pre-GSoC work.

Francesco


[1]https://www.tensorflow.org/api_docs/cc/