BoundsError: попытка доступа к 2n-элементному UnitRange{Int32} по индексу [2n+1]

Я недавно использую Knet и работаю над CNN. У меня есть входной набор данных 20000 x 1 x 1 x 200000, который я использую для обучения.

Как только я начинаю тренироваться с progress!(sgd(dtrn,ncycle(n))), я получаю следующую ошибку:

BoundsError: attempt to access 2n-element UnitRange{Int32} at index [2n+1]

в зависимости от размера пакета * 2. На моем локальном компьютере код работает нормально, протестировал его, и все работает с меньшими примерами набора данных. На сервере, где Knet работает нормально, мой код вылетает.

Любые предложения, как исправить? Уже пробовал разные размеры пакетов, но ничего не работает.


person hellothere    schedule 13.04.2020    source источник
comment
Он не видит n как переменную, а скорее как символ, можете ли вы связать полный код?   -  person logankilpatrick    schedule 13.04.2020
comment
n — это просто подстановочный знак, который я вставил вручную, чтобы описать проблему. например, это происходит, когда я использую batchsize = 8: попытка доступа к 16n-элементному UnitRange{Int32} по индексу [17]   -  person hellothere    schedule 13.04.2020
comment
pastebin.com/2ALcWVVV Размер партии здесь равен 1, обучение продолжает лайкать 50%, но затем возникает ошибка с BoundsError : попытка доступа к 2-элементному UnitRange{Int32} по индексу [3]   -  person hellothere    schedule 13.04.2020
comment
Трудно сказать, не видя никакого кода, но Джулия проиндексирована 1, так что это может быть фактором.   -  person logankilpatrick    schedule 14.04.2020
comment
Я разместил код по ссылке выше. но я нашел ошибку, это был выходной слой, который имел размер 2. Я забыл изменить его на 4, так как сейчас я использую 4 набора данных, а не 2 больше.   -  person hellothere    schedule 14.04.2020
comment
Можете ли вы добавить это как ответ на вопрос для полноты?   -  person logankilpatrick    schedule 16.04.2020


Ответы (1)


Нашел ошибку, это был выходной слой, который имел размер 2. Я забыл изменить его на 4, так как сейчас я использую 4 набора данных, а не 2 больше. Спасибо всем, кто занимается расследованием.

person hellothere    schedule 18.04.2020