Я просто подумал, что буду использовать псевдоним, который я использую для этого. Он основан на неинтерактивной интерактивной перезагрузке. Чтобы добавить его в свой git, запустите эту команду (пояснение ниже):
git config --global alias.amend-to '!f() { SHA=`git rev-parse "$1"`; git commit --fixup "$SHA" && GIT_SEQUENCE_EDITOR=true git rebase --interactive --autosquash "$SHA^"; }; f'
Самым большим преимуществом этой команды является то, что она не-vim.
(1), учитывая, что конфликтов во время rebase нет, конечно
git amend-to # e.g.
git amend-to HEAD~1
git amend-to aaaa1111
Имя amend-to
кажется соответствующим IMHO. Сравните поток с --amend
:
git add . && git commit --amend --no-edit
# vs
git add . && git amend-to
git config --global alias. '!'
- создает глобальный псевдоним git с именем
, который будет выполнять команду non-git
f() { }; f
- «анонимная» функция bash. SHA=`git rev-parse "$1"`;
- преобразует аргумент в git-ревизию и присваивает результат переменной SHA
git commit --fixup "$SHA"
- fixup-commit для SHA
. См. git-commit
docs GIT_SEQUENCE_EDITOR=true git rebase --interactive --autosquash "$SHA^"
git rebase --interactive "$SHA^"
часть была покрыта другими ответами. --autosquash
- это то, что используется в сочетании с git commit --fixup
, см. git-rebase
docs для получения дополнительной информации GIT_SEQUENCE_EDITOR=true
, что делает все это неинтерактивным. Этот хак я узнал из этого сообщения в блоге . Было бы полезно опубликовать данные где-нибудь и указать характер полученной вами ошибки. То есть, дает ли Python исключение, соответствует ли сообщение об ошибке или выполняется сравнение до завершения, но это просто "не хорошо"?
Вы определенно хотите дать начальные значения для подгоночных параметров. Непонятно, что scipy.optimize.curve_fit()
позволяет пользователям не указывать начальные значения - ошибочно не указывать начальные значения. Задачи нелинейного подбора кривой, как правило, , а не глобальные оптимизации, работают путем уточнения начальных значений и часто чувствительны к начальным значениям (особенно, когда имеет место экспоненциальный спад). FWIW, начальные значения, используемые, когда вы явно не указали начальные значения, равны «1» для всех параметров. Это хорошее значение по умолчанию? Нет, это не так.
Я также думаю, что у вас есть потенциально более серьезная проблема. Ваша модель для «у» трансцендентна: «у» зависит от «у». Я не распознаю формулу, которую вы используете, но я могу поверить, что кривые ВА для диодов трансцендентны. Если ваше значение для параметра d
не равно < < 1, я думаю, что ваша модель будет нестабильной. Возможно, вы захотите убедиться, что d
ограничено значением < < 1, и почти наверняка не хотят начинать с d = 1.
Вероятно, это не тот ответ, который вы искали, но я надеюсь, что он поможет вам выбрать правильный путь.