Hey, I'm glad this came up. We were initially thinking we'd wait until the API and design had stabilized before releasing Cortex, but there is enough of value now that I think Kovas is right. We should release it.
Cortex has been a collaboration between ThinkTopic and Mike Anderson, and it's design is somewhat similar to Torch. (Neural network layers that implement protocols for forward computation and backward propagation of gradients along with a set of optimizers.) Although we are already using Cortex models in production, it's definitely still a library in flux. We had arrived at a pretty good set of base abstractions in pure Clojure using core.matrix, but then when we decided to add gpu support we realized we had to refactor things a bit. The CuDNN and CuBLAS libraries from Nvidia provide a lot of useful functionality, but they also come with their own abstractions for matrix computation, neural network layers, optimizers, etc. To take advantage of the GPU effectively we also need to be able to sequence and interleave tasks using streams, which requires a variety of design changes unless we want to maintain separate implementations of almost everything for both the CPU and the GPU. You can build and run networks now, but we are still exploring how this should all come together. So, as long as you keep in mind that things will change, it would be great to have you all join the conversation and help experiment with abstractions and apis. Give us a couple days to do some house keeping, and then we'll open source it. -Jeff On Thursday, October 6, 2016 at 8:08:41 PM UTC-6, kovasb wrote: > > On Thu, Oct 6, 2016 at 9:20 PM, Mikera <mike.r.an...@gmail.com > <javascript:>> wrote: > >> Hi Dragan, >> >> We have things working quite well (including stuff like cuDNN integration >> for convolution networks on the GPU). We also have all of the standard >> stuff (many different layer types, dropout, noise function, regularisation >> etc.). However I think it still needs a bunch of work before we stabilise >> on the core API. >> > > >> Things I'm paricularly keen to have nailed down in particular before we >> go public: >> > > FWIW it sounds like you've achieved a huge amount already. > > There are many people in the Clojure community who can come up with a DAG > abstraction. There are very, very few who have the skill and time to assess > and integrate the various native libs necessary to achieve the fundamental > operations in a clojure-friendly way. > > If people build on the 'wrong' api, thats a good problem to have. The > field is so in flux anyway. The problem can also be mitigated through > minimalism in what is released in the beginning. > > In any case, looking forward to hopefully seeing this stuff one day. > > > > > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.