diff --git a/docs/api/clojure/index.md b/docs/api/clojure/index.md index 3eeffff0a4e6..32abbe06ad79 100644 --- a/docs/api/clojure/index.md +++ b/docs/api/clojure/index.md @@ -1,9 +1,20 @@ # MXNet - Clojure API + MXNet supports the Clojure programming language. The MXNet Clojure package brings flexible and efficient GPU computing and state-of-art deep learning to Clojure. It enables you to write seamless tensor/matrix computation with multiple GPUs in Clojure. It also lets you construct and customize the state-of-art deep learning models in Clojure, and apply them to tasks, such as image classification and data science challenges. See the [MXNet Clojure API Documentation](docs/index.html) for detailed API information. +```eval_rst +.. toctree:: + :maxdepth: 1 + + kvstore.md + module.md + ndarray.md + symbol_in_pictures.md + symbol.md +``` ## Tensor and Matrix Computations You can perform tensor or matrix computation in pure Clojure: diff --git a/docs/api/index.md b/docs/api/index.md new file mode 100644 index 000000000000..eff6807678ea --- /dev/null +++ b/docs/api/index.md @@ -0,0 +1,14 @@ +# MXNet APIs + +```eval_rst +.. toctree:: + :maxdepth: 1 + + c++/index.md + clojure/index.md + julia/index.md + perl/index.md + python/index.md + r/index.md + scala/index.md +``` diff --git a/docs/api/python/index.md b/docs/api/python/index.md index 420f4c9b72f6..42c4af9e46b5 100644 --- a/docs/api/python/index.md +++ b/docs/api/python/index.md @@ -17,58 +17,41 @@ Code examples are placed throughout the API documentation and these can be run a ```eval_rst .. note:: A convenient way to execute code examples is using the ``%doctest_mode`` mode of - Jupyter notebook, which allows for pasting multi-line examples containing - ``>>>`` while preserving indentation. Run ``%doctest_mode?`` in Jupyter notebook - for more details. + Jupyter notebook, which allows for pasting multi-line examples containing + ``>>>`` while preserving indentation. Run ``%doctest_mode?`` in Jupyter notebook + for more details. ``` \* Some old references to Model API may exist, but this API has been deprecated. -## NDArray API - -```eval_rst -.. toctree:: - :maxdepth: 1 - - ndarray/ndarray.md - ndarray/random.md - ndarray/linalg.md - ndarray/sparse.md - ndarray/contrib.md -``` - -## Symbol API +## Autograd API ```eval_rst .. toctree:: :maxdepth: 1 - symbol/symbol.md - symbol/random.md - symbol/linalg.md - symbol/sparse.md - symbol/contrib.md - symbol/rnn.md + autograd/autograd.md ``` -## Module API +## Callback API ```eval_rst .. toctree:: :maxdepth: 1 - module/module.md - executor/executor.md + callback/callback.md ``` -## Autograd API +## Contrib Package ```eval_rst .. toctree:: :maxdepth: 1 - autograd/autograd.md + contrib/contrib.md + contrib/text.md + contrib/onnx.md ``` ## Gluon API @@ -86,6 +69,15 @@ Code examples are placed throughout the API documentation and these can be run a gluon/contrib.md ``` +## Image API + +```eval_rst +.. toctree:: + :maxdepth: 1 + + image/image.md +``` + ## IO API ```eval_rst @@ -95,40 +87,54 @@ Code examples are placed throughout the API documentation and these can be run a io/io.md ``` -## Image API +## KV Store API ```eval_rst .. toctree:: :maxdepth: 1 - image/image.md + kvstore/kvstore.md ``` -## Optimization API +## Metric API ```eval_rst .. toctree:: :maxdepth: 1 - optimization/optimization.md + metric/metric.md ``` -## Callback API +## Module API ```eval_rst .. toctree:: :maxdepth: 1 - callback/callback.md + module/module.md + executor/executor.md ``` -## Metric API +## NDArray API ```eval_rst .. toctree:: :maxdepth: 1 - metric/metric.md + ndarray/ndarray.md + ndarray/random.md + ndarray/linalg.md + ndarray/sparse.md + ndarray/contrib.md +``` + +## Optimization API + +```eval_rst +.. toctree:: + :maxdepth: 1 + + optimization/optimization.md ``` ## Profiler API @@ -144,18 +150,30 @@ Code examples are placed throughout the API documentation and these can be run a ```eval_rst .. toctree:: - :maxdepth 1 + :maxdepth: 1 rtc/rtc.md ``` -## Contrib Package +## Symbol API ```eval_rst .. toctree:: :maxdepth: 1 - contrib/contrib.md - contrib/text.md - contrib/onnx.md + symbol/symbol.md + symbol/random.md + symbol/linalg.md + symbol/sparse.md + symbol/contrib.md + symbol/rnn.md +``` + +## Symbol in Pictures API + +```eval_rst +.. toctree:: + :maxdepth: 1 + + symbol_in_pictures/symbol_in_pictures.md ``` diff --git a/docs/api/scala/index.md b/docs/api/scala/index.md index e96892b58003..8b32c9fe9e22 100644 --- a/docs/api/scala/index.md +++ b/docs/api/scala/index.md @@ -1,9 +1,23 @@ # MXNet - Scala API + MXNet supports the Scala programming language. The MXNet Scala package brings flexible and efficient GPU computing and state-of-art deep learning to Scala. It enables you to write seamless tensor/matrix computation with multiple GPUs in Scala. It also lets you construct and customize the state-of-art deep learning models in Scala, and apply them to tasks, such as image classification and data science challenges. See the [MXNet Scala API Documentation](docs/index.html#org.apache.mxnet.package) for detailed API information. +```eval_rst +.. toctree:: + :maxdepth: 1 + + infer.md + io.md + kvstore.md + model.md + module.md + ndarray.md + symbol_in_pictures.md + symbol.md +``` ## Image Classification with the Scala Infer API The Infer API can be used for single and batch image classification. More information can be found at the following locations: diff --git a/docs/architecture/index.md b/docs/architecture/index.md index 91fb5f51d7b2..189e76e62fa5 100644 --- a/docs/architecture/index.md +++ b/docs/architecture/index.md @@ -15,9 +15,15 @@ Mainly, they focus on the following 3 areas: abstraction, optimization, and trade-offs between efficiency and flexibility. Additionally, we provide an overview of the complete MXNet system. -* [MXNet System Overview](http://mxnet.io/architecture/overview.html) -* [Deep Learning Programming Style: Symbolic vs Imperative](http://mxnet.io/architecture/program_model.html) -* [Dependency Engine for Deep Learning](http://mxnet.io/architecture/note_engine.html) -* [Optimizing the Memory Consumption in Deep Learning](http://mxnet.io/architecture/note_memory.html) -* [Efficient Data Loading Module for Deep Learning](http://mxnet.io/architecture/note_data_loading.html) -* [Exception Handling in MXNet](http://mxnet.io/architecture/exception_handling.html) +```eval_rst +.. toctree:: + :maxdepth: 1 + + overview.md + program_model.md + note_engine.md + note_memory.md + note_data_loading.md + exception_handling.md + rnn_interface.md +``` diff --git a/docs/architecture/release_note_0_9.md b/docs/architecture/release_note_0_9.md deleted file mode 100644 index afcc091d7ccb..000000000000 --- a/docs/architecture/release_note_0_9.md +++ /dev/null @@ -1,49 +0,0 @@ -# MXNet 0.9 (NNVM) Release Note - -Version 0.9 brings a number of important features and changes, including a back-end refactor to adopt the [NNVM](https://github.com/dmlc/nnvm) framework, a profiler for analyzing performance, a fast image IO and augmentation module that bypasses GIL, and various other changes. - -## NNVM Refactor - -NNVM is a library for neural network graph construction, optimization, and operator registration. It serves as an intermediary layer between the front-end (MXNet user API) and the back-end (computation on the device). After version 0.9, MXNet fully adopts the NNVM framework. Now it's easier to create operators. You can also register "pass"es that process and optimizes the graph when `bind` is called on the symbol. For more discussion on how to create operators with NNVM, please refer to [How to Create New Operators](../faq/new_op.md) - -Other changes brought by NNVM include: -- Backward shape inference is now supported -- All operators can now be used with both symbolic and ndarray API. For example, `mx.nd.Activation(x, act_type='relu')` works now. -- Optional cython API for mx.symbol and mx.ndarray is now available. Use `make cython` to activate it for accelerated communication with the back-end. - -## Profiler - - - -MXNet now provides a native profiler for analyzing the performance of operators. This feature compliments general profiling tools like nvprof and gprof by summarizing at the operator level, instead of function, kernel, or instruction level. - -To use this feature, first set `USE_PROFILER = 1` in `config.mk` and rebuild mxnet. Then add three lines at the beginning and end of the section of your program you want to profile: -```python -mx.profiler.profiler_set_config(mode=scope, filename=fname) -profiler.profiler_set_state('run') - -# do computation ... - -profiler.profiler_set_state('stop') -``` -`scope` can be 'symbolic' (to only include symbolic operations) or 'all' (to include all operations), and `fname` is the path to save profiler output. - -After program finishes, navigate to [chrome://tracing](chrome://tracing) in a Chrome browser and load profiler output to see the results. - -## Image IO - -MXNet already has `mx.io.ImageRecordIter` for loading and preprocessing images. However, some tasks need more flexible image processing API. Detection, for example, requires transforming labels together with images. Usually, people write custom data iterators in python to handle this. But due to the infamous Global Interpreter Lock (GIL), python scripts cannot use multithreading to speed up processing. - -`mx.image` provides a set of fast image processing API that leverage MXNet Engine to automatically parallelize processing. You can write -```python -imgs = [mx.image.imdecode(open(f).read()) for f in img_paths] -``` -and decoding will be automatically run in parallel. - -## Miscellaneous - -- sgd and adam optimizer are now implemented with a single imperative call. They should be as fast and memory efficient as cc optimizers. ccsgd is now deprecated and redirects to sgd. -- Layout support is added. Use `mx.io.DataDesc(..., layout='NHWC')` in provide_data to specify data layout. use `mx.sym.YourSymbol(..., __layout__='NHWC')` to specify output layout. `layout` option is now available for Convolution layer. -- element_mask is removed. Please use src*mask.reshape((mask.size, 1, 1, ..., 1)) directly as binary ops now support broadcasting. -- sum_axis, max_axis, and min_axis are deprecated. Please use mx.nd.max(src, axis=n) instead. -- symbol attributes are now limited to ctx_group, lr_mult, wd_mult, force_mirroring. All other custom attributes need to be in __xxx__ format (start and end with double underscore) or an error will be triggered during attribute parsing. diff --git a/docs/community/index.md b/docs/community/index.md new file mode 100644 index 000000000000..7bdb1c213503 --- /dev/null +++ b/docs/community/index.md @@ -0,0 +1,11 @@ +# MXNet Community + +```eval_rst +.. toctree:: + :maxdepth: 1 + + contribute.md + ecosystem.md + powered_by.md + mxnet_channels.md +``` diff --git a/docs/faq/index.md b/docs/faq/index.md index 07dd9b9d7ca3..1b4a95d3f331 100644 --- a/docs/faq/index.md +++ b/docs/faq/index.md @@ -1,5 +1,13 @@ # MXNet FAQ +```eval_rst +.. toctree:: + :hidden: + :glob: + + * +``` + This section addresses common questions about how to use _MXNet_. These include performance issues, e.g., how to train with multiple GPUs. They also include workflow questions, e.g., how to visualize a neural network computation graph. These answers are fairly focused. For more didactic, self-contained introductions to neural networks diff --git a/docs/get_started/index.md b/docs/get_started/index.md deleted file mode 100644 index a743930b33dd..000000000000 --- a/docs/get_started/index.md +++ /dev/null @@ -1,8 +0,0 @@ - - -
- - -