Wow, that is incredibly cool. Eager to check it out.
On Wed, Jun 5, 2019, 12:41 PM Chris Nuernberger <ch...@techascent.com> wrote: > Good morning Clojurians, > > About 2 months ago during a talk about the tech.ml systems the point was > made that if we could load the python C libraries then that would provide > us with a lot more libraries to draw from. In addition, I seem to remember > one of the ML talks a concern about lack of libraries being the problem. > > So, in the spirit of building bridges and providing clojure with the best > possible libraries for any particular problem on the planet, I took the > last month and built out raw cpython (libpython3.X) bindings based on JNA. > > So, today after cleaning things up just a little bit I decided it was time > to announce libpython-clj. My hope is that there are enough clojuian > pythonistas that we can take this library and make it an absolute joy to > work with; the best python hosting environment that exists. > > https://github.com/cnuernber/libpython-clj > > Some features include: > > * Python dicts are represented in java as java.util.Map's. > * stdout,stderr are overridden to write to *out* and *err*, respectively. > * transparent access to the python interpreter from any thread. > * zero-copy pathways for numpy->tech.datatype tensors and back. So you > can intermix heavy processing between clojure and python without pay a > large conversion cost. > * Decent performance. This is built on the raw cpython shared library so > our cost of executing or interoperating with python should not be any > higher than anyone else's. > * two way bridging. Expose your JVM objects to python and vice versa. > > I have a simple keras demo where I use Keras from clojure to train a > neural network included in the examples. So that proves out keras and > tensorflow access from clojure. > > I think this soundly addresses our ability to load cutting edge math and > machine learning libraries. > > -- > 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. > To view this discussion on the web visit > https://groups.google.com/d/msgid/clojure/CADbpEJvOWoxZu0Y_LHi%2B36bEbcOfxCV5n0jd7mhvq8TO9MaD_w%40mail.gmail.com > <https://groups.google.com/d/msgid/clojure/CADbpEJvOWoxZu0Y_LHi%2B36bEbcOfxCV5n0jd7mhvq8TO9MaD_w%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/clojure/CANoO%3DwR%3Dwau9Ci%2BbCxaO_vRJXbbPoE%2B8bg_tYsUTEU9Wz3LrSA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.