Nd4j(Deeplearning4J)是否太大而无法在android移动应用程序中实际使用?
经过几周的开发,我终于在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移动开发……”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大小至
当然,我在这里遗漏了什么?如果有人偶然读到这篇文章,就会面临与我相同的情况:我已切换到新版本,它提供了与我需要nd4j相同的基本NDArray操作。在使用应用程序进行测试时,它实际上没有增加任何大小,但功能有所减少,例如,到目前为止,您还无法使用Multik反转矩阵。正如我在问题Adam中所说:“但是,除了对您支持的平台进行更多选择之外,我们无法提供任何解决方案。同样,根据abi平台,这仍然意味着最小APK大小至少为~200MB。”-我字面上引用了相同的链接。因此,这取决于您使用的功能,您的应用程序大小将随着您使用的本机库的数量(例如:opencv)而伸缩。如果您仅使用nd4j native,beta7的本机二进制文件为30MB(这仍然是相当大的)我明白。我们可以把它拆掉,如果你想要一个更具体的解决方案,我们可以和你合作一点。