You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by ib...@apache.org on 2019/12/17 12:58:37 UTC
[incubator-mxnet] branch v1.5.x updated: backport Julia patches to
v1.5.x (#16142)
This is an automated email from the ASF dual-hosted git repository.
iblis pushed a commit to branch v1.5.x
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git
The following commit(s) were added to refs/heads/v1.5.x by this push:
new 3f449aa backport Julia patches to v1.5.x (#16142)
3f449aa is described below
commit 3f449aad151158171d388aa31d3fa8ced6d042e9
Author: Iblis Lin <ib...@hs.ntnu.edu.tw>
AuthorDate: Tue Dec 17 20:57:15 2019 +0800
backport Julia patches to v1.5.x (#16142)
* julia: bump window prebult binary version to v1.5.0 (#15608)
- remove file REQUIRE, it's stale for Pkg3.jl
* update julia install doc (#15609)
* julia: fix `mx.forward` kwargs checking (#16138)
close https://github.com/dmlc/MXNet.jl/issues/431
* Julia: add API docs back (#16348)
`ndarray` and `symbolic-node` have been refactored by splitting into a
few files in commits ed8307121 and 36a3cb828, but the corresponding
document setting for MXNet.jl is not updated yet.
List all split source files into the `at_autodoc` setting.
Also refer to the `at_autodoc` setting in `julia/docs/src/api/optimizer.md`
---
docs/install/index.md | 64 +++++++++++++++++++++++++++++++++++--
julia/REQUIRE | 6 ----
julia/deps/build.jl | 16 ++++++----
julia/docs/src/api/ndarray.md | 18 ++++++++++-
julia/docs/src/api/symbolic-node.md | 11 ++++++-
julia/src/executor.jl | 2 +-
julia/test/unittest/bind.jl | 15 +++++++++
7 files changed, 115 insertions(+), 17 deletions(-)
diff --git a/docs/install/index.md b/docs/install/index.md
index d2bd24e..82cc573 100644
--- a/docs/install/index.md
+++ b/docs/install/index.md
@@ -108,7 +108,22 @@ Indicate your preferred configuration. Then, follow the customized commands to i
</div>
</div>
</div>
+
+<!-- Linux Julia Options -->
+
+<div class="linux macos windows">
+<div class="julia">
+<div class="cpu gpu">
+<div class="btn-group opt-group" role="group">
+ <button type="button" class="btn btn-default environs opt active">Pkg</button>
+ <button type="button" class="btn btn-default environs opt">Build from Source</button>
+</div>
+</div>
+</div>
+</div>
+
<hr>
+
<!-- END - Main Menu -->
<!-- START - Linux Python CPU Installation Instructions -->
@@ -582,8 +597,23 @@ You can use the Maven packages defined in the following dependency to include MX
<div class="julia">
<div class="cpu gpu">
</br>
+<div class="pkg">
+
+```
+]add MXNet#v1.5.0
+```
+
+Install the latest release:
+
+```
+]add MXNet
+```
+
+</div>
+<div class="build-from-source">
Refer to the <a href="ubuntu_setup.html#install-the-mxnet-package-for-julia">Julia section of the MXNet Ubuntu installation guide</a>.
+</div>
</div> <!-- End of cpu gpu -->
</div> <!-- End of julia -->
@@ -593,7 +623,7 @@ Refer to the <a href="ubuntu_setup.html#install-the-mxnet-package-for-julia">Jul
Refer to the <a href="ubuntu_setup.html#install-the-mxnet-package-for-perl">Perl section of the MXNet Ubuntu installation guide</a>.
</div> <!-- End of cpu gpu -->
-</div> <!-- End of julia -->
+</div> <!-- End of perl -->
@@ -884,8 +914,23 @@ Not available at this time. <br>
<div class="julia">
<div class="cpu gpu">
</br>
+<div class="pkg">
+
+```
+]add MXNet#v1.5.0
+```
+
+Install the latest release:
+
+```
+]add MXNet
+```
+
+</div>
+<div class="build-from-source">
Refer to the <a href="osx_setup.html#install-the-mxnet-package-for-julia">Julia section of the MXNet macOS installation guide</a>.
+</div>
</div> <!-- End of cpu gpu -->
</div> <!-- End of julia -->
@@ -1226,8 +1271,23 @@ MXNet-Java for Windows is not yet available.
<div class="julia">
<div class="cpu gpu">
</br>
+<div class="pkg">
+
+```
+]add MXNet#v1.5.0
+```
+
+Install the latest release:
+
+```
+]add MXNet
+```
+
+</div>
+<div class="build-from-source">
Refer to the <a href="windows_setup.html#install-the-mxnet-package-for-julia">Julia section of the MXNet Windows installation guide</a>.
+</div>
</div> <!-- End of cpu gpu -->
</div> <!-- End of julia -->
@@ -1237,7 +1297,7 @@ Refer to the <a href="windows_setup.html#install-the-mxnet-package-for-julia">Ju
Refer to the <a href="windows_setup.html#install-the-mxnet-package-for-perl">Perl section of the MXNet Windows installation guide</a>.
</div> <!-- End of cpu gpu -->
-</div> <!-- End of julia -->
+</div> <!-- End of perl -->
<div class="cpp">
<div class="cpu gpu">
diff --git a/julia/REQUIRE b/julia/REQUIRE
deleted file mode 100644
index 8008da3..0000000
--- a/julia/REQUIRE
+++ /dev/null
@@ -1,6 +0,0 @@
-julia 0.7
-Formatting
-BinDeps
-JSON
-MacroTools
-Reexport
diff --git a/julia/deps/build.jl b/julia/deps/build.jl
index badca65..a87343d 100644
--- a/julia/deps/build.jl
+++ b/julia/deps/build.jl
@@ -24,7 +24,7 @@ using LinearAlgebra
################################################################################
libmxnet_detected = false
libmxnet_curr_ver = get(ENV, "MXNET_COMMIT", "master")
-curr_win = "20180211" # v1.1.0
+curr_win = "20190608" # v1.5.0
if haskey(ENV, "MXNET_HOME")
MXNET_HOME = ENV["MXNET_HOME"]
@@ -119,21 +119,25 @@ if !libmxnet_detected
base_url = "https://github.com/yajiedesign/mxnet/releases/download/weekly_binary_build_v2/prebuildbase_win10_x64_vc14_v2.7z"
if libmxnet_curr_ver == "master"
+ _cmd = "{
+ [System.Net.ServicePointManager]::SecurityProtocol='tls12';
+ Invoke-WebRequest -Uri 'https://api.github.com/repos/yajiedesign/mxnet/releases/latest'
+ -OutFile 'mxnet.json'}"
# download_cmd uses powershell 2, but we need powershell 3 to do this
- run(`powershell -NoProfile -Command Invoke-WebRequest -Uri "https://api.github.com/repos/yajiedesign/mxnet/releases/latest" -OutFile "mxnet.json"`)
+ run(`powershell -NoProfile -Command $_cmd`)
curr_win = JSON.parsefile("mxnet.json")["tag_name"]
@info("Can't use MXNet master on Windows, using latest binaries from $curr_win.")
end
# TODO: Get url from JSON.
- name = "mxnet_x64_vc14_$(HAS_CUDA ? "gpu" : "cpu").7z"
+ # TODO: detect cuda version and select corresponding url.
+ name = "mxnet_x64_$(HAS_CUDA ? "vc141_gpu_cu101" : "vc14_cpu").7z"
package_url = "https://github.com/yajiedesign/mxnet/releases/download/$(curr_win)/$(curr_win)_$(name)"
- exe7z = joinpath(JULIA_HOME, "7z.exe")
+ exe7z = joinpath(Sys.BINDIR, "7z.exe")
run(download_cmd(package_url, "mxnet.7z"))
# this command will create the dir "usr\\lib"
- run(`$exe7z x mxnet.7z build lib -y -ousr`)
- run(`cmd /c copy "usr\\build\\*.dll" "usr\\lib"`)
+ run(`$exe7z e mxnet.7z *\\build\\* *\\lib\\* -y -ousr\\lib`)
run(download_cmd(base_url, "mxnet_base.7z"))
run(`$exe7z x mxnet_base.7z -y -ousr`)
diff --git a/julia/docs/src/api/ndarray.md b/julia/docs/src/api/ndarray.md
index 8cc4948..64f59dc 100644
--- a/julia/docs/src/api/ndarray.md
+++ b/julia/docs/src/api/ndarray.md
@@ -70,5 +70,21 @@ In the following example `y` can be a `Real` value or another `NDArray`
```@autodocs
Modules = [MXNet.mx]
-Pages = ["ndarray.jl"]
+Pages = [
+ "ndarray.jl",
+ "ndarray/activation.jl",
+ "ndarray/arithmetic.jl",
+ "ndarray/array.jl",
+ "ndarray/autoimport.jl",
+ "ndarray/comparison.jl",
+ "ndarray/context.jl",
+ "ndarray/io.jl",
+ "ndarray/linalg.jl",
+ "ndarray/reduction.jl",
+ "ndarray/remap.jl",
+ "ndarray/show.jl",
+ "ndarray/statistic.jl",
+ "ndarray/trig.jl",
+ "ndarray/type.jl",
+]
```
diff --git a/julia/docs/src/api/symbolic-node.md b/julia/docs/src/api/symbolic-node.md
index b4b1c01..0efe460 100644
--- a/julia/docs/src/api/symbolic-node.md
+++ b/julia/docs/src/api/symbolic-node.md
@@ -19,5 +19,14 @@
```@autodocs
Modules = [MXNet.mx]
-Pages = ["symbolic-node.jl"]
+Pages = [
+ "symbolic-node.jl",
+ "symbolic-node/arithmetic.jl",
+ "symbolic-node/array.jl",
+ "symbolic-node/autodiff.jl",
+ "symbolic-node/io.jl",
+ "symbolic-node/op.jl",
+ "symbolic-node/show.jl",
+ "symbolic-node/type.jl",
+]
```
diff --git a/julia/src/executor.jl b/julia/src/executor.jl
index e565617..37f2dde 100644
--- a/julia/src/executor.jl
+++ b/julia/src/executor.jl
@@ -176,7 +176,7 @@ end
function forward(self::Executor; is_train::Bool = false, kwargs...)
for (k,v) in kwargs
- @assert(k ∈ self.arg_dict, "Unknown argument $k")
+ @assert(k ∈ keys(self.arg_dict), "Unknown argument $k")
@assert(isa(v, NDArray), "Keyword argument $k must be an NDArray")
copy!(self.arg_dict[k], v)
end
diff --git a/julia/test/unittest/bind.jl b/julia/test/unittest/bind.jl
index 0ae0ab4..a221733 100644
--- a/julia/test/unittest/bind.jl
+++ b/julia/test/unittest/bind.jl
@@ -84,11 +84,26 @@ function test_arithmetic()
end
end
+function test_forward()
+ # forward with data keyword argument
+ x = @var x
+ y = x .+ 42
+
+ A = 1:5
+ B = A .+ 42
+
+ e = bind(y, args = Dict(:x => NDArray(24:28)))
+ z = forward(e, x = NDArray(A))[1]
+
+ @test copy(z) == collect(B)
+end
+
################################################################################
# Run tests
################################################################################
@testset "Bind Test" begin
test_arithmetic()
+ test_forward()
end
end