Skip to content

Commit

Permalink
Merge branch 'master' into stable
Browse files Browse the repository at this point in the history
close #325
  • Loading branch information
iblislin committed Nov 16, 2017
2 parents 643b8d4 + b56c44e commit 1fdcb31
Show file tree
Hide file tree
Showing 55 changed files with 2,650 additions and 737 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
NEWS.md merge=union
23 changes: 17 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,15 @@ os:
- osx
osx_image: xcode8
julia:
- 0.5
- 0.6
# - nightly 0.6 supports depends on #170

branches:
only:
- master
- stable
- /^v\d+\.\d+(\.\d+)?(-\S*)?$/ # for tagging

# dependent apt packages
addons:
apt:
Expand All @@ -27,18 +33,23 @@ addons:
- g++-4.8

before_install:
- export TRAVIS=test/travis
- source $TRAVIS/setup_env.sh
- export TRAVIS_DIR=test/travis
- source ${TRAVIS_DIR}/setup_env.sh

notifications:
email: false

script:
- source $TRAVIS/run_test.sh
# bump the time limit of no ouput
# the `travis_wait` wrapper can be removed once this issue fixed:
# https://github.com/JuliaLang/julia/pull/23601
- ${TRAVIS_DIR}/run_test.sh

after_success:
- source $TRAVIS/run_coverage.sh
# See https://github.com/dmlc/MXNet.jl/pull/303#issuecomment-341171774
- julia -e 'using MXNet; mx._sig_checker()'

- source ${TRAVIS_DIR}/run_coverage.sh
- echo $TRAVIS_JULIA_VERSION
- julia -e 'Pkg.add("Documenter")'
- julia -e 'cd(Pkg.dir("MXNet")); include(joinpath("docs", "make.jl"))'

157 changes: 157 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,160 @@
# v0.3.0 (2017.11.16)

