Memory error при достаточном объеме свободной оперативной памяти

Возникла следующая проблема. Пытаюсь обучить нейронную сеть большого размера, используя sklearn.MLPRegressor. В ходе обучения возникает ошибка:

Traceback (most recent call last): File "D:/Database/Python Projects/DecidingANN/DecidingANN.py", line 152, in MLP.fit(learn_in, learn_out) File "C:\Users\Bulat\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sklearn\neural_network_multilayer_perceptron.py", line 673, in fit return self._fit(X, y, incremental=False) File "C:\Users\Bulat\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sklearn\neural_network_multilayer_perceptron.py", line 400, in _fit intercept_grads, layer_units, incremental) File "C:\Users\Bulat\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sklearn\neural_network_multilayer_perceptron.py", line 573, in _fit_stochastic self._optimizer.update_params(grads) File "C:\Users\Bulat\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sklearn\neural_network_stochastic_optimizers.py", line 43, in update_params updates = self._get_updates(grads) File "C:\Users\Bulat\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sklearn\neural_network_stochastic_optimizers.py", line 262, in _get_updates for m, grad in zip(self.ms, grads)] File "C:\Users\Bulat\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sklearn\neural_network_stochastic_optimizers.py", line 262, in for m, grad in zip(self.ms, grads)] numpy.core._exceptions.MemoryError: Unable to allocate 153. MiB for an array with shape (10000, 2000) and data type float64

Очевидно что не хватает памяти для массива. Но вопрос в следующем: насколько я понимаю не хватает 153 МБ, весь процесс в ходе выполнения занимает порядка 500 МБ, при этом на ПК в целом остается свободными порядка 5 ГБ оперативной памяти. Т.е. свободной оперативной памяти в достатке, но тем не менее возникает Memory Error.

Я так понимаю что в Windows объем оперативной памяти под одно приложение ограничен 4 ГБ, но в данном случае это также не должно было бы воспрепятствовать процессу.

При этом нейросети меньшего размера обучаются корректно. В чем может быть проблема? Могут ли это быть какие то внутренние ограничения на размер numpy массива?


Ответы (0 шт):