Size: a a a

2020 October 27

I

Ioann_V in pro.cxx.holywars
Ilya L
ля пипец, как решать проблему когда функция exp считает с разной точностью :(
опиши, пожалуйста, свою проблему
источник

I

Ioann_V in pro.cxx.holywars
я могу тебе помочь
источник

I

Ioann_V in pro.cxx.holywars
возможно*
источник

IL

Ilya L in pro.cxx.holywars
Ioann_V
опиши, пожалуйста, свою проблему
Хм, давай попробуем
источник

CC

Chris Calvin 🦖 in pro.cxx.holywars
Ilya L
в одном случае python(numpy), в другом случае c++(библиотека которая похожая на numpy)
Питон это все таки виртуальная машина, у них свои правила
источник

ВК

Вика Котейкина... in pro.cxx.holywars
Chris Calvin 🦖
Я либо чего-то не понял
источник

CC

Chris Calvin 🦖 in pro.cxx.holywars
Ilya L
ля пипец, как решать проблему когда функция exp считает с разной точностью :(
источник

CC

Chris Calvin 🦖 in pro.cxx.holywars
Хз, возможно тебе это поможет
источник

CC

Chris Calvin 🦖 in pro.cxx.holywars
Тебе нужно посчитать в одном месте
источник

CC

Chris Calvin 🦖 in pro.cxx.holywars
передавать в другие
источник

CC

Chris Calvin 🦖 in pro.cxx.holywars
Но кейс подробней опишии
источник

I

Ioann_V in pro.cxx.holywars
Ilya L
Хм, давай попробуем
если тебе нужно увеличить точность расчетов с плавающей запятой, но при этом нету варианта использовать длинную арифметику, замечаю, что в GCC, есть типа long double - 80 бит, соответственно точность выше чем у double - 64 бит.
Второе , можно использовать методы компенсации погрешности - например, методы Шевчука.
источник

I

Ioann_V in pro.cxx.holywars
Третье, - отключи всякие оптимизации компилятором по типу ФастМас
источник

CC

Chris Calvin 🦖 in pro.cxx.holywars
Да ему нужно чтобы была одна и та же точность
источник

IL

Ilya L in pro.cxx.holywars
Вот у меня есть такой питон код
pred_w = np.exp(dw) * widths[:, np.newaxis]
pred_h = np.exp(dh) * heights[:, np.newaxis]
Есть аналогичный на С++. Логика точно схожая.
auto pred_w = exp(dw) * xt::view(widths, xt::all(), xt::newaxis());
auto pred_h = exp(dh) * xt::view(heights, xt::all(), xt::newaxis());
Проблема в том, что если сдампить эти данные и сравнить в том же python numpy то возникает неприятный дифф. Если кратко его изобразить то получаем следующее
источник

IL

Ilya L in pro.cxx.holywars
Ilya L
Вот у меня есть такой питон код
pred_w = np.exp(dw) * widths[:, np.newaxis]
pred_h = np.exp(dh) * heights[:, np.newaxis]
Есть аналогичный на С++. Логика точно схожая.
auto pred_w = exp(dw) * xt::view(widths, xt::all(), xt::newaxis());
auto pred_h = exp(dh) * xt::view(heights, xt::all(), xt::newaxis());
Проблема в том, что если сдампить эти данные и сравнить в том же python numpy то возникает неприятный дифф. Если кратко его изобразить то получаем следующее
источник

IL

Ilya L in pro.cxx.holywars
Если немного развернуть этот дифф
источник

CC

Chris Calvin 🦖 in pro.cxx.holywars
Ilya L
Вот у меня есть такой питон код
pred_w = np.exp(dw) * widths[:, np.newaxis]
pred_h = np.exp(dh) * heights[:, np.newaxis]
Есть аналогичный на С++. Логика точно схожая.
auto pred_w = exp(dw) * xt::view(widths, xt::all(), xt::newaxis());
auto pred_h = exp(dh) * xt::view(heights, xt::all(), xt::newaxis());
Проблема в том, что если сдампить эти данные и сравнить в том же python numpy то возникает неприятный дифф. Если кратко его изобразить то получаем следующее
dw и dh это даблы?
источник

IL

Ilya L in pro.cxx.holywars
То видно следующее
источник

IL

Ilya L in pro.cxx.holywars
Chris Calvin 🦖
dw и dh это даблы?
ага
источник