我一直在开发一个AndroidStudio应用程序,它使用TensorFlow Lite的GPU代理来加快推理速度。它使用一个模型,该模型接受大小为[n]x[384]的输入数组,并输出大小为[n]x[1]的数组,其中n是我希望在给定时间输入的384大小的输入数。输出n仅依赖于输入n。对于n=1,我没有问题-TF Lite的CPU和GPU推理都可以正常工作(尽管GPU确实需要更长的时间-可能是因为较小的输入大小?)。当我增加n使其大于1并运行我的模型时,CPU计算工作正常,但GPU计算会使我的程序崩溃。当我使用模拟的Pixel 3 XL运行程序时,我收到以下错误消息:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.mlptest, PID: 10405
java.lang.IllegalArgumentException: Internal error: Failed to apply delegate: OpenCL library not loaded - dlopen failed: library "libOpenCL-pixel.so" not found
Falling back to OpenGL
TfLiteGpuDelegate Init: OpenGL ES 3.1 or above is required to use OpenGL inference.
TfLiteGpuDelegate Prepare: delegate is not initialized
Node number 4 (TfLiteGpuDelegateV2) failed to prepare.
当我在我的个人手机Motorla Moto G7电源上运行GPU compute时,我收到以下错误消息:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.mlptest, PID: 16906
java.lang.IllegalStateException: Internal error: Unexpected failure when preparing tensor allocations: TfLiteGpuDelegate Init: Index is out of range
TfLiteGpuDelegate Prepare: delegate is not initialized
Node number 4 (TfLiteGpuDelegateV2) failed to prepare.
只要GPU代理的解释器运行,就会发生此崩溃。我使用以下代码行创建委托:
GpuDelegate delegate = new GpuDelegate();
Interpreter.Options options = (new Interpreter.Options()).addDelegate(delegate);
使用选项初始化解释器,然后运行它:
Interpreter tfliteGPU = new Interpreter(loadedFile, options);
最后在计算后关闭委托:
delegate.close();
我使用的原始TensorFlow模型是在TensorFlow 1.x中创建的,并使用tflite\u convert命令从冻结图转换而来。我正在运行TF Lite 2.2.0和TF Lite GPU 2.2.0的应用程序:
implementation 'org.tensorflow:tensorflow-lite:2.2.0'
implementation 'org.tensorflow:tensorflow-lite-gpu:2.2.0'
我已经查看了TF Lite的Android API参考和他们在GPU代表上的页面,没有找到任何相关的解决方案。感谢您的帮助!
建议每晚试用TensorFlow实现后:
implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly'
implementation 'org.tensorflow:tensorflow-lite-gpu:0.0.0-nightly'
我在构建中切换了实现。gradle每晚使用0.0.0,我的问题就解决了。我说不出最初是什么导致了它,然而这就是解决它的原因。
只有当新项目的日期比现有项目更近时,我才想更新DynamoDB中的项目。目前,我正在查询现有项目,在代码中进行比较,然后写入数据库。我想知道是否有办法让DynamoDB为我进行检查。我已经研究过使用预期,但是它的比较运算符需要引入一个参数,这违背了目的,因为这意味着无论如何都必须查询现有项目。 我和8Java一起工作。
我使用的是最新版本的Java(FX)、macOS和IntelliJ IDEA CE的Mac电脑。问题是,当我调整JavaFX窗口的大小时,我的Mac会立即崩溃。只有当我按下电源按钮5秒钟后,MacBook才会重新启动。我创建了一个普通IntelliJ JavaFX项目,其中包含以下自动创建的文件: Hello控制器。java 我没有改变任何事情,开始了这个项目。一切正常,直到你尝试调整窗口大小,M
问题内容: 我正在尝试计算光盘上文件的大小。在Java的7本可以用做Files.walkFileTree如图我的答案在这里。 但是,如果我想使用java-8流来执行此操作,则它将适用于某些文件夹,但不适用于所有文件夹。 上面的代码可以很好地用于路径,但是会抛出以下异常 我了解它的来源以及如何使用Files.walkFileTree API避免它。 但是如何使用Files.walk() API 避免
我在UITableView中使用Auto Layout和size类,其中单元格根据其内容自调整大小。为此,我使用的方法是,对于每种类型的单元格,您都要保留该单元格的屏幕外实例,并在其上使用来确定正确的行高——这种方法在StackOverflow帖子和其他地方得到了很好的解释。 在我开始使用大小班级之前,这种方法非常有效。具体来说,我为常规宽度布局中的文本定义了不同的边距约束常数,因此iPad上的文
在我的minimax算法中,当计算机上有一个玩家有两种方法赢得计算机时,他只会选择棋盘的第一个打开位置。以下面的例子为例。X可以在0,2和1,0位置获胜。 目前,我的算法将把o放置在位置0,1。我相信它会这样做,因为当minimax运行并将o放置在位置0,1时,因为这不是一个胜利,它再次调用minimax,这一次是为x。然后,x移动到位置0,2,为胜利。这个位置返回-10。如果计算机在位置0,2移