#drake
Вопрос:
Почему Дрейк выравнивается по размеру канала, а не по размеру пакета?
Для вектора [n, c] numpy/torch/tensorflow имеют операцию выравнивания и ее обратную операцию изменения формы
Эта операция выравнивания выравнивается по размеру партии «n», в то время как Дрейк выравнивается по «c».
Есть ли какая-то встроенная функция для выравнивания по размеру пакета?
Например, я хочу получить доступ:
prog.initial_guess()
Но я хочу, чтобы он был сглажен по размеру пакета в соответствии с исходными переменными принятия решений в форме матрицы
Ответ №1:
Дрейк написан на C с привязкой к python. В C мы используем Eigen в качестве библиотеки линейной алгебры. Eigen::Матрица по умолчанию имеет значение основной столбец, а именно в ней хранятся данные в порядке мат[0, 0], мат[1, 0], мат[2, 0], …, мат[0, 1], мат[1, 1], …. Это отличается от того, как numpy/pytorch хранит матрицу, которая по умолчанию является основной строкой.
Специально для вашего вопроса о получении начального предположения о переменной матрицы вы можете вызвать функцию
initial_guess = prog.GetInitialGuess(variable_matrix)
он вернет числовую матрицу с плавающей точкой, где initial_guess[i, j]
находится начальное значение переменной variable_matrix[i, j]
, поэтому вам не нужно беспокоиться о выравнивании/изменении формы матрицы.