hughperkins / DeepCL

OpenCL library to train deep convolutional neural networks
Mozilla Public License 2.0
865 stars 199 forks source link

Deconv/Unpooling Layer? #107

Open bloc97 opened 7 years ago

bloc97 commented 7 years ago

Does DeepCL currently support the creation of Deconvolutional and Unpooling layers? I am trying to work with a simple autoencoder, and the speed and simplicity of DeepCL is perfect, except that I cannot figure out how to add a deconv/unpooling layer.

If it doesn't currently support those, will it be in future releases?

hughperkins commented 7 years ago

I'm busy working on cuda-on-cl currently, https://github.com/hughperkins/cuda-on-cl , which is a very general tool, to compile NVIDIA® CUDA™ applications, such as ml libraries/frameworks, for OpenCL 1.2 devices. I envisage it might take me several months to work through all the related work for this, such as re-porting cutting-edge Torch across. I think that if you want a deconv/unpooling layer in DeepCL in the nearish future, you will need to write this layer yourself :-)

Unpooling is probably fairly straightforward. Maybe you can start with that? I would probably start by copying and pasting a pooling layer, and then modifying the kernel for that. Pooling kernels are fairly straightforrward, since no need to do O(N^3) or O(N^4) nested loops (cf convolutions).