Hi, We've made cortex public: https://github.com/thinktopic/cortex
Fork away, and we hope that this contributes to a growing ML community in Clojure. Thoughts, ideas, feedback are welcome! Cheers, Jeff On Saturday, October 8, 2016 at 6:00:21 PM UTC-6, je...@thinktopic.com wrote: > > 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> 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.