HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
deeplearning4j
nd4j
HISTORICAL RECORD2015–2019
deeplearning4j / nd4j · Not publicly available

nd4j

Discover this repository through its Hacker News conversations.

3Distinct people
15Mentions
0Explicit recommenders
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A public description has not been verified.

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year15 dated mentions

Observed mentions: 2015-04-24 21:23:06 UTC to 2019-05-16 07:04:59 UTC.

02462015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2019

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC303
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC404
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC606
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC110

What Hacker News says

15 sources
The core looks close enough to dataframes that I'd be curious to know how you compare to tablesaw: https://github.com/jtablesaw/tablesaw This looks neat but I'm not sure why I would care about this. There's a ton of solutions out there in the ecosystem out there already with a columnar like interface. Granted, we wrote our own as well[1] that uses the builder pattern that you then toss to an executor (our main backend is spark for this). One reason we wrote this is for persistence purposes. Being able to encode and persist a series of transforms that you can then load remotely has been very helpful for us in machine learning. We've since migrated this project to the eclipse foundation and intend on doing a rewrite of the interface as well as integrate our baked in tensor library[2] in to certain parts of the pipeline for speed purposes an
Read the rest
d handling things like computer vision workloads. In general, I always like seeing new takes on the columnar format processing approach but I'm just not seeing anything novel here. Clarification of intent would be great! [1]: https://github.com/deeplearning4j/DataVec [2]: https://github.com/deeplearning4j/nd4j
In Show HN: Bistro – A light-weight column-oriented data processing engine
We've actually implemented something like this ourselves with our linear algebra library. We wrote our own gc for cuda: https://github.com/deeplearning4j/nd4j/tree/master/nd4j-back... as well as: https://deeplearning4j.org/workspaces It also integrates with the JVM via weak references as well. I can attest to: https://news.ycombinator.com/item?id=15269537 as well, you really need this 3rd party due to the frequency of how often cuda changes. We usually end up having to support the 2 most recent cuda versions.
In Eclipse OpenJ9 – Open-source JVM
Not really. It's just different graph structures and optimizations. Spark in general just isn't well suited for tensorflow graphs. You're hitting on exactly what I'm talking about. It's very different use cases. 1 is tensors, the other is data types with schemas. Tensors are also n dimensional. Schemas are inherently 2d. The ops are also different. What makes spark's op graph good vs tensorflows are very different. Tensorflow in general tends to lean on pandas and the like. They are sorta trying to do that with pipelines, but at the end of the day, I think it would overextend tensorflow's scope to "care" about anything outside of math. "ETL" and dataframes is already pretty well served. If you want something that does this well, look at arrow which is a great communications layer. It even has a tensor type now. Disclaimer: Biased rant bel
Read the rest
ow. I compete with databricks, google cloud,tensorflow, mxnet and a lot of the spark ecosystem The other problem is..pyspark itself is just bad for linear algebra. Period. You need specialized communications for tensors because the data often lives elsewhere and is in a blob type format. To get benefits from simd and the like you shouldn't be adding networked communications on top of this. That's why we made jumpy for our library. We interop directly at the pointer level and then use our parameter server and gpu stack. Using arrow I think mapd is attempting to do this as well. I don't see spark ever becoming good at linear algebra anytime soon despite what the folks at berkeley are pushing. As for "reasoning about data frames" spark underneath basically turns your dataframe declarations into a DAG. It does this in a very different way than tensorflow's XLA though. XLA's code gen is focused on math ops. Schemas are a whole other different animal. The great thing about spark is it already has "typed rdds" like dataframes and datasets it uses internally. It's really to rely on the JVM's type system and JIT for this. Whereas with math, if you constrain the domain and can make assumptions you can do codegen assuming that all you're doing are "for loops" which generalizes well for cuda and cpu with simd/AVX etc. You can't make the assumption that everything is a "for loop" as much with spark. We write and maintain datavec: https://github.com/deeplearning4j/DataVec and nd4j: https://github.com/deeplearning4j/nd4j which are integrated together and have a "tensor data type" which uses nd4j directly. This is very similar to what arrow does. We define a "transform process" which you could say: do ffts with. That kind of ETL isn't supported with dataframes directly without a lot of hacks. TLDR: TF will mainly stick to linear algebra
In A Comparison of Distributed Machine Learning Platforms
We are adding this now to our tensor library: https://github.com/deeplearning4j/nd4j/pull/1750 I've also added numpy interop via our new python interface jumpy: https://github.com/deeplearning4j/jumpy We are doing a lot more than autograd though, this is going to support dynamic computation graphs, give you direct access to a graph data structure and will later be usable from nd4s (our scala wrapper) Rather than spending time going back and forth implementing all of those things you could just pitch in with our existing efforts (hint: you'd actually be getting something done rather than debating ;)) We have a parameter server for word2vec, various kinds of optimizers and the like:https://github.com/deeplearning4j/nd4j/tree/master/nd4j-para... I'd also just like to note for anyone else reading this: Mulling over doing something helps no on
Read the rest
e. If you see something that's open source that's close to what you want try engaging the authors to see what they have to say. Maybe they will guide you. We've done that recently for our lapack integration with cpu and gpu as well as various neural net implementations. No offense but it kills me to see comments like this. I see tons of people complaining about features yet doing nothing to add them let alone engaging open source authors. It's kinda funny - every time someone has actually did that I've hired them. The developers that actually take action when engaging open source are amazing people.I have a feeling it's because they take the time to learn and get their feet wet even if it's initimidating. Other neat community initiatives include flink: https://issues.apache.org/jira/browse/FLINK-5782 Nasa (Apache Tika): https://github.com/apache/tika/pull/165 A language for our ETL library DataVec (supports binary vectorization AND sql like transformations!): https://github.com/deeplearning4j/DataVec/issues/224 A scala lib like tensorflow built on top of nd4j: https://github.com/ThoughtWorksInc/DeepLearning.scala Our spark ml integration: https://github.com/deeplearning4j/deeplearning4j/tree/master... The community is very active. We have 4200 people in a gitter room alone: http://gitter.im/deeplearning4j/deeplearning4j
In Some Lesser Known Machine Learning Libraries
It can though. We are a java shop that does HPC and deep learning. Our work is open source. We've been around 2.5 going on 3 years now. Over the years we've surpassed bottleneck after bottleneck in the JVM. It's a faster wrapper around c code for us. We maintain and created: https://github.com/bytedeco/javacpp which wraps a lot of c++ components. This is also how we do GPUs and the like with our own memory management for our "numpy for java": https://github.com/deeplearning4j/nd4j/tree/master/nd4j-back... Short of it "off heap and NO GC" matters a lot. We have 1 c codebase we use that's meant to be controlled via JNI here: https://github.com/deeplearning4j/libnd4j The speed gains we've seen are massive. Java can't compete with good ole simd and the like for numerical computing. We are a big advocate of the JVM as a platform but let's be c
Read the rest
lear about its weaknesses. You need to use unsafe (see: netty,aeron, and any other low level database written in java or using java as the core language with some c++)and other tricks out of the box for real performance.
In Challenging Clojure in Common Lisp (2014)
The numpy array is a great data structure. I know it's not python but I wanted to plug our attempt at this for the jvm, nd4j: http://nd4j.org/tensor We have a java wrapper: https://github.com/deeplearning4j/nd4j Scala: https://github.com/deeplearning4j/nd4s And underlying c++: https://github.com/deeplearning4j/libnd4j We heavily dog food it in our deep learning library but we're hoping this can be more broadly useful for people.
In The NumPy array: a structure for efficient numerical computation (2011) [pdf]
Those are implemented by lapack as part of an nd4j backend. Yes we have double precision - we have a default data type with the data buffer. If you're curious how we do storage: https://github.com/deeplearning4j/nd4j/blob/master/nd4j-buff... We have allocation types and data types. Data types are double/float/int (int is mainly for storage) Allocation types are the storage medium which can be arrays,byte buffers or what have you. If you have a problem with the docs - I highly suggest filing an issue on our site: https://github.com/deeplearning4j/nd4j/issues We actually appreciate eedback like this thank you. For net lib java, it links against any blas implementation you give it. It has this idea of a JNILoader which can dynamically link against the fallback blas (which you mentioned) or typically openblas or mkl. The problem there can act
Read the rest
ually be licensing though. The spark project runs in to this: https://issues.apache.org/jira/browse/SPARK-4816 If we don't mention on the site, it's probably because we haven't thought about it or haven't gotten enough feedback on something. Unfortunately, we're still in heavy development mode. FWIW, we have one of the most active gitter channels out there. You can come find me anytime if you're interested in getting involved.
In Julia: A Fast Language for Numerical Computing
Hi Jordi - I'm sure you're right. You have an amazing resume. Please help us make ND4J/ND4S better. https://github.com/deeplearning4j/nd4j Nasa JPL is using the framework for climatic modeling, so maybe we can help save the planet together. :) One response I would have to both your comment and @alephone's rewording, which is perfectly correct, is that they are incomprehensible to most people. So the question is: How do you bridge the gap to make non-mathematicians understand? The other would be: It's hard to talk about math. There's always slippage when you try to speak in an everyday way about technical things. I'm not sure how to get around that. Too much precision, in this case, undoes the goal of reaching another audience.
In A Beginner’s Guide to Eigenvectors, Covariance, PCA and Entropy
Disclaimer, it's my project, but I run an open source project called deeplearning4j, who's algorithms have a hardware abstraction layer built in to them called nd4j. You get numpy on the jvm and hardware as a jar file. Deeplearning4j itself is built on top of that. Would love to help spread deep learning to different runtimes. Here's the current work being done on opencl: https://github.com/deeplearning4j/nd4j/tree/master/nd4j-jocl... We'd love to get this finished. Bit more to do yet though...definitely looking for contributors here. You'll get opencl neural nets for free.
In Deep Learning Courses

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.