簡體   English   中英

使用帶有 nd4j 的 gradle 構建問題

[英]Problems building using gradle with nd4j

我正在嘗試使用nd4j構建一個模塊。
它使用 maven 構建良好,但不適用於 gradle。
我對 pom 進行了自動轉換,我手動添加了javacpp依賴項,然后
它構建但測試失敗,鏈接錯誤no jniopenblas_nolapack in java.library.path
我已經做了很多網絡搜索無濟於事。
這是我的dependencies部分:

dependencies {
implementation("org.bytedeco:openblas:0.3.17-1.5.6")
implementation("org.bytedeco:javacpp:1.5.6")
implementation("org.nd4j:nd4j-native:1.0.0-M1.1")
}

(我已經刪除了與此無關的部門)
實際上,我有點不知所措。

在評論中,我希望對我們的文檔發表評論,以幫助改進網站。 我們明確地涵蓋了這種情況。 我將在下面總結它,然后用鏈接發表評論。 如果您發現任何遺漏,請幫助我們改進網站以備將來使用。

Nd4j 使用 javacpp,它依賴於分類器來確定如何包含本機二進制文件。 它的工作方式是將核心類放在一個獨立的庫/artifactId(nd4j-native)中,並且它需要一個伴隨的分類器依賴於 go。 這將是一個具有相同名稱和版本的工件 ID 以及一個附加分類器。 這通常是您平台的操作系統和架構名稱。 這可能是 linux-x86_64(64 位英特爾上的 linux)或 android-arm64(64 位 ARM 設備上的 android)

這些通常還具有附帶的依賴項,例如 openblas(我們也使用 javacpp 綁定),以使我們能夠訪問快速的第 3 方數學例程。

考慮到這一點,通常需要這樣的依賴塊:

dependencies {
    compile "org.nd4j:nd4j-native:1.0.0-M1.1"
    // Use windows-x86_64 or linux-x86_64 if you are not on macos
    compile "org.nd4j:nd4j-native:1.0.0-M1.1:macosx-x86_64"
    compile "org.bytedeco:openblas:0.3.17-1.5.6:macosx-x86_64" 
    compile "org.bytedeco:openblas:0.3.17-1.5.6" 
}

您還可以執行 Sam 之前描述的操作並使用 -platform 依賴項。 這些將更容易使用,並且是我們在文檔站點上默認擁有的。 那么這將是:

dependencies {
    compile "org.nd4j:nd4j-native-platform:1.0.0-M1.1"
 
}

網站上有更多關於此的文檔,因此為簡單起見,我將嘗試省略所有這些文檔。 如果您需要后續評論,請告訴我或提交另一個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM