У нас есть код C++, который имеет несколько циклов for для решения задачи машинного обучения (в данном случае аналогично поддержке векторной регрессии). Проблема: есть некоторые проверки осуществимости, которые подходят при запуске изолированного экземпляра проблемы и не подходят, когда мы запускаем всю фазу перекрестной проверки. При использовании всей программы что-то нарушает возможность использования двойных переменных.
Мы не понимаем причину этого и не думаем, что это зависит от флагов g++. Valgrind не показал ошибок.
Код можно найти в репозитории S GitHub. Ошибочная программа на C++ — S.cpp (она состоит из более чем 1000 строк кода), и ее можно запустить с помощью:
./S admission.txt.shuf 1
Проверка осуществимости осуществляется (мы не можем выразить весь код функции, поскольку он содержит более 100 строк кода):
if ((a < -tol) || (a[j] < -tol) || (a > C * (i < l ? s :
ss[i-l]) + tol ) || (a[j] > C * (j < l ? s[j] : ss[j-l]) + tol )) {
printf("%lf, %lf, %lf, %lf\n", a, a[j], C * (i < l ? s : ss[i-l]), C * (j < l ? s[j] : ss[j-l]));
printf("nTotIter = %d, CASE :%d, ERRRORRRR CLIP ERROR NEW vars: i = %d, j = %d\n", nTotIter, cases, i, j);
printf("CASE: %d, a = %lf, a[j] = %lf, C * ssss = %lf, C * ssss[j] = %lf\n", cases, a, a[j],
C * (i < l ? s : ss[i-l]), C * (j < l ? s[j] : ss[j-l]));
}
Где tol = 1E-7.
Через некоторое время он выведет некоторые недопустимые переменные.
Вопрос в том, : почему проверки подходят для конкретного экземпляра задачи (набора гиперпараметров), а для всей задачи (вычисление всех складок) и для одного и того же конкретного экземпляра — нет?
Мы попробовали несколько сеансов GDB, но они не смогли обнаружить дефекты.
Например, ошибки распечатываются как:
FOLD: 0, Hyper-parameters: gammaK = 1.0000e-02, gammaS = 1.0000e+00, C = 10000.000000, epsilon = 0.000000
-8516.713394, 11023.642043, 13104.170706, 11023.642043
nTotIter = 730434, CASE :0, ERRRORRRR CLIP ERROR NEW vars: i = 232, j = 596
CASE: 0, a = -8516.713394, a[j] = 11023.642043, C * ssss[i] = 13104.170706, C * ssss[j] = 11023.642043
Подробнее здесь: https://stackoverflow.com/questions/783 ... ssion-task
Трудно воспроизвести ошибки кода С++ для задачи многомерной регрессии [закрыто] ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Трудно воспроизвести ошибки кода C++ для задачи машинного обучения [закрыто]
Anonymous » » в форуме C++ - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Библиотека/код многомерной/многомерной динамической деформации времени (DTW) на Python
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Библиотека/код многомерной/многомерной динамической деформации времени (DTW) на Python
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Трудно воспроизвести ошибку цикла while при назначении переменных на ноутбуке Intel
Anonymous » » в форуме Python - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-