numenta / htmresearch

Experimental algorithms. Unsupported.
GNU Affero General Public License v3.0
223 stars 109 forks source link

Python.exe crashes when using large UnionTemporalPooler #911

Closed jenfrie closed 5 years ago

jenfrie commented 5 years ago

I have been using the Union Temporal Pooler for a sequence classification project and I have frequently experienced a crash of the python.exe (that is, no error was thrown, python simply stopped working). I have tried to create a minimal example to include here, but small-scale tests in the python shell always ran without problems. I would therefore rule out incorrect installation as the cause. When running larger datasets the crashes were very inconsistent and I haven't been able to reliably reproduce them. From the various tests it seems it is related to the input and output sizes. I typically have input SDRs of ~33000 bits, which are reduced to ~16000 by the pooling, i.e. by a factor of 0.5. At this size the temporal pooler usually runs fine. At a factor of 0.6+ however, I get a crash. It also seems that the larger the sizes, the fewer iterations it takes for a crash to occur (e.g. after 20 or 200 SDRs). Additionally, when taking topology into account (i.e. using 2-dimensional input dimensions and local inhibition areas), crashes occur at smaller input/output sizes. As far as I can tell the crash happens during updating of the the synapse permanences.

Note: I am running the Temporal Pooler in a separate process (via the python multiprocessing library) and feeding the SDRs via a pipe. However, the same precedure has not been a problem with the NuPIC Spatial Pooler or the Temporal Memory (and as mentioned above, Temporal Pooler instances with smaller input sizes run without problems as well).

Update: The problem seems to be related to Windows (8.1). I tested the same setup in an Ubuntu (18) VM and it runs without incident.

liutqcs commented 5 years ago

meet same quertion?how to run this project?

rhyolight commented 5 years ago

It could be because you are not using Python 2.7?

jenfrie commented 5 years ago

I was using Python 2.7 in all cases

rhyolight commented 5 years ago

Sorry to inform you, but we will not investigate this issue or fix it. This is a research repository (see the README). If anyone else runs into this problem, you are welcome to leave a comment with environment details.

jenfrie commented 5 years ago

@liu3435 the project runs fine on Linux. If you are using Windows I suggest simply creating a Linux VM and setting up the environment there. As for the library, I simply followed the installation instructions in the README.

@rhyolight I understand :) I simply wanted to share the information (and prior to the update see if there is an known fix/workaround)

rhyolight commented 5 years ago

@jenfrie Thank you for filing the issue!