Space to depth is the inverse of depth to space. Space to depth takes each non-overlapping M by M patch (in the X and Y dimensions) with depth D of the input, and transforms it to a 1 by 1 patch with depth D*M². If the input has size (MX, MY, D), the output has size (X, Y, D*M²). The number of data elements is not changed. Example. M=2, Din =2, Xin=4, Yin=4, Dout=8 DepthHeightWidth layout Values
| 2269 | // |
| 2270 | // sqrt_depth_increase: 'M' in the comment above |
| 2271 | virtual bool DoSpaceToDepth(Stream* stream, |
| 2272 | const dnn::BatchDescriptor& input_dimensions, |
| 2273 | const DeviceMemory<float>& input_data, |
| 2274 | const DepthToSpaceLayout& space_to_depth_layout, |
| 2275 | const int& sqrt_depth_increase, |
| 2276 | DeviceMemory<float>* output_data) { |
| 2277 | return false; |
| 2278 | } |
| 2279 | |
| 2280 | // Computes the specified operation (e.g. addition or multiplication) |
| 2281 | // between corresponding elements in the inputs and stores the result in the |