Публикации по теме 'matrix-multiplication'


Простое введение в вещание
Вещание происходит, когда меньший тензор «растягивается», чтобы иметь совместимую форму с большим тензором для выполнения операции. Вещание может быть эффективным способом выполнения тензорных операций без создания дубликатов данных. Согласно PyTorch, тензор является «транслируемым», если: Каждый тензор имеет хотя бы одно измерение При переборе размеров размеров, начиная с конечного размера, размеры размеров должны быть либо равными, либо один из них равен 1, либо один из них..

Алгоритм умножения матриц Штрассена
Алгоритм Штрассена - это алгоритм умножения матриц. Это быстрее, чем простой алгоритм умножения матриц. Чтобы узнать, как это сделать, давайте сравним оба этих алгоритма вместе с их реализацией на C ++. Предположим, мы перемножаем 2 матрицы A и B, и обе они имеют размерность n x n. Результирующая матрица C после умножения в наивном алгоритме получается по формуле: для i = 1,…, n и j = 1,…, n Реализация этой формулы в C ++: int** multiply(int** A, int** B, int n) { int**..

Визуализация умножения матриц четырьмя различными способами — Часть 2
В части 1 я объяснил четыре способа интуитивного выполнения матричного умножения. Недавно я столкнулся с некоторыми другими приемами, которые полезны для понимания теории алгоритмов машинного обучения без использования блокнота! Вы даже можете реконструировать две матрицы, просто взглянув на результат умножения матриц. Итак, без лишних слов, давайте начнем их изучать. Прежде чем двигаться дальше, мы добавим одну терминологию, называемую строкой и столбцом. Когда матрица умножается слева..

Умножение матриц кратчайшего пути по всем парам Флойда-Уоршалла
Цель алгоритма Флойда-Уоршалла - найти кратчайшие пути в дереве с помощью динамического программирования. Начнем с примера. Алгоритм Флойда-Уоршалла начинается со сбора исходных весов и их помещения в матрицу. Поскольку имеется 4 вершины, матрица будет иметь 4 строки и 4 столбца. Начиная с вершины 1, алгоритм собирает начальные веса от 1 до 3 других вершин. Он поместит 0 для себя и бесконечности, если нет прямого пути. Вес ребра от 1 до самого себя равен 0. Вес ребра от 1..

Вопросы по теме 'matrix-multiplication'

Умножьте 3D-матрицу на 2D-матрицу
Предположим, у меня есть матрица AxBxC X и матрица BxD Y . Существует ли нециклический метод, с помощью которого я могу умножить каждую из матриц C AxB на Y ?
24167 просмотров

Как эффективно хранить матрицу с сильно избыточными значениями
У меня есть очень большая матрица (100 млн строк на 100 млн столбцов), в которой много повторяющихся значений рядом друг с другом. Например: 8 8 8 8 8 8 8 8 8 8 8 8 8 8 4 8 8 1 1 1 1 1 8 8 8 8 8 4 8 8 1 1 1 1 1 8 8 8 8 8 4 8 8 1 1 1 1 1 8 8 8 8 8...
3854 просмотров

Найдите матрицу 1x3 с результирующей нулевой матрицей
Мне известна матрица M 3x3, и я хочу найти матрицу P 1x3. Данное условие: [p1 p2 p3]*[m11 m12 m13; m21 m22 m23; m31 m32 m33] = [0 0 0] Дано [m11 m12 m13; m21 m22 m23; m31 m32 m33] Мне нужно найти нетривиальное (ненулевое) решение [p1 p2...
1196 просмотров
schedule 07.07.2023

Умножение матриц с помощью Numpy
Предположим, что у меня есть матрица сродства A и диагональная матрица D. Как я могу вычислить матрицу Лапласа в Python с помощью nympy? L = D^(-1/2) A D^(1/2) В настоящее время я использую L = D**(-1/2) * A * D**(1/2). Это правильный путь?...
5551 просмотров
schedule 15.05.2023

Время обработки Java Matrix
Мне нужно простое мнение от всех Гуру! Я разработал программу для некоторых матричных вычислений. Работает все нормально с маленькой матрицей. Однако, когда я начинаю вычислять БОЛЬШУЮ матрицу строк столбца тысяч. Это убивает скорость. Я...
845 просмотров

Умножение матриц: Штрассен против Стандарта
Я попытался реализовать алгоритм Штрассена для умножения матриц с помощью C++, но результат не тот. , чего я и ожидал. Как вы можете видеть, strassen всегда занимает больше времени, чем стандартная реализация, и только с размерностью от степени 2...
9825 просмотров

Каков наилучший алгоритм умножения матриц?
Каков наилучший алгоритм умножения матриц? Что для меня значит «лучший»? Это означает самые быстрые и готовые к сегодняшним машинам. Если можно, дайте ссылки на псевдокод.
17746 просмотров

Получение преобразованных данных о событии мыши из объектов DOM с помощью трехмерного преобразования CSS
Есть ли в настоящее время какие-либо данные в событии мыши javascript, которые позволили бы мне легко найти или вычислить положение мыши относительно трехмерного пространства преобразованного элемента? Чтобы проиллюстрировать это визуально, слева...
1949 просмотров

проблема, связанная с numpy tensordot
У меня есть конкретная проблема с умножением матриц в numpy. Вот пример: P=np.arange(30).reshape((-1,3)) array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11], [12, 13, 14], [15, 16, 17], [18, 19, 20], [21, 22, 23],...
1097 просмотров
schedule 30.11.2022

Есть ли хорошая SIMD-библиотека с малой матрицей двойной точности для x86?
Я ищу библиотеку SIMD, ориентированную на небольшие (4x4) матричные операции для графики. Там много одинарной точности, но мне нужно поддерживать как одинарную, так и двойную точность. Я посмотрел библиотеку Intel IPP MX, но я бы предпочел...
2926 просмотров
schedule 23.12.2022

Умножение разреженной матрицы на вектор в CUDA
Я пытаюсь реализовать умножение матрицы на вектор на графическом процессоре (с использованием CUDA). В моем коде C ++ (CPU) я загружаю матрицу как плотную матрицу, а затем выполняю умножение матрицы на вектор с помощью CUDA. Я также использую...
7262 просмотров

Почему при умножении массива 2048x2048 по сравнению с умножением 2047x2047 достигается огромное снижение производительности?
Я провожу сравнительный анализ умножения матриц, как ранее упоминалось в Почему MATLAB так быстро в умножении матриц? Теперь у меня другая проблема: при умножении двух матриц 2048x2048 существует большая разница между C # и другими. Когда я...
7016 просмотров
schedule 21.12.2023

Как реализовать быстрые фильтры изображений на платформе iOS
Я работаю над приложением для iOS, где пользователь может применять определенный набор фотофильтров. Каждый фильтр представляет собой набор действий Photoshop с определенными параметрами. Это действия: Регулировка уровней Контраст яркости...
12141 просмотров

Эффективное умножение матрицы на вектор в cuSparse
Я использую jCUSPARSE (оболочку библиотеки cuSparse) для умножения матрицы на вектор, и у меня проблема с функцией cusparseDcsrmv(handle, cusparseOperation.CUSPARSE_OPERATION_NON_TRANSPOSE, matrixSize, matrixSize, alpha, descra, d_csrValA,...
1245 просмотров

временная сложность алгоритма умножения матриц
Я придумал этот алгоритм умножения матриц. Я где-то читал, что умножение матриц имеет временную сложность o (n ^ 2). Но я думаю, что мой этот алгоритм даст o (n ^ 3). Я не знаю, как рассчитать временную сложность вложенных циклов. Поэтому,...
134584 просмотров

Вычислите произведение двух квадратных матриц логических значений
Может кто-нибудь дать мне несколько советов по этому вопросу: Напишите программу, которая вычисляет произведение двух квадратных матриц логических значений, используя операцию ИЛИ вместо + и операцию И вместо *. Насколько я понимаю умножение...
3336 просмотров
schedule 11.04.2022

Умножение двух матриц разной размерности
Я пишу приложение для умножения матриц. Это прекрасно работает для матриц a и b размером nxn: for(k = 0; k < n; k++) { for(i = 0; i < n; i++) { tmp = a[i][k]; for(j = 0; j < n; j++) { c[i][j] = c[i][j] +...
3175 просмотров
schedule 13.07.2023

Многопоточность. Почему один поток выполняет всю работу?
Я умножаю две матрицы, используя два потока (однако программа также написана для масштабирования, поэтому вместо этого я мог бы использовать три, четыре и т. д. потока). Каждый поток вычисляет/выполняет работу для одной строки (или столбца) итоговой...
2918 просмотров

Умножение матрицы Python numpy memmap
Я пытаюсь произвести обычное матричное умножение между двумя огромными матрицами (10 * 25 000 000). Моя память иссякает, когда я это делаю. Как я могу использовать memmap numpy, чтобы справиться с этим? Это вообще хорошая идея? Я не так беспокоюсь...
926 просмотров

Ошибка сегментации после разброса
/** * BLOCK_LOW * Returns the offset of a local array * with regards to block decomposition * of a global array. * * @param (int) process rank * @param (int) total number of processes * @param (int)...
705 просмотров