I am developing my own implementation -in c++ mpi and openmp- of a biologically accurate hierarchical cortical memory structure. I am trying to apply such cortical model to early phonetic acquisition.
Yet, the other day a colleague came up with a question I was not able to answer in a sound way.
The question was. Why didn’t you implement your model in TensorFlow or Caffe?
I couldn’t answer his question well, perhaps because I am used to develop applications from scratch. I don’t have a great knowledge about TensorFlow either, and I don’t know about the flexibility that such kind of tools could provide in developments like mine or yours.
Then I remembered the people from Numenta and the fact that you have implemented your application from scratch too.
So, I move the question to you:
Why didn’t you implement your model in TensorFlow or Caffe?
Or why did they not implement it using COBOL?
I rolled my own c++ and there is no need for NN libraries/frameworks as the algorithms are pretty straight forward to implement using standard stuff. I wrote my own library for some common stuff like 2D vectors before I ditched them as there is no need for a 2D vector.
Those frameworks are useful primarily because of automatic differentiation. HTM doesn’t learn by gradient descent, so that level of complexity is not necessary. A vectorized math library like Eigen is really all you need to make HTM code efficient and elegant, and can be GPU-accelerated just as well.
@jakebruce I just realized that Eigen also supports sparse matrices.
I might just replace nupic’s matrix classes with Eigen’s then in my community fork.
@chhenning? And? Any success?