Конвертировать Autograd ArrayBox в BigFloat
Как сказано в заголовке, я хочу конвертировать из Autograd ArrayBox в BigFloat.
Моя функция проста:
def fun(mean, variance, bin_mean, bin_variance):
first = np.float(bf.sqrt(1.0 * bin_variance / (bin_variance + variance)))
second_numerator = (bin_mean - mean)**2
second_denominator = 2*(bin_variance + variance)
second = np.float(bf.exp(-second_numerator/second_denominator))
return first * second
и мне нужна высокая точность, и поэтому я хочу использовать пакет bigfloat. Теперь эта функция является частью более сложной, для которой я использую scipy.optimize.minimize
функция для нахождения минимума функции при использовании autograd
аппроксимировать матрицы Якоби и Гессе. Ошибка, которую я получаю при запуске моего кода
TypeError: Unable to convert argument Autograd ArrayBox with value 0.01297563222656762 of type <class 'autograd.numpy.numpy_boxes.ArrayBox'> to BigFloat
Поэтому мой вопрос: как конвертировать ArrayBox от Autograd в BigFloat? Как даже правильно извлечь значение внутри ArrayBox?
0 ответов
Я сделал:
myvariable._value
и я получил массив со значениями внутри ArrayBox, которым затем можно было манипулировать.
Я понял это после проверки атрибутов ArrayBox с помощью call(myvariable). Похоже нигде не задокументировано. Надеюсь, это поможет