Skip to content

A custom tensorflow op to achieve recurrent convolution as detailed in Evolving Robust, Deliberate Motion Planning With a Shallow Convolutional Neural Network

License

Notifications You must be signed in to change notification settings

WatchJolley/recurrent-conv-op

Repository files navigation

Recurrent Convolution - Tensorflow Op

A custom tensorflow op to achieve recurrent convolution as detailed in Evolving Robust, Deliberate Motion Planning With a Shallow Convolutional Neural Network

About

Recurrent convolution can be achieved with standard TensorFlow operations. However, due to multiple cycles of convolution operations, the data will be passed back and forth across the CPU and GPU; this causes unnecessary latency. In this implementation, the input data is passed to the GPU once, then computed, and passed back.

The test provided uses a 20x20 input matrix with a 3x3 kernel. The current implementation only allows an input matrix; future work should focus on the compatibility of tensor inputs.

Usage

The provided python test (recurrent_tests.py) allows experimentation with the op. The line:

Wx_recurrent = recurrent_module.recurrent(d_input, d_W, 50)

Calls the op with the parameters:

  • input matrix
  • kernel
  • num of cycles

Notes

The main usage for this was to be incorporated into Deep Neuroevolution. Currently this is not functional.

About

A custom tensorflow op to achieve recurrent convolution as detailed in Evolving Robust, Deliberate Motion Planning With a Shallow Convolutional Neural Network

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published