Как отследить утечки памяти с umdh.exe во всей "куче"?

Попробуйте это :

import numpy as np 
import sklearn as sl 
from sklearn.neural_network import MLPRegressor
classifier = MLPRegressor()


data = pandas.read_csv('Addmition.csv')
data_array = np.array(data)

X = data_array[:,1:8]
y = data_array[:,8]

classifier.fit(X,y)
print(classifier)

Объяснение :

В машинном обучении у нас могут быть два типа проблем:

[ 115] 1) Классификация: Пример: предсказать, является ли человек мужчиной или женщиной. (дискретный)

2) Регрессия: Пример: предсказать возраст человека. (непрерывно)

Имея это в виду, мы увидим вашу проблему, ваша метка (вероятность выбора) будет непрерывной, поэтому у нас есть проблема регрессии.

Убедитесь, что вы используете MLPClassifier, что приводит к «Неизвестной ошибке метки». Попробуйте использовать MLPRegressor .

5
задан iain 3 April 2009 в 08:06
поделиться

5 ответов

Извините, что отвечаю на свой вопрос, но я наконец отследил проблему до того, как я использовал Orbix.

Похоже, что библиотеки orbix используют свою собственную кучу на платформе Windows. Это означает, что большая часть обнаружения утечек памяти не работает для утечек в orbix, я попробовал boundschecker и umhd.exe.

Чтобы изолировать эту проблему, я нашел некоторый код, который будет выгружать память каждой кучи в приложении: http : //www.abstraction.net/content/articles/analyzing%20the%20heaps%20of%20a%20win32%20process.htm

Я использовал это для сброса использования кучи до и после каждой транзакции, затем после каждых 500 транзакций это указывало на то, что одна и та же куча росла каждый раз. Затем я перечислил адрес каждой записи в этой куче. Исследуя память в этих областях, я обнаружил, что в них содержатся данные о марксистском распределении.

1
ответ дан 14 December 2019 в 13:47
поделиться

Если Ваше приложение (или библиотеки, которыми это пользуется) явно не создает свою собственную "кучу ("кучу) ", существует только одна "куча" для волнения о. Большинство библиотек не делает этого, таким образом, я предложил бы, чтобы это не было Вашим основным путем для расследования.

1
ответ дан 14 December 2019 в 13:47
поделиться

Возможно, umdh испытывает затруднения при определении местоположения отладочных символов для кода? Это могло бы объяснить, почему отслеживание стека является неполным. Удостоверьтесь, что Вы создали его с символами и что они могут быть найдены.

1
ответ дан 14 December 2019 в 13:47
поделиться

Я использую, чтобы сделать обзор кода в поисках утечек памяти.

Некоторые вещи я искал:

  1. Проблема наследования: базовые классы, которые не обеспечивают виртуальный деструктор и используются полиморфно.
  2. Поиск в коде для объявлений указателя или выделений указателя (разыскиваемый * объявления или ключевое слово новое, или malloc использование), и рассмотренный части кода, предназначаясь для жизненного цикла динамично выделенных объектов.

Конечно, обзор кода может быть трудоемким, в зависимости от кодовой базы, которую необходимо рассмотреть. Но, если можно ограничить регионы, необходимо искать выделение/использование указателя, оно могло бы окупаемость. Это сделало в большинстве моих случаев.

0
ответ дан 14 December 2019 в 13:47
поделиться

Для меня, в случаях, когда ум не удался - другой бесплатный инструмент MS под названием LeakDiag был успешным. Он позволяет перехватывать гораздо больше типов распределителей, чем umdh, в том числе то, что он называет «распределителем MPHeap», который, как я подозреваю, , мог бы пригодиться вам. Если у вас есть свободная минутка - мне любопытно, если бы это действительно помогло ...

который я подозреваю, что мог бы быть вам полезен. Если у вас есть свободная минутка - мне любопытно, если бы это действительно помогло ...

который я подозреваю, что мог бы быть вам полезен. Если у вас есть свободная минутка - мне любопытно, если бы это действительно помогло ...

3
ответ дан 14 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: