无法将ND4j放入罐子中

因此,我一直在尝试将deeplearning4j(DL4j)集成到我的Minecraft插件中,到目前为止一切进展顺利。我唯一的问题是在罐子里加阴影。我在其中成功着色了dl4j,但似乎无法将nd4j放入其中,这是dl4j工作所需的库。任何帮助或建议,将不胜感激。我也尝试过Maven组装,但是没有用。

错误:

[10:54:34] [Server thread/ERROR]: Error occurred while enabling AIAC  v1.0 (Is it up to date?)
java.lang.ExceptionInInitializerError
   at org.datavec.api.util.ndarray.RecordConverter.toMinibatchArray(RecordConverter.java:198) ~[?:?]
   at org.deeplearning4j.datasets.datavec.RecordReaderMultiDataSetIterator.next(RecordReaderMultiDataSetIterator.java:160) ~[?:?]
   at org.deeplearning4j.datasets.datavec.RecordReaderDataSetIterator.next(RecordReaderDataSetIterator.java:377) ~[?:?]
   at org.deeplearning4j.datasets.datavec.RecordReaderDataSetIterator.next(RecordReaderDataSetIterator.java:452) ~[?:?]
   at org.deeplearning4j.datasets.datavec.RecordReaderDataSetIterator.next(RecordReaderDataSetIterator.java:85) ~[?:?]
   at org.derock_antony.aiac.ai.Loader.<init>(Loader.java:35) ~[?:?]
   at org.derock_antony.aiac.Main.onEnable(Main.java:25) ~[?:?]
   at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
   at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot.jar:git-Spigot-db6de12-18fbb24]
   at org.bukkit.plugin.SimplePluginmanager.enablePlugin(SimplePluginmanager.java:405) [spigot.jar:git-Spigot-db6de12-18fbb24]
   at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [spigot.jar:git-Spigot-db6de12-18fbb24]
   at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [spigot.jar:git-Spigot-db6de12-18fbb24]
   at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414) [spigot.jar:git-Spigot-db6de12-18fbb24]
   at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378) [spigot.jar:git-Spigot-db6de12-18fbb24]
   at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333) [spigot.jar:git-Spigot-db6de12-18fbb24]
   at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263) [spigot.jar:git-Spigot-db6de12-18fbb24]
   at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525) [spigot.jar:git-Spigot-db6de12-18fbb24]
   at java.lang.Thread.run(Unknown Source) [?:1.8.0_201]
Caused by: java.lang.RuntimeException: org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException: Please ensure that you have an nd4j backend on your classpath. Please see: http://nd4j.org/getstarted.html
   at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:5131) ~[?:?]
   at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:226) ~[?:?]
   ... 18 more
Caused by: org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException: Please ensure that you have an nd4j backend on your classpath. Please see: http://nd4j.org/getstarted.html
   at org.nd4j.linalg.factory.Nd4jBackend.load(Nd4jBackend.java:218) ~[?:?]
   at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:5128) ~[?:?]
   at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:226) ~[?:?]
   ... 18 more

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>me.antony.aiac</groupId>
    <artifactId>aiac</artifactId>
    <version>1.0-snAPSHOT</version>

    <properties>
        <maven.compiler.release>12</maven.compiler.release>
    </properties>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>org.derock_antony.aiac.Main</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>8</release>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <artifactSet>
                                <excludes>
                                </excludes>
                            </artifactSet>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.deeplearning4j</groupId>
            <artifactId>deeplearning4j-core</artifactId>
            <version>1.0.0-beta6</version>
        </dependency>
        <dependency>
            <groupId>org.nd4j</groupId>
            <artifactId>nd4j-native-platform</artifactId>
            <version>1.0.0-beta6</version>
        </dependency>
    </dependencies>
</project>
lalala20075149 回答:无法将ND4j放入罐子中

我设法通过更改库(nd4j)以不使用Java的ServiceLoader功能来解决此问题(不是Minecraft Mod,而是Slay The Spire mod)。

仅当它无法找到后端时,才会抛出nd4j库抛出的错误(它仅尝试使用名为ServiceLoaders的Java功能来完成,表面上,这种功能在通过模版完成的自定义类加载中看起来无法很好地工作《我的世界》,并改装了尖塔)。

因此,只需更改库本身以对使用ServiceLoaders查找的内容进行硬编码即可解决此问题。我认为这不是一个很好的解决方案,但是考虑到改装后的Minecraft发射器或改装后的尖顶发射器不太可能解决此问题,因此这是为您自己的Mod修复的一种方法。

本文链接:https://www.f2er.com/2820695.html

大家都在问