Дифференциальная эволюция терпит неудачу при добавлении рабочего аргументаPython

Программы на Python
Ответить
Anonymous
 Дифференциальная эволюция терпит неудачу при добавлении рабочего аргумента

Сообщение Anonymous »

Чтобы настроить функцию подгонки кривой Different_evolve, я позаимствовал значительную часть данных из https://bitbucket.org/zunzuncode/ramans ... ossiFit.py. Моя реализованная функция работает отлично, когда я не использую «работников».
Функция:

Код: Выделить всё

def CKT(f, Rs, Ls, Cs, Lm, Cm, Rm):
TPF = 2*f*np.pi
L0 = 1e-6*Ls; C1 = 1e-12*Cs;
L2 = 1e-6*Lm; C2 = 1e-12*Cm;
X0 = TPF*L0
X1 = -1/(TPF*C1)
X2 = TPF*L2 - 1/(TPF*C2)
Denom = Rm**2 + (X1+X2)**2
return np.log(np.sqrt((X0 + (X1*X2**2 + X2*X1**2 + X1*Rm**2)/Denom)**2 + ((Rm*X1**2)/Denom + Rs)**2))
Дифференциальное развитие:

Код: Выделить всё

def generateParameterBounds():
parameterBounds = []
parameterBounds.append([400,500])
parameterBounds.append([0,10])
parameterBounds.append([100,200])
parameterBounds.append([500,700])
parameterBounds.append([10,50])
parameterBounds.append([230,270])
result = differential_evolution(sumOfSquaredError, parameterBounds, popsize=30, init='sobol', polish=False, workers=2, seed=3)
return result.x
Вызов команды:

Код: Выделить всё

geneticParameters, pcov = curve_fit(CKT, xdata, ydata, ParameterRanges, maxfev=1000000)
Я бы хотел остаться в рамках пакета scipy.optimize, если это возможно. Непонятно, как мне следует изменить код в зависимости от полученной ошибки.
Ошибка:

Код: Выделить всё

RuntimeError:
An attempt has been made to start a new process before the
current process has finished its bootstrapping phase.

This probably means that you are not using fork to start your
child processes and you have forgotten to use the proper idiom
in the main module:

if __name__ == '__main__':
freeze_support()
...

The "freeze_support()" line can be omitted if the program
is not going to be frozen to produce an executable.
Я попробовал добавить:

Код: Выделить всё

if __name__ == '__main__':
внутри оператора def и перед вызовом Curve_fit. Оба дали основные синтаксические ошибки.

Подробнее здесь: https://stackoverflow.com/questions/793 ... t-is-added
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»