Hi all NuPIC developers,
I have been using NuPIC.core for a while now and its a very powerful library. Yet I find a lot of problems inside it. Such as
- Using vectors instead of some sort of tensor to store SDRs
- The shape information need to be stored else where explicitly
- Very annoying when access individual bits
- Inconsistent API (especially Cells4 vs TemporalMemory)
- Cells4 cannot be copied
- Storing data as sparse matrix seems to be a bad idea (bad locality, high time complexity and not saving memory if SDR density is high)
Which most of them are problems within the fundamental structure of NuPIC,core. And thus I am developing a new library that works and feels better then NuPIC.core in my spare time. Which hopefully will accelerate the development of HTM based systems.
Here are some features I’m looking forward to implement
- Using proper tensor library instead of vertors (planing on xtensor, Halide or TVM)
- Consistent API
- GPU support (over TVM or Halide)
- Keras/PyTorch like (Functional) API
- Serialize to MessagePack
Any other complains regarding NuPIC.core and suggestions on what else I can improve?