| 125 | } |
| 126 | #ifndef CPU_ONLY |
| 127 | inline void conv_im2col_gpu(const Dtype* data, Dtype* col_buff) { |
| 128 | if (!force_nd_im2col_ && num_spatial_axes_ == 2) { |
| 129 | im2col_gpu(data, conv_in_channels_, |
| 130 | conv_input_shape_.cpu_data()[1], conv_input_shape_.cpu_data()[2], |
| 131 | kernel_shape_.cpu_data()[0], kernel_shape_.cpu_data()[1], |
| 132 | pad_.cpu_data()[0], pad_.cpu_data()[1], |
| 133 | stride_.cpu_data()[0], stride_.cpu_data()[1], |
| 134 | dilation_.cpu_data()[0], dilation_.cpu_data()[1], col_buff); |
| 135 | } else { |
| 136 | im2col_nd_gpu(data, num_spatial_axes_, num_kernels_im2col_, |
| 137 | conv_input_shape_.gpu_data(), col_buffer_.gpu_shape(), |
| 138 | kernel_shape_.gpu_data(), pad_.gpu_data(), |
| 139 | stride_.gpu_data(), dilation_.gpu_data(), col_buff); |
| 140 | } |
| 141 | } |
| 142 | inline void conv_col2im_gpu(const Dtype* col_buff, Dtype* data) { |
| 143 | if (!force_nd_im2col_ && num_spatial_axes_ == 2) { |
| 144 | col2im_gpu(col_buff, conv_in_channels_, |