快照

使用每日版本访问最新的Eclipse Deeplearning4J功能。

内容

概述/介绍

我们提供仓库的自动化日常构建,如ND4J, DataVec, DeepLearning4j, RL4J等等,所以所有最新的功能和最新的bug修复都是每天发布的。

快照像任何其他的Maven依赖一样工作。唯一的区别是,它们是从自定义存储库提供的,而不是从Maven Central提供的。

由于正在进行的开发,快照版应该被认为比发布版更不稳定:在正常开发过程中,原则上可以在任何时候引入破坏性的变化或错误。通常情况下,应在可能的情况下使用发布版本(不是快照),除非需要修复错误或需要新的功能。

安装说明

步骤1: 若要在项目中使用快照,应将像这样将快照仓库信息添加到你的POM.xml文件中:

<repositories>
    <repository>
        <id>snapshots-repo</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>  <!-- Optional, update daily -->
        </snapshots>
    </repository>
</repositories>

步骤2: 请确保指定快照版本。我们遵循一个简单的规则:如果最新的稳定发布版本是A.B.C,快照版本将是A.B.(C+1)-SNAPSHOT。当前快照版本为 1.0.0-SNAPSHOT。有关pom.xml文件的存储库部分的更多细节,请参见Maven 文档

如果使用类似DL4J示例的属性,则更改:从版本:

<dl4j.version>1.0.0-beta6</dl4j.version>
<nd4j.version>1.0.0-beta6</nd4j.version>

改为版本:

<dl4j.version>1.0.0-SNAPSHOT</dl4j.version>
<nd4j.version>1.0.0-SNAPSHOT</nd4j.version>

使用快照的示例pom.xml

这里提供了示例pom.xml:使用快照的示例pom.xml。这是从DL4J独立示例项目中获取的,并且使用上面的步骤1和2进行了修改。原件(使用最新版本)可以在这里找到

局限

-platform(所有操作系统)和单操作系统(非平台)快照依赖项都已释放。由于快照的多平台构建特性,-platform工件可能(虽然很少)暂时不同步,这可能会导致构建问题。

如果您只在一个平台上构建和部署,那么使用如下non-platform构件会比较安全

        <dependency>
            <groupId>org.nd4j</groupId>
            <artifactId>nd4j-native</artifactId>
            <version>${nd4j.version}</version>
        </dependency>

用于快照的有用的Maven命令

在Maven中使用快照依赖时可能有用的两个命令如下:

  1. -U - 例如, 在 mvn package -U. 这个 -U 选项强制Maven去检查 (并且有必要的话,下载)最新的快照版。这在你需要确保你有绝对最新快照版时很有用。

  2. -nsu - 例如, 在 mvn package -nsu. 这个 -nsu 选项停止Maven正在进行的快照版检查。但是,请注意,只有当你有一些快照依赖项已经下载到本地Maven缓存 (.m2 目录)中时,你的构建才会成功使用此选项。

另一种方法(1)是在<repositories>节点设置 <updatePolicy>always</updatePolicy>

另一种方法(2)是在<repositories>节点设置设置<updatePolicy>never</updatePolicy>

Gradle用户需知

快照不能与Gradle一起工作。你必须使用Maven下载文件。之后,你可以尝试使用 mavenLocal()使用本地Maven仓库。

最小文件像这样:

version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
    mavenCentral()
}

dependencies {
    compile group: 'org.deeplearning4j', name: 'deeplearning4j-core', version: '1.0.0-SNAPSHOT'
    compile group: 'org.deeplearning4j', name: 'deeplearning4j-modelimport', version: '1.0.0-SNAPSHOT'
    compile "org.nd4j:nd4j-native:1.0.0-SNAPSHOT"
    // Use windows-x86_64 or linux-x86_64 if you are not on macos
    compile "org.nd4j:nd4j-native:1.0.0-SNAPSHOT:macosx-x86_64"
    testCompile group: 'junit', name: 'junit', version: '4.12'

}

应该在理论上工作,但事实并非如此。这是因为Gradle的一个缺陷。带有快照的Gradle和Maven分类器似乎有问题。

值得注意的是,当使用Gradle上的ND4J本地后端(和SBT -但不是Maven)时,需要添加OpenBLAS作为依赖项。我们在-platform pom上为你做了这件事。参考-platform pom 这里来重复检查你的依赖关系。请注意,这些是版本属性。有关运行 nd4j-native所需的OpenBLAS和javacpp presets当前版本,请参阅POM的<properties>节点。

最后更新于