2023-12-22 16:39:03 +00:00
|
|
|
---
|
|
|
|
tags:
|
|
|
|
- ai
|
|
|
|
---
|
2023-05-27 23:02:51 +01:00
|
|
|
- Fractionally strided convolution
|
2023-06-05 17:01:29 +01:00
|
|
|
- Transposed [Convolution](../../../Signal%20Proc/Convolution.md)
|
2023-05-27 23:02:51 +01:00
|
|
|
- Like a deep interpolation
|
|
|
|
- Convolution with a fractional input stride
|
|
|
|
- Up-sampling is convolution 'in reverse'
|
|
|
|
- Not an actual inverse convolution
|
|
|
|
- For scaling up by a factor of $f$
|
2023-06-05 17:01:29 +01:00
|
|
|
- Consider as a [Convolution](../../../Signal%20Proc/Convolution.md) of stride $1/f$
|
2023-05-27 23:02:51 +01:00
|
|
|
- Could specify kernel
|
|
|
|
- Or learn
|
|
|
|
- Can have multiple upconv layers
|
2023-06-06 11:48:49 +01:00
|
|
|
- Separated by [ReLu](../Activation%20Functions.md#ReLu)
|
2023-05-27 23:02:51 +01:00
|
|
|
- For non-linear up-sampling conv
|
|
|
|
- Interpolation is linear
|
|
|
|
|
2023-06-05 17:01:29 +01:00
|
|
|
![upconv](../../../img/upconv.png)
|
2023-05-27 23:02:51 +01:00
|
|
|
|
|
|
|
# Convolution Matrix
|
|
|
|
Normal
|
|
|
|
|
2023-06-05 17:01:29 +01:00
|
|
|
![upconv-matrix](../../../img/upconv-matrix.png)
|
2023-05-27 23:02:51 +01:00
|
|
|
|
|
|
|
- Equivalent operation with a flattened input
|
|
|
|
- Row per kernel location
|
|
|
|
- Many-to-one operation
|
|
|
|
|
2023-06-05 17:01:29 +01:00
|
|
|
![upconv-matrix-result](../../../img/upconv-matrix-result.png)
|
2023-05-27 23:02:51 +01:00
|
|
|
|
|
|
|
[Understanding transposed convolutions](https://www.machinecurve.com/index.php/2019/09/29/understanding-transposed-convolutions/)
|
|
|
|
|
|
|
|
## Transposed
|
2023-06-05 17:01:29 +01:00
|
|
|
![upconv-transposed-matrix](../../../img/upconv-transposed-matrix.png)
|
2023-05-27 23:02:51 +01:00
|
|
|
- One-to-many
|
|
|
|
|
2023-06-05 17:01:29 +01:00
|
|
|
![upconv-matrix-transposed-result](../../../img/upconv-matrix-transposed-result.png)
|