Transposed/Fractional Convolution

31 views
Skip to first unread message

ErrataC

unread,
Mar 23, 2021, 8:36:36 PM3/23/21
to ArrayFire Users

Since there doesn't seem to be an actual function for this, I'm wondering what the best way to implement transposed convolution, akin to TensorFlow's conv2d_transpose function.

The best I can think of is to make an array of zeros at the correct size, and then access it with af::array::operator() and use af::seq with stride to write the values to it prior to calling convolve2d.

That would definitely work, but it feels like it would be very inefficient.

Pradeep Garigipati

unread,
Mar 25, 2021, 10:37:48 PM3/25/21
to ErrataC, ArrayFire Users

--
You received this message because you are subscribed to the Google Groups "ArrayFire Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to arrayfire-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/arrayfire-users/eaafaad4-d079-4653-a572-de1db70a71b8n%40googlegroups.com.


--

ErrataC

unread,
Mar 26, 2021, 8:05:51 AM3/26/21
to ArrayFire Users

I did look at that function, its not quite what I'm talking about here. That form of convolution allows dilation of the filter, but transposed convolution is more like dilation of the signal.
It's commonly used for implementing the decoder in encoder-decoder neural networks, and more generally for up-scaling.
Excellent article on it here: Transposed Convolution Demystified

Pradeep Garigipati

unread,
Apr 7, 2021, 1:04:39 AM4/7/21
to ErrataC, ArrayFire Users
I think we don't have such function right now - you are welcome to raise a feature request and we will take a look at it as soon as possible.

Right now, apart from regular convolutions, there are two additional functions that are ML oriented: convolve2NN and convolve2GradientNN



--
Reply all
Reply to author
Forward
0 new messages