python - 在 Chaquopy 中转换数组和张量
问题描述
我该怎么做呢?
我看到您的帖子说您可以将 java 对象传递给 Python 方法,但这不适用于 numpy 数组和 TensorFlow 张量。以下以及各种变体是我尝试过的,但无济于事。
double[][] anchors = new double[][]{{0.57273, 0.677385}, {1.87446, 2.06253}, {3.33843, 5.47434}, {7.88282, 3.52778}, {9.77052, 9.16828}};
PyObject anchors_ = numpy.callAttr("array", anchors);
我也尝试使用连接来创建它,但它不起作用。这是因为连接(和堆栈等)需要包含要作为参数传递的数组名称的序列,而 Java 中的 Chaquopy 似乎没有办法做到这一点。
有什么建议吗?
解决方案
我假设您收到的错误是“ValueError:仅接受 2 个非关键字参数”。
您可能还会在调用 时收到来自 Android Studio 的警告numpy.array
,说“混淆参数 'anchors',不清楚是否需要 varargs 或非 varargs 调用”。这就是问题的根源。您打算传递一个double[][]
参数,但不幸的是 Java 已将其解释为五个double[]
参数。
Android Studio 应该为您提供将参数转换为 的自动修复Object
,即:
numpy.callAttr("array", (Object)anchors);
这告诉 Java 编译器您打算只传递一个参数,然后numpy.array
将正常工作。
推荐阅读
- mysql - MYSQL 在过去 10 分钟内删除每个 id、标题的重复行
- python - NameError: name 'spark' is not defined,如何解决?
- javascript - MERN 无法部署到 heroku
- kotlin - Kotlin ConflatedBroadcastChannel.offer() 不起作用?
- python - 出现问题时继续扫描另一个站点
- python-3.x - Bert 预训练模型每次给出随机输出
- javascript - 我想在滚动时显示 div 获取 TypeError: $ is not a function?
- javascript - Greasemonkey:如何删除随机 url 部分?
- ios - 单元格中有阴影的 TableView
- vb.net - 在按钮上调用函数/子单击 vb.net