aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/kernels/conv_ops_3d.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/core/kernels/conv_ops_3d.cc')
-rw-r--r--tensorflow/core/kernels/conv_ops_3d.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/tensorflow/core/kernels/conv_ops_3d.cc b/tensorflow/core/kernels/conv_ops_3d.cc
index 697b3f6267..e236edfc0d 100644
--- a/tensorflow/core/kernels/conv_ops_3d.cc
+++ b/tensorflow/core/kernels/conv_ops_3d.cc
@@ -160,8 +160,10 @@ struct LaunchConvOp<GPUDevice, T> {
if (padding == Padding::SAME) {
pad_planes = (out_planes - 1) * strides[0] + filter_planes - in_planes;
- pad_rows = (out_rows - 1) * strides[1] + filter_rows - in_rows;
- pad_cols = (out_cols - 1) * strides[2] + filter_cols - in_cols;
+ pad_rows = std::max<int64>(
+ 0, (out_rows - 1) * strides[1] + filter_rows - in_rows);
+ pad_cols = std::max<int64>(
+ 0, (out_cols - 1) * strides[2] + filter_cols - in_cols);
}
// NOTE: This only works in NHWC.
@@ -239,6 +241,9 @@ struct LaunchConvOp<GPUDevice, T> {
transformed_input.tensor<T, 5>());
input = transformed_input;
+ CHECK(pad_rows >= 0 && pad_cols >= 0) << "Negative row or col paddings: ("
+ << pad_rows << ", " << pad_cols
+ << ")";
perftools::gputools::dnn::BatchDescriptor input_desc(3);
input_desc.set_count(in_batch)
.set_feature_map_count(in_depth)