* Update `libmxnet` to
* On Windows: v0.12.0.
(See https://github.com/apache/incubator-mxnet/releases/tag/0.12.0)

* On Linux/macOS: v0.12.1.
(See https://github.com/apache/incubator-mxnet/releases/tag/0.12.1)

* Drop 0.5 support. ([#300][300])

## New API

### `SymbolicNode`

* Debugging print support. ([#276][276])

### `NDArray`

* `deepcopy` for `NDArray` ([#273][273])

* `scalar ./ NDArray` is available now. ([#292][292])

* `fill` and `fill!` for `NDArray`. ([#297][297], [#311][311])

An API correspond to Python's `mx.nd.full()`

* `fill(x, dims, ctx=cpu())`
* `fill(x, dims...)`
* `fill!(arr::NDArray, x)`

* Matrix (2D `NDArray`) multiplication is available now. ([#300][300])

```julia
julia> x
1x2 mx.NDArray{Float64} @ CPU0:
1.0 2.0

julia> x' * x
2x2 mx.NDArray{Float64} @ CPU0:
1.0 2.0
2.0 4.0
```

* `NDArray` `getindex`/`setindex!` linear indexing support and `first` for
extracting scalar value. ([#294][294])

```julia
julia> x = mx.zeros(2, 5)
julia> x[5] = 42 # do synchronization and set the value
```

```julia
julia> y = x[5] # actually, getindex won't do synchronization, but REPL's showing did it for you
1 mx.NDArray{Float32} @ CPU0:
42.0
julia> first(y) # do sync and get the value
42.0f0
julia> y[] # this is available, also
42.0f0
```
* Elementwise power of `NDArray`. ([#293][293])

* `x.^2`
* `2.^x`
* `x.^y`
* where `x` and `y` are `NDArray`s.

* Elementwise power of irrational and `NDArray`. ([#310][310])

* `e.^x`
* `x.^e`
* `π.^x`

## API Changes

### `SymbolicNode`

* `reshape` of `SymbolicNode` shares the same interface with Base
and additional keyword argument. ([#279][279])

* `reshape(SymbolicNode, dim; reverse=false, name)`
* `reshape(SymbolicNode, dim...; reverse=false, name)`
* `Reshape` is deprecated.

* `mx.forward(x)` will return `x.outputs` now. ([#312][312])

### `NDArray`

* `reshape` of `NDArray` shares the same interface with Base. ([#272][272])

* `reshape(NDArray, dim; reverse=false)`
* `reshape(NDArray, dim...; reverse=false)`
* `Reshape` is deprecated.

* `srand!` deprecated, please use `srand`. ([#282][282])

* `mean` and `sum` of `NDArray` share the same interface with Base
and fix the `axis` indexing. ([#303][303])

* This is a breaking change; no deprecated warning.
* Before: `mean(arr, axis=0)`
* After: `mean(arr, 1)`

* `max` and `min` of `NDArray` renamed to `maximum` and `minimum` and share the
same interface with Base. The `axis` indexing is fixed, also. ([#303][303])

* This is a breaking change; no deprecated warning.
* Before: `mx.max(arr, axis=0)` or `mx.max_axis(arr, axis=0)`
* After: `maximum(arr, 1)`

* `mx.transpose` for high dimension `NDArray` has been renamed to `permutedims`
and shares the same interface with Base. ([#303][303])

* This is a breaking changes; no deprecated warning.
* Before: `mx.transpose(A, axis=[2, 1, 3])`
* After: `permutedims(A, [2, 1, 3])`

* `prod` of `NDArray` shares the same interface with Base and fix the `axis`
indexing. ([#303][303])

* This is a breaking change; no deprecated warning.
* Before: `prod(arr, axis=-1)`
* After: `prod(arr, 1)`

## Bugfix

* Broadcasting operation on same variable is back. ([#300][300], [#314][314])
```julia
x = mx.NDArray(...)
x .* x
```

```julia
y = mx.Variable(:y)
y .* y
```

[272]: https://github.com/dmlc/MXNet.jl/pull/272
[273]: https://github.com/dmlc/MXNet.jl/pull/273
[276]: https://github.com/dmlc/MXNet.jl/pull/276
[279]: https://github.com/dmlc/MXNet.jl/pull/279
[282]: https://github.com/dmlc/MXNet.jl/pull/282
[292]: https://github.com/dmlc/MXNet.jl/pull/292
[293]: https://github.com/dmlc/MXNet.jl/pull/293
[294]: https://github.com/dmlc/MXNet.jl/pull/294
[297]: https://github.com/dmlc/MXNet.jl/pull/297
[300]: https://github.com/dmlc/MXNet.jl/pull/300
[303]: https://github.com/dmlc/MXNet.jl/pull/303
[310]: https://github.com/dmlc/MXNet.jl/pull/310
[311]: https://github.com/dmlc/MXNet.jl/pull/311
[312]: https://github.com/dmlc/MXNet.jl/pull/312
[314]: https://github.com/dmlc/MXNet.jl/pull/314

# v0.2.2 (2017.05.14)
* Updated supported version of MXNet to 0.9.4.
* Improved build-system with support for auto-detecting GPU support.
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
[![Windows Build](https://ci.appveyor.com/api/projects/status/re90njols2th2ide?svg=true)](https://ci.appveyor.com/project/pluskid/mxnet-jl)
[![codecov.io](https://codecov.io/github/dmlc/MXNet.jl/coverage.svg?branch=master)](https://codecov.io/github/dmlc/MXNet.jl?branch=master)
[![](https://img.shields.io/badge/docs-latest-blue.svg)](https://dmlc.github.io/MXNet.jl/latest)
[![MXNet](http://pkg.julialang.org/badges/MXNet_0.4.svg)](http://pkg.julialang.org/?pkg=MXNet)
[![](https://img.shields.io/badge/docs-stable-blue.svg)](https://dmlc.github.io/MXNet.jl/stable)
[![MXNet](http://pkg.julialang.org/badges/MXNet_0.6.svg)](http://pkg.julialang.org/?pkg=MXNet)
[![License](http://dmlc.github.io/img/apache2.svg)](LICENSE.md)
[![Join the chat at https://gitter.im/dmlc/mxnet](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dmlc/mxnet?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Join the chat at https://gitter.im/dmlc/mxnet](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dmlc/mxnet)


MXNet.jl is the [dmlc/mxnet](https://github.com/dmlc/mxnet) [Julia](http://julialang.org/) package. MXNet.jl brings flexible and efficient GPU computing and state-of-art deep learning to Julia. Some highlight of its features include:
Expand Down
5 changes: 3 additions & 2 deletions REQUIRE
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
julia 0.5
Compat 0.9.5
julia 0.6
Formatting
BinDeps
JSON
MacroTools
TakingBroadcastSeriously
4 changes: 3 additions & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
environment:
matrix:
- JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.5/julia-0.5-latest-win64.exe"
- JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.6/julia-0.6-latest-win64.exe"

branches:
only:
Expand All @@ -20,6 +20,7 @@ install:
https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
throw "There are newer queued builds for this pull request, failing early." }

# Download most recent Julia Windows binary
- ps: (new-object net.webclient).DownloadFile(
$env:JULIA_URL,
Expand All @@ -35,3 +36,4 @@ build_script:

test_script:
- C:\projects\julia\bin\julia --check-bounds=yes -e "Pkg.test(\"MXNet\")"

Loading

0 comments on commit 1fdcb31

Please sign in to comment.