Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nd4j(Deeplearning4J)是否太大而无法在android移动应用程序中实际使用?_Android_Nd4j - Fatal编程技术网

Nd4j(Deeplearning4J)是否太大而无法在android移动应用程序中实际使用?

Nd4j(Deeplearning4J)是否太大而无法在android移动应用程序中实际使用?,android,nd4j,Android,Nd4j,经过几周的开发,我终于在Android应用程序中创建了一个AI,它使用Nd4j库提供的矩阵操作API工作。这些已与gradle一起导入到项目中 不幸的是,我发现Nd4j依赖于一些非常大的运行时库,特别是libnd4jcpu.so,每个abi平台大约150mb,导致apk大小超过5GB!你可以在谷歌Play商店找到的平均应用程序大小约为11.5MB 中提出了如何减小Dl4j依赖项大小的问题。然而,除了仅仅为了解决这个问题外,无法提供任何解决方案。同样,对于abi平台,这仍然意味着最小APK大小至

经过几周的开发,我终于在Android应用程序中创建了一个AI,它使用Nd4j库提供的矩阵操作API工作。这些已与gradle一起导入到项目中

不幸的是,我发现Nd4j依赖于一些非常大的运行时库,特别是libnd4jcpu.so,每个abi平台大约150mb,导致apk大小超过5GB!你可以在谷歌Play商店找到的平均应用程序大小约为11.5MB

中提出了如何减小Dl4j依赖项大小的问题。然而,除了仅仅为了解决这个问题外,无法提供任何解决方案。同样,对于abi平台,这仍然意味着最小APK大小至少为~200MB

人们不禁要问,为什么Deeplearning4J社区一开始就致力于支持Android移动开发,为什么运行库依赖项大小这一不可避免的问题没有文档中提到的那么多

<>我肯定错过了一些东西吗?

< p>“Nd4J”实际上是库+自包含的C++库,编译到每个平台的本地二进制文件,捆绑在JAR中以实现快速性能。您通常希望在构建中剥离这些依赖项。您可以在此处看到如何执行此操作:

Nd4j依赖javacpp进行打包。简而言之,如果您使用nd4j本机平台,您可以在maven/gradle构建中指定-Dplatform=android-x86_64或android-arm64(取决于体系结构),也可以只使用nd4j本机依赖项(无分类器)+平台分类器

编辑我的回答有点抱歉,今天早上我没有时间完全阅读你的问题。让我逐一作出回应

首先:“我们必须想一想,为什么Deeplearning4J社区首先要努力支持Android移动开发……”

  • 首先,公平点,我想在这方面努力。在这里与我们合作时,请保持开放的心态。一般来说,人们有特定的要求,并根据他们的具体情况与我们合作。有时我们通过#2帮助他们最小化二进制大小

  • 关于这一点:“尤其是libnd4jcpu.so,每个abi平台大约有150mb,”目前,人们的应用程序有不同的旋转方式。 不可否认,我们更关注操作覆盖率,而不是二进制大小。我们有一个小型程序可以帮助您:如果您能更具体一些,我很乐意帮助您处理用例,但这并不是一个“只需阅读文档,然后自己动手”的体验


  • 当然,我在这里遗漏了什么?

    如果有人偶然读到这篇文章,就会面临与我相同的情况:我已切换到新版本,它提供了与我需要nd4j相同的基本NDArray操作。在使用应用程序进行测试时,它实际上没有增加任何大小,但功能有所减少,例如,到目前为止,您还无法使用Multik反转矩阵。

    正如我在问题Adam中所说:“但是,除了对您支持的平台进行更多选择之外,我们无法提供任何解决方案。同样,根据abi平台,这仍然意味着最小APK大小至少为~200MB。”-我字面上引用了相同的链接。因此,这取决于您使用的功能,您的应用程序大小将随着您使用的本机库的数量(例如:opencv)而伸缩。如果您仅使用nd4j native,beta7的本机二进制文件为30MB(这仍然是相当大的)我明白。我们可以把它拆掉,如果你想要一个更具体的解决方案,我们可以和你合作一点。