Почему CNN синхронны (параллельны), а RNN асинхронны (последовательны)?
Личная страница -->xiaosongshine.github.io/
1. Проблема выявлена
И CNN, и RNN используют единицы совместного использования параметров (совместное использование параметров) и структуру скользящего обхода.Почему CNN синхронный (параллельный), а RNN асинхронный (последовательный)?
2. Моё скромное мнение:
CNN, разделяемый блок RNN и скользящая структура аналогичны, отличие состоит в том, что RNN имеет функцию памяти, пройденный блок имеет причинно-следственную связь (память передачи информации), а состояние скрытого слоя в предыдущий момент участвовало в процессе вычисления в данный момент это предложение. Пример заключается в том, что результат вычисления первой единицы будет использоваться как часть ввода второй единицы, поэтому текущая единица должна дождаться окончания вычисления предыдущей единицы, и его нужно вычислить столько раз, сколько есть единиц. .
Однако блоки CNN на одном уровне эквивалентны без причинно-следственной связи, так что все требуемые ядра блока (с одинаковыми параметрами) могут быть напрямую скопированы по ядру блока, а затем используется матричная параллельная операция, для которой нужно только вычисляться один раз. .
3. Еще мысли:
Могут ли RNN быть спроектированы как параллельные модели с сохранением памяти?
Может ли CNN добавлять зависимости без изменения параллельных операций?
Критика и дополнения приветствуются. .