Предотвращение совместного использования моделей параметров объектами параметров

import os
cmd = 'ls -al'
os.system(cmd)

Если вы хотите вернуть результаты команды, вы можете использовать os.popen . Однако это не рекомендуется с версии 2.6 в пользу модуля подпроцесса , который хорошо освещает другие ответы.

3
задан Anush 7 April 2019 в 10:45
поделиться

1 ответ

Отличный вопрос. В принципе это связано с тем, что Parameter объекты являются подклассом sympy.Symbol, а из его строки документации:

Symbols are identified by name and assumptions:

>>> from sympy import Symbol
>>> Symbol("x") == Symbol("x")
True
>>> Symbol("x", real=True) == Symbol("x", real=False)
False

Это имеет основополагающее значение для внутренней работы sympy, и поэтому мы также используем в symfit. Но значение и фиксированные аргументы не рассматриваются как предположения, поэтому они не используются для различения параметров.

1113 Теперь к вашему вопросу о том, как это повлияет на примерку. Как вы говорите, последовательная работа - это хорошее решение, которое не будет иметь побочных эффектов:

model = sf.Model({y:a*x+b})
b.fixed = True
fit_results = []

for b_value, xdata, ydata in datastream:
    b.value = b_value
    fit = Fit(model, x=xdata, y=ydata)
    fit_results.append(fit.execute())

Поэтому нет необходимости определять новый Parameter на каждой итерации, атрибут b.value будет одинаковым в каждом цикле, так что это не может пойти не так. Единственный способ, которым я могу представить, что это идет не так, это если вы используете threading, это, вероятно, создаст некоторые условия гонки. Но threading нежелательно для задач, связанных с процессором, в любом случае, multiprocessing - это путь. И в этом случае отдельные процессы будут порождаться, создавая отдельные микрокосмы, поэтому здесь также не должно быть проблем.

Я надеюсь, что это ответит на ваш вопрос, если не дайте мне знать.

p.s. Я медленно отвечаю на свой путь до 1500, чтобы сделать этот тег, но если кто-то превзойдет меня, я, конечно же, буду счастливее;)

0
ответ дан tBuLi 7 April 2019 в 10:45
поделиться
Другие вопросы по тегам:

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