首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在代码运行时获得异常,而在DJL上调试代码时不获得异常

在代码运行时获得异常,而在DJL上调试代码时不获得异常
EN

Stack Overflow用户
提问于 2021-11-03 12:26:16
回答 1查看 31关注 0票数 0

我使用DJL作为Java中Numpy的包装库来执行矩阵上的复杂操作,并且在执行NDArray#any()调用时遇到了问题。

我正在从一系列操作创建一个矩阵,然后我想测试它是否包含任何true值。

引起此问题的代码片段如下所示:

代码语言:javascript
复制
      NDArray orthogonallyAccessibleMaskMax = columns.get(index).eq(maxs.get(index))
          .logicalAnd(infiniteSurfaceMask.neg()).logicalAnd(
              deltaNormalsPositions.dot(loopArgumentsMatrixMax.get(index)).gt(RADIUS_TOLERANCE))
          .toType(DataType.FLOAT32, true);

      if (orthogonallyAccessibleMaskMax.any().getBoolean()) {
        infiniteSurfaceMask.add(orthogonallyAccessibleMaskMax);
      }

例外是:

代码语言:javascript
复制
ai.djl.engine.EngineException: MXNet engine call failed: MXNetError: Unknown type enum 7
Stack trace:
  File "C:\Users\Administrator\kimbergz\b4\src\operator\numpy\../tensor/elemwise_unary_op.h", line 252


    at ai.djl.mxnet.jna.JnaUtils.checkCall(JnaUtils.java:1930)
    at ai.djl.mxnet.jna.JnaUtils.waitToRead(JnaUtils.java:473)
    at ai.djl.mxnet.engine.MxNDArray.close(MxNDArray.java:1629)
    at ai.djl.mxnet.engine.MxNDArray.sum(MxNDArray.java:996)
    at ai.djl.ndarray.NDArray.any(NDArray.java:4299)
    at com.package.calculateInfiniteSurfaceMask(DeltaThicknessStep.java:137)

奇怪的是,如果我调试代码并一步一步地执行,操作就会正确地执行,并得到我正在寻找的布尔值。但是,如果我让代码在没有断点的情况下运行,,在orthogonallyAccessibleMaskMax上执行的每个操作都会抛出这个异常。

EN

回答 1

Stack Overflow用户

发布于 2022-04-22 16:32:42

这是由于MXNet中对布尔类型的支持有限。您可以在Python中复制相同的问题:

代码语言:javascript
复制
from mxnet import nd
array = nd.zeros(1, dtype='bool')
nd.negative(array)

您可以尝试使用PyTorch引擎而不是MXNet引擎。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69824818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档