PairwiseFusion
struct defined in module
Flux
PairwiseFusion(connection, layers...)
connection: A function taking 2 inputs and combining them into a single output
layers: The layers whose outputs are combined
This layer behaves differently based on input type:
If input
x is a tuple of length N (or the input is
xs with N
x's), matching the number of
layers, then each layer receives a new input
x[i] combined with the previous output
y[i-1] using
connection. Thus
(y1, y2, y3) = PairwiseFusion(connection, layer1, layer2, layer3)((x1, x2, x3)) may be drawn as:
x1 → layer1 → y1 ↘
connection → layer2 → y2 ↘
x2 ↗ connection → layer3 → y3
x3 ↗
... or written as:
y1
=
layer1
(
x1
)
y2
=
layer2
(
connection
(
x2
,
y1
)
)
y3
=
layer3
(
connection
(
x3
,
y2
)
)
With just one input, each layer receives the same
x combined with the previous output. Thus
y = PairwiseFusion(connection, layers...)(x) obeys:
y
[
1
]
==
layers
[
1
]
(
x
)
for
i
in
2
:
length
(
layers
)
y
[
i
]
==
connection
(
x
,
layers
[
i
]
(
y
[
i
-
1
]
)
)
end
A tuple of length N with the output of each fusion ((
y1,
y2, ...,
yN) in the example above).
There are
3
methods for Flux.PairwiseFusion:
The following pages link back here: