1. 程式人生 > >DL4J中文文件/配置/快照

DL4J中文文件/配置/快照

內容

  • 快照介紹
  • 安裝說明
  • 侷限
  • ND4J後端配置
  • Gradle使用者需知

概述/介紹

我們提供倉庫的自動化日常構建,如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-beta2</dl4j.version>
<nd4j.version>1.0.0-beta2</nd4j.version>

改為版本:

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

對於Spark依賴,按如下改變:

<dl4j.spark.version>1.0.0-beta2_spark_2</dl4j.spark.version>

改為

<dl4j.spark.version>1.0.0_spark_2-SNAPSHOT</dl4j.spark.version>

使用快照的示例pom.xml

這裡提供了示例pom.xml:使用快照的示例pom.xml。這是從DL4J獨立示例專案中獲取的,並且使用上面的步驟1和2進行了修改。原件(使用最新版本)可以在這裡找到

侷限

平臺(所有作業系統)和單OS(非平臺)快照依賴都已釋出。由於快照的多平臺構建特性,平臺artifacts有可能(儘管很少)暫時失去同步,這可能導致構建問題。

如果只在一個平臺上構建和部署,則使用非平臺artifacts,如:

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

在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使用者需知

Snapshots will not work with Gradle. You must use Maven to download the files. After that, you may try using your local Maven repository with mavenLocal().

A bare minimum file like this:

快照不能與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>節點。

翻譯:風一樣的男子

有任何問題請聯絡微信

如果您覺得我的文章給了您幫助,請為我買一杯飲料吧!以下是我的支付寶,意思一下我將非常感激!