Обратная совместимость Python с 3,6 до 2,7 - PullRequest
0 голосов
/ 30 августа 2018

Относительно плохо знаком с Python и борется с проблемой совместимости. Изначально на моем рабочем столе был написан код 3.6, но нужно запустить его на сервере с 2.7 (и я не могу обновить сервер - это сложно!). Код работает на каждой платформе без ошибок. Тем не менее, он работает правильно в 3.6 и результаты в 2.7 полностью отключены. Кажется, проблема в scipy.optimize - функции минимизации. В 3.6 функция минимизации сходится к минимуму и возвращает ожидаемый результат. В 2.7, точно такой же код и входные данные, ясно, что функция минимизации не сходится и в конечном итоге использует верхние границы. Это приводит к тому, что возвращаемые результаты будут полностью нереальными. Я предполагаю, что это проблема синтаксиса между 3,6 и 2,7, но при повторных поисках мне еще предстоит найти что-то, что указывает на потенциальную проблему. Ниже моя функция минимизации:

from scipy.optimize import minimize

...
##############################################################################
#Minimize function
##############################################################################
def optimize(beta, eta, ht, age_day, age):
    initial_guess = [beta, eta]
    global cur_clust
    result = minimize(Renewal, initial_guess, args=[ht,age_day,age],method = 'SLSQP', bounds=((0.4,8.0),(0.05,1000.0)),options = {'disp': False})
    if result.success:
        fitted_params = result.x
        #print(cur_clust)
        #print(fitted_params)
        B_opt = fitted_params[0]
        E_opt = fitted_params[1]
        SSE = result.fun
    else:
        B_opt = 9999
        E_opt = 9999
        SSE = result.fun

    return B_opt, E_opt, SSE;

Есть предложения?

Спасибо!

...