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, [email protected]
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 <[email protected]> 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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.