Home | History | Annotate | Download | only in kernels

Lines Matching refs:filter

62                   const Tensor& filter, int row_stride, int col_stride,
67 if (filter.dim_size(0) == 1 && filter.dim_size(1) == 1 && row_stride == 1 &&
84 output->shaped<T, 2>({conv_width, filter.dim_size(3)}),
85 input.shaped<T, 2>({conv_width, filter.dim_size(2)}),
86 filter.shaped<T, 2>({filter.dim_size(2), filter.dim_size(3)}),
88 } else if (filter.dim_size(0) == input.dim_size(1) &&
89 filter.dim_size(1) == input.dim_size(2) && row_dilation == 1 &&
91 // If the input data and filter have the same height/width,
94 filter.dim_size(0) * filter.dim_size(1) * filter.dim_size(2);
100 output->shaped<T, 2>({input.dim_size(0), filter.dim_size(3)}),
102 filter.shaped<T, 2>({k, filter.dim_size(3)}), dim_pair);
106 input.tensor<T, 4>(), filter.tensor<T, 4>(), row_stride, col_stride,
116 const Tensor& input, const Tensor& filter, int row_dilation,
126 LaunchGeneric<CPUDevice, T>()(ctx, input, filter, row_stride, col_stride,
136 const Tensor& filter, int batch, int input_rows,
152 const Tensor& filter, int batch, int input_rows,
179 auto filter_ptr = filter.template flat<float>().data();
193 const Tensor& filter, int batch, int input_rows,
207 const Tensor& filter, int batch, int input_rows,
246 auto filter_ptr = filter.template flat<float>().data();
307 // Input filter is of the following dimensions:
309 const Tensor& filter = context->input(1);
315 OP_REQUIRES(context, filter.dims() == 4,
316 errors::InvalidArgument("filter must be 4-dimensional: ",
317 filter.shape().DebugString()));
322 FastBoundsCheck(filter.dim_size(i), std::numeric_limits<int>::max()),
323 errors::InvalidArgument("filter too large"));
327 // filter's in_depth.
329 OP_REQUIRES(context, in_depth == filter.dim_size(2),
331 "input and filter must have the same depth: ", in_depth,
332 " vs ", filter.dim_size(2)));
334 // The last dimension for filter is out_depth.
335 const int out_depth = static_cast<int>(filter.dim_size(3));
338 // The first dimension for filter is rows/height.
345 const int filter_rows = static_cast<int>(filter.dim_size(0));
348 // The second dimension for filter is columns/width.
355 const int filter_cols = static_cast<int>(filter.dim_size(1));
406 context, input, filter, batch, input_rows, input_cols, in_depth,
415 context, input, filter, batch, input_rows, input_cols, in_depth,
422 launcher_(context, use_cudnn_, cudnn_use_autotune_, input, filter,
483 const Tensor& input_param, const Tensor& filter, int row_dilation,
501 if (filter.dim_size(0) == 1 && filter.dim_size(1) == 1 && row_dilation == 1 &&
504 // 1x1 filter, so call cublas directly.
506 const uint64 k = filter.dim_size(2);
507 const uint64 n = filter.dim_size(3);
511 auto b_ptr = AsDeviceMemory(filter.template flat<T>().data(),
512 filter.template flat<T>().size());
527 } else if (filter.dim_size(0) == input.dim_size(1) &&
528 filter.dim_size(1) == input.dim_size(2) && row_dilation == 1 &&
531 // The input data and filter have the same height/width, so call cublas
535 filter.dim_size(0) * filter.dim_size(1) * filter.dim_size(2);
536 const uint64 n = filter.dim_size(3);
540 auto b_ptr = AsDeviceMemory(filter.template flat<T>().data(),
541 filter.template flat<T>().size());
568 const int64 patch_rows = filter.dim_size(0);
569 const int64 patch_cols = filter.dim_size(1);
575 // is stride, (Dr, Dc) are dilations, (Kr, Kc) are filter dimensions.
644 filter_desc.set_input_filter_height(filter.dim_size(0))
645 .set_input_filter_width(filter.dim_size(1))
646 .set_input_feature_map_count(filter.dim_size(2))
647 .set_output_feature_map_count(filter.dim_size(3));
659 TensorShape({filter.dim_size(3), filter.dim_size(2),
660 filter.dim_size(0), filter.dim_size(1)}),
664 ctx->eigen_device<GPUDevice>(), To32Bit(filter.tensor<T, 4>()),
768 ") filter shape(", filter.shape().DebugString(), ")"));
789 typename TTypes<T, 4>::ConstTensor filter, int row_stride, \