etaler / Etaler

A flexable HTM (Hierarchical Temporal Memory) framework with full GPU support.
BSD 3-Clause "New" or "Revised" License
89 stars 14 forks source link

Visualization of the SDR for higher level functionality debug #7

Closed alior101 closed 5 years ago

alior101 commented 5 years ago

We need some kind of visualization to understand what's going on inside the model. This is especially true for grid cells setups... Any easy to integrate c++ graphics lib like in htm path ?

marty1885 commented 5 years ago

I think we need something like matplotlib but supports realtime ploting. There's look like barely anything in C++.

Well... I use imgui + SFML with a very hacky SDR display function in HTMPath. It is not ideal for a reusable code.

I find myself using ROOT a lot to build, experiment and plot new layers. But ROOT is a very heavy dependency.. ArrayFire's graphics module is also easy to integrate. But again ArrayFire is a very heavy dependency.

After some googling, matplotlib-cpp seems to be a good solution but we'll have to link to Python. PLplot looks like a good solution but I'm not familiar with it.

On a related note. We could build a Python wrapper and do experiments in the python world. A Python wrapper is on the roadmap so we'll build one someday. But I think it is way too much work for now.

What do you think?

alior101 commented 5 years ago

Let me look at the options ... I like matplotlib-cpp need to play with it a little to see how it plots in real time .. I'll you know once I have something to show

On Mon, May 20, 2019 at 5:53 PM Martin Chang notifications@github.com wrote:

I think we need something like matplotlib but supports realtime ploting. There's look like barely anything like it in C++.

Well... I use imgui https://github.com/ocornut/imgui + SFML https://www.sfml-dev.org/ with a very hacky SDR display function https://github.com/marty1885/HTMPath/blob/9210b97db86bf50e2e12399e3bf5df79e1d08b13/main.cpp#L31-L61 in HTMPath. It is really not ideal for something that will be reused.

I find myself using ROOT https://root.cern.ch/ a lot to build, experiment and plot new layers. But ROOT is a very heavy dependency..

ArrayFire's graphics module http://arrayfire.org/arrayfire-python/arrayfire.graphics.html is also easy to integrate. But again ArrayFire is very heavy dependency.

After some googling, matplotlib-cpp https://github.com/lava/matplotlib-cpp seems to be a good solution but we'll have to link to Python. PLplot http://plplot.sourceforge.net/ looks like a good solution but I'm not familiar with it.

On a related note. We could build a Python wrapper and do experiments in the python world. It's on the roadmap and we'll have to make one some day. But I think it is way too much work for now.

What do you think?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/etaler/Etaler/issues/7?email_source=notifications&email_token=AAXET3E2YRE6WZJ6PYNPDTDPWK3O7A5CNFSM4HOBLPFKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVZCXTQ#issuecomment-494021582, or mute the thread https://github.com/notifications/unsubscribe-auth/AAXET3FSVPSLQNWXJNZ53QDPWK3O7ANCNFSM4HOBLPFA .

marty1885 commented 5 years ago

I guess this have been solved since #39 have been merged? Closing. Feel free to reopen.