Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal for the initial API #3

Closed
19 tasks
pavanky opened this issue Jun 17, 2015 · 16 comments
Closed
19 tasks

Proposal for the initial API #3

pavanky opened this issue Jun 17, 2015 · 16 comments

Comments

@pavanky
Copy link
Member

pavanky commented Jun 17, 2015

This library will sit on top of arrayfire. The default implementation will be C++, however C wrappers will be added on top so that the library can be used from other languages.

The optimization function and distance metrics need to be abstract out so the user has a choice of switching them out whenever possible.

Base classes

Classifiers

Dimensionality Reduction

Regression Analysis

Clustering

Optimization functions

Needs research

@pavanky
Copy link
Member Author

pavanky commented Jun 17, 2015

@umar456 @pentschev @jramapuram Any suggestions about what can go in the first go would be greatly appreciated.

@pavanky
Copy link
Member Author

pavanky commented Jun 17, 2015

In particular, additions to Regression and clustering would be nice.

@pavanky pavanky added this to the 1.0 milestone Jun 17, 2015
@jramapuram
Copy link
Member

I think it makes sense to start with the basics, go with:

  • Linear Regression
  • Logistic Regression (natural extension due to just a kernel swap)
  • k-Means
  • Standard Multi Layer Perceptron.

And then take it from there! :)

Personally I would like to maybe do some LSTM's & other RNN type models.
However, for these we will need an optimizer. SGD & ADAM should be easy enough to implement

@jramapuram
Copy link
Member

Btw for the suite of neural models it would be good to abstract a standard 'Layer' class. This will make the addition of conv layers/etc pretty easy.

@pavanky
Copy link
Member Author

pavanky commented Jun 17, 2015

@jramapuram I was just running through the library design via github issues. I came up with this: #17 for the standard Layer class. It might change once the work actually begins.

@pavanky
Copy link
Member Author

pavanky commented Jun 17, 2015

I will look into the optimization functions and update the list. Can you create an issue for base RNN class and / or LSTM and discuss what additional work should be done ?

@jramapuram
Copy link
Member

Sure thing. For optimization I suggest paralleling something like keras's solution minus maybe the automatic differentiation that theano offers (thats pretty tough to implement I'd imagine).

@futurely
Copy link

@zxie has implemented a very elegant neural network library which maybe was based on the general flow graph described in the Stanford course Deep Learning for Natural Language Processing.

A graph based neural network model can be built with Nodes which do the math with Ops. Currently only one model was implemented with nodes. The library also implements some NNet models without using the nodes.

Caffe is also trying to manage the relationship of layers in a computation graph.

@unbornchikken
Copy link
Member

I have some experience with recurrent learning models, like RTLR and LSTM. Those coluld be used for tasks like speech recognition and realtime time series predictions, and so. Do you have plans for supporting such functionality aswell?

@jramapuram
Copy link
Member

@unbornchikken : #20

@unbornchikken
Copy link
Member

Yeah, but that doesn't get icluded in this list above. Yet?

@UniqueFool
Copy link

UniqueFool commented Jun 6, 2016

Caffe is also trying to manage the relationship of layers in a computation graph.

FWIW, there is an increasing number of ML algorithms that are doing tree/graph processing to some extent, so that may be another useful thing to have in arrayfire-ml: graph processing utilities for some of the more common algorithms (e.g. breadth-first search implemented in OpenCL)

@pavanky
Copy link
Member Author

pavanky commented Jul 6, 2017

Closing this because it is no longer relevant.

@pavanky pavanky closed this as completed Jul 6, 2017
@pavanky pavanky removed the feature label Jul 6, 2017
@pavanky pavanky removed this from the 1.0 milestone Jul 6, 2017
@jasonhargrove
Copy link

Why is it no longer relevant?

@pavanky
Copy link
Member Author

pavanky commented Jul 23, 2017

@jasonhargrove Using autograd for implementing neural networks. This involved changing the API. If you have any suggestions / questions, please follow up over here:
#17

@tcandzq
Copy link

tcandzq commented May 4, 2019

Hi,Could I join this project and develop some function in arrayfire-ml。Because write ml algorithm in C++ and GPU would interesting and challenging! Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants