在优化期间打印每次迭代的约束值
Print values of constraint at each iteration during optimization
我们如何从 Pydrake 执行此操作?优化期间每次迭代打印约束值
编辑 1:
我试过了:
def update(n):
print(n)
prog.AddVisualizationCallback(update, n)
按照底部的示例:https://github.com/RobotLocomotion/drake/blob/master/tutorials/debug_mathematical_program.ipynb
但它吐出了这个错误:
prog.AddVisualizationCallback(update, n)
TypeError: AddVisualizationCallback(): incompatible function arguments. The following argument types are supported:
1. (self: pydrake.solvers.mathematicalprogram.MathematicalProgram, arg0: Callable[[numpy.ndarray[numpy.float64[m, 1]]], None], arg1: numpy.ndarray[object[m, 1]]) -> pydrake.solvers.mathematicalprogram.Binding[VisualizationCallback]
这里有几种可能性:
- 您可以使用 AddVisualizationCallback 有效地创建一个在每次迭代时调用的空通用约束。
- 您可能还想增加求解器的详细级别(请参阅“调试数学程序”教程),以便求解器本身打印一些进度信息。
- 根据您正在考虑的约束类型,您可以将约束本身实现为 python 方法(内部带有
print
语句)而不是任何您想要的现在正在做添加它。
我们如何从 Pydrake 执行此操作?优化期间每次迭代打印约束值
编辑 1:
我试过了:
def update(n):
print(n)
prog.AddVisualizationCallback(update, n)
按照底部的示例:https://github.com/RobotLocomotion/drake/blob/master/tutorials/debug_mathematical_program.ipynb
但它吐出了这个错误:
prog.AddVisualizationCallback(update, n)
TypeError: AddVisualizationCallback(): incompatible function arguments. The following argument types are supported:
1. (self: pydrake.solvers.mathematicalprogram.MathematicalProgram, arg0: Callable[[numpy.ndarray[numpy.float64[m, 1]]], None], arg1: numpy.ndarray[object[m, 1]]) -> pydrake.solvers.mathematicalprogram.Binding[VisualizationCallback]
这里有几种可能性:
- 您可以使用 AddVisualizationCallback 有效地创建一个在每次迭代时调用的空通用约束。
- 您可能还想增加求解器的详细级别(请参阅“调试数学程序”教程),以便求解器本身打印一些进度信息。
- 根据您正在考虑的约束类型,您可以将约束本身实现为 python 方法(内部带有
print
语句)而不是任何您想要的现在正在做添加它。