- Ядро смещения устанавливает записи для отсутствующих экземпляров в NaN, а не в ноль.
- Количество блоков в измерении Y, используемом в слое смещения, теперь соответствует количеству столбцов на экземпляр.
- Добавлена функция, вычисляющая количество требуемых итераций и потоков для входных операций.
- В CublasBiasLayerTest добавлен повторно используемый метод тестирования прямого распространения.
- Теперь есть два теста прямого распространения смещения cuBLAS: один с полной партией и один с неполной партией.
- Ядра отсева теперь устанавливают для записей отсутствующих экземпляров значение NaN, а не ноль.
- Блоки в y-измерении в ядрах отсева соответствуют столбцам экземпляра.
- Удалены неиспользуемые параметры свойств устройства из CublasBiasLayer и CudaDropoutLayer.
- Исправлено обратное распространение неполных пакетов в слоях cuBLAS.
- Ядра активации и нормализации теперь устанавливают для записей отсутствующих экземпляров значение NaN, а не ноль.
- Блоки в y-измерении в ядрах активации соответствуют столбцам экземпляров.
- Все вхождения функции setToZero в форвардных ядрах теперь заменены на setToNan.
- Установите конструкторы точек входа CUDA, слоев потерь и оптимизаторов на внутренние.
- Ядра обратного распространения функции потерь теперь устанавливают для записей отсутствующих экземпляров значение NaN, а не ноль.
- Удален заголовочный файл Zero CUDA.
- Оптимизировано использование индексов внутри циклов в ядрах оптимизации.
- Удалены спецификации связи C
- Реализовано и протестировано прямое распространение в новом слое расширения свертки CUDA.
- Повторно включена функция setToZero.
- Уровень расширения CUDA обнуляет неиспользуемые записи. Это позволяет использовать cuBLAS для проекции после расширения.
- Входные слои CUDA должны реализовывать значение, указывающее, имеет ли ввод фиксированную длину.
- Представлен интерфейс CudaVariableLengthForwardLayer для слоев, которые могут обрабатывать ввод переменной длины.
- CudaMaxPoolingLayer и CudaExpansionLayer реализуют CudaVariableLengthForwardLayer.
- CudaLookupLayer хранит указатель на длину пакетов в предоставленной памяти.
- CudaMaxPoolingLayer использует этот указатель для определения количества используемых столбцов. Отрицательная бесконечность используется для записей в неиспользуемых столбцах.
- Пропагаторы CUDA перемещены в отдельные файлы.
- Прямой распространитель CUDA разделен на CudaFixedLengthForwardPropagator и CudaVariableLengthForwardPropagator.
- CudaNetwork выбирает между двумя распространителями на основе значения hasFixedLength точки входа.
- CudaBackwardPropagation переименован в CudaBackwardPropagator
Начал работать над обратным распространением в слое расширения CUDA. - Завершена реализация расширения обратного распространения для фильтров с длиной не больше размера деформации
- Расширение ядра обратного распространения теперь использует итерации для поддержки размеров фильтров, превышающих размер деформации.
- Реализован слой свертки CUDA для ввода фиксированной длины.
- Исправлено использование переменной thisValueInIteration в другой ветке ядра расширения с обратным распространением.
- Добавлена CUDA-версия демонстрации встраивания/свертки.
- Сокращено название «Сверточный слой» до «Сверточный слой».
- Исправлено количество итераций в демонстрациях встраивания
- CpuHighwayLayer и CpuMaxPoolingLayer перемещены в отдельные подпакеты.
- CudaExpansionLayer перемещен в подпакет свертки.
- Исправлено условие if в CudaLookupLayer, которое решает, сохранять ли входные длины.
- Сеть CPU/CUDA и классы распространения перемещены в соответствующие сетевые подпакеты.
- Лямбда printLoss перемещена в пакет потерь
- Удалена запись iml из .gitignore.
- CudaConvolutionLayer теперь поддерживает ввод переменной длины.
- Ядро расширения хранит количество сверток для каждого экземпляра.
- Исправлен вызов метода прямого распространения первого слоя в CudaForwardPropagation.
- Исправлено вычисление количества позиций столбца фильтра в CudaExpansionLayer.
- Удален интерфейс CudaPropagation.
- Стандартный TREC использует фильтр только одной ширины.
- Исправлены ссылки на плотный слой и сверточный слой в README.
- Добавлена CUDA-версия демонстрации TREC.
- Упомянул демонстрацию в README и заменил образец кода созданием сверточной сети с ускорением на GPU.
- Исправлена ширина в демо CPU TREC.
- Представлена реализация хеш-таблицы CUDA для суммирования на основе ключей.
- CudaHashing сопоставляет заданный массив целых чисел со слотами в хеш-таблице.
- CudaGroupSum суммирует соответствующий массив с плавающей запятой, используя это сопоставление.
- Добавлены ядра для заполнения одного или двух массивов постоянным значением и использования этих ядер для сброса значений в CudaHashing и CudaGroupSum
- Реализована поддержка разреженных обновлений на уровне поиска CUDA с использованием CudaHashing и CudaGroupSum.
- Уровень поиска CUDA использует отрицательный для записей в отсутствующих экземплярах.
- Векторные данные копируются с хоста на устройство при освобождении ресурсов.
- Добавлен тест агрегации градиента в CudaLookupLayer
- Классы правил обновления CUDA наследуются от нового абстрактного класса BaseCudaUpdateRule.
- BaseCudaUpdateRule обеспечивает основу для запуска ядра и управляет количеством единиц для плотных обновлений.
- Коэффициент масштабирования градиента теперь вычисляется в функциях обновления ЦП и ядрах оптимизации CUDA.
- Ядра оптимизации CUDA теперь поддерживают ввод переменной длины, игнорируя параметры с отрицательным идентификатором.
- Добавлена поддержка переменной длины в ядре смещения.
- Улучшены имена и перенесен код в отдельные методы в SparseAccumulator.
- Значение по умолчанию для обратной хэш-таблицы, используемой в SparseAccumulator, теперь равно -1.
- Использование смещений обязательно в проекционных слоях, плотных слоях, сверточных слоях и слоях шоссе.
- Члены состояния Forward в CpuProjectionLayer теперь делегируют обязательное состояние смещения вперед.
- Заменена проекция кодировки в CpuAttentiveDecoder на взвешивание.
- Теперь можно настроить символ, используемый CudaMaxPoolingLayer для идентификации неиспользуемых столбцов, с NaN в качестве параметра по умолчанию. Слой максимального объединения, созданный для слоя свертки, использует ноль для достижения совместимости с cuBLAS.
- Исправлено сравнение максимумов деформации в ядре max-pooling.
- Ядро max-pooling теперь игнорирует ненужные перекосы.
- Ядра с обратным максимальным пулом учитывают индекс экземпляра и поддерживают ввод переменной длины.
- Добавлен тест, который использует случайные данные для сравнения вывода слоя максимального пула CUDA с версией ЦП.
- Исправлена индексация градиента в ядре обратного расширения.
- Ядро обратного расширения теперь устанавливает для неиспользуемых записей значение NaN.
- Nan.cuh переименован в NaN.cuh.
- Конструкторы слоев были установлены на внутренние.
- Обновлен до Котлин 1.1.4–3
- Упоминается проблема встраивания слова toy в README.
Вычисления v0.10.0
schedule
22.04.2024