Make the tf2xla "tensor list size not set" error message a bit more ergonomic

PiperOrigin-RevId: 312916547
Change-Id: Idbbe406a35205a0fb6dc5e620e04cf3bccefa43d
This commit is contained in:
Sanjoy Das 2020-05-23 09:43:17 -07:00 committed by TensorFlower Gardener
parent 73b9acd143
commit df5e319d05

View File

@ -136,8 +136,11 @@ class TensorListReserveOp : public XlaOpKernel {
OP_REQUIRES_OK(ctx, ctx->ConstantInputAsIntScalar(1, &num_elements)); OP_REQUIRES_OK(ctx, ctx->ConstantInputAsIntScalar(1, &num_elements));
OP_REQUIRES( OP_REQUIRES(
ctx, num_elements >= 0, ctx, num_elements >= 0,
errors::InvalidArgument("XLA compilation requires a fixed tensor list " errors::InvalidArgument(
"size. Set the number of elements.")); "XLA compilation requires a fixed tensor list size. Set the number "
"of elements. This could also happen if you're using a TensorArray "
"in a while loop that does not have its maximum_iteration set, you "
"can fix this by setting maximum_iteration to a suitable value."));
// If element shape is compile time constant and it's not "unknown rank" // If element shape is compile time constant and it's not "unknown rank"
// shape (-1), create an initialized TensorList. Otherwise create an // shape (-1), create an initialized TensorList. Otherwise create an
@ -197,10 +200,13 @@ class EmptyTensorListOp : public XlaOpKernel {
void Compile(XlaOpKernelContext* ctx) override { void Compile(XlaOpKernelContext* ctx) override {
int64 max_num_elements; int64 max_num_elements;
OP_REQUIRES_OK(ctx, ctx->ConstantInputAsIntScalar(1, &max_num_elements)); OP_REQUIRES_OK(ctx, ctx->ConstantInputAsIntScalar(1, &max_num_elements));
OP_REQUIRES( OP_REQUIRES(ctx, max_num_elements >= 0,
ctx, max_num_elements >= 0, errors::InvalidArgument(
errors::InvalidArgument("XLA compilation requires a fixed tensor list " "XLA compilation requires a fixed tensor list size. Set "
"size. Set the max number of elements.")); "the max number of elements. This could also happen if "
"you're using a TensorArray in a while loop that does not "
"have its maximum_iteration set, you can fix this by "
"setting maximum_iteration to a suitable value."));
if (dtype_ != DT_VARIANT) { if (dtype_ != DT_VARIANT) {
// We are creating a non-nested TensorList. // We are creating a non-nested TensorList.