2016-07-06 2 views
4

У меня очень странная проблема, что я получаю разные результаты по одному и тому же коду и тем же данным на разных машинах.Тот же код Python, те же данные, разные результаты на разных машинах

У меня есть код на основе python на основе numpy/scipy/sklearn, и я использую anaconda в качестве базового дистрибутива python. Даже когда я копирую весь каталог проекта (который включает все данные и код) с моей основной машины на другую машину и запускает ее, результаты, которые я получаю, различны. В частности, я выполняю классификационную задачу, и я получаю 3-процентную разницу в точности. Я использую ту же версию python и anaconda на двух машинах. Моя основная машина - ubuntu 16.04, и результаты на ней ниже, чем несколько других машин с различными ОС, на которых я пробовал (OSX, ubuntu 14.04 и Centos). Поэтому в моей текущей конфигурации системы должно быть что-то не так, потому что все остальные машины показывают согласованные результаты. Поскольку версия моей анаконды непротиворечива среди всех машин, я понятия не имею, что еще может быть проблемой. Любые идеи, что еще я должен проверить или что может быть источником проблемы?

Я также удалил и переустановил anaconda с нуля, но это не помогло.

+0

Используете ли вы поезд/тест? Если это так, это может быть связано с извлечением разных образцов. – zhespelt

+0

Я использую для этого случайное семя. Также я не получаю разные результаты каждый раз, когда я запускаю, я получаю разные результаты только на одной из машин. Поэтому, я думаю, это должно быть связано с конфигурацией системы. Но не уверен, что проверить. – CentAu

+0

Без взгляда на код (и, желательно, на некоторые репрезентативные данные) сложно сказать точно. Тот же код/​​данные/библиотеки *** должен *** производить тот же результат, независимо от ОС. Может ли быть разница в версии пакета, где что-то было изменено под капотом между версиями? – zhespelt

ответ

0

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

+0

Можете ли вы рассказать о плохо обусловленных матрицах? – CentAu

+0

Вы можете начать с https://en.m.wikipedia.org/wiki/Condition_number –

+0

Я бы добавил, что при отладке этих видов проблем я бы попытался выполнить двоичный поиск, сравнивая промежуточные результаты, чтобы найти место в алгоритмах где вещи начинают отличаться. Удачи! –

Смежные вопросы