tensorflow / tensorflow/java

Caused by: java.lang.ClassNotFoundException: org.tensorflow.ndarray.NdArray

未关闭
#273 8 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
Java
星标
928
派生
227
PR 合并指标
30 天内没有已合并 PR

描述

The maven project that I have works fine if run it as Java Application. It does not raise error if I build it eclipse. This a FiJi plugin. As a result, if I copy paste jar file into "FiJi/plugins" or use "install plugins" I still do not have any problem. However, when I choose the plugin, it raises the following error.

In brief, I have models (tensorflow) trained using Python. Then, I load the models in tensorflow/java (0.3.1) . As I wrote above I do not have any problem (if I run the project as Java Application) loading the models and predicting images using tensorflow/java.

I am using windows, but I have the same problem if I run it on Linux as well.


(Fiji Is Just) ImageJ 2.0.0-rc-69/1.53c; Java 1.8.0_172 [64-bit]; Windows 8.1 6.3; 69MB of 12155MB (<1%)
 
java.lang.NoClassDefFoundError: org/tensorflow/ndarray/NdArray
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
	at java.lang.Class.getConstructor0(Class.java:3075)
	at java.lang.Class.newInstance(Class.java:412)
	at org.scijava.plugin.PluginInfo.createInstance(PluginInfo.java:304)
	at org.scijava.command.CommandInfo.createInstance(CommandInfo.java:247)
	at org.scijava.command.CommandModule.instantiateCommand(CommandModule.java:248)
	at org.scijava.command.CommandModule.<init>(CommandModule.java:98)
	at org.scijava.command.CommandInfo.createModule(CommandInfo.java:325)
	at org.scijava.module.DefaultModuleService.createModule(DefaultModuleService.java:167)
	at org.scijava.module.DefaultModuleService.run(DefaultModuleService.java:206)
	at org.scijava.module.DefaultModuleService.run(DefaultModuleService.java:197)
	at org.scijava.module.DefaultModuleService.run(DefaultModuleService.java:182)
	at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:304)
	at net.imagej.legacy.DefaultLegacyHooks.interceptRunPlugIn(DefaultLegacyHooks.java:163)
	at ij.IJ.runPlugIn(IJ.java)
	at ij.Executer.runCommand(Executer.java:150)
	at ij.Executer.run(Executer.java:68)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.tensorflow.ndarray.NdArray
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 19 more

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

通过将使用 Maven 构建的 JAR 安装到 Fiji 中并选择该插件来重现此故障;堆栈跟踪进入 org.scijava.plugin.PluginInfo.createInstance,并报告 org.tensorflow.ndarray.NdArray 不可用。检查插件打包的依赖项和类路径,然后验证该插件能在受影响的平台上的 Fiji 中成功启动。

由索引模型根据 Issue 内容生成。

评估

技术栈
java, tensorflow
领域
build-system
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。