Указание неизвестных в check_total_derivatives

Я создаю Unitest для программы, которую я написал в OpenMDAO v1.x+. Я использовал функцию check_total_derivatives, чтобы получить производные и проверить их по сравнению с конечной разницей. Однако я забочусь только о проверке шести или около того последних неизвестных, но всего у меня около 90. Можно ли добавить в функцию check_total_derivatives опцию, чтобы указать, какие неизвестные вы хотите, чтобы функция проверяла? Сейчас нужно очень много времени, чтобы все пройти. Я создал эту функцию в своей собственной версии OpenMDAO, но эта программа предназначена для других пользователей, у которых не будет этой функции, если она не встроена.


person Ry10    schedule 20.11.2015    source источник
comment
Мы приветствуем запрос на изменение нашего check_total_derivatives!   -  person Justin Gray    schedule 24.02.2016


Ответы (1)


У нас есть способ сделать это прямо сейчас. Если вы укажете какие-либо ограничения или цели для неизвестных, вызвав add_constraint или add_objective для драйвера, а затем вызовете check_total_derivatives, он будет вычислять производные только для этих неизвестных. Точно так же, если вы укажете проектные переменные с помощью add_desvar, будут вычислены производные по отношению только к этим входным данным.

Эта функция была добавлена ​​главным образом потому, что вам может понадобиться проверить градиент, который видит оптимизатор. Если вы не занимаетесь оптимизацией, API по-прежнему позволяет вам добавлять ограничения и т. д. к базовому Driver; это не должно изменить выполнение, но все же позволяет вам ограничить область действия check_total_derivatives.

Обратите внимание: я думаю, что ваш запрос по-прежнему считается хорошим запросом на добавление функций — просто хотел пока предложить обходной путь.

person Kenneth Moore    schedule 23.02.2016