diff options
Diffstat (limited to 'tensorflow/core/ops/array_ops.cc')
-rw-r--r-- | tensorflow/core/ops/array_ops.cc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/tensorflow/core/ops/array_ops.cc b/tensorflow/core/ops/array_ops.cc index e81490c498..e2e07a4bf1 100644 --- a/tensorflow/core/ops/array_ops.cc +++ b/tensorflow/core/ops/array_ops.cc @@ -41,10 +41,10 @@ Status GetAxisForPackAndUnpack(InferenceContext* c, int32 rank_after_pack, } template <typename T> -std::vector<int64> AsInt64(const Tensor* tensor, int num_elements) { +std::vector<int64> AsInt64(const Tensor* tensor, int64 num_elements) { std::vector<int64> ret(num_elements); auto data = tensor->vec<T>(); - for (int i = 0; i < num_elements; ++i) { + for (int64 i = 0; i < num_elements; ++i) { ret[i] = data(i); } return ret; @@ -52,11 +52,11 @@ std::vector<int64> AsInt64(const Tensor* tensor, int num_elements) { template <typename T> Status PadKnown(InferenceContext* c, ShapeHandle input, - const Tensor* paddings_t, int32 num_dims) { + const Tensor* paddings_t, int64 num_dims) { // paddings_t is known. std::vector<DimensionHandle> dims(num_dims); auto paddings_data = paddings_t->matrix<T>(); - for (int i = 0; i < num_dims; ++i) { + for (int64 i = 0; i < num_dims; ++i) { const T pad0 = paddings_data(i, 0); const T pad1 = paddings_data(i, 1); if (pad0 < 0 || pad1 < 0) { @@ -1244,9 +1244,12 @@ REGISTER_OP("_ParallelConcatStart") .Attr("dtype: type") .SetIsStateful() .SetShapeFn([](InferenceContext* c) { - ShapeHandle out; - TF_RETURN_IF_ERROR(c->MakeShapeFromShapeTensor(0, &out)); - c->set_output(0, out); + TensorShapeProto shape_proto; + TF_RETURN_IF_ERROR(c->GetAttr("shape", &shape_proto)); + ShapeHandle output_shape; + TF_RETURN_IF_ERROR( + c->MakeShapeFromShapeProto(shape_proto, &output_shape)); + c->set_output(0, output_shape); return Status::OK(); }) .Doc(R"doc( @@ -2644,10 +2647,10 @@ output: The padded tensor. namespace { template <typename T> Status MirrorPadKnown(InferenceContext* c, ShapeHandle input, - const Tensor* paddings_t, int32 input_rank) { + const Tensor* paddings_t, int64 input_rank) { auto paddings_data = paddings_t->matrix<T>(); std::vector<DimensionHandle> dims(input_rank); - for (int i = 0; i < input_rank; ++i) { + for (int64 i = 0; i < input_rank; ++i) { const int64 pad0 = static_cast<int64>(paddings_data(i, 0)); const int64 pad1 = static_cast<int64>(paddings_data(i, 1)); if (pad0 < 0 || pad1 < 0) { |