message: Fix the same dummy shape matches for FusedBatchNormV3Op in FusedBatchNormV3GradOp
  Same change as previous one but just for non-grad variant.
diff: @@ -2048,13 +2048,25 @@ class ConvertFusedBatchNormBase : public OpRewritePattern<FusedBatchNormOpT> {
  /*reserve_space_1=*/reserve_space_1,
  /*reserve_space_2=*/batch_variance});
  } else { // TF::FusedBatchNormV3Op
  - // FusedBatchNormV3 expects a 5th output, but the output is unused; it
  - // doesn't matter what we pass there.
  + // For FusedBatchNormV3Op, also create a constant tensor to forward to
  + // last reserve_space_3 output.
  + auto reserve_space_3_type =
  + op.getResult(5).getType().template cast<TensorType>();
  + int num_elements = reserve_space_3_type.hasStaticShape()
  + ? reserve_space_3_type.getNumElements()
  + : 0;
  + auto const_attr_type = RankedTensorType::get(
  + {num_elements}, getElementTypeOrSelf(reserve_space_3_type));
  + Value dummy_const = rewriter.create<ConstOp>(
  + op.getLoc(), DenseElementsAttr::get<float>(const_attr_type, 0.0));
  + if (const_attr_type != reserve_space_3_type)
  + dummy_const = rewriter.create<TensorCastOp>(
  + op.getLoc(), reserve_space_3_type, dummy_const);
  rewriter.replaceOp(op, {y_out, /*batch_mean=*/batch_mean,
  /*batch_variance=*/corrected_variance,
  /*reserve_space_1=*/reserve_space_1,
  /*reserve_space_2=*/batch_variance,
  - /*reserve_space_3=*/op.x()});
  + /*reserve_space_3=*/dummy_const});
  }
  } else { // Inference case.
  auto bn_train_op = rewriter.create<BatchNormInferenceOp>(
  