德雷克按通道变平
Drake flattens by channel
为什么 Drake 沿着通道维度而不是沿着批次维度展平?
对于 [n, c] 向量,numpy/torch/tensorflow 有一个展平操作及其逆操作,一个整形操作
此展平操作沿批量维度“n”展平,而 Drake 沿“c”展平
是否有一些内置函数可以沿批次维度进行展平?
例如我要访问:
prog.initial_guess()
但我希望它根据原始矩阵形状的决策变量沿着批次维度展平
Drake 是用 C++ 编写的,带有 python 绑定。在 C++ 中,我们使用 Eigen 作为我们的线性代数库。 Eigen::Matrix默认为major列,即按照mat[0, 0], mat[1, 0], mat[2, 0], ..., mat[0, 1]的顺序存储数据, mat[1, 1], .... 这与 numpy/pytorch 存储矩阵的方式不同,后者默认为行专业。
具体针对你关于获取矩阵变量初始猜测的问题,你可以调用函数
initial_guess = prog.GetInitialGuess(variable_matrix)
会return一个float的numpy矩阵,其中initial_guess[i, j]
是变量variable_matrix[i, j]
的初始猜测值,所以不用担心矩阵flattening/reshaping.
为什么 Drake 沿着通道维度而不是沿着批次维度展平?
对于 [n, c] 向量,numpy/torch/tensorflow 有一个展平操作及其逆操作,一个整形操作
此展平操作沿批量维度“n”展平,而 Drake 沿“c”展平
是否有一些内置函数可以沿批次维度进行展平?
例如我要访问:
prog.initial_guess()
但我希望它根据原始矩阵形状的决策变量沿着批次维度展平
Drake 是用 C++ 编写的,带有 python 绑定。在 C++ 中,我们使用 Eigen 作为我们的线性代数库。 Eigen::Matrix默认为major列,即按照mat[0, 0], mat[1, 0], mat[2, 0], ..., mat[0, 1]的顺序存储数据, mat[1, 1], .... 这与 numpy/pytorch 存储矩阵的方式不同,后者默认为行专业。
具体针对你关于获取矩阵变量初始猜测的问题,你可以调用函数
initial_guess = prog.GetInitialGuess(variable_matrix)
会return一个float的numpy矩阵,其中initial_guess[i, j]
是变量variable_matrix[i, j]
的初始猜测值,所以不用担心矩阵flattening/reshaping.