Я мав на увазі те саме запитання, коли ви читали, що біла книга та ресурси, на які ви посилалися, допомогли мені придумати реалізацію.
У коді Факела, на який ви посилаєтесь , зазначено:
--[[ DepthConcat ]]--
-- Concatenates the output of Convolutions along the depth dimension
-- (nOutputFrame). This is used to implement the DepthConcat layer
-- of the Going deeper with convolutions paper :
Слово «глибина» у Глибокому навчанні трохи неоднозначне. На щастя, цей відповідь ТА надає ясності:
У глибоких нейронних мережах глибина позначає, наскільки глибока мережа, але в цьому контексті глибина використовується для візуального розпізнавання, і вона переходить у 3-й вимір зображення.
У цьому випадку у вас є зображення, а розмір цього входу - 32x32x3, що є (ширина, висота, глибина). Нейронна мережа повинна мати можливість вивчати на основі цих параметрів, оскільки глибина перекладається на різні канали навчальних зображень.
Отже, DepthConcat об'єднує тензори вздовж глибинного виміру, який є останнім розміром тензора, а в цьому випадку - 3-го виміру 3D-тензора.
DepthConcat повинен зробити тензори однаковими у всіх вимірах, але розмір глибини, як говорить код Факела :
-- The normal Concat Module can't be used since the spatial dimensions
-- of tensors to be concatenated may have different values. To deal with
-- this, we select the largest spatial dimensions and add zero-padding
-- around the smaller dimensions.
напр
A = tensor of size (14, 14, 2)
B = tensor of size (16, 16, 3)
result = DepthConcat([A, B])
where result with have a height of 16, a width of 16 and a depth of 5 (2 + 3).
На діаграмі вище ми бачимо зображення тензору результатів DepthConcat, де біла область - нульова накладка, червона - тензор A, а зелена - тензор B.
Ось псевдокод для DepthConcat у цьому прикладі:
- Подивіться на тензор A і тензор B і знайдіть найбільші просторові розміри, які в цьому випадку будуть розмірами тензора B шириною 16 і 16 висотою. Оскільки тензор А занадто малий і не відповідає просторовим розмірам тензора В, його потрібно буде застелити.
- Розкладіть просторові розміри тензора A нулями, додавши нулі до першого та другого розмірів, зробивши розмір тензора A (16, 16, 2).
- З'єднайте накладений тензор A з тензором B уздовж глибини (3-го) розміру.
Я сподіваюся, що це допоможе комусь іншому, хто думає те саме питання, читаючи цю білу книгу.