[Глубокое размышление] Почему CNN синхронный (параллельный), а RNN асинхронный (последовательный)?

искусственный интеллект Python

Почему CNN синхронны (параллельны), а RNN асинхронны (последовательны)?

Личная страница -->xiaosongshine.github.io/ 

1. Проблема выявлена


И CNN, и RNN используют единицы совместного использования параметров (совместное использование параметров) и структуру скользящего обхода.Почему CNN синхронный (параллельный), а RNN асинхронный (последовательный)?

2. Моё скромное мнение:


CNN, разделяемый блок RNN и скользящая структура аналогичны, отличие состоит в том, что RNN имеет функцию памяти, пройденный блок имеет причинно-следственную связь (память передачи информации), а состояние скрытого слоя в предыдущий момент участвовало в процессе вычисления в данный момент это предложение. Пример заключается в том, что результат вычисления первой единицы будет использоваться как часть ввода второй единицы, поэтому текущая единица должна дождаться окончания вычисления предыдущей единицы, и его нужно вычислить столько раз, сколько есть единиц. .
Однако блоки CNN на одном уровне эквивалентны без причинно-следственной связи, так что все требуемые ядра блока (с одинаковыми параметрами) могут быть напрямую скопированы по ядру блока, а затем используется матричная параллельная операция, для которой нужно только вычисляться один раз. .

3. Еще мысли:


Могут ли RNN быть спроектированы как параллельные модели с сохранением памяти?
Может ли CNN добавлять зависимости без изменения параллельных операций?
Критика и дополнения приветствуются. .