workflow support for training regression/weighted logistic regression model.

Summary: workflow support for training regression/weighted logistic regression model.

Reviewed By: xianjiec

Differential Revision: D4830130

fbshipit-source-id: ccd4fc47a0d4b7c4ffb5948766c4a00ac34f929b
diff --git a/caffe2/operators/distance_op.cc b/caffe2/operators/distance_op.cc
index 90a9f08..2d63d66 100644
--- a/caffe2/operators/distance_op.cc
+++ b/caffe2/operators/distance_op.cc
@@ -12,8 +12,8 @@
     CAFFE_ENFORCE_EQ(X.dim32(i), Y.dim32(i));
   }
   int N = X.ndim() > 0 ? X.dim32(0) : 1;
-  int D = X.size() / N;
   distance->Resize(N);
+  int D = N > 0 ? X.size() / N : 0;
   float* distance_data = distance->mutable_data<float>();
   const float* X_data = X.data<float>();
   const float* Y_data = Y.data<float>();
diff --git a/caffe2/operators/distance_op.h b/caffe2/operators/distance_op.h
index 6a58dde..0a4df03 100644
--- a/caffe2/operators/distance_op.h
+++ b/caffe2/operators/distance_op.h
@@ -34,7 +34,7 @@
     auto* dX = Output(0);
     auto* dY = Output(1);
     int N = X.ndim() > 0 ? X.dim32(0) : 1;
-    int D = X.size() / N;
+    int D = N > 0 ? X.size() / N : 0;
     CAFFE_ENFORCE(X.ndim() == Y.ndim());
     for (int i = 0; i < X.ndim(); ++i) {
       CAFFE_ENFORCE(X.dim32(i) == Y.dim32(i));