首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从源码看DL4JNative BLAS的加载,以及配置

最近在用DeepLearning4J(DL4J)尝试语音识别的深度学习,git DL4J的代码,用IntelliJ IDEA打开,配置好相关依赖后,运行包org.deeplearning4j.examples.test.Test...查了github,stackoverflow,quora等,找到了如下网页.github的是一个遇到类似问题的人抱怨native blas难以配置,害的自己在源码才找到解决方法,而nd4j的程序员回答所有的深度学习框架的...} else { try { String[] e = new String[]{"sun.boot.library.path", "java.library.path...successfully loaded " + file); loaded.add(name); return true; } catch (UnsatisfiedLinkError...原来如此我们的库还需要一些依赖库,这些依赖库没有找到.但是我们怎么知道这个库依赖于哪些库呢?哪些是已经有的,哪些是没有的?

1K30

JDK动态库加载路径问题,一文讲清

按照工具的第二条提示,设置了,也还是报错,反正,当时这条路是没有走下去。 当时也试了去watch当前类的loadSO方法,不知道为啥,也是没观察到东西,我们用的jdk1.7,不清楚有没有影响。...覆盖框架类,增加日志 上面报错这个类,在我们的TBASClientJNI-2.2.0.jar,我想着还是覆盖框架类,加点日志试试吧,于是在应用,新增了一个包名类名都一致的类:com.thinkive.tbascli.TBASCli...但根据我这边的现象看,比如最终是在/usr/lib64找到了libTBASClientJNI.so,但我的LD_LIBRARY_PATH并没有设置/usr/lib64,所以,jvm的实现估计还会根据...java.library.path这个属性的路径去查找。...加载第一层so依赖的so,在jdk貌似也是根据java.library.path;如果是非jdk,应该是根据LD_LIBRARY_PATH环境变量。

39820
您找到你想要的搜索结果了吗?
是的
没有找到

Java底层-本地接口(JNI)

前面的文章我们讲述了类加载子系统、执行引擎、GC子系统、运行数据区的相关内容,那么HotSpot虚拟机三大子系统、两组件就剩下本地接口组件没有讲述了,所以这一篇文章对于本地接口进行介绍。.../include/main.cpp-o libMain.jnilib 如果大家没有C++环境可以百度部署下,MacOS如果安装XCode,会自带C++环境。...否则会有如下报错: java.lang.UnsatisfiedLinkError: no XXX in java.library.path 关于g++命令的参数这里简单的说下 : -shared是说明要生成动态库...java.lang.UnsatisfiedLinkError: no XXX in java.library.path 的错误 头文件具体用处: (1)通过头文件来调用库功能。...关于本地接口到这里就讲完了,这篇文章只讲述了我们如何去调用本地接口,但是原理并没有提及,大家可以追踪System.loadLibrary()方法进行学习。

1.1K10

常见加载类错误分析

解决方法就是检测在当前的classpath目录下有没有指定的文件存在,如果不知道classpath路径,就可以通过如下命令获取: this.getClass().getClassLoader().getResource...这是因为你在命令行没有加类的包名,正确的写法是这样的 java cp example.jar net.xx.Example 在JVM的规范描述了出现NoClassDefFoundError可能的情况就是使用...解决这个错误的方法就是确保这个类引用的类都在当前的classpath下面 UnsatisfiedLinkError 这个异常倒不是很常见,但是出错的话,通常是在JVM启动的时候,如果一不小心将在JVM的某个...new NolibException().nativeMethod(); } } 这个错误通常时在解析native标识的方法时JVM找不到对应的本机库文件时出现,代码如下 java.lang.UnsatisfiedLinkError...: no Nolib in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) at

1.1K20

JavaCPP快速入门(官方demo增强版)

:javacpp:1.5.5,运行时会输出以下警告信息,本篇会解决这个告警问题: Warning: Could not load Loader: java.lang.UnsatisfiedLinkError...: no jnijavacpp in java.library.path 环境信息 这里给出我的环境信息,您可以作为参考: 操作系统:Ubuntu 16.04.5 LTS (server版,64位) g...: no jnijavacpp in java.library.path 333 最后,将我这里c++和java的文件夹和文件的信息详细列出来,您可以参考: root@docker:~# tree /root...: no jnijavacpp in java.library.path 333 上述告警信息不会影响功能,如果想消除掉,就不能只用org.bytedeco:javacpp:1.5.5这一个库,而是org.bytedeco...要有与C++同名的静态类 注意Java代码Namespace注解和C++的namespace一致 C++的头文件要和Java类放在同一个目录下 使用so库的时候,库名为libMyFunc.so,Platform

1.2K30

Android 的 so 文件加载机制提问源码总结参考资料

mLibPaths 在其他版本的源码,可能就没有这个变量了,直接就是调用一个方法,但作用都一样,我们看看这个变量的赋值: //Runtime.mLibPaths private final String...但其实,不管在哪个方法,都没找到有设置 java.library.path 属性值的代码,那这个属性值到底是在哪里设置的呢?...也就是说,在 native 层还会设置一些属性值,而 java.library.path 有可能就是在 native 设置的,那么就跟下去看看吧。...在 Linux 系统,可执行文件,也可以说所运行的程序,如果是 32 位的,那么是没有定义这个宏变量的,如果是 64 位的,那么是有定义这个宏变量的。...也就是说,如果应用在 system/lib 目录没有找到 so 文件,那么它是不会再自动去 system/lib64 寻找的,两者它只会选其一。

1.9K50

【下载】深度学习DL4j实战指南《Deep Learning—A Practitioner's Approach》

快速上手深度学习方法,这本书的目标是使深度学习大众化,利用DL4J进行一系列深度学习实战,并且介绍了在Spark和Hadoop上使用DL4J进行深度学习开发的教程。...本书中名称DL4J和Deeplearning4j是相同的。这两个术语都是指Deeplearning4j库的一套工具。...在第5章,我们将使用本书前半部分的技术介绍一些Java代码示例。 第6章和第7章讨论通用神经网络调优的基本原理,然后讨论如何调整深度网络的特定网络结构。...主题包括: 人工智能; 在DL4J项目中使用Maven; 利用GPUs; 使用ND4J的API; 更多…。 谁是“从业者”? 今天,“数据科学”这个术语并没有清晰的定义,经常以不同的方式使用。...数据科学和人工智能(AI)与当今计算机科学的任何术语一样广泛和模糊。这很大程度上是因为机器学习几乎与所有学科中都交织在一起。

1.4K40

java基础提升篇:JavaNative关键字的作用

初遇 初次遇见 native是在 java.lang.Object 源码的一个hashCode方法: 1public native int hashCode(); 为什么有个native呢?...如果大家直接运行这个代码, JVM会告之:“A Java Exception has occurred.”控制台输出如下: 1Exception in thread "main" java.lang.UnsatisfiedLinkError...: no HelloNative in java.library.path 2 at java.lang.ClassLoader.loadLibrary(Unknown Source) 3...这些函数的实现体在DLL,JDK的源代码并不包含,你应该是看不到的。对于不同的平台它们也是不同的。...可以将native方法比作Java程序同C程序的接口,其实现步骤:   1、在Java声明native()方法,然后编译;   2、用javah产生一个.h文件;   3、写一个.cpp文件实现native

39020
领券