You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by ch...@apache.org on 2020/11/20 11:17:57 UTC

[singa-site] branch master updated: Add ver 3.1.0 Chinese Documentation

This is an automated email from the ASF dual-hosted git repository.

chrishkchris pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/singa-site.git


The following commit(s) were added to refs/heads/master by this push:
     new 4e975ee  Add ver 3.1.0 Chinese Documentation
     new 7b7c8a7  Merge pull request #7 from chrishkchris/chinese
4e975ee is described below

commit 4e975ee4ecbb7d724494d8ea4c08f0e37f9da92d
Author: Chris Yeung <ch...@yahoo.com.hk>
AuthorDate: Fri Nov 20 19:14:40 2020 +0800

    Add ver 3.1.0 Chinese Documentation
---
 content/docs/2.0.0/dist-train.html                 | 320 +++++++++++++++++++
 content/docs/2.0.0/dist-train/index.html           | 320 +++++++++++++++++++
 content/docs/2.0.0/examples.html                   | 109 +++++++
 content/docs/2.0.0/examples/index.html             | 109 +++++++
 content/docs/2.0.0/git-workflow.html               |  90 ++++++
 content/docs/2.0.0/git-workflow/index.html         |  90 ++++++
 content/docs/{ => 2.0.0}/graph.html                | 259 ++++-----------
 content/docs/{ => 2.0.0}/graph/index.html          | 259 ++++-----------
 content/docs/{ => 2.0.0}/time-profiling.html       |  88 +-----
 content/docs/{ => 2.0.0}/time-profiling/index.html |  88 +-----
 content/docs/2.0.0/wheel-cpu-dev.html              |  39 +++
 content/docs/2.0.0/wheel-cpu-dev/index.html        |  39 +++
 content/docs/{ => 2.0.0}/wheel-cpu.html            |   6 +-
 content/docs/{ => 2.0.0}/wheel-cpu/index.html      |   6 +-
 content/docs/2.0.0/wheel-gpu-dev.html              |  39 +++
 content/docs/2.0.0/wheel-gpu-dev/index.html        |  39 +++
 content/docs/{ => 2.0.0}/wheel-gpu.html            |   6 +-
 content/docs/{ => 2.0.0}/wheel-gpu/index.html      |   6 +-
 content/docs/3.0.0.rc1/autograd.html               |   2 +-
 content/docs/3.0.0.rc1/autograd/index.html         |   2 +-
 content/docs/3.0.0.rc1/benchmark-train.html        |   2 +-
 content/docs/3.0.0.rc1/benchmark-train/index.html  |   2 +-
 content/docs/3.0.0.rc1/build.html                  |   2 +-
 content/docs/3.0.0.rc1/build/index.html            |   2 +-
 content/docs/3.0.0.rc1/contribute-code.html        |   2 +-
 content/docs/3.0.0.rc1/contribute-code/index.html  |   2 +-
 content/docs/3.0.0.rc1/contribute-docs.html        |   2 +-
 content/docs/3.0.0.rc1/contribute-docs/index.html  |   2 +-
 content/docs/3.0.0.rc1/device.html                 |   2 +-
 content/docs/3.0.0.rc1/device/index.html           |   2 +-
 content/docs/3.0.0.rc1/dist-train.html             |   2 +-
 content/docs/3.0.0.rc1/dist-train/index.html       |   2 +-
 content/docs/3.0.0.rc1/download-singa.html         |   2 +-
 content/docs/3.0.0.rc1/download-singa/index.html   |   2 +-
 content/docs/3.0.0.rc1/examples.html               |   2 +-
 content/docs/3.0.0.rc1/examples/index.html         |   2 +-
 content/docs/3.0.0.rc1/git-workflow.html           |   2 +-
 content/docs/3.0.0.rc1/git-workflow/index.html     |   2 +-
 content/docs/3.0.0.rc1/graph.html                  |   2 +-
 content/docs/3.0.0.rc1/graph/index.html            |   2 +-
 content/docs/3.0.0.rc1/history-singa.html          |   2 +-
 content/docs/3.0.0.rc1/history-singa/index.html    |   2 +-
 content/docs/3.0.0.rc1/how-to-release.html         |   2 +-
 content/docs/3.0.0.rc1/how-to-release/index.html   |   2 +-
 content/docs/3.0.0.rc1/install-win.html            |   2 +-
 content/docs/3.0.0.rc1/install-win/index.html      |   2 +-
 content/docs/3.0.0.rc1/installation.html           |   2 +-
 content/docs/3.0.0.rc1/installation/index.html     |   2 +-
 content/docs/3.0.0.rc1/issue-tracking.html         |   2 +-
 content/docs/3.0.0.rc1/issue-tracking/index.html   |   2 +-
 content/docs/3.0.0.rc1/mail-lists.html             |   2 +-
 content/docs/3.0.0.rc1/mail-lists/index.html       |   2 +-
 content/docs/3.0.0.rc1/onnx.html                   |   2 +-
 content/docs/3.0.0.rc1/onnx/index.html             |   2 +-
 .../3.0.0.rc1/releases/RELEASE_NOTES_0.1.0.html    |   2 +-
 .../releases/RELEASE_NOTES_0.1.0/index.html        |   2 +-
 .../3.0.0.rc1/releases/RELEASE_NOTES_0.2.0.html    |   2 +-
 .../releases/RELEASE_NOTES_0.2.0/index.html        |   2 +-
 .../3.0.0.rc1/releases/RELEASE_NOTES_0.3.0.html    |   2 +-
 .../releases/RELEASE_NOTES_0.3.0/index.html        |   2 +-
 .../3.0.0.rc1/releases/RELEASE_NOTES_1.0.0.html    |   2 +-
 .../releases/RELEASE_NOTES_1.0.0/index.html        |   2 +-
 .../3.0.0.rc1/releases/RELEASE_NOTES_1.1.0.html    |   2 +-
 .../releases/RELEASE_NOTES_1.1.0/index.html        |   2 +-
 .../3.0.0.rc1/releases/RELEASE_NOTES_1.2.0.html    |   2 +-
 .../releases/RELEASE_NOTES_1.2.0/index.html        |   2 +-
 .../3.0.0.rc1/releases/RELEASE_NOTES_2.0.0.html    |   2 +-
 .../releases/RELEASE_NOTES_2.0.0/index.html        |   2 +-
 .../releases/RELEASE_NOTES_3.0.0.rc1.html          |   2 +-
 .../releases/RELEASE_NOTES_3.0.0.rc1/index.html    |   2 +-
 content/docs/3.0.0.rc1/security.html               |   2 +-
 content/docs/3.0.0.rc1/security/index.html         |   2 +-
 content/docs/3.0.0.rc1/software-stack.html         |   2 +-
 content/docs/3.0.0.rc1/software-stack/index.html   |   2 +-
 content/docs/3.0.0.rc1/source-repository.html      |   2 +-
 .../docs/3.0.0.rc1/source-repository/index.html    |   2 +-
 content/docs/3.0.0.rc1/team-list.html              |   2 +-
 content/docs/3.0.0.rc1/team-list/index.html        |   2 +-
 content/docs/3.0.0.rc1/tensor.html                 |   2 +-
 content/docs/3.0.0.rc1/tensor/index.html           |   2 +-
 content/docs/{ => 3.0.0.rc1}/time-profiling.html   |  88 +-----
 .../docs/{ => 3.0.0.rc1}/time-profiling/index.html |  88 +-----
 content/docs/3.0.0.rc1/wheel-cpu-dev.html          |  39 +++
 content/docs/3.0.0.rc1/wheel-cpu-dev/index.html    |  39 +++
 content/docs/{next => 3.0.0.rc1}/wheel-cpu.html    |   6 +-
 .../docs/{next => 3.0.0.rc1}/wheel-cpu/index.html  |   6 +-
 content/docs/3.0.0.rc1/wheel-gpu-dev.html          |  39 +++
 content/docs/3.0.0.rc1/wheel-gpu-dev/index.html    |  39 +++
 content/docs/{ => 3.0.0.rc1}/wheel-gpu.html        |   6 +-
 content/docs/{ => 3.0.0.rc1}/wheel-gpu/index.html  |   6 +-
 content/docs/3.0.0/autograd.html                   |   2 +-
 content/docs/3.0.0/autograd/index.html             |   2 +-
 content/docs/3.0.0/benchmark-train.html            |   2 +-
 content/docs/3.0.0/benchmark-train/index.html      |   2 +-
 content/docs/3.0.0/build.html                      |   2 +-
 content/docs/3.0.0/build/index.html                |   2 +-
 content/docs/3.0.0/contribute-code.html            |   2 +-
 content/docs/3.0.0/contribute-code/index.html      |   2 +-
 content/docs/3.0.0/contribute-docs.html            |   2 +-
 content/docs/3.0.0/contribute-docs/index.html      |   2 +-
 content/docs/3.0.0/device.html                     |   2 +-
 content/docs/3.0.0/device/index.html               |   2 +-
 content/docs/3.0.0/dist-train.html                 |   2 +-
 content/docs/3.0.0/dist-train/index.html           |   2 +-
 content/docs/3.0.0/download-singa.html             |   2 +-
 content/docs/3.0.0/download-singa/index.html       |   2 +-
 content/docs/3.0.0/examples.html                   |   2 +-
 content/docs/3.0.0/examples/index.html             |   2 +-
 content/docs/3.0.0/git-workflow.html               |   2 +-
 content/docs/3.0.0/git-workflow/index.html         |   2 +-
 content/docs/3.0.0/graph.html                      |   2 +-
 content/docs/3.0.0/graph/index.html                |   2 +-
 content/docs/3.0.0/history-singa.html              |   2 +-
 content/docs/3.0.0/history-singa/index.html        |   2 +-
 content/docs/3.0.0/how-to-release.html             |   2 +-
 content/docs/3.0.0/how-to-release/index.html       |   2 +-
 content/docs/3.0.0/install-win.html                |   2 +-
 content/docs/3.0.0/install-win/index.html          |   2 +-
 content/docs/3.0.0/installation.html               |   2 +-
 content/docs/3.0.0/installation/index.html         |   2 +-
 content/docs/3.0.0/issue-tracking.html             |   2 +-
 content/docs/3.0.0/issue-tracking/index.html       |   2 +-
 content/docs/3.0.0/mail-lists.html                 |   2 +-
 content/docs/3.0.0/mail-lists/index.html           |   2 +-
 content/docs/3.0.0/onnx.html                       |   2 +-
 content/docs/3.0.0/onnx/index.html                 |   2 +-
 .../docs/3.0.0/releases/RELEASE_NOTES_0.1.0.html   |   2 +-
 .../3.0.0/releases/RELEASE_NOTES_0.1.0/index.html  |   2 +-
 .../docs/3.0.0/releases/RELEASE_NOTES_0.2.0.html   |   2 +-
 .../3.0.0/releases/RELEASE_NOTES_0.2.0/index.html  |   2 +-
 .../docs/3.0.0/releases/RELEASE_NOTES_0.3.0.html   |   2 +-
 .../3.0.0/releases/RELEASE_NOTES_0.3.0/index.html  |   2 +-
 .../docs/3.0.0/releases/RELEASE_NOTES_1.0.0.html   |   2 +-
 .../3.0.0/releases/RELEASE_NOTES_1.0.0/index.html  |   2 +-
 .../docs/3.0.0/releases/RELEASE_NOTES_1.1.0.html   |   2 +-
 .../3.0.0/releases/RELEASE_NOTES_1.1.0/index.html  |   2 +-
 .../docs/3.0.0/releases/RELEASE_NOTES_1.2.0.html   |   2 +-
 .../3.0.0/releases/RELEASE_NOTES_1.2.0/index.html  |   2 +-
 .../docs/3.0.0/releases/RELEASE_NOTES_2.0.0.html   |   2 +-
 .../3.0.0/releases/RELEASE_NOTES_2.0.0/index.html  |   2 +-
 .../docs/3.0.0/releases/RELEASE_NOTES_3.0.0.html   |   2 +-
 .../3.0.0/releases/RELEASE_NOTES_3.0.0.rc1.html    |   2 +-
 .../releases/RELEASE_NOTES_3.0.0.rc1/index.html    |   2 +-
 .../3.0.0/releases/RELEASE_NOTES_3.0.0/index.html  |   2 +-
 content/docs/3.0.0/security.html                   |   2 +-
 content/docs/3.0.0/security/index.html             |   2 +-
 content/docs/3.0.0/software-stack.html             |   2 +-
 content/docs/3.0.0/software-stack/index.html       |   2 +-
 content/docs/3.0.0/source-repository.html          |   2 +-
 content/docs/3.0.0/source-repository/index.html    |   2 +-
 content/docs/3.0.0/team-list.html                  |   2 +-
 content/docs/3.0.0/team-list/index.html            |   2 +-
 content/docs/3.0.0/tensor.html                     |   2 +-
 content/docs/3.0.0/tensor/index.html               |   2 +-
 content/docs/{ => 3.0.0}/time-profiling.html       |  88 +-----
 content/docs/{ => 3.0.0}/time-profiling/index.html |  88 +-----
 content/docs/3.0.0/wheel-cpu-dev.html              |  39 +++
 content/docs/3.0.0/wheel-cpu-dev/index.html        |  39 +++
 content/docs/{ => 3.0.0}/wheel-cpu.html            |   6 +-
 content/docs/{ => 3.0.0}/wheel-cpu/index.html      |   6 +-
 content/docs/3.0.0/wheel-gpu-dev.html              |  39 +++
 content/docs/3.0.0/wheel-gpu-dev/index.html        |  39 +++
 content/docs/{ => 3.0.0}/wheel-gpu.html            |   6 +-
 content/docs/{ => 3.0.0}/wheel-gpu/index.html      |   6 +-
 content/docs/{ => 3.1.0_Chinese}/autograd.html     | 124 +++-----
 .../docs/{ => 3.1.0_Chinese}/autograd/index.html   | 124 +++-----
 content/docs/3.1.0_Chinese/benchmark-train.html    |  37 +++
 .../docs/3.1.0_Chinese/benchmark-train/index.html  |  37 +++
 content/docs/3.1.0_Chinese/build.html              | 351 +++++++++++++++++++++
 content/docs/3.1.0_Chinese/build/index.html        | 351 +++++++++++++++++++++
 content/docs/3.1.0_Chinese/contribute-code.html    | 166 ++++++++++
 .../docs/3.1.0_Chinese/contribute-code/index.html  | 166 ++++++++++
 .../{next => 3.1.0_Chinese}/contribute-docs.html   |  79 ++---
 .../contribute-docs/index.html                     |  79 ++---
 .../docs/{3.0.0.rc1 => 3.1.0_Chinese}/device.html  |  26 +-
 .../{3.0.0.rc1 => 3.1.0_Chinese}/device/index.html |  26 +-
 content/docs/{ => 3.1.0_Chinese}/dist-train.html   | 204 ++++--------
 .../docs/{ => 3.1.0_Chinese}/dist-train/index.html | 204 ++++--------
 content/docs/3.1.0_Chinese/download-singa.html     | 252 +++++++++++++++
 .../docs/3.1.0_Chinese/download-singa/index.html   | 252 +++++++++++++++
 content/docs/3.1.0_Chinese/examples.html           | 165 ++++++++++
 content/docs/3.1.0_Chinese/examples/index.html     | 165 ++++++++++
 content/docs/3.1.0_Chinese/git-workflow.html       | 146 +++++++++
 content/docs/3.1.0_Chinese/git-workflow/index.html | 146 +++++++++
 content/docs/{ => 3.1.0_Chinese}/graph.html        | 203 ++++--------
 content/docs/{ => 3.1.0_Chinese}/graph/index.html  | 203 ++++--------
 content/docs/3.1.0_Chinese/history-singa.html      | 115 +++++++
 .../docs/3.1.0_Chinese/history-singa/index.html    | 115 +++++++
 content/docs/3.1.0_Chinese/how-to-release.html     | 241 ++++++++++++++
 .../docs/3.1.0_Chinese/how-to-release/index.html   | 241 ++++++++++++++
 content/docs/3.1.0_Chinese/install-win.html        | 330 +++++++++++++++++++
 content/docs/3.1.0_Chinese/install-win/index.html  | 330 +++++++++++++++++++
 content/docs/{ => 3.1.0_Chinese}/installation.html | 109 +++----
 .../{ => 3.1.0_Chinese}/installation/index.html    | 109 +++----
 content/docs/3.1.0_Chinese/issue-tracking.html     |  91 ++++++
 .../docs/3.1.0_Chinese/issue-tracking/index.html   |  91 ++++++
 .../{3.0.0.rc1 => 3.1.0_Chinese}/mail-lists.html   |   9 +-
 .../docs/{ => 3.1.0_Chinese}/mail-lists/index.html |   9 +-
 content/docs/{ => 3.1.0_Chinese}/onnx.html         | 249 +++++----------
 content/docs/{ => 3.1.0_Chinese}/onnx/index.html   | 249 +++++----------
 content/docs/{ => 3.1.0_Chinese}/optimizer.html    |  27 +-
 .../docs/{ => 3.1.0_Chinese}/optimizer/index.html  |  27 +-
 content/docs/3.1.0_Chinese/security.html           |  90 ++++++
 content/docs/3.1.0_Chinese/security/index.html     |  90 ++++++
 content/docs/3.1.0_Chinese/software-stack.html     | 138 ++++++++
 .../docs/3.1.0_Chinese/software-stack/index.html   | 138 ++++++++
 .../source-repository.html                         |  15 +-
 .../source-repository/index.html                   |  15 +-
 content/docs/{ => 3.1.0_Chinese}/team-list.html    |  13 +-
 .../docs/{ => 3.1.0_Chinese}/team-list/index.html  |  13 +-
 content/docs/{ => 3.1.0_Chinese}/tensor.html       | 134 +++-----
 content/docs/{ => 3.1.0_Chinese}/tensor/index.html | 134 +++-----
 .../{next => 3.1.0_Chinese}/time-profiling.html    |  32 +-
 .../time-profiling/index.html                      |  32 +-
 content/docs/3.1.0_Chinese/wheel-cpu-dev.html      |  95 ++++++
 .../docs/3.1.0_Chinese/wheel-cpu-dev/index.html    |  95 ++++++
 content/docs/3.1.0_Chinese/wheel-cpu.html          | 101 ++++++
 content/docs/3.1.0_Chinese/wheel-cpu/index.html    | 101 ++++++
 content/docs/3.1.0_Chinese/wheel-gpu-dev.html      |  95 ++++++
 .../docs/3.1.0_Chinese/wheel-gpu-dev/index.html    |  95 ++++++
 content/docs/3.1.0_Chinese/wheel-gpu.html          | 104 ++++++
 content/docs/3.1.0_Chinese/wheel-gpu/index.html    | 104 ++++++
 content/docs/autograd.html                         |   5 +-
 content/docs/autograd/index.html                   |   5 +-
 content/docs/benchmark-train.html                  |   2 +-
 content/docs/benchmark-train/index.html            |   2 +-
 content/docs/build.html                            |   2 +-
 content/docs/build/index.html                      |   2 +-
 content/docs/contribute-code.html                  |   2 +-
 content/docs/contribute-code/index.html            |   2 +-
 content/docs/contribute-docs.html                  |   2 +-
 content/docs/contribute-docs/index.html            |   2 +-
 content/docs/device.html                           |   2 +-
 content/docs/device/index.html                     |   2 +-
 content/docs/dist-train.html                       |   2 +-
 content/docs/dist-train/index.html                 |   2 +-
 content/docs/download-singa.html                   |  70 +---
 content/docs/download-singa/index.html             |  70 +---
 content/docs/examples.html                         |   2 +-
 content/docs/examples/index.html                   |   2 +-
 content/docs/git-workflow.html                     |   2 +-
 content/docs/git-workflow/index.html               |   2 +-
 content/docs/graph.html                            |   2 +-
 content/docs/graph/index.html                      |   2 +-
 content/docs/history-singa.html                    |   4 +-
 content/docs/history-singa/index.html              |   4 +-
 content/docs/how-to-release.html                   |   2 +-
 content/docs/how-to-release/index.html             |   2 +-
 content/docs/install-win.html                      |   2 +-
 content/docs/install-win/index.html                |   2 +-
 content/docs/installation.html                     |   2 +-
 content/docs/installation/index.html               |   2 +-
 content/docs/issue-tracking.html                   |   4 +-
 content/docs/issue-tracking/index.html             |   4 +-
 content/docs/mail-lists.html                       |   4 +-
 content/docs/mail-lists/index.html                 |   4 +-
 content/docs/next/autograd.html                    |   7 +-
 content/docs/next/autograd/index.html              |   7 +-
 content/docs/next/benchmark-train.html             |   2 +-
 content/docs/next/benchmark-train/index.html       |   2 +-
 content/docs/next/build.html                       |   4 +-
 content/docs/next/build/index.html                 |   4 +-
 content/docs/next/contribute-code.html             |   4 +-
 content/docs/next/contribute-code/index.html       |   4 +-
 content/docs/next/contribute-docs.html             |   4 +-
 content/docs/next/contribute-docs/index.html       |   4 +-
 content/docs/next/device.html                      |   4 +-
 content/docs/next/device/index.html                |   4 +-
 content/docs/next/dist-train.html                  |   4 +-
 content/docs/next/dist-train/index.html            |   4 +-
 content/docs/next/download-singa.html              |  72 +----
 content/docs/next/download-singa/index.html        |  72 +----
 content/docs/next/examples.html                    |   4 +-
 content/docs/next/examples/index.html              |   4 +-
 content/docs/next/git-workflow.html                |   4 +-
 content/docs/next/git-workflow/index.html          |   4 +-
 content/docs/next/graph.html                       |   4 +-
 content/docs/next/graph/index.html                 |   4 +-
 content/docs/next/half-precision.html              | 172 ++++++++++
 content/docs/next/half-precision/index.html        | 172 ++++++++++
 content/docs/next/history-singa.html               |   2 +-
 content/docs/next/history-singa/index.html         |   2 +-
 content/docs/next/how-to-release.html              |   4 +-
 content/docs/next/how-to-release/index.html        |   4 +-
 content/docs/next/install-win.html                 |   2 +-
 content/docs/next/install-win/index.html           |   2 +-
 content/docs/next/installation.html                |   4 +-
 content/docs/next/installation/index.html          |   4 +-
 content/docs/next/issue-tracking.html              |   2 +-
 content/docs/next/issue-tracking/index.html        |   2 +-
 content/docs/next/mail-lists.html                  |   2 +-
 content/docs/next/mail-lists/index.html            |   2 +-
 content/docs/next/onnx.html                        |   4 +-
 content/docs/next/onnx/index.html                  |   4 +-
 content/docs/next/optimizer.html                   |   4 +-
 content/docs/next/optimizer/index.html             |   4 +-
 .../docs/next/releases/RELEASE_NOTES_0.1.0.html    |   6 +-
 .../next/releases/RELEASE_NOTES_0.1.0/index.html   |   6 +-
 .../docs/next/releases/RELEASE_NOTES_0.2.0.html    |   6 +-
 .../next/releases/RELEASE_NOTES_0.2.0/index.html   |   6 +-
 .../docs/next/releases/RELEASE_NOTES_0.3.0.html    |   6 +-
 .../next/releases/RELEASE_NOTES_0.3.0/index.html   |   6 +-
 .../docs/next/releases/RELEASE_NOTES_1.0.0.html    |   6 +-
 .../next/releases/RELEASE_NOTES_1.0.0/index.html   |   6 +-
 .../docs/next/releases/RELEASE_NOTES_1.1.0.html    |   6 +-
 .../next/releases/RELEASE_NOTES_1.1.0/index.html   |   6 +-
 .../docs/next/releases/RELEASE_NOTES_1.2.0.html    |   6 +-
 .../next/releases/RELEASE_NOTES_1.2.0/index.html   |   6 +-
 .../docs/next/releases/RELEASE_NOTES_2.0.0.html    |   6 +-
 .../next/releases/RELEASE_NOTES_2.0.0/index.html   |   6 +-
 .../docs/next/releases/RELEASE_NOTES_3.0.0.html    |   7 +-
 .../next/releases/RELEASE_NOTES_3.0.0/index.html   |   7 +-
 .../docs/next/releases/RELEASE_NOTES_3.1.0.html    |  32 +-
 .../next/releases/RELEASE_NOTES_3.1.0/index.html   |  32 +-
 content/docs/next/security.html                    |   2 +-
 content/docs/next/security/index.html              |   2 +-
 content/docs/next/software-stack.html              |   4 +-
 content/docs/next/software-stack/index.html        |   4 +-
 content/docs/next/source-repository.html           |   2 +-
 content/docs/next/source-repository/index.html     |   2 +-
 content/docs/next/team-list.html                   |   2 +-
 content/docs/next/team-list/index.html             |   2 +-
 content/docs/next/tensor.html                      |   4 +-
 content/docs/next/tensor/index.html                |   4 +-
 content/docs/next/time-profiling.html              |   4 +-
 content/docs/next/time-profiling/index.html        |   4 +-
 content/docs/next/wheel-cpu-dev.html               |   6 +-
 content/docs/next/wheel-cpu-dev/index.html         |   6 +-
 content/docs/next/wheel-cpu.html                   |   6 +-
 content/docs/next/wheel-cpu/index.html             |   6 +-
 content/docs/next/wheel-gpu-dev.html               |   6 +-
 content/docs/next/wheel-gpu-dev/index.html         |   6 +-
 content/docs/next/wheel-gpu.html                   |   6 +-
 content/docs/next/wheel-gpu/index.html             |   6 +-
 content/docs/onnx.html                             |   2 +-
 content/docs/onnx/index.html                       |   2 +-
 content/docs/optimizer.html                        |   2 +-
 content/docs/optimizer/index.html                  |   2 +-
 content/docs/releases/RELEASE_NOTES_0.1.0.html     |   2 +-
 .../docs/releases/RELEASE_NOTES_0.1.0/index.html   |   2 +-
 content/docs/releases/RELEASE_NOTES_0.2.0.html     |   2 +-
 .../docs/releases/RELEASE_NOTES_0.2.0/index.html   |   2 +-
 content/docs/releases/RELEASE_NOTES_0.3.0.html     |   2 +-
 .../docs/releases/RELEASE_NOTES_0.3.0/index.html   |   2 +-
 content/docs/releases/RELEASE_NOTES_1.0.0.html     |   2 +-
 .../docs/releases/RELEASE_NOTES_1.0.0/index.html   |   2 +-
 content/docs/releases/RELEASE_NOTES_1.1.0.html     |   2 +-
 .../docs/releases/RELEASE_NOTES_1.1.0/index.html   |   2 +-
 content/docs/releases/RELEASE_NOTES_1.2.0.html     |   2 +-
 .../docs/releases/RELEASE_NOTES_1.2.0/index.html   |   2 +-
 content/docs/releases/RELEASE_NOTES_2.0.0.html     |   2 +-
 .../docs/releases/RELEASE_NOTES_2.0.0/index.html   |   2 +-
 content/docs/releases/RELEASE_NOTES_3.0.0.html     |   7 +-
 content/docs/releases/RELEASE_NOTES_3.0.0.rc1.html |   2 +-
 .../releases/RELEASE_NOTES_3.0.0.rc1/index.html    |   2 +-
 .../docs/releases/RELEASE_NOTES_3.0.0/index.html   |   7 +-
 content/docs/releases/RELEASE_NOTES_3.1.0.html     |  32 +-
 .../docs/releases/RELEASE_NOTES_3.1.0/index.html   |  32 +-
 content/docs/security.html                         |   4 +-
 content/docs/security/index.html                   |   4 +-
 content/docs/software-stack.html                   |   2 +-
 content/docs/software-stack/index.html             |   2 +-
 content/docs/source-repository.html                |   4 +-
 content/docs/source-repository/index.html          |   4 +-
 content/docs/team-list.html                        |   4 +-
 content/docs/team-list/index.html                  |   4 +-
 content/docs/tensor.html                           |   2 +-
 content/docs/tensor/index.html                     |   2 +-
 content/docs/time-profiling.html                   |   2 +-
 content/docs/time-profiling/index.html             |   2 +-
 content/docs/wheel-cpu-dev.html                    |  62 +++-
 content/docs/wheel-cpu-dev/index.html              |  62 +++-
 content/docs/wheel-cpu.html                        |  62 +++-
 content/docs/wheel-cpu/index.html                  |  62 +++-
 content/docs/wheel-gpu-dev.html                    |  62 +++-
 content/docs/wheel-gpu-dev/index.html              |  62 +++-
 content/docs/wheel-gpu.html                        |  62 +++-
 content/docs/wheel-gpu/index.html                  |  62 +++-
 content/en/versions.html                           |   2 +-
 content/en/versions/index.html                     |   2 +-
 content/sitemap.xml                                |   2 +-
 content/versions.html                              |   2 +-
 content/versions/index.html                        |   2 +-
 383 files changed, 8887 insertions(+), 3217 deletions(-)

diff --git a/content/docs/2.0.0/dist-train.html b/content/docs/2.0.0/dist-train.html
new file mode 100644
index 0000000..9a50167
--- /dev/null
+++ b/content/docs/2.0.0/dist-train.html
@@ -0,0 +1,320 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Distributed Training · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copy [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<p>SINGA支持跨多个GPU的数据并行训练(在单个节点上或跨不同节点)。下图说明了数据并行训练的情况:</p>
+<p><img src="/docs/assets/MPI.png" alt="MPI.png"></p>
+<p>在分布式训练中,每个进程(称为worker)在单个GPU上运行一个训练脚本,每个进程都有一个单独的通信等级,训练数据被分发给各个worker,模型在每个worker上被复制。在每次迭代中,worker从其分区中读取数据的一个mini-batch(例如,256张图像),并运行BackPropagation算法来计算权重的梯度,通过all-reduce(由<a href="https://developer.nvidia.com/nccl">NCCL</a>提供)进行平均,按照随机梯度下降算法(SGD)进行权重更新。</p>
+<p>NCCL的all-reduce操作可以用来减少和同步不同GPU的梯度。假设我们使用4个GPU进行训练,如下图所示。一旦计算出4个GPU的梯度,all-reduce将返回GPU的梯度之和,并使其在每个GPU上可用,然后就可以轻松计算出平均梯度。</p>
+<p><img src="/docs/assets/AllReduce.png" alt="AllReduce.png"></p>
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>SINGA提供了一个名为<code>DistOpt</code>(<code>Opt</code>的一个子类)的模块,用于分布式训练。它封装了一个普通的SGD优化器,并调用<code>Communicator</code>进行梯度同步。下面的例子说明了如何使用<code>DistOpt</code>在MNIST数据集上训练一个CNN模型。源代码在<a href="https://github.com/apache/singa/blob/master/examples/cnn/">这里</a>,或者可以使用<a href="">Colab notebook</a>。</p>
+<h3><a class="anchor" aria-hidden="true" id="代码示例"></a><a href="#代码示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<ol>
+<li>定义神经网络模型:</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">CNN</span><span class="hljs-params">(model.Model)</span>:</span>
+
+    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, num_classes=<span class="hljs-number">10</span>, num_channels=<span class="hljs-number">1</span>)</span>:</span>
+        super(CNN, self).__init__()
+        self.conv1 = layer.Conv2d(num_channels, <span class="hljs-number">20</span>, <span class="hljs-number">5</span>, padding=<span class="hljs-number">0</span>, activation=<span class="hljs-string">"RELU"</span>)
+        self.conv2 = layer.Conv2d(<span class="hljs-number">20</span>, <span class="hljs-number">50</span>, <span class="hljs-number">5</span>, padding=<span class="hljs-number">0</span>, activation=<span class="hljs-string">"RELU"</span>)
+        self.linear1 = layer.Linear(<span class="hljs-number">500</span>)
+        self.linear2 = layer.Linear(num_classes)
+        self.pooling1 = layer.MaxPool2d(<span class="hljs-number">2</span>, <span class="hljs-number">2</span>, padding=<span class="hljs-number">0</span>)
+        self.pooling2 = layer.MaxPool2d(<span class="hljs-number">2</span>, <span class="hljs-number">2</span>, padding=<span class="hljs-number">0</span>)
+        self.relu = layer.ReLU()
+        self.flatten = layer.Flatten()
+        self.softmax_cross_entropy = layer.SoftMaxCrossEntropy()
+
+    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">forward</span><span class="hljs-params">(self, x)</span>:</span>
+        y = self.conv1(x)
+        y = self.pooling1(y)
+        y = self.conv2(y)
+        y = self.pooling2(y)
+        y = self.flatten(y)
+        y = self.linear1(y)
+        y = self.relu(y)
+        y = self.linear2(y)
+        <span class="hljs-keyword">return</span> y
+
+    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">train_one_batch</span><span class="hljs-params">(self, x, y, dist_option=<span class="hljs-string">'fp32'</span>, spars=<span class="hljs-number">0</span>)</span>:</span>
+        out = self.forward(x)
+        loss = self.softmax_cross_entropy(out, y)
+
+        <span class="hljs-comment"># Allow different options for distributed training</span>
+        <span class="hljs-comment"># See the section "Optimizations for Distributed Training"</span>
+        <span class="hljs-keyword">if</span> dist_option == <span class="hljs-string">'fp32'</span>:
+            self.optimizer(loss)
+        <span class="hljs-keyword">elif</span> dist_option == <span class="hljs-string">'fp16'</span>:
+            self.optimizer.backward_and_update_half(loss)
+        <span class="hljs-keyword">elif</span> dist_option == <span class="hljs-string">'partialUpdate'</span>:
+            self.optimizer.backward_and_partial_update(loss)
+        <span class="hljs-keyword">elif</span> dist_option == <span class="hljs-string">'sparseTopK'</span>:
+            self.optimizer.backward_and_sparse_update(loss,
+                                                      topK=<span class="hljs-literal">True</span>,
+                                                      spars=spars)
+        <span class="hljs-keyword">elif</span> dist_option == <span class="hljs-string">'sparseThreshold'</span>:
+            self.optimizer.backward_and_sparse_update(loss,
+                                                      topK=<span class="hljs-literal">False</span>,
+                                                      spars=spars)
+        <span class="hljs-keyword">return</span> out, loss
+
+<span class="hljs-comment"># create model</span>
+model = CNN()
+</code></pre>
+<ol start="2">
+<li>创建<code>DistOpt</code>实例并将其应用到创建的模型上:</li>
+</ol>
+<pre><code class="hljs css language-python">sgd = opt.SGD(lr=<span class="hljs-number">0.005</span>, momentum=<span class="hljs-number">0.9</span>, weight_decay=<span class="hljs-number">1e-5</span>)
+sgd = opt.DistOpt(sgd)
+model.set_optimizer(sgd)
+dev = device.create_cuda_gpu_on(sgd.local_rank)
+</code></pre>
+<p>下面是关于代码中一些变量的解释:</p>
+<p>(i) <code>dev</code></p>
+<p>dev代表<code>Device</code>实例,在设备中加载数据并运行CNN模型。</p>
+<p>(ii)<code>local_rank</code></p>
+<p>Local rank表示当前进程在同一节点中使用的GPU数量。例如,如果你使用的节点有2个GPU,<code>local_rank=0</code>表示这个进程使用的是第一个GPU,而<code>local_rank=1</code>表示使用的是第二个GPU。使用MPI或多进程,你能够运行相同的训练脚本,唯一的区别<code>local_rank</code>的值不同。</p>
+<p>(iii)<code>global_rank</code></p>
+<p>global中的rank代表了你使用的所有节点中所有进程的全局排名。让我们考虑这样的情况:你有3个节点,每个节点有两个GPU, <code>global_rank=0</code>表示使用第1个节点的第1个GPU的进程, <code>global_rank=2</code>表示使用第2个节点的第1个GPU的进程, <code>global_rank=4</code>表示使用第3个节点的第1个GPU的进程。</p>
+<ol start="3">
+<li>加载和分割训练/验证数据:</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">data_partition</span><span class="hljs-params">(dataset_x, dataset_y, global_rank, world_size)</span>:</span>
+    data_per_rank = dataset_x.shape[<span class="hljs-number">0</span>] // world_size
+    idx_start = global_rank * data_per_rank
+    idx_end = (global_rank + <span class="hljs-number">1</span>) * data_per_rank
+    <span class="hljs-keyword">return</span> dataset_x[idx_start:idx_end], dataset_y[idx_start:idx_end]
+
+train_x, train_y, test_x, test_y = load_dataset()
+train_x, train_y = data_partition(train_x, train_y,
+                                  sgd.global_rank, sgd.world_size)
+test_x, test_y = data_partition(test_x, test_y,
+                                sgd.global_rank, sgd.world_size)
+</code></pre>
+<p>这个<code>dev</code>的数据集的一个分区被返回。</p>
+<p>这里,<code>world_size</code>代表你用于分布式训练的所有节点中的进程总数。</p>
+<ol start="4">
+<li>初始化并同步所有worker的模型参数:</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-comment">#Synchronize the initial parameter</span>
+tx = tensor.Tensor((batch_size, <span class="hljs-number">1</span>, IMG_SIZE, IMG_SIZE), dev, tensor.float32)
+ty = tensor.Tensor((batch_size, num_classes), dev, tensor.int32)
+model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=graph, sequential=<span class="hljs-literal">True</span>)
+...
+<span class="hljs-comment">#Use the same random seed for different ranks</span>
+seed = <span class="hljs-number">0</span>
+dev.SetRandSeed(seed)
+np.random.seed(seed)
+</code></pre>
+<ol start="5">
+<li>运行BackPropagation和分布式SGD</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> range(max_epoch):
+    <span class="hljs-keyword">for</span> b <span class="hljs-keyword">in</span> range(num_train_batch):
+        x = train_x[idx[b * batch_size: (b + <span class="hljs-number">1</span>) * batch_size]]
+        y = train_y[idx[b * batch_size: (b + <span class="hljs-number">1</span>) * batch_size]]
+        tx.copy_from_numpy(x)
+        ty.copy_from_numpy(y)
+        <span class="hljs-comment"># Train the model</span>
+        out, loss = model(tx, ty)
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="执行命令"></a><a href="#执行命令" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>有两种方式可以启动训练,MPI或Python multiprocessing。</p>
+<h4><a class="anchor" aria-hidden="true" id="python-multiprocessing"></a><a href="#python-multiprocessing" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+<p>它可以在一个节点上使用多个GPU,其中,每个GPU是一个worker。</p>
+<ol>
+<li>将上述训练用的代码打包进一个函数:</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">train_mnist_cnn</span><span class="hljs-params">(nccl_id=None, local_rank=None, world_size=None)</span>:</span>
+    ...
+</code></pre>
+<ol start="2">
+<li>创建<code>mnist_multiprocess.py</code>。</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
+    <span class="hljs-comment"># Generate a NCCL ID to be used for collective communication</span>
+    nccl_id = singa.NcclIdHolder()
+
+    <span class="hljs-comment"># Define the number of GPUs to be used in the training process</span>
+    world_size = int(sys.argv[<span class="hljs-number">1</span>])
+
+    <span class="hljs-comment"># Define and launch the multi-processing</span>
+    <span class="hljs-keyword">import</span> multiprocessing
+    process = []
+    <span class="hljs-keyword">for</span> local_rank <span class="hljs-keyword">in</span> range(<span class="hljs-number">0</span>, world_size):
+        process.append(multiprocessing.Process(target=train_mnist_cnn,
+                       args=(nccl_id, local_rank, world_size)))
+
+    <span class="hljs-keyword">for</span> p <span class="hljs-keyword">in</span> process:
+        p.start()
+</code></pre>
+<p>下面是关于上面所创建的变量的一些说明:</p>
+<p>(i) <code>nccl_id</code></p>
+<p>需要注意的是,我们在这里需要生成一个NCCL ID,用于集体通信,然后将其传递给所有进程。NCCL ID就像一个门票,只有拥有这个ID的进程才能加入到all-reduce操作中。(如果我们接下来使用MPI,NCCL ID的传递就没有必要了,因为在我们的代码中,这个ID会由MPI自动广播。)</p>
+<p>(ii) <code>world_size</code></p>
+<p>world_size是您想用于训练的GPU数量。</p>
+<p>(iii) <code>local_rank</code></p>
+<p>local_rank决定分布式训练的本地顺序,以及在训练过程中使用哪个gpu。在上面的代码中,我们使用for循环来运行训练函数,其中参数local_rank从0迭代到world_size。在这种情况下,不同的进程可以使用不同的GPU进行训练。</p>
+<p>创建<code>DistOpt</code>实例的参数应按照如下方式更新:</p>
+<pre><code class="hljs css language-python">sgd = opt.DistOpt(sgd, nccl_id=nccl_id, local_rank=local_rank, world_size=world_size)
+</code></pre>
+<ol start="3">
+<li>运行<code>mnist_multiprocess.py</code>:</li>
+</ol>
+<pre><code class="hljs css language-sh">python mnist_multiprocess.py 2
+</code></pre>
+<p>与单GPU训练相比,它最主要的意义是速度提升:</p>
+<pre><code class="hljs">Starting Epoch <span class="hljs-number">0</span>:
+Training loss = <span class="hljs-number">408.909790</span>, training accuracy = <span class="hljs-number">0.880475</span>
+Evaluation accuracy = <span class="hljs-number">0.956430</span>
+Starting Epoch <span class="hljs-number">1</span>:
+Training loss = <span class="hljs-number">102.396790</span>, training accuracy = <span class="hljs-number">0.967415</span>
+Evaluation accuracy = <span class="hljs-number">0.977564</span>
+Starting Epoch <span class="hljs-number">2</span>:
+Training loss = <span class="hljs-number">69.217010</span>, training accuracy = <span class="hljs-number">0.977915</span>
+Evaluation accuracy = <span class="hljs-number">0.981370</span>
+Starting Epoch <span class="hljs-number">3</span>:
+Training loss = <span class="hljs-number">54.248390</span>, training accuracy = <span class="hljs-number">0.982823</span>
+Evaluation accuracy = <span class="hljs-number">0.984075</span>
+Starting Epoch <span class="hljs-number">4</span>:
+Training loss = <span class="hljs-number">45.213406</span>, training accuracy = <span class="hljs-number">0.985560</span>
+Evaluation accuracy = <span class="hljs-number">0.985276</span>
+Starting Epoch <span class="hljs-number">5</span>:
+Training loss = <span class="hljs-number">38.868435</span>, training accuracy = <span class="hljs-number">0.987764</span>
+Evaluation accuracy = <span class="hljs-number">0.986278</span>
+Starting Epoch <span class="hljs-number">6</span>:
+Training loss = <span class="hljs-number">34.078186</span>, training accuracy = <span class="hljs-number">0.989149</span>
+Evaluation accuracy = <span class="hljs-number">0.987881</span>
+Starting Epoch <span class="hljs-number">7</span>:
+Training loss = <span class="hljs-number">30.138697</span>, training accuracy = <span class="hljs-number">0.990451</span>
+Evaluation accuracy = <span class="hljs-number">0.988181</span>
+Starting Epoch <span class="hljs-number">8</span>:
+Training loss = <span class="hljs-number">26.854443</span>, training accuracy = <span class="hljs-number">0.991520</span>
+Evaluation accuracy = <span class="hljs-number">0.988682</span>
+Starting Epoch <span class="hljs-number">9</span>:
+Training loss = <span class="hljs-number">24.039650</span>, training accuracy = <span class="hljs-number">0.992405</span>
+Evaluation accuracy = <span class="hljs-number">0.989083</span>
+</code></pre>
+<h4><a class="anchor" aria-hidden="true" id="mpi"></a><a href="#mpi" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<p>只要有多个GPU,MPI既适用于单节点,也适用于多节点。</p>
+<ol>
+<li>创建<code>mnist_dist.py</code>。</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
+    train_mnist_cnn()
+</code></pre>
+<ol start="2">
+<li>为MPI生成一个hostfile,例如下面的hostfile在一个节点上使用了2个进程(即2个GPU):</li>
+</ol>
+<pre><code class="hljs css language-txt">localhost:<span class="hljs-number">2</span>
+</code></pre>
+<ol start="3">
+<li>通过<code>mpiexec</code>启动训练:</li>
+</ol>
+<pre><code class="hljs css language-sh">mpiexec --hostfile host_file python mnist_dist.py
+</code></pre>
+<p>与单GPU训练相比,它同样可以带来速度的提升:</p>
+<pre><code class="hljs">Starting Epoch <span class="hljs-number">0</span>:
+Training loss = <span class="hljs-number">383.969543</span>, training accuracy = <span class="hljs-number">0.886402</span>
+Evaluation accuracy = <span class="hljs-number">0.954327</span>
+Starting Epoch <span class="hljs-number">1</span>:
+Training loss = <span class="hljs-number">97.531479</span>, training accuracy = <span class="hljs-number">0.969451</span>
+Evaluation accuracy = <span class="hljs-number">0.977163</span>
+Starting Epoch <span class="hljs-number">2</span>:
+Training loss = <span class="hljs-number">67.166870</span>, training accuracy = <span class="hljs-number">0.978516</span>
+Evaluation accuracy = <span class="hljs-number">0.980769</span>
+Starting Epoch <span class="hljs-number">3</span>:
+Training loss = <span class="hljs-number">53.369656</span>, training accuracy = <span class="hljs-number">0.983040</span>
+Evaluation accuracy = <span class="hljs-number">0.983974</span>
+Starting Epoch <span class="hljs-number">4</span>:
+Training loss = <span class="hljs-number">45.100403</span>, training accuracy = <span class="hljs-number">0.985777</span>
+Evaluation accuracy = <span class="hljs-number">0.986078</span>
+Starting Epoch <span class="hljs-number">5</span>:
+Training loss = <span class="hljs-number">39.330826</span>, training accuracy = <span class="hljs-number">0.987447</span>
+Evaluation accuracy = <span class="hljs-number">0.987179</span>
+Starting Epoch <span class="hljs-number">6</span>:
+Training loss = <span class="hljs-number">34.655270</span>, training accuracy = <span class="hljs-number">0.988799</span>
+Evaluation accuracy = <span class="hljs-number">0.987780</span>
+Starting Epoch <span class="hljs-number">7</span>:
+Training loss = <span class="hljs-number">30.749735</span>, training accuracy = <span class="hljs-number">0.989984</span>
+Evaluation accuracy = <span class="hljs-number">0.988281</span>
+Starting Epoch <span class="hljs-number">8</span>:
+Training loss = <span class="hljs-number">27.422146</span>, training accuracy = <span class="hljs-number">0.991319</span>
+Evaluation accuracy = <span class="hljs-number">0.988582</span>
+Starting Epoch <span class="hljs-number">9</span>:
+Training loss = <span class="hljs-number">24.548153</span>, training accuracy = <span class="hljs-number">0.992171</span>
+Evaluation accuracy = <span class="hljs-number">0.988682</span>
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="针对分布式训练的优化"></a><a href="#针对分布式训练的优化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>SINGA为分布式训练提供了多种优化策略,以降低模块间的通信成本。参考<code>DistOpt</code>的API,了解每种策略的配置。</p>
+<p>当我们使用<code>model.Model</code>建立模型时,我们需要在<code>training_one_batch</code>方法中启用分布式训练的选项,请参考本页顶部的示例代码。我们也可以直接复制这些选项的代码,然后在其他模型中使用。</p>
+<p>有了定义的选项,我们可以在使用<code>model(tx, ty, dist_option, spars)</code>开始训练时,设置对应的参数<code>dist_option</code>和<code>spars</code>。</p>
+<h3><a class="anchor" aria-hidden="true" id="不采取优化手段"></a><a href="#不采取优化手段" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<pre><code class="hljs css language-python">out, loss = model(tx, ty)
+</code></pre>
+<p><code>loss</code>是损失函数的输出张量,例如分类任务中的交叉熵。</p>
+<h3><a class="anchor" aria-hidden="true" id="半精度梯度(half-precision-gradients)"></a><a href="#半精度梯度(half-precision-gradients)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
+<pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'fp16'</span>)
+</code></pre>
+<p>在调用all-reduce之前,它将每个梯度值转换为16-bit表示(即半精度)。</p>
+<h3><a class="anchor" aria-hidden="true" id="部分同步(partial-synchronization)"></a><a href="#部分同步(partial-synchronization)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'partialUpdate'</span>)
+</code></pre>
+<p>在每一次迭代中,每个rank都做本地SGD更新。然后,只对一个部分的参数进行平均同步,从而节省了通信成本。分块大小是在创建<code>DistOpt</code>实例时配置的。</p>
+<h3><a class="anchor" aria-hidden="true" id="梯度稀疏化(gradient-sparsification)"></a><a href="#梯度稀疏化(gradient-sparsification)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
+<p>该策略应用稀疏化方案来选择梯度的子集进行all-reduce,有两种方式:</p>
+<ul>
+<li>选择前k大的元素,spars是被选择的元素的一部分(比例在0 - 1之间)。</li>
+</ul>
+<pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'sparseTopK'</span>, spars = spars)
+</code></pre>
+<ul>
+<li>所有绝对值大于预定义阈值的梯度都会被选中。</li>
+</ul>
+<pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'sparseThreshold'</span>, spars = spars)
+</code></pre>
+<p>超参数在创建<code>DistOpt</code>实例时配置。</p>
+<h2><a class="anchor" aria-hidden="true" id="实现"></a><a href="#实现" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>本节主要是让开发者了解分布训练模块的代码是如何实现的。</p>
+<h3><a class="anchor" aria-hidden="true" id="nccl-communicator的c接口"></a><a href="#nccl-communicator的c接口" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>首先,通信层是用C语言<a href="https://github.com/apache/singa/blob/master/src/io/communicator.cc">communicator.cc</a>编写的,它调用用NCCL库进行集体通信。</p>
+<p>communicator有两个构造器,一个是MPI的,另一个是Multiprocess的。</p>
+<p>(i) MPI构造器</p>
+<p>构造器首先先获取全局rank和world_size,计算出本地rank,然后由rank 0生成NCCL ID并广播给每个rank。之后,它调用setup函数来初始化NCCL communicator、cuda流和缓冲区。</p>
+<p>(ii) Python multiprocess构造器</p>
+<p>构造器首先从输入参数中获取rank、world_size和NCCL ID。之后,调用setup函数来初始化NCCL communicator、cuda流和缓冲区。</p>
+<p>在初始化之后,它提供了all-reduce功能来同步模型参数或梯度。例如,synch接收一个输入张量,通过NCCL例程进行all-reduce,在我们调用synch之后,需要调用wait函数来等待all-reduce操作的完成。</p>
+<h3><a class="anchor" aria-hidden="true" id="distopt的python接口"></a><a href="#distopt的python接口" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>然后,python接口提供了一个<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">DistOpt</a>类来封装一个<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">optimizer</a>对象,以执行基于MPI或Multiprocess的分布式训练。在初始化过程中,它创建了一个NCCL communicator对象(来自于上面小节提到的C接口),然后,<code>DistOpt</code>中的每一次all-reduce操作都会用到这个communicator对象。</p>
+<p>在MPI或Multiprocess中,每个进程都有一个独立的rank,它给出了各个进程使用的GPU的信息。训练数据是被拆分的,因此每个进程可以根据一部分训练数据来评估子梯度。一旦每个进程的子梯度被计算出来,就可以将所有进程计算出的子梯度做all-reduce,得到总体随机梯度。</p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#使用">使用</a><ul class="toc-headings"><li><a href="#代码示例">代码示例</a></li><li><a href="#执行命令">执行命令</a></li></ul></li><li><a href="#针对分布式训练的优化">针对分布式训练的优化</a><ul class="toc-headings"><li><a href="#不采取优化手段">不采取优化手段</a></li><li><a href="#半精度梯度(half-precision-gradients)">半精度梯度(Half-precision Gradi [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/2.0.0/dist-train/index.html b/content/docs/2.0.0/dist-train/index.html
new file mode 100644
index 0000000..9a50167
--- /dev/null
+++ b/content/docs/2.0.0/dist-train/index.html
@@ -0,0 +1,320 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Distributed Training · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copy [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<p>SINGA支持跨多个GPU的数据并行训练(在单个节点上或跨不同节点)。下图说明了数据并行训练的情况:</p>
+<p><img src="/docs/assets/MPI.png" alt="MPI.png"></p>
+<p>在分布式训练中,每个进程(称为worker)在单个GPU上运行一个训练脚本,每个进程都有一个单独的通信等级,训练数据被分发给各个worker,模型在每个worker上被复制。在每次迭代中,worker从其分区中读取数据的一个mini-batch(例如,256张图像),并运行BackPropagation算法来计算权重的梯度,通过all-reduce(由<a href="https://developer.nvidia.com/nccl">NCCL</a>提供)进行平均,按照随机梯度下降算法(SGD)进行权重更新。</p>
+<p>NCCL的all-reduce操作可以用来减少和同步不同GPU的梯度。假设我们使用4个GPU进行训练,如下图所示。一旦计算出4个GPU的梯度,all-reduce将返回GPU的梯度之和,并使其在每个GPU上可用,然后就可以轻松计算出平均梯度。</p>
+<p><img src="/docs/assets/AllReduce.png" alt="AllReduce.png"></p>
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>SINGA提供了一个名为<code>DistOpt</code>(<code>Opt</code>的一个子类)的模块,用于分布式训练。它封装了一个普通的SGD优化器,并调用<code>Communicator</code>进行梯度同步。下面的例子说明了如何使用<code>DistOpt</code>在MNIST数据集上训练一个CNN模型。源代码在<a href="https://github.com/apache/singa/blob/master/examples/cnn/">这里</a>,或者可以使用<a href="">Colab notebook</a>。</p>
+<h3><a class="anchor" aria-hidden="true" id="代码示例"></a><a href="#代码示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<ol>
+<li>定义神经网络模型:</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">CNN</span><span class="hljs-params">(model.Model)</span>:</span>
+
+    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, num_classes=<span class="hljs-number">10</span>, num_channels=<span class="hljs-number">1</span>)</span>:</span>
+        super(CNN, self).__init__()
+        self.conv1 = layer.Conv2d(num_channels, <span class="hljs-number">20</span>, <span class="hljs-number">5</span>, padding=<span class="hljs-number">0</span>, activation=<span class="hljs-string">"RELU"</span>)
+        self.conv2 = layer.Conv2d(<span class="hljs-number">20</span>, <span class="hljs-number">50</span>, <span class="hljs-number">5</span>, padding=<span class="hljs-number">0</span>, activation=<span class="hljs-string">"RELU"</span>)
+        self.linear1 = layer.Linear(<span class="hljs-number">500</span>)
+        self.linear2 = layer.Linear(num_classes)
+        self.pooling1 = layer.MaxPool2d(<span class="hljs-number">2</span>, <span class="hljs-number">2</span>, padding=<span class="hljs-number">0</span>)
+        self.pooling2 = layer.MaxPool2d(<span class="hljs-number">2</span>, <span class="hljs-number">2</span>, padding=<span class="hljs-number">0</span>)
+        self.relu = layer.ReLU()
+        self.flatten = layer.Flatten()
+        self.softmax_cross_entropy = layer.SoftMaxCrossEntropy()
+
+    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">forward</span><span class="hljs-params">(self, x)</span>:</span>
+        y = self.conv1(x)
+        y = self.pooling1(y)
+        y = self.conv2(y)
+        y = self.pooling2(y)
+        y = self.flatten(y)
+        y = self.linear1(y)
+        y = self.relu(y)
+        y = self.linear2(y)
+        <span class="hljs-keyword">return</span> y
+
+    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">train_one_batch</span><span class="hljs-params">(self, x, y, dist_option=<span class="hljs-string">'fp32'</span>, spars=<span class="hljs-number">0</span>)</span>:</span>
+        out = self.forward(x)
+        loss = self.softmax_cross_entropy(out, y)
+
+        <span class="hljs-comment"># Allow different options for distributed training</span>
+        <span class="hljs-comment"># See the section "Optimizations for Distributed Training"</span>
+        <span class="hljs-keyword">if</span> dist_option == <span class="hljs-string">'fp32'</span>:
+            self.optimizer(loss)
+        <span class="hljs-keyword">elif</span> dist_option == <span class="hljs-string">'fp16'</span>:
+            self.optimizer.backward_and_update_half(loss)
+        <span class="hljs-keyword">elif</span> dist_option == <span class="hljs-string">'partialUpdate'</span>:
+            self.optimizer.backward_and_partial_update(loss)
+        <span class="hljs-keyword">elif</span> dist_option == <span class="hljs-string">'sparseTopK'</span>:
+            self.optimizer.backward_and_sparse_update(loss,
+                                                      topK=<span class="hljs-literal">True</span>,
+                                                      spars=spars)
+        <span class="hljs-keyword">elif</span> dist_option == <span class="hljs-string">'sparseThreshold'</span>:
+            self.optimizer.backward_and_sparse_update(loss,
+                                                      topK=<span class="hljs-literal">False</span>,
+                                                      spars=spars)
+        <span class="hljs-keyword">return</span> out, loss
+
+<span class="hljs-comment"># create model</span>
+model = CNN()
+</code></pre>
+<ol start="2">
+<li>创建<code>DistOpt</code>实例并将其应用到创建的模型上:</li>
+</ol>
+<pre><code class="hljs css language-python">sgd = opt.SGD(lr=<span class="hljs-number">0.005</span>, momentum=<span class="hljs-number">0.9</span>, weight_decay=<span class="hljs-number">1e-5</span>)
+sgd = opt.DistOpt(sgd)
+model.set_optimizer(sgd)
+dev = device.create_cuda_gpu_on(sgd.local_rank)
+</code></pre>
+<p>下面是关于代码中一些变量的解释:</p>
+<p>(i) <code>dev</code></p>
+<p>dev代表<code>Device</code>实例,在设备中加载数据并运行CNN模型。</p>
+<p>(ii)<code>local_rank</code></p>
+<p>Local rank表示当前进程在同一节点中使用的GPU数量。例如,如果你使用的节点有2个GPU,<code>local_rank=0</code>表示这个进程使用的是第一个GPU,而<code>local_rank=1</code>表示使用的是第二个GPU。使用MPI或多进程,你能够运行相同的训练脚本,唯一的区别<code>local_rank</code>的值不同。</p>
+<p>(iii)<code>global_rank</code></p>
+<p>global中的rank代表了你使用的所有节点中所有进程的全局排名。让我们考虑这样的情况:你有3个节点,每个节点有两个GPU, <code>global_rank=0</code>表示使用第1个节点的第1个GPU的进程, <code>global_rank=2</code>表示使用第2个节点的第1个GPU的进程, <code>global_rank=4</code>表示使用第3个节点的第1个GPU的进程。</p>
+<ol start="3">
+<li>加载和分割训练/验证数据:</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">data_partition</span><span class="hljs-params">(dataset_x, dataset_y, global_rank, world_size)</span>:</span>
+    data_per_rank = dataset_x.shape[<span class="hljs-number">0</span>] // world_size
+    idx_start = global_rank * data_per_rank
+    idx_end = (global_rank + <span class="hljs-number">1</span>) * data_per_rank
+    <span class="hljs-keyword">return</span> dataset_x[idx_start:idx_end], dataset_y[idx_start:idx_end]
+
+train_x, train_y, test_x, test_y = load_dataset()
+train_x, train_y = data_partition(train_x, train_y,
+                                  sgd.global_rank, sgd.world_size)
+test_x, test_y = data_partition(test_x, test_y,
+                                sgd.global_rank, sgd.world_size)
+</code></pre>
+<p>这个<code>dev</code>的数据集的一个分区被返回。</p>
+<p>这里,<code>world_size</code>代表你用于分布式训练的所有节点中的进程总数。</p>
+<ol start="4">
+<li>初始化并同步所有worker的模型参数:</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-comment">#Synchronize the initial parameter</span>
+tx = tensor.Tensor((batch_size, <span class="hljs-number">1</span>, IMG_SIZE, IMG_SIZE), dev, tensor.float32)
+ty = tensor.Tensor((batch_size, num_classes), dev, tensor.int32)
+model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=graph, sequential=<span class="hljs-literal">True</span>)
+...
+<span class="hljs-comment">#Use the same random seed for different ranks</span>
+seed = <span class="hljs-number">0</span>
+dev.SetRandSeed(seed)
+np.random.seed(seed)
+</code></pre>
+<ol start="5">
+<li>运行BackPropagation和分布式SGD</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> range(max_epoch):
+    <span class="hljs-keyword">for</span> b <span class="hljs-keyword">in</span> range(num_train_batch):
+        x = train_x[idx[b * batch_size: (b + <span class="hljs-number">1</span>) * batch_size]]
+        y = train_y[idx[b * batch_size: (b + <span class="hljs-number">1</span>) * batch_size]]
+        tx.copy_from_numpy(x)
+        ty.copy_from_numpy(y)
+        <span class="hljs-comment"># Train the model</span>
+        out, loss = model(tx, ty)
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="执行命令"></a><a href="#执行命令" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>有两种方式可以启动训练,MPI或Python multiprocessing。</p>
+<h4><a class="anchor" aria-hidden="true" id="python-multiprocessing"></a><a href="#python-multiprocessing" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+<p>它可以在一个节点上使用多个GPU,其中,每个GPU是一个worker。</p>
+<ol>
+<li>将上述训练用的代码打包进一个函数:</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">train_mnist_cnn</span><span class="hljs-params">(nccl_id=None, local_rank=None, world_size=None)</span>:</span>
+    ...
+</code></pre>
+<ol start="2">
+<li>创建<code>mnist_multiprocess.py</code>。</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
+    <span class="hljs-comment"># Generate a NCCL ID to be used for collective communication</span>
+    nccl_id = singa.NcclIdHolder()
+
+    <span class="hljs-comment"># Define the number of GPUs to be used in the training process</span>
+    world_size = int(sys.argv[<span class="hljs-number">1</span>])
+
+    <span class="hljs-comment"># Define and launch the multi-processing</span>
+    <span class="hljs-keyword">import</span> multiprocessing
+    process = []
+    <span class="hljs-keyword">for</span> local_rank <span class="hljs-keyword">in</span> range(<span class="hljs-number">0</span>, world_size):
+        process.append(multiprocessing.Process(target=train_mnist_cnn,
+                       args=(nccl_id, local_rank, world_size)))
+
+    <span class="hljs-keyword">for</span> p <span class="hljs-keyword">in</span> process:
+        p.start()
+</code></pre>
+<p>下面是关于上面所创建的变量的一些说明:</p>
+<p>(i) <code>nccl_id</code></p>
+<p>需要注意的是,我们在这里需要生成一个NCCL ID,用于集体通信,然后将其传递给所有进程。NCCL ID就像一个门票,只有拥有这个ID的进程才能加入到all-reduce操作中。(如果我们接下来使用MPI,NCCL ID的传递就没有必要了,因为在我们的代码中,这个ID会由MPI自动广播。)</p>
+<p>(ii) <code>world_size</code></p>
+<p>world_size是您想用于训练的GPU数量。</p>
+<p>(iii) <code>local_rank</code></p>
+<p>local_rank决定分布式训练的本地顺序,以及在训练过程中使用哪个gpu。在上面的代码中,我们使用for循环来运行训练函数,其中参数local_rank从0迭代到world_size。在这种情况下,不同的进程可以使用不同的GPU进行训练。</p>
+<p>创建<code>DistOpt</code>实例的参数应按照如下方式更新:</p>
+<pre><code class="hljs css language-python">sgd = opt.DistOpt(sgd, nccl_id=nccl_id, local_rank=local_rank, world_size=world_size)
+</code></pre>
+<ol start="3">
+<li>运行<code>mnist_multiprocess.py</code>:</li>
+</ol>
+<pre><code class="hljs css language-sh">python mnist_multiprocess.py 2
+</code></pre>
+<p>与单GPU训练相比,它最主要的意义是速度提升:</p>
+<pre><code class="hljs">Starting Epoch <span class="hljs-number">0</span>:
+Training loss = <span class="hljs-number">408.909790</span>, training accuracy = <span class="hljs-number">0.880475</span>
+Evaluation accuracy = <span class="hljs-number">0.956430</span>
+Starting Epoch <span class="hljs-number">1</span>:
+Training loss = <span class="hljs-number">102.396790</span>, training accuracy = <span class="hljs-number">0.967415</span>
+Evaluation accuracy = <span class="hljs-number">0.977564</span>
+Starting Epoch <span class="hljs-number">2</span>:
+Training loss = <span class="hljs-number">69.217010</span>, training accuracy = <span class="hljs-number">0.977915</span>
+Evaluation accuracy = <span class="hljs-number">0.981370</span>
+Starting Epoch <span class="hljs-number">3</span>:
+Training loss = <span class="hljs-number">54.248390</span>, training accuracy = <span class="hljs-number">0.982823</span>
+Evaluation accuracy = <span class="hljs-number">0.984075</span>
+Starting Epoch <span class="hljs-number">4</span>:
+Training loss = <span class="hljs-number">45.213406</span>, training accuracy = <span class="hljs-number">0.985560</span>
+Evaluation accuracy = <span class="hljs-number">0.985276</span>
+Starting Epoch <span class="hljs-number">5</span>:
+Training loss = <span class="hljs-number">38.868435</span>, training accuracy = <span class="hljs-number">0.987764</span>
+Evaluation accuracy = <span class="hljs-number">0.986278</span>
+Starting Epoch <span class="hljs-number">6</span>:
+Training loss = <span class="hljs-number">34.078186</span>, training accuracy = <span class="hljs-number">0.989149</span>
+Evaluation accuracy = <span class="hljs-number">0.987881</span>
+Starting Epoch <span class="hljs-number">7</span>:
+Training loss = <span class="hljs-number">30.138697</span>, training accuracy = <span class="hljs-number">0.990451</span>
+Evaluation accuracy = <span class="hljs-number">0.988181</span>
+Starting Epoch <span class="hljs-number">8</span>:
+Training loss = <span class="hljs-number">26.854443</span>, training accuracy = <span class="hljs-number">0.991520</span>
+Evaluation accuracy = <span class="hljs-number">0.988682</span>
+Starting Epoch <span class="hljs-number">9</span>:
+Training loss = <span class="hljs-number">24.039650</span>, training accuracy = <span class="hljs-number">0.992405</span>
+Evaluation accuracy = <span class="hljs-number">0.989083</span>
+</code></pre>
+<h4><a class="anchor" aria-hidden="true" id="mpi"></a><a href="#mpi" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<p>只要有多个GPU,MPI既适用于单节点,也适用于多节点。</p>
+<ol>
+<li>创建<code>mnist_dist.py</code>。</li>
+</ol>
+<pre><code class="hljs css language-python"><span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
+    train_mnist_cnn()
+</code></pre>
+<ol start="2">
+<li>为MPI生成一个hostfile,例如下面的hostfile在一个节点上使用了2个进程(即2个GPU):</li>
+</ol>
+<pre><code class="hljs css language-txt">localhost:<span class="hljs-number">2</span>
+</code></pre>
+<ol start="3">
+<li>通过<code>mpiexec</code>启动训练:</li>
+</ol>
+<pre><code class="hljs css language-sh">mpiexec --hostfile host_file python mnist_dist.py
+</code></pre>
+<p>与单GPU训练相比,它同样可以带来速度的提升:</p>
+<pre><code class="hljs">Starting Epoch <span class="hljs-number">0</span>:
+Training loss = <span class="hljs-number">383.969543</span>, training accuracy = <span class="hljs-number">0.886402</span>
+Evaluation accuracy = <span class="hljs-number">0.954327</span>
+Starting Epoch <span class="hljs-number">1</span>:
+Training loss = <span class="hljs-number">97.531479</span>, training accuracy = <span class="hljs-number">0.969451</span>
+Evaluation accuracy = <span class="hljs-number">0.977163</span>
+Starting Epoch <span class="hljs-number">2</span>:
+Training loss = <span class="hljs-number">67.166870</span>, training accuracy = <span class="hljs-number">0.978516</span>
+Evaluation accuracy = <span class="hljs-number">0.980769</span>
+Starting Epoch <span class="hljs-number">3</span>:
+Training loss = <span class="hljs-number">53.369656</span>, training accuracy = <span class="hljs-number">0.983040</span>
+Evaluation accuracy = <span class="hljs-number">0.983974</span>
+Starting Epoch <span class="hljs-number">4</span>:
+Training loss = <span class="hljs-number">45.100403</span>, training accuracy = <span class="hljs-number">0.985777</span>
+Evaluation accuracy = <span class="hljs-number">0.986078</span>
+Starting Epoch <span class="hljs-number">5</span>:
+Training loss = <span class="hljs-number">39.330826</span>, training accuracy = <span class="hljs-number">0.987447</span>
+Evaluation accuracy = <span class="hljs-number">0.987179</span>
+Starting Epoch <span class="hljs-number">6</span>:
+Training loss = <span class="hljs-number">34.655270</span>, training accuracy = <span class="hljs-number">0.988799</span>
+Evaluation accuracy = <span class="hljs-number">0.987780</span>
+Starting Epoch <span class="hljs-number">7</span>:
+Training loss = <span class="hljs-number">30.749735</span>, training accuracy = <span class="hljs-number">0.989984</span>
+Evaluation accuracy = <span class="hljs-number">0.988281</span>
+Starting Epoch <span class="hljs-number">8</span>:
+Training loss = <span class="hljs-number">27.422146</span>, training accuracy = <span class="hljs-number">0.991319</span>
+Evaluation accuracy = <span class="hljs-number">0.988582</span>
+Starting Epoch <span class="hljs-number">9</span>:
+Training loss = <span class="hljs-number">24.548153</span>, training accuracy = <span class="hljs-number">0.992171</span>
+Evaluation accuracy = <span class="hljs-number">0.988682</span>
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="针对分布式训练的优化"></a><a href="#针对分布式训练的优化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>SINGA为分布式训练提供了多种优化策略,以降低模块间的通信成本。参考<code>DistOpt</code>的API,了解每种策略的配置。</p>
+<p>当我们使用<code>model.Model</code>建立模型时,我们需要在<code>training_one_batch</code>方法中启用分布式训练的选项,请参考本页顶部的示例代码。我们也可以直接复制这些选项的代码,然后在其他模型中使用。</p>
+<p>有了定义的选项,我们可以在使用<code>model(tx, ty, dist_option, spars)</code>开始训练时,设置对应的参数<code>dist_option</code>和<code>spars</code>。</p>
+<h3><a class="anchor" aria-hidden="true" id="不采取优化手段"></a><a href="#不采取优化手段" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<pre><code class="hljs css language-python">out, loss = model(tx, ty)
+</code></pre>
+<p><code>loss</code>是损失函数的输出张量,例如分类任务中的交叉熵。</p>
+<h3><a class="anchor" aria-hidden="true" id="半精度梯度(half-precision-gradients)"></a><a href="#半精度梯度(half-precision-gradients)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
+<pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'fp16'</span>)
+</code></pre>
+<p>在调用all-reduce之前,它将每个梯度值转换为16-bit表示(即半精度)。</p>
+<h3><a class="anchor" aria-hidden="true" id="部分同步(partial-synchronization)"></a><a href="#部分同步(partial-synchronization)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'partialUpdate'</span>)
+</code></pre>
+<p>在每一次迭代中,每个rank都做本地SGD更新。然后,只对一个部分的参数进行平均同步,从而节省了通信成本。分块大小是在创建<code>DistOpt</code>实例时配置的。</p>
+<h3><a class="anchor" aria-hidden="true" id="梯度稀疏化(gradient-sparsification)"></a><a href="#梯度稀疏化(gradient-sparsification)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
+<p>该策略应用稀疏化方案来选择梯度的子集进行all-reduce,有两种方式:</p>
+<ul>
+<li>选择前k大的元素,spars是被选择的元素的一部分(比例在0 - 1之间)。</li>
+</ul>
+<pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'sparseTopK'</span>, spars = spars)
+</code></pre>
+<ul>
+<li>所有绝对值大于预定义阈值的梯度都会被选中。</li>
+</ul>
+<pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'sparseThreshold'</span>, spars = spars)
+</code></pre>
+<p>超参数在创建<code>DistOpt</code>实例时配置。</p>
+<h2><a class="anchor" aria-hidden="true" id="实现"></a><a href="#实现" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>本节主要是让开发者了解分布训练模块的代码是如何实现的。</p>
+<h3><a class="anchor" aria-hidden="true" id="nccl-communicator的c接口"></a><a href="#nccl-communicator的c接口" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>首先,通信层是用C语言<a href="https://github.com/apache/singa/blob/master/src/io/communicator.cc">communicator.cc</a>编写的,它调用用NCCL库进行集体通信。</p>
+<p>communicator有两个构造器,一个是MPI的,另一个是Multiprocess的。</p>
+<p>(i) MPI构造器</p>
+<p>构造器首先先获取全局rank和world_size,计算出本地rank,然后由rank 0生成NCCL ID并广播给每个rank。之后,它调用setup函数来初始化NCCL communicator、cuda流和缓冲区。</p>
+<p>(ii) Python multiprocess构造器</p>
+<p>构造器首先从输入参数中获取rank、world_size和NCCL ID。之后,调用setup函数来初始化NCCL communicator、cuda流和缓冲区。</p>
+<p>在初始化之后,它提供了all-reduce功能来同步模型参数或梯度。例如,synch接收一个输入张量,通过NCCL例程进行all-reduce,在我们调用synch之后,需要调用wait函数来等待all-reduce操作的完成。</p>
+<h3><a class="anchor" aria-hidden="true" id="distopt的python接口"></a><a href="#distopt的python接口" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>然后,python接口提供了一个<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">DistOpt</a>类来封装一个<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">optimizer</a>对象,以执行基于MPI或Multiprocess的分布式训练。在初始化过程中,它创建了一个NCCL communicator对象(来自于上面小节提到的C接口),然后,<code>DistOpt</code>中的每一次all-reduce操作都会用到这个communicator对象。</p>
+<p>在MPI或Multiprocess中,每个进程都有一个独立的rank,它给出了各个进程使用的GPU的信息。训练数据是被拆分的,因此每个进程可以根据一部分训练数据来评估子梯度。一旦每个进程的子梯度被计算出来,就可以将所有进程计算出的子梯度做all-reduce,得到总体随机梯度。</p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#使用">使用</a><ul class="toc-headings"><li><a href="#代码示例">代码示例</a></li><li><a href="#执行命令">执行命令</a></li></ul></li><li><a href="#针对分布式训练的优化">针对分布式训练的优化</a><ul class="toc-headings"><li><a href="#不采取优化手段">不采取优化手段</a></li><li><a href="#半精度梯度(half-precision-gradients)">半精度梯度(Half-precision Gradi [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/2.0.0/examples.html b/content/docs/2.0.0/examples.html
new file mode 100644
index 0000000..bab5a41
--- /dev/null
+++ b/content/docs/2.0.0/examples.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Examples · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<p>本页列出了一些使用SINGA的深度学习任务示例。源代码维护在 <a href="https://github.com/apache/singa/tree/master/examples">Github</a> 上的 SINGA repo 内。对于使用SINGA Python API在CPU或单GPU上运行的例子,它们也可以在<a href="https://colab.research.google.com/">Google Colab</a>上获得。你可以直接在谷歌云上运行它们,而无需在本地设置环境。下面给出了每个例子的链接。</p>
+<h2><a class="anchor" aria-hidden="true" id="图像分类"></a><a href="#图像分类" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>网络模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Simple CNN</td><td>MNIST, CIFAR10, CIFAR100</td><td><a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">Colab</a></td></tr>
+<tr><td>AlexNet</td><td>ImageNet</td><td><a href="">Cpp</a></td></tr>
+<tr><td>VGG</td><td>ImageNet</td><td><a href="">Cpp</a>, <a href="">Python</a>, <a href="https://colab.research.google.com/drive/14kxgRKtbjPCKKsDJVNi3AvTev81Gp_Ds">Colab</a></td></tr>
+<tr><td>XceptionNet</td><td>MNIST, CIFAR10, CIFAR100</td><td><a href="">Python</a></td></tr>
+<tr><td>ResNet</td><td>MNIST, CIFAR10, CIFAR100, CIFAR10</td><td><a href="">Python</a>, <a href="https://colab.research.google.com/drive/1u1RYefSsVbiP4I-5wiBKHjsT9L0FxLm9">Colab</a></td></tr>
+<tr><td>MobileNet</td><td>ImageNet</td><td><a href="https://colab.research.google.com/drive/1HsixqJMIpKyEPhkbB8jy7NwNEFEAUWAf">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="目标检测"></a><a href="#目标检测" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>网络模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Tiny YOLOv2</td><td>Pascal VOC</td><td><a href="https://colab.research.google.com/drive/11V4I6cRjIJNUv5ZGsEGwqHuoQEie6b1T">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="面部及表情识别"></a><a href="#面部及表情识别" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>ArcFace</td><td>Refined MS-Celeb-1M</td><td><a href="https://colab.research.google.com/drive/1qanaqUKGIDtifdzEzJOHjEj4kYzA9uJC">Colab</a></td></tr>
+<tr><td>Emotion FerPlus</td><td><a href="https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data">Facial Expression Recognition Challenge</a></td><td><a href="https://colab.research.google.com/drive/1XHtBQGRhe58PDi4LGYJzYueWBeWbO23r">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="图像生成"></a><a href="#图像生成" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>GAN</td><td>MNIST</td><td><a href="https://colab.research.google.com/drive/1f86MNDW47DJqHoIqWD1tOxcyx2MWys8L">Colab</a></td></tr>
+<tr><td>LSGAN</td><td>MNIST</td><td><a href="https://colab.research.google.com/drive/1C6jNRf28vnFOI9JVM4lpkJPqxsnhxdol">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="机器理解"></a><a href="#机器理解" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Bert-Squad</td><td><a href="https://rajpurkar.github.io/SQuAD-explorer/explore/1.1/dev/">SQuAD v1.1</a></td><td><a href="https://colab.research.google.com/drive/1kud-lUPjS_u-TkDAzihBTw0Vqr0FjCE-">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="文字识别"></a><a href="#文字识别" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Simple LSTM</td><td>IMDB</td><td><a href="">python</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="文本排序"></a><a href="#文本排序" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>BiLSTM</td><td>InsuranceQA</td><td><a href="">python</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="其他"></a><a href="#其他" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<ul>
+<li>MNIST数据集的有限玻尔兹曼机, <a href="">source</a>,
+<a href="https://colab.research.google.com/drive/19996noGu9JyHHkVmp4edBGu7PJSRQKsd">Colab</a>.</li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 18/09/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#图像分类">图像分类</a></li><li><a href="#目标检测">目标检测</a></li><li><a href="#面部及表情识别">面部及表情识别</a></li><li><a href="#图像生成">图像生成</a></li><li><a href="#机器理解">机器理解</a></li><li><a href="#文字识别">文字识别</a></li><li><a href="#文本排序">文本排序</a></li><li><a href="#其他">其他</a></li></ul></nav></div><footer class="nav- [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/2.0.0/examples/index.html b/content/docs/2.0.0/examples/index.html
new file mode 100644
index 0000000..bab5a41
--- /dev/null
+++ b/content/docs/2.0.0/examples/index.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Examples · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<p>本页列出了一些使用SINGA的深度学习任务示例。源代码维护在 <a href="https://github.com/apache/singa/tree/master/examples">Github</a> 上的 SINGA repo 内。对于使用SINGA Python API在CPU或单GPU上运行的例子,它们也可以在<a href="https://colab.research.google.com/">Google Colab</a>上获得。你可以直接在谷歌云上运行它们,而无需在本地设置环境。下面给出了每个例子的链接。</p>
+<h2><a class="anchor" aria-hidden="true" id="图像分类"></a><a href="#图像分类" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>网络模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Simple CNN</td><td>MNIST, CIFAR10, CIFAR100</td><td><a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">Colab</a></td></tr>
+<tr><td>AlexNet</td><td>ImageNet</td><td><a href="">Cpp</a></td></tr>
+<tr><td>VGG</td><td>ImageNet</td><td><a href="">Cpp</a>, <a href="">Python</a>, <a href="https://colab.research.google.com/drive/14kxgRKtbjPCKKsDJVNi3AvTev81Gp_Ds">Colab</a></td></tr>
+<tr><td>XceptionNet</td><td>MNIST, CIFAR10, CIFAR100</td><td><a href="">Python</a></td></tr>
+<tr><td>ResNet</td><td>MNIST, CIFAR10, CIFAR100, CIFAR10</td><td><a href="">Python</a>, <a href="https://colab.research.google.com/drive/1u1RYefSsVbiP4I-5wiBKHjsT9L0FxLm9">Colab</a></td></tr>
+<tr><td>MobileNet</td><td>ImageNet</td><td><a href="https://colab.research.google.com/drive/1HsixqJMIpKyEPhkbB8jy7NwNEFEAUWAf">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="目标检测"></a><a href="#目标检测" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>网络模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Tiny YOLOv2</td><td>Pascal VOC</td><td><a href="https://colab.research.google.com/drive/11V4I6cRjIJNUv5ZGsEGwqHuoQEie6b1T">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="面部及表情识别"></a><a href="#面部及表情识别" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>ArcFace</td><td>Refined MS-Celeb-1M</td><td><a href="https://colab.research.google.com/drive/1qanaqUKGIDtifdzEzJOHjEj4kYzA9uJC">Colab</a></td></tr>
+<tr><td>Emotion FerPlus</td><td><a href="https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data">Facial Expression Recognition Challenge</a></td><td><a href="https://colab.research.google.com/drive/1XHtBQGRhe58PDi4LGYJzYueWBeWbO23r">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="图像生成"></a><a href="#图像生成" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>GAN</td><td>MNIST</td><td><a href="https://colab.research.google.com/drive/1f86MNDW47DJqHoIqWD1tOxcyx2MWys8L">Colab</a></td></tr>
+<tr><td>LSGAN</td><td>MNIST</td><td><a href="https://colab.research.google.com/drive/1C6jNRf28vnFOI9JVM4lpkJPqxsnhxdol">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="机器理解"></a><a href="#机器理解" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Bert-Squad</td><td><a href="https://rajpurkar.github.io/SQuAD-explorer/explore/1.1/dev/">SQuAD v1.1</a></td><td><a href="https://colab.research.google.com/drive/1kud-lUPjS_u-TkDAzihBTw0Vqr0FjCE-">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="文字识别"></a><a href="#文字识别" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Simple LSTM</td><td>IMDB</td><td><a href="">python</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="文本排序"></a><a href="#文本排序" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>BiLSTM</td><td>InsuranceQA</td><td><a href="">python</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="其他"></a><a href="#其他" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<ul>
+<li>MNIST数据集的有限玻尔兹曼机, <a href="">source</a>,
+<a href="https://colab.research.google.com/drive/19996noGu9JyHHkVmp4edBGu7PJSRQKsd">Colab</a>.</li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 18/09/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#图像分类">图像分类</a></li><li><a href="#目标检测">目标检测</a></li><li><a href="#面部及表情识别">面部及表情识别</a></li><li><a href="#图像生成">图像生成</a></li><li><a href="#机器理解">机器理解</a></li><li><a href="#文字识别">文字识别</a></li><li><a href="#文本排序">文本排序</a></li><li><a href="#其他">其他</a></li></ul></nav></div><footer class="nav- [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/2.0.0/git-workflow.html b/content/docs/2.0.0/git-workflow.html
new file mode 100644
index 0000000..3055ce9
--- /dev/null
+++ b/content/docs/2.0.0/git-workflow.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Git Workflow · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ow [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<h2><a class="anchor" aria-hidden="true" id="对于开发者"></a><a href="#对于开发者" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<ol>
+<li><p>将<a href="https://github.com/apache/singa">SINGA Github repository</a> fork到你自己的Github账户。</p></li>
+<li><p>从你自己的git仓库中clone <strong>repo</strong> (short for repository):</p>
+<pre><code class="hljs css language-shell">git clone https://github.com/&lt;Github account&gt;/singa.git
+git remote add upstream https://github.com/apache/singa.git
+</code></pre></li>
+<li><p>创建一个新的分支(例如 <code>feature-foo</code> 或 <code>fixbug-foo</code>),在这个分支上工作并提交你的代码:</p>
+<pre><code class="hljs css language-shell">git checkout dev
+git checkout -b feature-foo
+<span class="hljs-meta">#</span><span class="bash"> write your code</span>
+git add &lt;created/updated files&gt;
+git commit
+</code></pre>
+<p>commit信息应包括:</p>
+<ul>
+<li>一个概括性的标题。</li>
+<li>详细的描述。如果提交是为了修复bug,描述中最好包括问题的简短复现;如果是新功能,可以描述新功能的动机/目的。</li>
+</ul>
+<p>如果您的分支有很多小的commit,您需要通过:</p>
+<pre><code class="hljs css language-shell">git rebase -i &lt;commit id&gt;
+</code></pre>
+<p>你可以<a href="https://help.github.com/en/articles/about-git-rebase">压制和重写</a>提交的内容。</p></li>
+<li><p>当你在写代码的时候,SINGA的<code>dev</code>分支可能已经被别人更新了;在这种情况下,你需要拉取最新的<code>dev</code>分支:</p>
+<pre><code class="hljs css language-shell">git checkout dev
+git pull upstream dev:dev
+</code></pre></li>
+<li><p>将<code>feature-foo</code> <a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">rebase</a>到<code>dev</code>分支上,并将提交的内容推送到自己的Github账户(你刚刚创建的新分支),rebase操作是为了清理提交历史。提交当前工作后,应执行以下 git 指令:</p>
+<pre><code class="hljs css language-shell">git checkout feature-foo
+git rebase dev
+git push origin feature-foo:feature-foo
+</code></pre>
+<p>Rebase命令的<a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">操作步骤</a>如下: &quot;这个操作的工作原理是进入到两个分支(你所在的分支和你要rebase的分支)的共同来源 -&gt; 获取你所在分支的每次commit所引入的差异 -&gt; 将这些差异保存到临时文件中 -&gt; 将当前分支重置为与你要rebase的分支相同的commit -&gt; 最后依次修改每个差异。&quot;</p>
+<p>因此,执行后,你还是在特性分支上,但你自己的提交ID/hash被改变了,因为diffs是在rebase时提交的;而且你的分支现在有来自<code>dev</code>分支和你自己分支的最新代码。</p></li>
+<li><p>在 Github 网站上创建一个针对 apache/singa <code>dev</code>分支的pull request(PR)。如果你想通知其他在相同文件上工作过的贡献者,你可以在Github上找到文件,然后点击 &quot;Blame&quot;,就可以看到最后修改代码的人的逐行注释。然后,你可以在PR描述中加上@username,就可以立即ping到他们。请说明该贡献是你的原创作品,并且你在项目的开源许可下将该作品授权给项目。你的新分支的进一步提交(例如,bug修复)将由Github自动添加到这个pull request中。</p></li>
+<li><p>接下来等待committer审核PR。在这段时间里,SINGA的<code>dev</code>可能已经被其他人更新了,这时你需要<a href="https://docs.fast.ai/dev/git.html#how-to-keep-your-feature-branch-up-to-date">合并</a>最新的<code>dev</code>来解决冲突。有些人将PR重新<a href="https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request">rebase到最新的dev</a>上,而不是合并。但是,如果其他开发者获取这个PR来添加新的功能,然后再发送PR,那么rebase操作会在未来的PR中引入<strong>重复的提交</strong>(不同的哈希)。关于何时避免使用rebase的细节,请参见<a href="https://www.atlassian.com/git/tutorials/merging-vs-rebasing">The Golden Rule  [...]
+</ol>
+<h2><a class="anchor" aria-hidden="true" id="对于committers"></a><a href="#对于committers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>Committer可以将PR合并到上游 repo 的 dev 分支。在合并每一个PR之前,提交者应该做到:</p>
+<ul>
+<li>检查commit信息(内容和格式)</li>
+<li>检查对现有代码的修改,API的变化应该被记录下来</li>
+<li>检查Travis测试结果,检查代码/文档格式和单元测试。</li>
+</ul>
+<p>合并PR的方式有两种:</p>
+<ul>
+<li><p>在Github上,按照<a href="https://gitbox.apache.org/setup/">说明</a>将你的Apache账户与Github账户链接,之后你就可以直接在GitHub上合并PR了。</p></li>
+<li><p>通过命令行合并pull request到<a href="https://github.com/apache/singa/pull/xxx">https://github.com/apache/singa/pull/xxx</a>,应执行以下指令:</p>
+<pre><code class="hljs css language-shell">git clone https://github.com/apache/singa.git
+git remote add asf https://gitbox.apache.org/repos/asf/singa.git
+git fetch origin pull/xxx/head:prxxx
+git checkout dev
+git merge --no-ff prxxx
+git push asf dev:dev
+</code></pre>
+<p>不要使用rebase来合并PR,并禁用fast forward。</p></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#对于开发者">对于开发者</a></li><li><a href="#对于committers">对于Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a hr [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/2.0.0/git-workflow/index.html b/content/docs/2.0.0/git-workflow/index.html
new file mode 100644
index 0000000..3055ce9
--- /dev/null
+++ b/content/docs/2.0.0/git-workflow/index.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Git Workflow · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ow [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<h2><a class="anchor" aria-hidden="true" id="对于开发者"></a><a href="#对于开发者" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<ol>
+<li><p>将<a href="https://github.com/apache/singa">SINGA Github repository</a> fork到你自己的Github账户。</p></li>
+<li><p>从你自己的git仓库中clone <strong>repo</strong> (short for repository):</p>
+<pre><code class="hljs css language-shell">git clone https://github.com/&lt;Github account&gt;/singa.git
+git remote add upstream https://github.com/apache/singa.git
+</code></pre></li>
+<li><p>创建一个新的分支(例如 <code>feature-foo</code> 或 <code>fixbug-foo</code>),在这个分支上工作并提交你的代码:</p>
+<pre><code class="hljs css language-shell">git checkout dev
+git checkout -b feature-foo
+<span class="hljs-meta">#</span><span class="bash"> write your code</span>
+git add &lt;created/updated files&gt;
+git commit
+</code></pre>
+<p>commit信息应包括:</p>
+<ul>
+<li>一个概括性的标题。</li>
+<li>详细的描述。如果提交是为了修复bug,描述中最好包括问题的简短复现;如果是新功能,可以描述新功能的动机/目的。</li>
+</ul>
+<p>如果您的分支有很多小的commit,您需要通过:</p>
+<pre><code class="hljs css language-shell">git rebase -i &lt;commit id&gt;
+</code></pre>
+<p>你可以<a href="https://help.github.com/en/articles/about-git-rebase">压制和重写</a>提交的内容。</p></li>
+<li><p>当你在写代码的时候,SINGA的<code>dev</code>分支可能已经被别人更新了;在这种情况下,你需要拉取最新的<code>dev</code>分支:</p>
+<pre><code class="hljs css language-shell">git checkout dev
+git pull upstream dev:dev
+</code></pre></li>
+<li><p>将<code>feature-foo</code> <a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">rebase</a>到<code>dev</code>分支上,并将提交的内容推送到自己的Github账户(你刚刚创建的新分支),rebase操作是为了清理提交历史。提交当前工作后,应执行以下 git 指令:</p>
+<pre><code class="hljs css language-shell">git checkout feature-foo
+git rebase dev
+git push origin feature-foo:feature-foo
+</code></pre>
+<p>Rebase命令的<a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">操作步骤</a>如下: &quot;这个操作的工作原理是进入到两个分支(你所在的分支和你要rebase的分支)的共同来源 -&gt; 获取你所在分支的每次commit所引入的差异 -&gt; 将这些差异保存到临时文件中 -&gt; 将当前分支重置为与你要rebase的分支相同的commit -&gt; 最后依次修改每个差异。&quot;</p>
+<p>因此,执行后,你还是在特性分支上,但你自己的提交ID/hash被改变了,因为diffs是在rebase时提交的;而且你的分支现在有来自<code>dev</code>分支和你自己分支的最新代码。</p></li>
+<li><p>在 Github 网站上创建一个针对 apache/singa <code>dev</code>分支的pull request(PR)。如果你想通知其他在相同文件上工作过的贡献者,你可以在Github上找到文件,然后点击 &quot;Blame&quot;,就可以看到最后修改代码的人的逐行注释。然后,你可以在PR描述中加上@username,就可以立即ping到他们。请说明该贡献是你的原创作品,并且你在项目的开源许可下将该作品授权给项目。你的新分支的进一步提交(例如,bug修复)将由Github自动添加到这个pull request中。</p></li>
+<li><p>接下来等待committer审核PR。在这段时间里,SINGA的<code>dev</code>可能已经被其他人更新了,这时你需要<a href="https://docs.fast.ai/dev/git.html#how-to-keep-your-feature-branch-up-to-date">合并</a>最新的<code>dev</code>来解决冲突。有些人将PR重新<a href="https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request">rebase到最新的dev</a>上,而不是合并。但是,如果其他开发者获取这个PR来添加新的功能,然后再发送PR,那么rebase操作会在未来的PR中引入<strong>重复的提交</strong>(不同的哈希)。关于何时避免使用rebase的细节,请参见<a href="https://www.atlassian.com/git/tutorials/merging-vs-rebasing">The Golden Rule  [...]
+</ol>
+<h2><a class="anchor" aria-hidden="true" id="对于committers"></a><a href="#对于committers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>Committer可以将PR合并到上游 repo 的 dev 分支。在合并每一个PR之前,提交者应该做到:</p>
+<ul>
+<li>检查commit信息(内容和格式)</li>
+<li>检查对现有代码的修改,API的变化应该被记录下来</li>
+<li>检查Travis测试结果,检查代码/文档格式和单元测试。</li>
+</ul>
+<p>合并PR的方式有两种:</p>
+<ul>
+<li><p>在Github上,按照<a href="https://gitbox.apache.org/setup/">说明</a>将你的Apache账户与Github账户链接,之后你就可以直接在GitHub上合并PR了。</p></li>
+<li><p>通过命令行合并pull request到<a href="https://github.com/apache/singa/pull/xxx">https://github.com/apache/singa/pull/xxx</a>,应执行以下指令:</p>
+<pre><code class="hljs css language-shell">git clone https://github.com/apache/singa.git
+git remote add asf https://gitbox.apache.org/repos/asf/singa.git
+git fetch origin pull/xxx/head:prxxx
+git checkout dev
+git merge --no-ff prxxx
+git push asf dev:dev
+</code></pre>
+<p>不要使用rebase来合并PR,并禁用fast forward。</p></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#对于开发者">对于开发者</a></li><li><a href="#对于committers">对于Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a hr [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/graph.html b/content/docs/2.0.0/graph.html
similarity index 51%
copy from content/docs/graph.html
copy to content/docs/2.0.0/graph.html
index 67407ad..839182e 100644
--- a/content/docs/graph.html
+++ b/content/docs/2.0.0/graph.html
@@ -1,88 +1,16 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Model · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership. [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Model · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership. [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              var headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                var el = event.target;
-                while(el !== headings){
-                  if (el.tagName === 'A') {
-                    document.body.classList.remove('tocActive');
-                    break;
-                  } else{
-                    el = el.parentNode;
-                  }
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/graph.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Model</h1></header><article><div><span><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreeme [...]
-<p>The forward and backward propagation in a neural network can be represented
-using a set of operations such as convolution and pooling. Each operation takes
-some input <a href="./tensor">tensors</a> and applies an <a href="./autograd">operator</a> to generate
-output tensors. By representing each operator as a node and each tensor as an
-edge, all operations form a computational graph. With the computational graph,
-speed and memory optimization can be conducted by scheduling the execution of
-the operations and memory allocation/release intelligently. In SINGA, users only
-need to define the neural network model using the
-<a href="https://github.com/apache/singa/blob/master/python/singa/model.py">Model</a> API.
-The graph is constructed and optimized at the C++ backend automatically.</p>
-<p>In this way, on the one hand, users implement a network using the
-<a href="./graph">Model</a> API following the imperative programming style like PyTorch.
-Different from PyTorch which recreates the operations in every iteration, SINGA
-buffers the operations to create a computational graph implicitly (when this
-feature is enabled) after the first iteration. Therefore, on the other hand,
-SINGA has a similar computational graph as the one created by libraries using
-declarative programming, e.g., TensorFlow. Consequently, it can enjoy the
-optimizations done over the graph.</p>
-<h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>The following code illustrates the usage of the <code>Model</code> API.</p>
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<p>神经网络中的前向和反向传播可以用一组操作来表示,比如卷积和池化。每个操作都需要一些输入的<a href="./tensor">tensors</a>,并应用一个<a href="./autograd">operator</a>来生成输出的张量。通过将每个运算符表示为一个节点,将每个张量表示为一条边,所有的运算就形成了一个计算图。有了计算图,可以通过调度运算的执行和内存的智能分配/释放来进行速度和内存优化。在SINGA中,用户只需要使用<a href="https://github.com/apache/singa/blob/master/python/singa/model.py">Model</a> API定义神经网络模型,计算图则会在C++后台自动构建和优化。</p>
+<p>这样,一方面,用户使用<a href="./graph">Model</a> API按照PyTorch那样的命令式编程风格实现网络。而与PyTorch在每次迭代中重新创建操作不同的是,SINGA在第一次迭代后就会缓冲操作,隐式地创建计算图(当该功能被启用时)。因此,另一方面,SINGA的计算图与使用声明式编程的库(如TensorFlow)创建的计算图类似,因而它可以享受在图上进行的优化。</p>
+<h2><a class="anchor" aria-hidden="true" id="样例"></a><a href="#样例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>下面的代码说明了<code>Model</code>API的用法:</p>
 <ol>
-<li>Implement the new model as a subclass of the Model class.</li>
+<li>将新模型实现为Model类的子类:</li>
 </ol>
 <pre><code class="hljs css language-Python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">CNN</span><span class="hljs-params">(model.Model)</span>:</span>
 
@@ -116,7 +44,7 @@ optimizations done over the graph.</p>
         <span class="hljs-keyword">return</span> out, loss
 </code></pre>
 <ol start="2">
-<li>Create an instance of model, optimizer, device, etc. Compile the model</li>
+<li>创建model、optimizer、device等的实例。编译模型:</li>
 </ol>
 <pre><code class="hljs css language-python">model = CNN()
 
@@ -135,7 +63,7 @@ ty = tensor.Tensor((batch_size, num_classes), dev, tensor.int32)
 model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=<span class="hljs-literal">True</span>, sequential=<span class="hljs-literal">False</span>)
 </code></pre>
 <ol start="3">
-<li>Train the model iteratively</li>
+<li>迭代训练:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">for</span> b <span class="hljs-keyword">in</span> range(num_train_batch):
     <span class="hljs-comment"># generate the next mini-batch</span>
@@ -148,26 +76,22 @@ model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=<
     <span class="hljs-comment"># Training with one batch</span>
     out, loss = model(tx, ty)
 </code></pre>
-<p>A Google Colab notebook of this example is available
-<a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">here</a>.</p>
-<p>More examples:</p>
+<p>这个例子的Google Colab notebook可以在<a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">这里</a>找到。</p>
+<p>更多例子:</p>
 <ul>
 <li><a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP</a></li>
 <li><a href="https://github.com/apache/singa/blob/master/examples/cnn/model/cnn.py">CNN</a></li>
 <li><a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">ResNet</a></li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="implementation"></a><a href="#implementation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<h3><a class="anchor" aria-hidden="true" id="graph-construction"></a><a href="#graph-construction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<p>SINGA constructs the computational graph in three steps:</p>
+<h2><a class="anchor" aria-hidden="true" id="实现"></a><a href="#实现" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<h3><a class="anchor" aria-hidden="true" id="图的构建"></a><a href="#图的构建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>SINGA分三步构建计算图:</p>
 <ol>
-<li>buffer the operations</li>
-<li>analyze the dependencies operations</li>
-<li>create the nodes and edges based on the dependencies</li>
+<li>将操作保存在缓冲区。</li>
+<li>分析操作的依赖性。</li>
+<li>根据依赖关系创建节点和边。</li>
 </ol>
-<p>Take the matrix multiplication operation from the dense layer of a
-<a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP model</a>
-as an example. The operation is called in the <code>forward</code> function of the MLP
-class</p>
+<p>以MLP模型的dense层的矩阵乘法运算为例,该操作会在<a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP model</a>的前向函数中被调用:</p>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MLP</span><span class="hljs-params">(model.Model)</span>:</span>
 
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, data_size=<span class="hljs-number">10</span>, perceptron_size=<span class="hljs-number">100</span>, num_classes=<span class="hljs-number">10</span>)</span>:</span>
@@ -179,14 +103,14 @@ class</p>
         y = self.linear1(inputs)
         ...
 </code></pre>
-<p>The <code>Linear</code> layer is composed of the <code>mutmul</code> operator. <code>autograd</code> implements
-the <code>matmul</code> operator by calling the function <code>Mult</code> exposed from CPP via SWIG.</p>
+<p><code>线性</code>层由<code>mutmul</code>运算符组成,<code>autograd</code>通过SWIG调用CPP中提供的<code>Mult</code>函数来实现<code>matmul</code>运算符。</p>
 <pre><code class="hljs css language-python"><span class="hljs-comment"># implementation of matmul()</span>
 singa.Mult(inputs, w)
 </code></pre>
 <p>At the backend, the <code>Mult</code> function is implemented by calling <code>GEMV</code> a CBLAS
 function. Instead of calling <code>GEMV</code> directly, <code>Mult</code> submits <code>GEMV</code> and the
-arguments to the device as follows,</p>
+arguments to the device as follows,
+在后端,<code>Mult</code>函数是通过调用<code>GEMV</code>一个CBLAS函数来实现的。但<code>Mult</code>没有直接调用<code>GEMV</code>,而是将<code>GEMV</code>和参数提交给设备,具体如下。</p>
 <pre><code class="hljs css language-c++"><span class="hljs-comment">// implementation of Mult()</span>
 C-&gt;device()-&gt;Exec(
     [a, A, b, B, CRef](Context *ctx) <span class="hljs-keyword">mutable</span> {
@@ -194,56 +118,19 @@ C-&gt;device()-&gt;Exec(
     },
     read_blocks, {C-&gt;block()});
 </code></pre>
-<p>The <code>Exec</code> function of <code>Device</code> buffers the function and its arguments. In
-addition, it also has the information about the blocks (a block is a chunk of
-memory for a tensor) to be read and written by this function.</p>
-<p>Once <code>Model.forward()</code> has been executed once, all operations are buffered by
-<code>Device</code>. Next, the read/write information of all operations are analyzed to
-create the computational graph. For example, if a block <code>b</code> is written by one
-operation O1 and is later read by another operation O2, we would know O2 depends
-on O1 and there is a directed edge from A to B, which represents block <code>b</code> (or
-its tensor). After that a directed acyclic graph is constructed as shown below.
-The graph is constructed once.</p>
+<p><code>Device</code>的<code>Exec</code>函数对函数及其参数进行缓冲。此外,它还拥有这个函数要读写的块的信息(块是指张量的内存块)。</p>
+<p>一旦<code>Model.forward()</code>被执行一次,所有的操作就会被<code>Device</code>缓冲。接下来,对所有操作的读写信息进行分析,用来建立计算图。例如,如果一个块<code>b</code>被一个操作O1写入,之后又被另一个操作O2读出,我们就会知道O2依赖于O1并且有一条从A到B的有向边,它代表了块<code>b</code>(或其张量)。之后我们就构建了一个有向无环图,如下图所示。该图会构建一次。</p>
 <p><img src="/docs/assets/GraphOfMLP.png" alt="The computational graph of MLP"></p>
-<p><br/><strong>Figure 1 - The computational graph of the MLP example.</strong></p>
-<h3><a class="anchor" aria-hidden="true" id="optimization"></a><a href="#optimization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>Currently, the following optimizations are done based on the computational
-graph.</p>
-<p><strong>Lazy allocation</strong> When tensor/blocks are created, devices do not allocate
-memory for them immediately. Instead, when the block is accessed for the first
-time, the memory is allocated.</p>
-<p><strong>Automatic recycling</strong> The reference count of each tensor/block is calculated
-based on the graph. Before executing the operations, the reference count is the
-number of operations that read this block. During the execution, once an
-operation is executed, the reference count of the every input block is decreased
-by 1. If one block's reference count reaches 0, it means that this block will
-not be read again in the remaining operations. Therefore, its memory can be
-released safely. In addition, SINGA tracks the usage of the block outside of the
-graph. If a block is used by Python code (not by autograd operators), it will
-not be recycled.</p>
-<p><strong>Memory sharing</strong> SINGA uses memory pool, e.g.,
-<a href="https://github.com/NVIDIA/cnmem">CnMem</a> to manage CUDA memory. With <em>Automatic
-recycling</em> and memory pool, SINGA can share the memory among tensors. Consider
-two operations <code>c = a + b</code> and <code>d=2xc</code>. Before executing the second operation,
-according to <em>Lazy allocation</em>, the memory of d should be allocated. Suppose <code>a</code>
-is not used in the rest operations. According to Automatic recycling, the block
-of <code>a</code> will be released after the first operation. Therefore, SINGA would submit
-four operations to the CUDA stream: addition, free <code>a</code>, malloc <code>b</code>, and
-multiplication. The memory pool is then able to share the memory released by <code>a</code>
-with <code>b</code> instead of ask the GPU to do real malloc for <code>b</code>.</p>
-<p>Other optimization techniques e.g., from compliers, such as common
-sub-expression elimination and parallelizing operations on different CUDA
-streams can also be applied.</p>
-<h2><a class="anchor" aria-hidden="true" id="new-operator"></a><a href="#new-operator" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>Each operator defined in <code>autograd</code> module implements two functions: forward and
-backward, which are implemented by calling the operators from the backend. To
-add a new operator in <code>autograd</code>, you need to add the multiple operators at the
-backend.</p>
-<p>Take the
-<a href="https://github.com/apache/singa/blob/master/python/singa/autograd.py">Conv2d</a>
-operator as an example, at the Python side, the forward and backward function
-are implemented by calling the operators from the backend depending on the
-device type.</p>
+<p><br/><strong>Figure 1 - MLP例子的计算图</strong></p>
+<h3><a class="anchor" aria-hidden="true" id="优化"></a><a href="#优化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>目前,基于计算图进行了以下优化:</p>
+<p><strong>惰性分配</strong> 当创建张量/块时,设备不会立即为它们分配内存。相反,是在第一次访问块时,才会分配内存。</p>
+<p><strong>自动回收</strong>  每个张量/块的参考计数是根据图计算出来的。在执行操作之前,参考计数是读取这个块的操作次数。在执行过程中,一旦执行了一个操作,每一个输入块的参考数就会减少1,如果一个块的参考数达到了0,就意味着这个块在剩下的操作中不会再被读取。因此,它的内存可以被安全释放。此外,SINGA还会跟踪图外的块的使用情况。如果一个块被Python代码使用(而不是被autograd操作符使用),它将不会被回收。</p>
+<p><strong>内存共享</strong>  SINGA使用内存池,如<a href="https://github.com/NVIDIA/cnmem">CnMem</a>来管理CUDA内存。有了自动回收和内存池,SINGA就可以在张量之间共享内存。考虑两个操作<code>c=a+b</code>和<code>d=2xc</code>。在执行第二个操作之前,根据惰性分配原则,应该分配d的内存。假设<code>a</code>在其余操作中没有使用。根据自动回收,<code>a</code>的块将在第一次操作后被释放。因此,SINGA会向CUDA流提交四个操作:加法、释放<code>a</code>、分配<code>b</code>和乘法。这样,内存池就可以将<code>a</code>释放的内存与<code>b</code>共享,而不是要求GPU为<code>b</code>做真正的malloc。</p>
+<p>其他的优化技术,如来自编译器的优化技术,如常见的子表达式消除和不同CUDA流上的并行化操作也可以应用。</p>
+<h2><a class="anchor" aria-hidden="true" id="新的操作符"></a><a href="#新的操作符" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p><code>autograd</code>模块中定义的每个运算符都实现了两个功能:前向和反向,通过在后台调用运算符来实现。如果要在<code>autograd</code>中添加一个新的运算符,需要在后台添加多个运算符。</p>
+<p>以<a href="https://github.com/apache/singa/blob/master/python/singa/autograd.py">Conv2d</a>运算符为例,在Python端,根据设备类型,从后台调用运算符来实现前向和反向功能:</p>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">_Conv2d</span><span class="hljs-params">(Operation)</span>:</span>
 
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">forward</span><span class="hljs-params">(self, x, W, b=None)</span>:</span>
@@ -281,27 +168,17 @@ device type.</p>
         <span class="hljs-keyword">else</span>:
             <span class="hljs-keyword">return</span> dx, dW
 </code></pre>
-<p>For each operator at the backend, it should be implemented in the following way:</p>
+<p>对于后台的每一个操作符,应按以下方式实现:</p>
 <ul>
-<li><p>Suppose the operator is <code>foo()</code>; its real implementation should be wrapped in
-another function e.g., <code>_foo()</code>. <code>foo()</code> passes <code>_foo</code> together with the
-arguments as a lambda function to <code>Device</code>'s <code>Exec</code> function for buffering.
-The blocks to be read and written are also passed to <code>Exec</code>.</p></li>
-<li><p>All arguments used in the lambda expression need to be captured according to
-the following rules.</p>
+<li><p>假设操作符是<code>foo()</code>,它的真正实现应该包装在另一个函数中,例如<code>_foo()</code>。<code>foo()</code>将<code>_foo</code>和参数一起作为lambda函数传递给<code>Device</code>的<code>Exec</code>函数进行缓冲,要读和写的块也同时被传递给<code>Exec</code>。</p></li>
+<li><p>lambda表达式中使用的所有参数都需要根据以下规则获取:</p>
 <ul>
-<li><p><code>capture by value</code>: If the argument variable is a local variable or will be
-immediately released (e.g. intermediate tensors). Otherwise, these variables
-will be destroyed once <code>foo()</code> exists.</p></li>
-<li><p><code>capture by reference</code>:If the variable is recorded on the python side or a
-persistent variable (e.g. parameter W and ConvHand in the Conv2d class).</p></li>
-<li><p><code>mutable</code>: The lambda expression should have the mutable tag if a variable
-captured by value is modified in <code>_foo()</code></p></li>
+<li><p><code>值捕获</code>: 如果参数变量是一个局部变量,或者将被立刻释放(例如,中间时序)。否则,一旦<code>foo()</code>存在,这些变量将被销毁。</p></li>
+<li><p><code>引用捕获</code>:如果变量是记录在python端或者是一个持久变量(例如Conv2d类中的参数W和ConvHand)。</p></li>
+<li><p><code>可变捕获</code>: 如果在<code>_foo()</code>中修改了由值捕获的变量,则lambda表达式应带有mutable(可变)标签。</p></li>
 </ul></li>
 </ul>
-<p>Here is one
-<a href="https://github.com/apache/singa/blob/master/src/model/operation/convolution.cc">example</a>
-operator implemented at the backend.</p>
+<p>下面是一个在后台实现的操作的<a href="https://github.com/apache/singa/blob/master/src/model/operation/convolution.cc">例子</a>:</p>
 <pre><code class="hljs css language-c++"><span class="hljs-function">Tensor <span class="hljs-title">GpuConvBackwardx</span><span class="hljs-params">(<span class="hljs-keyword">const</span> Tensor &amp;dy, <span class="hljs-keyword">const</span> Tensor &amp;W, <span class="hljs-keyword">const</span> Tensor &amp;x,
                         <span class="hljs-keyword">const</span> CudnnConvHandle &amp;cch)</span> </span>{
   CHECK_EQ(dy.device()-&gt;lang(), kCuda);
@@ -335,31 +212,31 @@ operator implemented at the backend.</p>
 }
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="benchmark"></a><a href="#benchmark" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<h3><a class="anchor" aria-hidden="true" id="single-node"></a><a href="#single-node" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<h3><a class="anchor" aria-hidden="true" id="单节点"></a><a href="#单节点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
-<li>Experiment settings
+<li>实验设定
 <ul>
-<li>Model
+<li>模型:
 <ul>
-<li>Using layer: ResNet50 in
+<li>使用层: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/autograd/resnet_cifar10.py">resnet.py</a></li>
-<li>Using model: ResNet50 in
+<li>使用模型: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">resnet.py</a></li>
 </ul></li>
 <li>GPU: NVIDIA RTX 2080Ti</li>
 </ul></li>
-<li>Notations
+<li>注释:
 <ul>
-<li><code>s</code> :second</li>
-<li><code>it</code> : iteration</li>
-<li><code>Mem</code>:peak memory usage of single GPU</li>
-<li><code>Throughout</code>:number of images processed per second</li>
-<li><code>Time</code>:total time</li>
-<li><code>Speed</code>:iterations per second</li>
-<li><code>Reduction</code>:the memory usage reduction rate compared with that using layer</li>
-<li><code>Speedup</code>: speedup ratio compared with dev branch</li>
+<li><code>s</code> :second,秒</li>
+<li><code>it</code> : iteration,迭代次数</li>
+<li><code>Mem</code>:peak memory usage of single GPU,单GPU显存峰值</li>
+<li><code>Throughout</code>:number of images processed per second,每秒处理的图像数</li>
+<li><code>Time</code>:total time,总时间</li>
+<li><code>Speed</code>:iterations per second。每秒迭代次数</li>
+<li><code>Reduction</code>:the memory usage reduction rate compared with that using layer,与使用层的内存使用率相比,内存使用率降低了多少</li>
+<li><code>Speedup</code>: speedup ratio compared with dev branch,与dev分支相比的加速率</li>
 </ul></li>
-<li>Result
+<li>结果:
   <table style="text-align: center">
       <tr>
           <th style="text-align: center">Batchsize</th>
@@ -448,22 +325,22 @@ operator implemented at the backend.</p>
   </table>
 </li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="multi-processes"></a><a href="#multi-processes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<h3><a class="anchor" aria-hidden="true" id="多线程"></a><a href="#多线程" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
-<li>Experiment settings
+<li>实验设置:
 <ul>
-<li>API
+<li>API:
 <ul>
-<li>using Layer: ResNet50 in
+<li>使用层: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/autograd/resnet_dist.py">resnet_dist.py</a></li>
-<li>using Model: ResNet50 in
+<li>使用模型: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">resnet.py</a></li>
 </ul></li>
 <li>GPU: NVIDIA RTX 2080Ti * 2</li>
-<li>MPI: two MPI processes on one node</li>
+<li>MPI: 在同一节点上的两个MPI processes</li>
 </ul></li>
-<li>Notations: the same as above</li>
-<li>Result
+<li>注释: 与上面相同</li>
+<li>结果:
   <table style="text-align: center">
       <tr>
           <th style="text-align: center">Batchsize</th>
@@ -552,14 +429,12 @@ operator implemented at the backend.</p>
   </table>
 </li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="conclusion"></a><a href="#conclusion" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<h3><a class="anchor" aria-hidden="true" id="结论"></a><a href="#结论" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <ul>
-<li>Training with the computational graph enabled can significantly reduce the
-memory footprint.</li>
-<li>Currently, there is a little improvement in terms of speed. More optimizations
-can be done towards the efficiency.</li>
+<li>在启用计算图的情况下进行训练,可以显著减少内存占用。</li>
+<li>目前,在速度上有一点改进。在效率方面还可以做更多的优化。</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/4/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/optimizer"><span class="arrow-prev">← </span><span>Optimizer</span></a><a class="docs-next button" href="/docs/onnx"><span>ONNX</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example">Example</a></li><li><a href="#implementation">Implementation</a><ul  [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 04/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#样例">样例</a></li><li><a href="#实现">实现</a><ul class="toc-headings"><li><a href="#图的构建">图的构建</a></li><li><a href="#优化">优化</a></li></ul></li><li><a href="#新的操作符">新的操作符</a></li><li><a href="#benchmark">Benchmark</a><ul class="toc-headings"><li><a href="#单节点">单节点</a></li><li><a href="#多线程">多线程< [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/graph/index.html b/content/docs/2.0.0/graph/index.html
similarity index 51%
copy from content/docs/graph/index.html
copy to content/docs/2.0.0/graph/index.html
index 67407ad..839182e 100644
--- a/content/docs/graph/index.html
+++ b/content/docs/2.0.0/graph/index.html
@@ -1,88 +1,16 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Model · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership. [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Model · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership. [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              var headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                var el = event.target;
-                while(el !== headings){
-                  if (el.tagName === 'A') {
-                    document.body.classList.remove('tocActive');
-                    break;
-                  } else{
-                    el = el.parentNode;
-                  }
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/graph.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Model</h1></header><article><div><span><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreeme [...]
-<p>The forward and backward propagation in a neural network can be represented
-using a set of operations such as convolution and pooling. Each operation takes
-some input <a href="./tensor">tensors</a> and applies an <a href="./autograd">operator</a> to generate
-output tensors. By representing each operator as a node and each tensor as an
-edge, all operations form a computational graph. With the computational graph,
-speed and memory optimization can be conducted by scheduling the execution of
-the operations and memory allocation/release intelligently. In SINGA, users only
-need to define the neural network model using the
-<a href="https://github.com/apache/singa/blob/master/python/singa/model.py">Model</a> API.
-The graph is constructed and optimized at the C++ backend automatically.</p>
-<p>In this way, on the one hand, users implement a network using the
-<a href="./graph">Model</a> API following the imperative programming style like PyTorch.
-Different from PyTorch which recreates the operations in every iteration, SINGA
-buffers the operations to create a computational graph implicitly (when this
-feature is enabled) after the first iteration. Therefore, on the other hand,
-SINGA has a similar computational graph as the one created by libraries using
-declarative programming, e.g., TensorFlow. Consequently, it can enjoy the
-optimizations done over the graph.</p>
-<h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>The following code illustrates the usage of the <code>Model</code> API.</p>
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<p>神经网络中的前向和反向传播可以用一组操作来表示,比如卷积和池化。每个操作都需要一些输入的<a href="./tensor">tensors</a>,并应用一个<a href="./autograd">operator</a>来生成输出的张量。通过将每个运算符表示为一个节点,将每个张量表示为一条边,所有的运算就形成了一个计算图。有了计算图,可以通过调度运算的执行和内存的智能分配/释放来进行速度和内存优化。在SINGA中,用户只需要使用<a href="https://github.com/apache/singa/blob/master/python/singa/model.py">Model</a> API定义神经网络模型,计算图则会在C++后台自动构建和优化。</p>
+<p>这样,一方面,用户使用<a href="./graph">Model</a> API按照PyTorch那样的命令式编程风格实现网络。而与PyTorch在每次迭代中重新创建操作不同的是,SINGA在第一次迭代后就会缓冲操作,隐式地创建计算图(当该功能被启用时)。因此,另一方面,SINGA的计算图与使用声明式编程的库(如TensorFlow)创建的计算图类似,因而它可以享受在图上进行的优化。</p>
+<h2><a class="anchor" aria-hidden="true" id="样例"></a><a href="#样例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>下面的代码说明了<code>Model</code>API的用法:</p>
 <ol>
-<li>Implement the new model as a subclass of the Model class.</li>
+<li>将新模型实现为Model类的子类:</li>
 </ol>
 <pre><code class="hljs css language-Python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">CNN</span><span class="hljs-params">(model.Model)</span>:</span>
 
@@ -116,7 +44,7 @@ optimizations done over the graph.</p>
         <span class="hljs-keyword">return</span> out, loss
 </code></pre>
 <ol start="2">
-<li>Create an instance of model, optimizer, device, etc. Compile the model</li>
+<li>创建model、optimizer、device等的实例。编译模型:</li>
 </ol>
 <pre><code class="hljs css language-python">model = CNN()
 
@@ -135,7 +63,7 @@ ty = tensor.Tensor((batch_size, num_classes), dev, tensor.int32)
 model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=<span class="hljs-literal">True</span>, sequential=<span class="hljs-literal">False</span>)
 </code></pre>
 <ol start="3">
-<li>Train the model iteratively</li>
+<li>迭代训练:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">for</span> b <span class="hljs-keyword">in</span> range(num_train_batch):
     <span class="hljs-comment"># generate the next mini-batch</span>
@@ -148,26 +76,22 @@ model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=<
     <span class="hljs-comment"># Training with one batch</span>
     out, loss = model(tx, ty)
 </code></pre>
-<p>A Google Colab notebook of this example is available
-<a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">here</a>.</p>
-<p>More examples:</p>
+<p>这个例子的Google Colab notebook可以在<a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">这里</a>找到。</p>
+<p>更多例子:</p>
 <ul>
 <li><a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP</a></li>
 <li><a href="https://github.com/apache/singa/blob/master/examples/cnn/model/cnn.py">CNN</a></li>
 <li><a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">ResNet</a></li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="implementation"></a><a href="#implementation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<h3><a class="anchor" aria-hidden="true" id="graph-construction"></a><a href="#graph-construction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<p>SINGA constructs the computational graph in three steps:</p>
+<h2><a class="anchor" aria-hidden="true" id="实现"></a><a href="#实现" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<h3><a class="anchor" aria-hidden="true" id="图的构建"></a><a href="#图的构建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>SINGA分三步构建计算图:</p>
 <ol>
-<li>buffer the operations</li>
-<li>analyze the dependencies operations</li>
-<li>create the nodes and edges based on the dependencies</li>
+<li>将操作保存在缓冲区。</li>
+<li>分析操作的依赖性。</li>
+<li>根据依赖关系创建节点和边。</li>
 </ol>
-<p>Take the matrix multiplication operation from the dense layer of a
-<a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP model</a>
-as an example. The operation is called in the <code>forward</code> function of the MLP
-class</p>
+<p>以MLP模型的dense层的矩阵乘法运算为例,该操作会在<a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP model</a>的前向函数中被调用:</p>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MLP</span><span class="hljs-params">(model.Model)</span>:</span>
 
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, data_size=<span class="hljs-number">10</span>, perceptron_size=<span class="hljs-number">100</span>, num_classes=<span class="hljs-number">10</span>)</span>:</span>
@@ -179,14 +103,14 @@ class</p>
         y = self.linear1(inputs)
         ...
 </code></pre>
-<p>The <code>Linear</code> layer is composed of the <code>mutmul</code> operator. <code>autograd</code> implements
-the <code>matmul</code> operator by calling the function <code>Mult</code> exposed from CPP via SWIG.</p>
+<p><code>线性</code>层由<code>mutmul</code>运算符组成,<code>autograd</code>通过SWIG调用CPP中提供的<code>Mult</code>函数来实现<code>matmul</code>运算符。</p>
 <pre><code class="hljs css language-python"><span class="hljs-comment"># implementation of matmul()</span>
 singa.Mult(inputs, w)
 </code></pre>
 <p>At the backend, the <code>Mult</code> function is implemented by calling <code>GEMV</code> a CBLAS
 function. Instead of calling <code>GEMV</code> directly, <code>Mult</code> submits <code>GEMV</code> and the
-arguments to the device as follows,</p>
+arguments to the device as follows,
+在后端,<code>Mult</code>函数是通过调用<code>GEMV</code>一个CBLAS函数来实现的。但<code>Mult</code>没有直接调用<code>GEMV</code>,而是将<code>GEMV</code>和参数提交给设备,具体如下。</p>
 <pre><code class="hljs css language-c++"><span class="hljs-comment">// implementation of Mult()</span>
 C-&gt;device()-&gt;Exec(
     [a, A, b, B, CRef](Context *ctx) <span class="hljs-keyword">mutable</span> {
@@ -194,56 +118,19 @@ C-&gt;device()-&gt;Exec(
     },
     read_blocks, {C-&gt;block()});
 </code></pre>
-<p>The <code>Exec</code> function of <code>Device</code> buffers the function and its arguments. In
-addition, it also has the information about the blocks (a block is a chunk of
-memory for a tensor) to be read and written by this function.</p>
-<p>Once <code>Model.forward()</code> has been executed once, all operations are buffered by
-<code>Device</code>. Next, the read/write information of all operations are analyzed to
-create the computational graph. For example, if a block <code>b</code> is written by one
-operation O1 and is later read by another operation O2, we would know O2 depends
-on O1 and there is a directed edge from A to B, which represents block <code>b</code> (or
-its tensor). After that a directed acyclic graph is constructed as shown below.
-The graph is constructed once.</p>
+<p><code>Device</code>的<code>Exec</code>函数对函数及其参数进行缓冲。此外,它还拥有这个函数要读写的块的信息(块是指张量的内存块)。</p>
+<p>一旦<code>Model.forward()</code>被执行一次,所有的操作就会被<code>Device</code>缓冲。接下来,对所有操作的读写信息进行分析,用来建立计算图。例如,如果一个块<code>b</code>被一个操作O1写入,之后又被另一个操作O2读出,我们就会知道O2依赖于O1并且有一条从A到B的有向边,它代表了块<code>b</code>(或其张量)。之后我们就构建了一个有向无环图,如下图所示。该图会构建一次。</p>
 <p><img src="/docs/assets/GraphOfMLP.png" alt="The computational graph of MLP"></p>
-<p><br/><strong>Figure 1 - The computational graph of the MLP example.</strong></p>
-<h3><a class="anchor" aria-hidden="true" id="optimization"></a><a href="#optimization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>Currently, the following optimizations are done based on the computational
-graph.</p>
-<p><strong>Lazy allocation</strong> When tensor/blocks are created, devices do not allocate
-memory for them immediately. Instead, when the block is accessed for the first
-time, the memory is allocated.</p>
-<p><strong>Automatic recycling</strong> The reference count of each tensor/block is calculated
-based on the graph. Before executing the operations, the reference count is the
-number of operations that read this block. During the execution, once an
-operation is executed, the reference count of the every input block is decreased
-by 1. If one block's reference count reaches 0, it means that this block will
-not be read again in the remaining operations. Therefore, its memory can be
-released safely. In addition, SINGA tracks the usage of the block outside of the
-graph. If a block is used by Python code (not by autograd operators), it will
-not be recycled.</p>
-<p><strong>Memory sharing</strong> SINGA uses memory pool, e.g.,
-<a href="https://github.com/NVIDIA/cnmem">CnMem</a> to manage CUDA memory. With <em>Automatic
-recycling</em> and memory pool, SINGA can share the memory among tensors. Consider
-two operations <code>c = a + b</code> and <code>d=2xc</code>. Before executing the second operation,
-according to <em>Lazy allocation</em>, the memory of d should be allocated. Suppose <code>a</code>
-is not used in the rest operations. According to Automatic recycling, the block
-of <code>a</code> will be released after the first operation. Therefore, SINGA would submit
-four operations to the CUDA stream: addition, free <code>a</code>, malloc <code>b</code>, and
-multiplication. The memory pool is then able to share the memory released by <code>a</code>
-with <code>b</code> instead of ask the GPU to do real malloc for <code>b</code>.</p>
-<p>Other optimization techniques e.g., from compliers, such as common
-sub-expression elimination and parallelizing operations on different CUDA
-streams can also be applied.</p>
-<h2><a class="anchor" aria-hidden="true" id="new-operator"></a><a href="#new-operator" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>Each operator defined in <code>autograd</code> module implements two functions: forward and
-backward, which are implemented by calling the operators from the backend. To
-add a new operator in <code>autograd</code>, you need to add the multiple operators at the
-backend.</p>
-<p>Take the
-<a href="https://github.com/apache/singa/blob/master/python/singa/autograd.py">Conv2d</a>
-operator as an example, at the Python side, the forward and backward function
-are implemented by calling the operators from the backend depending on the
-device type.</p>
+<p><br/><strong>Figure 1 - MLP例子的计算图</strong></p>
+<h3><a class="anchor" aria-hidden="true" id="优化"></a><a href="#优化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>目前,基于计算图进行了以下优化:</p>
+<p><strong>惰性分配</strong> 当创建张量/块时,设备不会立即为它们分配内存。相反,是在第一次访问块时,才会分配内存。</p>
+<p><strong>自动回收</strong>  每个张量/块的参考计数是根据图计算出来的。在执行操作之前,参考计数是读取这个块的操作次数。在执行过程中,一旦执行了一个操作,每一个输入块的参考数就会减少1,如果一个块的参考数达到了0,就意味着这个块在剩下的操作中不会再被读取。因此,它的内存可以被安全释放。此外,SINGA还会跟踪图外的块的使用情况。如果一个块被Python代码使用(而不是被autograd操作符使用),它将不会被回收。</p>
+<p><strong>内存共享</strong>  SINGA使用内存池,如<a href="https://github.com/NVIDIA/cnmem">CnMem</a>来管理CUDA内存。有了自动回收和内存池,SINGA就可以在张量之间共享内存。考虑两个操作<code>c=a+b</code>和<code>d=2xc</code>。在执行第二个操作之前,根据惰性分配原则,应该分配d的内存。假设<code>a</code>在其余操作中没有使用。根据自动回收,<code>a</code>的块将在第一次操作后被释放。因此,SINGA会向CUDA流提交四个操作:加法、释放<code>a</code>、分配<code>b</code>和乘法。这样,内存池就可以将<code>a</code>释放的内存与<code>b</code>共享,而不是要求GPU为<code>b</code>做真正的malloc。</p>
+<p>其他的优化技术,如来自编译器的优化技术,如常见的子表达式消除和不同CUDA流上的并行化操作也可以应用。</p>
+<h2><a class="anchor" aria-hidden="true" id="新的操作符"></a><a href="#新的操作符" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p><code>autograd</code>模块中定义的每个运算符都实现了两个功能:前向和反向,通过在后台调用运算符来实现。如果要在<code>autograd</code>中添加一个新的运算符,需要在后台添加多个运算符。</p>
+<p>以<a href="https://github.com/apache/singa/blob/master/python/singa/autograd.py">Conv2d</a>运算符为例,在Python端,根据设备类型,从后台调用运算符来实现前向和反向功能:</p>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">_Conv2d</span><span class="hljs-params">(Operation)</span>:</span>
 
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">forward</span><span class="hljs-params">(self, x, W, b=None)</span>:</span>
@@ -281,27 +168,17 @@ device type.</p>
         <span class="hljs-keyword">else</span>:
             <span class="hljs-keyword">return</span> dx, dW
 </code></pre>
-<p>For each operator at the backend, it should be implemented in the following way:</p>
+<p>对于后台的每一个操作符,应按以下方式实现:</p>
 <ul>
-<li><p>Suppose the operator is <code>foo()</code>; its real implementation should be wrapped in
-another function e.g., <code>_foo()</code>. <code>foo()</code> passes <code>_foo</code> together with the
-arguments as a lambda function to <code>Device</code>'s <code>Exec</code> function for buffering.
-The blocks to be read and written are also passed to <code>Exec</code>.</p></li>
-<li><p>All arguments used in the lambda expression need to be captured according to
-the following rules.</p>
+<li><p>假设操作符是<code>foo()</code>,它的真正实现应该包装在另一个函数中,例如<code>_foo()</code>。<code>foo()</code>将<code>_foo</code>和参数一起作为lambda函数传递给<code>Device</code>的<code>Exec</code>函数进行缓冲,要读和写的块也同时被传递给<code>Exec</code>。</p></li>
+<li><p>lambda表达式中使用的所有参数都需要根据以下规则获取:</p>
 <ul>
-<li><p><code>capture by value</code>: If the argument variable is a local variable or will be
-immediately released (e.g. intermediate tensors). Otherwise, these variables
-will be destroyed once <code>foo()</code> exists.</p></li>
-<li><p><code>capture by reference</code>:If the variable is recorded on the python side or a
-persistent variable (e.g. parameter W and ConvHand in the Conv2d class).</p></li>
-<li><p><code>mutable</code>: The lambda expression should have the mutable tag if a variable
-captured by value is modified in <code>_foo()</code></p></li>
+<li><p><code>值捕获</code>: 如果参数变量是一个局部变量,或者将被立刻释放(例如,中间时序)。否则,一旦<code>foo()</code>存在,这些变量将被销毁。</p></li>
+<li><p><code>引用捕获</code>:如果变量是记录在python端或者是一个持久变量(例如Conv2d类中的参数W和ConvHand)。</p></li>
+<li><p><code>可变捕获</code>: 如果在<code>_foo()</code>中修改了由值捕获的变量,则lambda表达式应带有mutable(可变)标签。</p></li>
 </ul></li>
 </ul>
-<p>Here is one
-<a href="https://github.com/apache/singa/blob/master/src/model/operation/convolution.cc">example</a>
-operator implemented at the backend.</p>
+<p>下面是一个在后台实现的操作的<a href="https://github.com/apache/singa/blob/master/src/model/operation/convolution.cc">例子</a>:</p>
 <pre><code class="hljs css language-c++"><span class="hljs-function">Tensor <span class="hljs-title">GpuConvBackwardx</span><span class="hljs-params">(<span class="hljs-keyword">const</span> Tensor &amp;dy, <span class="hljs-keyword">const</span> Tensor &amp;W, <span class="hljs-keyword">const</span> Tensor &amp;x,
                         <span class="hljs-keyword">const</span> CudnnConvHandle &amp;cch)</span> </span>{
   CHECK_EQ(dy.device()-&gt;lang(), kCuda);
@@ -335,31 +212,31 @@ operator implemented at the backend.</p>
 }
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="benchmark"></a><a href="#benchmark" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<h3><a class="anchor" aria-hidden="true" id="single-node"></a><a href="#single-node" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<h3><a class="anchor" aria-hidden="true" id="单节点"></a><a href="#单节点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
-<li>Experiment settings
+<li>实验设定
 <ul>
-<li>Model
+<li>模型:
 <ul>
-<li>Using layer: ResNet50 in
+<li>使用层: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/autograd/resnet_cifar10.py">resnet.py</a></li>
-<li>Using model: ResNet50 in
+<li>使用模型: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">resnet.py</a></li>
 </ul></li>
 <li>GPU: NVIDIA RTX 2080Ti</li>
 </ul></li>
-<li>Notations
+<li>注释:
 <ul>
-<li><code>s</code> :second</li>
-<li><code>it</code> : iteration</li>
-<li><code>Mem</code>:peak memory usage of single GPU</li>
-<li><code>Throughout</code>:number of images processed per second</li>
-<li><code>Time</code>:total time</li>
-<li><code>Speed</code>:iterations per second</li>
-<li><code>Reduction</code>:the memory usage reduction rate compared with that using layer</li>
-<li><code>Speedup</code>: speedup ratio compared with dev branch</li>
+<li><code>s</code> :second,秒</li>
+<li><code>it</code> : iteration,迭代次数</li>
+<li><code>Mem</code>:peak memory usage of single GPU,单GPU显存峰值</li>
+<li><code>Throughout</code>:number of images processed per second,每秒处理的图像数</li>
+<li><code>Time</code>:total time,总时间</li>
+<li><code>Speed</code>:iterations per second。每秒迭代次数</li>
+<li><code>Reduction</code>:the memory usage reduction rate compared with that using layer,与使用层的内存使用率相比,内存使用率降低了多少</li>
+<li><code>Speedup</code>: speedup ratio compared with dev branch,与dev分支相比的加速率</li>
 </ul></li>
-<li>Result
+<li>结果:
   <table style="text-align: center">
       <tr>
           <th style="text-align: center">Batchsize</th>
@@ -448,22 +325,22 @@ operator implemented at the backend.</p>
   </table>
 </li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="multi-processes"></a><a href="#multi-processes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<h3><a class="anchor" aria-hidden="true" id="多线程"></a><a href="#多线程" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
-<li>Experiment settings
+<li>实验设置:
 <ul>
-<li>API
+<li>API:
 <ul>
-<li>using Layer: ResNet50 in
+<li>使用层: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/autograd/resnet_dist.py">resnet_dist.py</a></li>
-<li>using Model: ResNet50 in
+<li>使用模型: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">resnet.py</a></li>
 </ul></li>
 <li>GPU: NVIDIA RTX 2080Ti * 2</li>
-<li>MPI: two MPI processes on one node</li>
+<li>MPI: 在同一节点上的两个MPI processes</li>
 </ul></li>
-<li>Notations: the same as above</li>
-<li>Result
+<li>注释: 与上面相同</li>
+<li>结果:
   <table style="text-align: center">
       <tr>
           <th style="text-align: center">Batchsize</th>
@@ -552,14 +429,12 @@ operator implemented at the backend.</p>
   </table>
 </li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="conclusion"></a><a href="#conclusion" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<h3><a class="anchor" aria-hidden="true" id="结论"></a><a href="#结论" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <ul>
-<li>Training with the computational graph enabled can significantly reduce the
-memory footprint.</li>
-<li>Currently, there is a little improvement in terms of speed. More optimizations
-can be done towards the efficiency.</li>
+<li>在启用计算图的情况下进行训练,可以显著减少内存占用。</li>
+<li>目前,在速度上有一点改进。在效率方面还可以做更多的优化。</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/4/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/optimizer"><span class="arrow-prev">← </span><span>Optimizer</span></a><a class="docs-next button" href="/docs/onnx"><span>ONNX</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example">Example</a></li><li><a href="#implementation">Implementation</a><ul  [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 04/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#样例">样例</a></li><li><a href="#实现">实现</a><ul class="toc-headings"><li><a href="#图的构建">图的构建</a></li><li><a href="#优化">优化</a></li></ul></li><li><a href="#新的操作符">新的操作符</a></li><li><a href="#benchmark">Benchmark</a><ul class="toc-headings"><li><a href="#单节点">单节点</a></li><li><a href="#多线程">多线程< [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/time-profiling.html b/content/docs/2.0.0/time-profiling.html
similarity index 63%
copy from content/docs/time-profiling.html
copy to content/docs/2.0.0/time-profiling.html
index c193557..b39552f 100644
--- a/content/docs/time-profiling.html
+++ b/content/docs/2.0.0/time-profiling.html
@@ -1,78 +1,14 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              var headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                var el = event.target;
-                while(el !== headings){
-                  if (el.tagName === 'A') {
-                    document.body.classList.remove('tocActive');
-                    break;
-                  } else{
-                    el = el.parentNode;
-                  }
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/time-profiling.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Time Profiling</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contribu [...]
-<p>SINGA supports the time profiling of each of the operators buffered in the
-graph. To utilize the time profiling function, we first call the
-<code>device.SetVerbosity</code> method to set the verbosity of the time profilier, and
-then call the <code>device.PrintTimeProfiling</code> to print out the results of time
-profiling.</p>
-<h2><a class="anchor" aria-hidden="true" id="setup-the-time-profiling-verbosity"></a><a href="#setup-the-time-profiling-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
-<p>To use the time profiling function, we need to set the verbosity. There are
-three levels of verbosity. With the default value <code>verbosity == 0</code>, it will not
-do any time profiling. When we set <code>verbosity == 1</code>, it will profile the forward
-and backward propagation time. When <code>verbosity == 2</code>, it will profile the time
-spent on every buffered operation in the graph.</p>
-<p>The following is the example code to setup the time profiling function:</p>
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<p>SINGA支持对图中缓冲的每个运算符进行时间分析。为了利用时间分析功能,我们首先调用<code>device.SetVerbosity</code>方法来设置时间分析器的verbosity,然后调用<code>device.PrintTimeProfiling</code>来打印出时间分析的结果。</p>
+<h2><a class="anchor" aria-hidden="true" id="设置时间分析verbosity"></a><a href="#设置时间分析verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>要使用时间分析功能,我们需要设置verbosity。有三个级别的verbosity。在默认值<code>verbosity == 0</code>的情况下,它不会进行任何时间分析。当我们设置<code>verbosity == 1</code>时,它将对前向和后向传播时间进行分析。当<code>verbosity == 2</code>时,它将对图中每个缓冲操作所花费的时间进行分析。</p>
+<p>以下是设置时间分析功能的示例代码:</p>
 <pre><code class="hljs css language-python"><span class="hljs-comment"># create a device</span>
 <span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> device
 dev = device.create_cuda_gpu()
@@ -82,15 +18,11 @@ dev.SetVerbosity(verbosity)
 <span class="hljs-comment"># optional: skip the first 5 iterations when profiling the time</span>
 dev.SetSkipIteration(<span class="hljs-number">5</span>)
 </code></pre>
-<p>Then, after we have completed the training at the end of the program, we can
-print the time profiling result by calling the <code>device.PrintTimeProfiling</code>
-method:</p>
+<p>那么,当我们在程序的最后完成训练后,我们就可以通过调用<code>device.PrintTimeProfiling</code>方法来打印时间分析结果。</p>
 <pre><code class="hljs css language-python">dev.PrintTimeProfiling()
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="example-outputs-for-different-verbosity"></a><a href="#example-outputs-for-different-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2  [...]
-<p>We can run the ResNet
-<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">example</a>
-to see the output with different setting of verbosity:</p>
+<h2><a class="anchor" aria-hidden="true" id="不同verbosity的输出示例"></a><a href="#不同verbosity的输出示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>我们可以运行ResNet的<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">示例</a>,看看不同的verbosity设置的输出。</p>
 <ol>
 <li><code>verbosity == 1</code></li>
 </ol>
@@ -207,7 +139,7 @@ Backward Propagation <span class="hljs-built_in">Time</span> <span class="hljs-s
 <span class="hljs-string">.</span>
 <span class="hljs-string">.</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 9/27/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup-the-time-profiling-verbosity">Setup the [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 27/09/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#设置时间分析verbosity">设置时间分析Verbosity</a></li><li><a href="#不同verbosity的输出示例">不同Verbosity的输出示例</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/ [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/time-profiling/index.html b/content/docs/2.0.0/time-profiling/index.html
similarity index 63%
copy from content/docs/time-profiling/index.html
copy to content/docs/2.0.0/time-profiling/index.html
index c193557..b39552f 100644
--- a/content/docs/time-profiling/index.html
+++ b/content/docs/2.0.0/time-profiling/index.html
@@ -1,78 +1,14 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              var headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                var el = event.target;
-                while(el !== headings){
-                  if (el.tagName === 'A') {
-                    document.body.classList.remove('tocActive');
-                    break;
-                  } else{
-                    el = el.parentNode;
-                  }
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/time-profiling.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Time Profiling</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contribu [...]
-<p>SINGA supports the time profiling of each of the operators buffered in the
-graph. To utilize the time profiling function, we first call the
-<code>device.SetVerbosity</code> method to set the verbosity of the time profilier, and
-then call the <code>device.PrintTimeProfiling</code> to print out the results of time
-profiling.</p>
-<h2><a class="anchor" aria-hidden="true" id="setup-the-time-profiling-verbosity"></a><a href="#setup-the-time-profiling-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
-<p>To use the time profiling function, we need to set the verbosity. There are
-three levels of verbosity. With the default value <code>verbosity == 0</code>, it will not
-do any time profiling. When we set <code>verbosity == 1</code>, it will profile the forward
-and backward propagation time. When <code>verbosity == 2</code>, it will profile the time
-spent on every buffered operation in the graph.</p>
-<p>The following is the example code to setup the time profiling function:</p>
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<p>SINGA支持对图中缓冲的每个运算符进行时间分析。为了利用时间分析功能,我们首先调用<code>device.SetVerbosity</code>方法来设置时间分析器的verbosity,然后调用<code>device.PrintTimeProfiling</code>来打印出时间分析的结果。</p>
+<h2><a class="anchor" aria-hidden="true" id="设置时间分析verbosity"></a><a href="#设置时间分析verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>要使用时间分析功能,我们需要设置verbosity。有三个级别的verbosity。在默认值<code>verbosity == 0</code>的情况下,它不会进行任何时间分析。当我们设置<code>verbosity == 1</code>时,它将对前向和后向传播时间进行分析。当<code>verbosity == 2</code>时,它将对图中每个缓冲操作所花费的时间进行分析。</p>
+<p>以下是设置时间分析功能的示例代码:</p>
 <pre><code class="hljs css language-python"><span class="hljs-comment"># create a device</span>
 <span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> device
 dev = device.create_cuda_gpu()
@@ -82,15 +18,11 @@ dev.SetVerbosity(verbosity)
 <span class="hljs-comment"># optional: skip the first 5 iterations when profiling the time</span>
 dev.SetSkipIteration(<span class="hljs-number">5</span>)
 </code></pre>
-<p>Then, after we have completed the training at the end of the program, we can
-print the time profiling result by calling the <code>device.PrintTimeProfiling</code>
-method:</p>
+<p>那么,当我们在程序的最后完成训练后,我们就可以通过调用<code>device.PrintTimeProfiling</code>方法来打印时间分析结果。</p>
 <pre><code class="hljs css language-python">dev.PrintTimeProfiling()
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="example-outputs-for-different-verbosity"></a><a href="#example-outputs-for-different-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2  [...]
-<p>We can run the ResNet
-<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">example</a>
-to see the output with different setting of verbosity:</p>
+<h2><a class="anchor" aria-hidden="true" id="不同verbosity的输出示例"></a><a href="#不同verbosity的输出示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>我们可以运行ResNet的<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">示例</a>,看看不同的verbosity设置的输出。</p>
 <ol>
 <li><code>verbosity == 1</code></li>
 </ol>
@@ -207,7 +139,7 @@ Backward Propagation <span class="hljs-built_in">Time</span> <span class="hljs-s
 <span class="hljs-string">.</span>
 <span class="hljs-string">.</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 9/27/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup-the-time-profiling-verbosity">Setup the [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 27/09/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#设置时间分析verbosity">设置时间分析Verbosity</a></li><li><a href="#不同verbosity的输出示例">不同Verbosity的输出示例</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/ [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/2.0.0/wheel-cpu-dev.html b/content/docs/2.0.0/wheel-cpu-dev.html
new file mode 100644
index 0000000..114a04e
--- /dev/null
+++ b/content/docs/2.0.0/wheel-cpu-dev.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding co [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/2.0.0/wheel-cpu-dev/index.html b/content/docs/2.0.0/wheel-cpu-dev/index.html
new file mode 100644
index 0000000..114a04e
--- /dev/null
+++ b/content/docs/2.0.0/wheel-cpu-dev/index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding co [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/wheel-cpu.html b/content/docs/2.0.0/wheel-cpu.html
similarity index 57%
copy from content/docs/wheel-cpu.html
copy to content/docs/2.0.0/wheel-cpu.html
index fe17082..9f4d965 100644
--- a/content/docs/wheel-cpu.html
+++ b/content/docs/2.0.0/wheel-cpu.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only Wheel Packages · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.1.0-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
@@ -17,7 +17,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/wheel-cpu/index.html b/content/docs/2.0.0/wheel-cpu/index.html
similarity index 57%
copy from content/docs/wheel-cpu/index.html
copy to content/docs/2.0.0/wheel-cpu/index.html
index fe17082..9f4d965 100644
--- a/content/docs/wheel-cpu/index.html
+++ b/content/docs/2.0.0/wheel-cpu/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only Wheel Packages · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.1.0-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
@@ -17,7 +17,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/2.0.0/wheel-gpu-dev.html b/content/docs/2.0.0/wheel-gpu-dev.html
new file mode 100644
index 0000000..5f022a7
--- /dev/null
+++ b/content/docs/2.0.0/wheel-gpu-dev.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regardin [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp36-cp36m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/2.0.0/wheel-gpu-dev/index.html b/content/docs/2.0.0/wheel-gpu-dev/index.html
new file mode 100644
index 0000000..5f022a7
--- /dev/null
+++ b/content/docs/2.0.0/wheel-gpu-dev/index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regardin [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp36-cp36m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/wheel-gpu.html b/content/docs/2.0.0/wheel-gpu.html
similarity index 58%
copy from content/docs/wheel-gpu.html
copy to content/docs/2.0.0/wheel-gpu.html
index 87756f1..78761df 100644
--- a/content/docs/wheel-gpu.html
+++ b/content/docs/2.0.0/wheel-gpu.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Wheel Packages with CUDA Enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information re [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ow [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li>[CUDA10.2, cuDNN 7.6.5, Python
@@ -20,7 +20,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/wheel-gpu/index.html b/content/docs/2.0.0/wheel-gpu/index.html
similarity index 58%
copy from content/docs/wheel-gpu/index.html
copy to content/docs/2.0.0/wheel-gpu/index.html
index 87756f1..78761df 100644
--- a/content/docs/wheel-gpu/index.html
+++ b/content/docs/2.0.0/wheel-gpu/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Wheel Packages with CUDA Enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information re [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ow [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li>[CUDA10.2, cuDNN 7.6.5, Python
@@ -20,7 +20,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/autograd.html b/content/docs/3.0.0.rc1/autograd.html
index 25905cb..faf9919 100644
--- a/content/docs/3.0.0.rc1/autograd.html
+++ b/content/docs/3.0.0.rc1/autograd.html
@@ -275,7 +275,7 @@ model.graph(graph, sequential)
 <p>Refer
 <a href="https://singa.readthedocs.io/en/latest/docs/autograd.html#module-singa.autograd">here</a>
 for more details of Python API.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/graph"><span>Model</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#relevant-modules">Relevant Modules</a><ul class="toc-headings" [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/graph"><span>Model</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#relevant-modules">Relevant Modules</a><ul class="toc-heading [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/autograd/index.html b/content/docs/3.0.0.rc1/autograd/index.html
index 25905cb..faf9919 100644
--- a/content/docs/3.0.0.rc1/autograd/index.html
+++ b/content/docs/3.0.0.rc1/autograd/index.html
@@ -275,7 +275,7 @@ model.graph(graph, sequential)
 <p>Refer
 <a href="https://singa.readthedocs.io/en/latest/docs/autograd.html#module-singa.autograd">here</a>
 for more details of Python API.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/graph"><span>Model</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#relevant-modules">Relevant Modules</a><ul class="toc-headings" [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/graph"><span>Model</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#relevant-modules">Relevant Modules</a><ul class="toc-heading [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/benchmark-train.html b/content/docs/3.0.0.rc1/benchmark-train.html
index 0ce78ee..bbf676e 100644
--- a/content/docs/3.0.0.rc1/benchmark-train.html
+++ b/content/docs/3.0.0.rc1/benchmark-train.html
@@ -21,7 +21,7 @@ system which uses the parameter server topology. The first GPU is selected as
 the server.</p>
 <p><img src="/docs/assets/benchmark.png" alt="Benchmark Experiments"> <br/> <strong>Scalability test. Bars
 are for the throughput; lines are for the communication cost.</strong></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/benchmark-train/index.html b/content/docs/3.0.0.rc1/benchmark-train/index.html
index 0ce78ee..bbf676e 100644
--- a/content/docs/3.0.0.rc1/benchmark-train/index.html
+++ b/content/docs/3.0.0.rc1/benchmark-train/index.html
@@ -21,7 +21,7 @@ system which uses the parameter server topology. The first GPU is selected as
 the server.</p>
 <p><img src="/docs/assets/benchmark.png" alt="Benchmark Experiments"> <br/> <strong>Scalability test. Bars
 are for the throughput; lines are for the communication cost.</strong></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/build.html b/content/docs/3.0.0.rc1/build.html
index 0515932..e8d852e 100644
--- a/content/docs/3.0.0.rc1/build.html
+++ b/content/docs/3.0.0.rc1/build.html
@@ -416,7 +416,7 @@ build PySINGA from source, you need to specify the paths when invoking
 to change the python interpreter, e.g., reset the $PATH to put the correct
 path of Python at the front position.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/download-singa"><span class="arrow-prev">← </span><span>Download SINGA</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/contribute-code"><span>How to Contribute Code</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#use-conda-to-build- [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/download-singa"><span class="arrow-prev">← </span><span>Download SINGA</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/contribute-code"><span>How to Contribute Code</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#use-conda-to-buil [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/build/index.html b/content/docs/3.0.0.rc1/build/index.html
index 0515932..e8d852e 100644
--- a/content/docs/3.0.0.rc1/build/index.html
+++ b/content/docs/3.0.0.rc1/build/index.html
@@ -416,7 +416,7 @@ build PySINGA from source, you need to specify the paths when invoking
 to change the python interpreter, e.g., reset the $PATH to put the correct
 path of Python at the front position.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/download-singa"><span class="arrow-prev">← </span><span>Download SINGA</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/contribute-code"><span>How to Contribute Code</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#use-conda-to-build- [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/download-singa"><span class="arrow-prev">← </span><span>Download SINGA</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/contribute-code"><span>How to Contribute Code</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#use-conda-to-buil [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/contribute-code.html b/content/docs/3.0.0.rc1/contribute-code.html
index 75a05c9..1600b8d 100644
--- a/content/docs/3.0.0.rc1/contribute-code.html
+++ b/content/docs/3.0.0.rc1/contribute-code.html
@@ -149,7 +149,7 @@ the updated Python files to replace those in the Python installation folder,</p>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="workflow"></a><a href="#workflow" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Please refer to the <a href="./git-workflow">git workflow page</a>.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/build"><span class="arrow-prev">← </span><span>Build SINGA from Source</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/contribute-docs"><span>How to Contribute to Documentation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#coding- [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/build"><span class="arrow-prev">← </span><span>Build SINGA from Source</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/contribute-docs"><span>How to Contribute to Documentation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#codin [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/contribute-code/index.html b/content/docs/3.0.0.rc1/contribute-code/index.html
index 75a05c9..1600b8d 100644
--- a/content/docs/3.0.0.rc1/contribute-code/index.html
+++ b/content/docs/3.0.0.rc1/contribute-code/index.html
@@ -149,7 +149,7 @@ the updated Python files to replace those in the Python installation folder,</p>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="workflow"></a><a href="#workflow" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Please refer to the <a href="./git-workflow">git workflow page</a>.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/build"><span class="arrow-prev">← </span><span>Build SINGA from Source</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/contribute-docs"><span>How to Contribute to Documentation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#coding- [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/build"><span class="arrow-prev">← </span><span>Build SINGA from Source</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/contribute-docs"><span>How to Contribute to Documentation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#codin [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/contribute-docs.html b/content/docs/3.0.0.rc1/contribute-docs.html
index 6002e49..ac08047 100644
--- a/content/docs/3.0.0.rc1/contribute-docs.html
+++ b/content/docs/3.0.0.rc1/contribute-docs.html
@@ -139,7 +139,7 @@ via <code>File - Preferences - User Snippets - python.json</code></p>
 &quot;description&quot;: &quot;# spell check only for cpp comments&quot;
 }
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#markdown- [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#markdow [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/contribute-docs/index.html b/content/docs/3.0.0.rc1/contribute-docs/index.html
index 6002e49..ac08047 100644
--- a/content/docs/3.0.0.rc1/contribute-docs/index.html
+++ b/content/docs/3.0.0.rc1/contribute-docs/index.html
@@ -139,7 +139,7 @@ via <code>File - Preferences - User Snippets - python.json</code></p>
 &quot;description&quot;: &quot;# spell check only for cpp comments&quot;
 }
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#markdown- [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#markdow [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/device.html b/content/docs/3.0.0.rc1/device.html
index 9250cc5..c528661 100644
--- a/content/docs/3.0.0.rc1/device.html
+++ b/content/docs/3.0.0.rc1/device.html
@@ -81,7 +81,7 @@ host = device.get_default_device()  <span class="hljs-comment"># get the default
 ary1 = device.create_cuda_gpus(<span class="hljs-number">2</span>)  <span class="hljs-comment"># create 2 devices, starting from ID 0</span>
 ary2 = device.create_cuda_gpus([<span class="hljs-number">0</span>,<span class="hljs-number">2</span>])  <span class="hljs-comment"># create 2 devices on ID 0 and 2</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#specific-devices">Specific devices</a></li><li><a href=" [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#specific-devices">Specific devices</a></li><li><a href [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/device/index.html b/content/docs/3.0.0.rc1/device/index.html
index 9250cc5..c528661 100644
--- a/content/docs/3.0.0.rc1/device/index.html
+++ b/content/docs/3.0.0.rc1/device/index.html
@@ -81,7 +81,7 @@ host = device.get_default_device()  <span class="hljs-comment"># get the default
 ary1 = device.create_cuda_gpus(<span class="hljs-number">2</span>)  <span class="hljs-comment"># create 2 devices, starting from ID 0</span>
 ary2 = device.create_cuda_gpus([<span class="hljs-number">0</span>,<span class="hljs-number">2</span>])  <span class="hljs-comment"># create 2 devices on ID 0 and 2</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#specific-devices">Specific devices</a></li><li><a href=" [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#specific-devices">Specific devices</a></li><li><a href [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/dist-train.html b/content/docs/3.0.0.rc1/dist-train.html
index a433569..899bb81 100644
--- a/content/docs/3.0.0.rc1/dist-train.html
+++ b/content/docs/3.0.0.rc1/dist-train.html
@@ -397,7 +397,7 @@ partitioned, so that each process can evaluate the sub-gradient based on the
 partitioned training data. Once the sub-gradient is calculated on each
 processes, the overall stochastic gradient is obtained by all-reducing the
 sub-gradients evaluated by all processes.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/graph"><span class="arrow-prev">← </span><span>Model</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a><ul class="toc-headings"><li>< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/graph"><span class="arrow-prev">← </span><span>Model</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a><ul class="toc-headings"><li [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/dist-train/index.html b/content/docs/3.0.0.rc1/dist-train/index.html
index a433569..899bb81 100644
--- a/content/docs/3.0.0.rc1/dist-train/index.html
+++ b/content/docs/3.0.0.rc1/dist-train/index.html
@@ -397,7 +397,7 @@ partitioned, so that each process can evaluate the sub-gradient based on the
 partitioned training data. Once the sub-gradient is calculated on each
 processes, the overall stochastic gradient is obtained by all-reducing the
 sub-gradients evaluated by all processes.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/graph"><span class="arrow-prev">← </span><span>Model</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a><ul class="toc-headings"><li>< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/graph"><span class="arrow-prev">← </span><span>Model</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a><ul class="toc-headings"><li [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/download-singa.html b/content/docs/3.0.0.rc1/download-singa.html
index ad1af10..33e9338 100644
--- a/content/docs/3.0.0.rc1/download-singa.html
+++ b/content/docs/3.0.0.rc1/download-singa.html
@@ -233,7 +233,7 @@ incubation status is not necessarily a reflection of the completeness or
 stability of the code, it does indicate that the project has yet to be fully
 endorsed by the ASF.</p>
 </blockquote>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/build"><span>Build SINGA from Source</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verify">Verify</a></li><li [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/build"><span>Build SINGA from Source</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verify">Verify</a></li>< [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/download-singa/index.html b/content/docs/3.0.0.rc1/download-singa/index.html
index ad1af10..33e9338 100644
--- a/content/docs/3.0.0.rc1/download-singa/index.html
+++ b/content/docs/3.0.0.rc1/download-singa/index.html
@@ -233,7 +233,7 @@ incubation status is not necessarily a reflection of the completeness or
 stability of the code, it does indicate that the project has yet to be fully
 endorsed by the ASF.</p>
 </blockquote>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/build"><span>Build SINGA from Source</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verify">Verify</a></li><li [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/build"><span>Build SINGA from Source</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verify">Verify</a></li>< [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/examples.html b/content/docs/3.0.0.rc1/examples.html
index 3cff268..d38c3f0 100644
--- a/content/docs/3.0.0.rc1/examples.html
+++ b/content/docs/3.0.0.rc1/examples.html
@@ -125,7 +125,7 @@ example is given below.</p>
 <li>Restricted Boltzmann Machine over the MNIST dataset, <a href="">source</a>,
 <a href="https://colab.research.google.com/drive/19996noGu9JyHHkVmp4edBGu7PJSRQKsd">Colab</a>.</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/software-stack"><span class="arrow-prev">← </span><span>Software Stack</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/device"><span>Device</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#image-classification">Image Classification</ [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/software-stack"><span class="arrow-prev">← </span><span>Software Stack</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/device"><span>Device</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#image-classification">Image Classification [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/examples/index.html b/content/docs/3.0.0.rc1/examples/index.html
index 3cff268..d38c3f0 100644
--- a/content/docs/3.0.0.rc1/examples/index.html
+++ b/content/docs/3.0.0.rc1/examples/index.html
@@ -125,7 +125,7 @@ example is given below.</p>
 <li>Restricted Boltzmann Machine over the MNIST dataset, <a href="">source</a>,
 <a href="https://colab.research.google.com/drive/19996noGu9JyHHkVmp4edBGu7PJSRQKsd">Colab</a>.</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/software-stack"><span class="arrow-prev">← </span><span>Software Stack</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/device"><span>Device</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#image-classification">Image Classification</ [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/software-stack"><span class="arrow-prev">← </span><span>Software Stack</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/device"><span>Device</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#image-classification">Image Classification [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/git-workflow.html b/content/docs/3.0.0.rc1/git-workflow.html
index 7e7f493..40a6d3a 100644
--- a/content/docs/3.0.0.rc1/git-workflow.html
+++ b/content/docs/3.0.0.rc1/git-workflow.html
@@ -162,7 +162,7 @@ git push asf dev:dev
 </code></pre>
 <p>Do not use rebase to merge the PR; and disable fast forward.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/how-to-release"><span class="arrow-prev">← </span><span>How to Prepare a Release</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#for-developers">For Developers</a></li><li><a href="#for-committers">For Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer">< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/how-to-release"><span class="arrow-prev">← </span><span>How to Prepare a Release</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#for-developers">For Developers</a></li><li><a href="#for-committers">For Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/git-workflow/index.html b/content/docs/3.0.0.rc1/git-workflow/index.html
index 7e7f493..40a6d3a 100644
--- a/content/docs/3.0.0.rc1/git-workflow/index.html
+++ b/content/docs/3.0.0.rc1/git-workflow/index.html
@@ -162,7 +162,7 @@ git push asf dev:dev
 </code></pre>
 <p>Do not use rebase to merge the PR; and disable fast forward.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/how-to-release"><span class="arrow-prev">← </span><span>How to Prepare a Release</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#for-developers">For Developers</a></li><li><a href="#for-committers">For Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer">< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/how-to-release"><span class="arrow-prev">← </span><span>How to Prepare a Release</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#for-developers">For Developers</a></li><li><a href="#for-committers">For Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/graph.html b/content/docs/3.0.0.rc1/graph.html
index 9fac20a..1fdf758 100644
--- a/content/docs/3.0.0.rc1/graph.html
+++ b/content/docs/3.0.0.rc1/graph.html
@@ -623,7 +623,7 @@ records x, W, b and handle in the class.</li>
   <span class="hljs-keyword">return</span> dx;
 }
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/autograd"><span class="arrow-prev">← </span><span>Autograd</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/dist-train"><span>Distributed Training</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#about-computational-graph">About Compu [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/autograd"><span class="arrow-prev">← </span><span>Autograd</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/dist-train"><span>Distributed Training</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#about-computational-graph">About Com [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/graph/index.html b/content/docs/3.0.0.rc1/graph/index.html
index 9fac20a..1fdf758 100644
--- a/content/docs/3.0.0.rc1/graph/index.html
+++ b/content/docs/3.0.0.rc1/graph/index.html
@@ -623,7 +623,7 @@ records x, W, b and handle in the class.</li>
   <span class="hljs-keyword">return</span> dx;
 }
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/autograd"><span class="arrow-prev">← </span><span>Autograd</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/dist-train"><span>Distributed Training</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#about-computational-graph">About Compu [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/autograd"><span class="arrow-prev">← </span><span>Autograd</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/dist-train"><span>Distributed Training</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#about-computational-graph">About Com [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/history-singa.html b/content/docs/3.0.0.rc1/history-singa.html
index a392c36..e9d9a0d 100644
--- a/content/docs/3.0.0.rc1/history-singa.html
+++ b/content/docs/3.0.0.rc1/history-singa.html
@@ -91,7 +91,7 @@ applications.</p>
 <h2><a class="anchor" aria-hidden="true" id="license"></a><a href="#license" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p>SINGA is released under
 <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License Version 2.0</a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/team-list"><span class="arrow-prev">← </span><span>The SINGA Team</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#history">History</a></li><li><a href="#license">License</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class=" [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/team-list"><span class="arrow-prev">← </span><span>The SINGA Team</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#history">History</a></li><li><a href="#license">License</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/history-singa/index.html b/content/docs/3.0.0.rc1/history-singa/index.html
index a392c36..e9d9a0d 100644
--- a/content/docs/3.0.0.rc1/history-singa/index.html
+++ b/content/docs/3.0.0.rc1/history-singa/index.html
@@ -91,7 +91,7 @@ applications.</p>
 <h2><a class="anchor" aria-hidden="true" id="license"></a><a href="#license" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p>SINGA is released under
 <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License Version 2.0</a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/team-list"><span class="arrow-prev">← </span><span>The SINGA Team</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#history">History</a></li><li><a href="#license">License</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class=" [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/team-list"><span class="arrow-prev">← </span><span>The SINGA Team</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#history">History</a></li><li><a href="#license">License</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/how-to-release.html b/content/docs/3.0.0.rc1/how-to-release.html
index bb1e8cc..83602dc 100644
--- a/content/docs/3.0.0.rc1/how-to-release.html
+++ b/content/docs/3.0.0.rc1/how-to-release.html
@@ -182,7 +182,7 @@ and contributions to the project.
 On behalf of the SINGA team, {SINGA Team Member Name}
 </code></pre></li>
 </ol>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/contribute-docs"><span class="arrow-prev">← </span><span>How to Contribute to Documentation</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/git-workflow"><span>Git Workflow</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer" [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/contribute-docs"><span class="arrow-prev">← </span><span>How to Contribute to Documentation</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/git-workflow"><span>Git Workflow</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="foote [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/how-to-release/index.html b/content/docs/3.0.0.rc1/how-to-release/index.html
index bb1e8cc..83602dc 100644
--- a/content/docs/3.0.0.rc1/how-to-release/index.html
+++ b/content/docs/3.0.0.rc1/how-to-release/index.html
@@ -182,7 +182,7 @@ and contributions to the project.
 On behalf of the SINGA team, {SINGA Team Member Name}
 </code></pre></li>
 </ol>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/contribute-docs"><span class="arrow-prev">← </span><span>How to Contribute to Documentation</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/git-workflow"><span>Git Workflow</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer" [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/contribute-docs"><span class="arrow-prev">← </span><span>How to Contribute to Documentation</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/git-workflow"><span>Git Workflow</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="foote [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/install-win.html b/content/docs/3.0.0.rc1/install-win.html
index 7d71c9e..59a7536 100644
--- a/content/docs/3.0.0.rc1/install-win.html
+++ b/content/docs/3.0.0.rc1/install-win.html
@@ -339,7 +339,7 @@ test/release folder</p></li>
 </ul>
 <p>A video tutorial for running the unit tests can be found here:</p>
 <p><a href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" alt="youtube video"></a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install-dependencies">Install Dependencies</a></li><li><a href="#build-singa-source">Build SINGA source</a></li><li><a href="#install-python-module">Install Python module</a></li><li><a href="#run-unit-tests">Run Unit Tests</a></li><li><a href="#build-gpu-support-with-cuda">Build GPU suppo [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install-dependencies">Install Dependencies</a></li><li><a href="#build-singa-source">Build SINGA source</a></li><li><a href="#install-python-module">Install Python module</a></li><li><a href="#run-unit-tests">Run Unit Tests</a></li><li><a href="#build-gpu-support-with-cuda">Build GPU sup [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/install-win/index.html b/content/docs/3.0.0.rc1/install-win/index.html
index 7d71c9e..59a7536 100644
--- a/content/docs/3.0.0.rc1/install-win/index.html
+++ b/content/docs/3.0.0.rc1/install-win/index.html
@@ -339,7 +339,7 @@ test/release folder</p></li>
 </ul>
 <p>A video tutorial for running the unit tests can be found here:</p>
 <p><a href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" alt="youtube video"></a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install-dependencies">Install Dependencies</a></li><li><a href="#build-singa-source">Build SINGA source</a></li><li><a href="#install-python-module">Install Python module</a></li><li><a href="#run-unit-tests">Run Unit Tests</a></li><li><a href="#build-gpu-support-with-cuda">Build GPU suppo [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install-dependencies">Install Dependencies</a></li><li><a href="#build-singa-source">Build SINGA source</a></li><li><a href="#install-python-module">Install Python module</a></li><li><a href="#run-unit-tests">Run Unit Tests</a></li><li><a href="#build-gpu-support-with-cuda">Build GPU sup [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/installation.html b/content/docs/3.0.0.rc1/installation.html
index 3cc1ae4..86b33fa 100644
--- a/content/docs/3.0.0.rc1/installation.html
+++ b/content/docs/3.0.0.rc1/installation.html
@@ -171,7 +171,7 @@ check your interpreter by <code>which python</code> and check the Python linked
 via <code>otool -L &lt;path to _singa_wrap.so&gt;</code>. This problem should be resolved if
 SINGA is installation via conda.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0.rc1/software-stack"><span>Software Stack</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#from-conda">From Conda</a></li><li><a href="#using-docker">Using Docker</a></li><li><a href="#from-source">From source</a></li><li><a href="#faq">FAQ</a></li>< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0.rc1/software-stack"><span>Software Stack</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#from-conda">From Conda</a></li><li><a href="#using-docker">Using Docker</a></li><li><a href="#from-source">From source</a></li><li><a href="#faq">FAQ</a></li [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/installation/index.html b/content/docs/3.0.0.rc1/installation/index.html
index 3cc1ae4..86b33fa 100644
--- a/content/docs/3.0.0.rc1/installation/index.html
+++ b/content/docs/3.0.0.rc1/installation/index.html
@@ -171,7 +171,7 @@ check your interpreter by <code>which python</code> and check the Python linked
 via <code>otool -L &lt;path to _singa_wrap.so&gt;</code>. This problem should be resolved if
 SINGA is installation via conda.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0.rc1/software-stack"><span>Software Stack</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#from-conda">From Conda</a></li><li><a href="#using-docker">Using Docker</a></li><li><a href="#from-source">From source</a></li><li><a href="#faq">FAQ</a></li>< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0.rc1/software-stack"><span>Software Stack</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#from-conda">From Conda</a></li><li><a href="#using-docker">Using Docker</a></li><li><a href="#from-source">From source</a></li><li><a href="#faq">FAQ</a></li [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/issue-tracking.html b/content/docs/3.0.0.rc1/issue-tracking.html
index e94d751..1913ca8 100644
--- a/content/docs/3.0.0.rc1/issue-tracking.html
+++ b/content/docs/3.0.0.rc1/issue-tracking.html
@@ -64,7 +64,7 @@
 <p>SINGA used <a href="https://issues.apache.org/jira/browse/singa">JIRA</a> to manage issues
 including bugs, new features and discussions.</p>
 <p>We are now moving to <a href="https://github.com/apache/singa/issues">Github Issues</a>.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/mail-lists"><span class="arrow-prev">← </span><span>Project Mailing Lists</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/security"><span>Security</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"> [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/mail-lists"><span class="arrow-prev">← </span><span>Project Mailing Lists</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/security"><span>Security</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/issue-tracking/index.html b/content/docs/3.0.0.rc1/issue-tracking/index.html
index e94d751..1913ca8 100644
--- a/content/docs/3.0.0.rc1/issue-tracking/index.html
+++ b/content/docs/3.0.0.rc1/issue-tracking/index.html
@@ -64,7 +64,7 @@
 <p>SINGA used <a href="https://issues.apache.org/jira/browse/singa">JIRA</a> to manage issues
 including bugs, new features and discussions.</p>
 <p>We are now moving to <a href="https://github.com/apache/singa/issues">Github Issues</a>.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/mail-lists"><span class="arrow-prev">← </span><span>Project Mailing Lists</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/security"><span>Security</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"> [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/mail-lists"><span class="arrow-prev">← </span><span>Project Mailing Lists</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/security"><span>Security</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/mail-lists.html b/content/docs/3.0.0.rc1/mail-lists.html
index b8419bc..4832797 100644
--- a/content/docs/3.0.0.rc1/mail-lists.html
+++ b/content/docs/3.0.0.rc1/mail-lists.html
@@ -73,7 +73,7 @@ each list, there is a subscribe, unsubscribe, and an archive link.</p>
 <tr><td>Security</td><td><a href="mailto:security@singa.apache.org">security@singa.apache.org</a></td><td>private</td><td>private</td><td>private</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/source-repository"><span class="arrow-prev">← </span><span>Source Repository</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/issue-tracking"><span>Issue Tracking</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section c [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/source-repository"><span class="arrow-prev">← </span><span>Source Repository</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/issue-tracking"><span>Issue Tracking</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/mail-lists/index.html b/content/docs/3.0.0.rc1/mail-lists/index.html
index b8419bc..4832797 100644
--- a/content/docs/3.0.0.rc1/mail-lists/index.html
+++ b/content/docs/3.0.0.rc1/mail-lists/index.html
@@ -73,7 +73,7 @@ each list, there is a subscribe, unsubscribe, and an archive link.</p>
 <tr><td>Security</td><td><a href="mailto:security@singa.apache.org">security@singa.apache.org</a></td><td>private</td><td>private</td><td>private</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/source-repository"><span class="arrow-prev">← </span><span>Source Repository</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/issue-tracking"><span>Issue Tracking</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section c [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/source-repository"><span class="arrow-prev">← </span><span>Source Repository</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/issue-tracking"><span>Issue Tracking</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/onnx.html b/content/docs/3.0.0.rc1/onnx.html
index 63ce6aa..395149e 100644
--- a/content/docs/3.0.0.rc1/onnx.html
+++ b/content/docs/3.0.0.rc1/onnx.html
@@ -692,7 +692,7 @@ of the model and run the SINGA operators one by one following the operators
 queue. The user can use <code>last_layers</code> to decide to run the model till the last
 few layers. Set <code>all_outputs</code> as <code>False</code> to get only the final output, <code>True</code> to
 also get all the intermediate output.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/5/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#general-usage">General usage</a><ul class="toc-headings"><li><a href="#loading-an-onnx-model-into-singa">Loading an ONNX Model into SINGA</a></li><li><a href="#inferernce-singa-model">Inferernce SINGA model</a></li><li><a href="#saving-an-onnx-model-from-singa">Saving an ONNX Model from SI [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 05/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#general-usage">General usage</a><ul class="toc-headings"><li><a href="#loading-an-onnx-model-into-singa">Loading an ONNX Model into SINGA</a></li><li><a href="#inferernce-singa-model">Inferernce SINGA model</a></li><li><a href="#saving-an-onnx-model-from-singa">Saving an ONNX Model from  [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/onnx/index.html b/content/docs/3.0.0.rc1/onnx/index.html
index 63ce6aa..395149e 100644
--- a/content/docs/3.0.0.rc1/onnx/index.html
+++ b/content/docs/3.0.0.rc1/onnx/index.html
@@ -692,7 +692,7 @@ of the model and run the SINGA operators one by one following the operators
 queue. The user can use <code>last_layers</code> to decide to run the model till the last
 few layers. Set <code>all_outputs</code> as <code>False</code> to get only the final output, <code>True</code> to
 also get all the intermediate output.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/5/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#general-usage">General usage</a><ul class="toc-headings"><li><a href="#loading-an-onnx-model-into-singa">Loading an ONNX Model into SINGA</a></li><li><a href="#inferernce-singa-model">Inferernce SINGA model</a></li><li><a href="#saving-an-onnx-model-from-singa">Saving an ONNX Model from SI [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 05/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#general-usage">General usage</a><ul class="toc-headings"><li><a href="#loading-an-onnx-model-into-singa">Loading an ONNX Model into SINGA</a></li><li><a href="#inferernce-singa-model">Inferernce SINGA model</a></li><li><a href="#saving-an-onnx-model-from-singa">Saving an ONNX Model from  [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.1.0.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.1.0.html
index ba0a3f9..05d68f8 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.1.0.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.1.0.html
@@ -173,7 +173,7 @@ Param update</li>
 <li><a href="https://issues.apache.org/jira/browse/SINGA-41">SINGA-41</a> Support single node
 single GPU training</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.1.0/index.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.1.0/index.html
index ba0a3f9..05d68f8 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.1.0/index.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.1.0/index.html
@@ -173,7 +173,7 @@ Param update</li>
 <li><a href="https://issues.apache.org/jira/browse/SINGA-41">SINGA-41</a> Support single node
 single GPU training</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.2.0.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.2.0.html
index 4d0a641..2085690 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.2.0.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.2.0.html
@@ -108,7 +108,7 @@ main()</li>
 <li>[SINGA-116] Fix a bug in InnerProductLayer caused by weight matrix sharing</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.2.0/index.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.2.0/index.html
index 4d0a641..2085690 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.2.0/index.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.2.0/index.html
@@ -108,7 +108,7 @@ main()</li>
 <li>[SINGA-116] Fix a bug in InnerProductLayer caused by weight matrix sharing</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.3.0.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.3.0.html
index f2212f9..0a26788 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.3.0.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.3.0.html
@@ -42,7 +42,7 @@ of popular deep learning models.</p>
 <li>[SINGA-143] The compilation cannot detect libsingagpu.so file</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.3.0/index.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.3.0/index.html
index f2212f9..0a26788 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.3.0/index.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_0.3.0/index.html
@@ -42,7 +42,7 @@ of popular deep learning models.</p>
 <li>[SINGA-143] The compilation cannot detect libsingagpu.so file</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.0.0.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.0.0.html
index ad6d3d7..fb4fd7f 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.0.0.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.0.0.html
@@ -104,7 +104,7 @@ layer.</li>
 <li>[SINGA-172] Add CMake supporting for Cuda and Cudnn libs</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.0.0/index.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.0.0/index.html
index ad6d3d7..fb4fd7f 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.0.0/index.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.0.0/index.html
@@ -104,7 +104,7 @@ layer.</li>
 <li>[SINGA-172] Add CMake supporting for Cuda and Cudnn libs</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.1.0.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.1.0.html
index effc821..a1ff7b2 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.1.0.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.1.0.html
@@ -56,7 +56,7 @@ file</li>
 Python</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.1.0/index.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.1.0/index.html
index effc821..a1ff7b2 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.1.0/index.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.1.0/index.html
@@ -56,7 +56,7 @@ file</li>
 Python</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.2.0.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.2.0.html
index 2000c06..f2a1dcf 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.2.0.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.2.0.html
@@ -62,7 +62,7 @@ learning models over large datasets.</p>
 <li>[SINGA-369] the errors of examples in testing</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.2.0/index.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.2.0/index.html
index 2000c06..f2a1dcf 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.2.0/index.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_1.2.0/index.html
@@ -62,7 +62,7 @@ learning models over large datasets.</p>
 <li>[SINGA-369] the errors of examples in testing</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_2.0.0.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_2.0.0.html
index 8be3237..81eef69 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_2.0.0.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_2.0.0.html
@@ -58,7 +58,7 @@ autograd</li>
 <li>[SINGA-380] Fix bugs from Reshape</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_2.0.0/index.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_2.0.0/index.html
index 8be3237..81eef69 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_2.0.0/index.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_2.0.0/index.html
@@ -58,7 +58,7 @@ autograd</li>
 <li>[SINGA-380] Fix bugs from Reshape</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_3.0.0.rc1.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_3.0.0.rc1.html
index aeac44f..73cb47b 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_3.0.0.rc1.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_3.0.0.rc1.html
@@ -95,7 +95,7 @@ move some inputs to its attributes;</li>
 <li>Define and implement the type conversion map.</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_3.0.0.rc1/index.html b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_3.0.0.rc1/index.html
index aeac44f..73cb47b 100644
--- a/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_3.0.0.rc1/index.html
+++ b/content/docs/3.0.0.rc1/releases/RELEASE_NOTES_3.0.0.rc1/index.html
@@ -95,7 +95,7 @@ move some inputs to its attributes;</li>
 <li>Define and implement the type conversion map.</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/security.html b/content/docs/3.0.0.rc1/security.html
index 794181d..5b8b354 100644
--- a/content/docs/3.0.0.rc1/security.html
+++ b/content/docs/3.0.0.rc1/security.html
@@ -63,7 +63,7 @@
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/security.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Security</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license  [...]
 <p>Users can report security vulnerabilities to
 <a href="mailto:security@singa.apache.org">SINGA Security Team Mail List</a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/issue-tracking"><span class="arrow-prev">← </span><span>Issue Tracking</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/team-list"><span>The SINGA Team</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitem [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/issue-tracking"><span class="arrow-prev">← </span><span>Issue Tracking</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/team-list"><span>The SINGA Team</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sit [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/security/index.html b/content/docs/3.0.0.rc1/security/index.html
index 794181d..5b8b354 100644
--- a/content/docs/3.0.0.rc1/security/index.html
+++ b/content/docs/3.0.0.rc1/security/index.html
@@ -63,7 +63,7 @@
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/security.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Security</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license  [...]
 <p>Users can report security vulnerabilities to
 <a href="mailto:security@singa.apache.org">SINGA Security Team Mail List</a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/issue-tracking"><span class="arrow-prev">← </span><span>Issue Tracking</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/team-list"><span>The SINGA Team</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitem [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/issue-tracking"><span class="arrow-prev">← </span><span>Issue Tracking</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/team-list"><span>The SINGA Team</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sit [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/software-stack.html b/content/docs/3.0.0.rc1/software-stack.html
index b40e9c1..8059053 100644
--- a/content/docs/3.0.0.rc1/software-stack.html
+++ b/content/docs/3.0.0.rc1/software-stack.html
@@ -172,7 +172,7 @@ update the parameters via <code>Opt</code> automatically when training data is f
 <li>SingaBackend for loading onnx format model into SINGA for training and
 inference.</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/installation"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/examples"><span>Examples</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#low-level-backend">Low-level Backend</a><ul  [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/installation"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/examples"><span>Examples</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#low-level-backend">Low-level Backend</a><u [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/software-stack/index.html b/content/docs/3.0.0.rc1/software-stack/index.html
index b40e9c1..8059053 100644
--- a/content/docs/3.0.0.rc1/software-stack/index.html
+++ b/content/docs/3.0.0.rc1/software-stack/index.html
@@ -172,7 +172,7 @@ update the parameters via <code>Opt</code> automatically when training data is f
 <li>SingaBackend for loading onnx format model into SINGA for training and
 inference.</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/installation"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/examples"><span>Examples</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#low-level-backend">Low-level Backend</a><ul  [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/installation"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/examples"><span>Examples</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#low-level-backend">Low-level Backend</a><u [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/source-repository.html b/content/docs/3.0.0.rc1/source-repository.html
index 2f10e6e..e48dd3b 100644
--- a/content/docs/3.0.0.rc1/source-repository.html
+++ b/content/docs/3.0.0.rc1/source-repository.html
@@ -75,7 +75,7 @@ Instructions on Git use can be found at <a href="http://git-scm.com/documentatio
 <p>The code can be cloned from either repo, e.g.,</p>
 <pre><code class="hljs">git clone https://github.com/apache/singa.git
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0.rc1/mail-lists"><span>Project Mailing Lists</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#repository">Repository</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/ [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0.rc1/mail-lists"><span>Project Mailing Lists</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#repository">Repository</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/im [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/source-repository/index.html b/content/docs/3.0.0.rc1/source-repository/index.html
index 2f10e6e..e48dd3b 100644
--- a/content/docs/3.0.0.rc1/source-repository/index.html
+++ b/content/docs/3.0.0.rc1/source-repository/index.html
@@ -75,7 +75,7 @@ Instructions on Git use can be found at <a href="http://git-scm.com/documentatio
 <p>The code can be cloned from either repo, e.g.,</p>
 <pre><code class="hljs">git clone https://github.com/apache/singa.git
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0.rc1/mail-lists"><span>Project Mailing Lists</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#repository">Repository</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/ [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0.rc1/mail-lists"><span>Project Mailing Lists</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#repository">Repository</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/im [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/team-list.html b/content/docs/3.0.0.rc1/team-list.html
index 7e89049..ec83417 100644
--- a/content/docs/3.0.0.rc1/team-list.html
+++ b/content/docs/3.0.0.rc1/team-list.html
@@ -120,7 +120,7 @@ Zhejiang University, NetEase, Osaka University, yzBigData, etc.</p>
 <tr><td>Rulin Xing</td><td><a href="mailto:xjdkcsq3@gmail.com">xjdkcsq3@gmail.com</a></td><td>Huazhong University of Science and Technology</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/security"><span class="arrow-prev">← </span><span>Security</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/history-singa"><span>History of SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pmc">PMC</a></li><li><a href="#committe [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/security"><span class="arrow-prev">← </span><span>Security</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/history-singa"><span>History of SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pmc">PMC</a></li><li><a href="#commit [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/team-list/index.html b/content/docs/3.0.0.rc1/team-list/index.html
index 7e89049..ec83417 100644
--- a/content/docs/3.0.0.rc1/team-list/index.html
+++ b/content/docs/3.0.0.rc1/team-list/index.html
@@ -120,7 +120,7 @@ Zhejiang University, NetEase, Osaka University, yzBigData, etc.</p>
 <tr><td>Rulin Xing</td><td><a href="mailto:xjdkcsq3@gmail.com">xjdkcsq3@gmail.com</a></td><td>Huazhong University of Science and Technology</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/security"><span class="arrow-prev">← </span><span>Security</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/history-singa"><span>History of SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pmc">PMC</a></li><li><a href="#committe [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/security"><span class="arrow-prev">← </span><span>Security</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/history-singa"><span>History of SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pmc">PMC</a></li><li><a href="#commit [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/tensor.html b/content/docs/3.0.0.rc1/tensor.html
index a799990..2bea34d 100644
--- a/content/docs/3.0.0.rc1/tensor.html
+++ b/content/docs/3.0.0.rc1/tensor.html
@@ -242,7 +242,7 @@ generated function in <code>singa_wrap.py</code></li>
 <p><em>work in progress</em></p>
 <h2><a class="anchor" aria-hidden="true" id="cpp-api"></a><a href="#cpp-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p><em>work in progress</em></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/3/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/device"><span class="arrow-prev">← </span><span>Device</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/autograd"><span>Autograd</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tensor-usage">Tensor Usage</a><ul class="toc-headings">< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 03/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/device"><span class="arrow-prev">← </span><span>Device</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/autograd"><span>Autograd</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tensor-usage">Tensor Usage</a><ul class="toc-headings" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/tensor/index.html b/content/docs/3.0.0.rc1/tensor/index.html
index a799990..2bea34d 100644
--- a/content/docs/3.0.0.rc1/tensor/index.html
+++ b/content/docs/3.0.0.rc1/tensor/index.html
@@ -242,7 +242,7 @@ generated function in <code>singa_wrap.py</code></li>
 <p><em>work in progress</em></p>
 <h2><a class="anchor" aria-hidden="true" id="cpp-api"></a><a href="#cpp-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p><em>work in progress</em></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/3/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/device"><span class="arrow-prev">← </span><span>Device</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/autograd"><span>Autograd</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tensor-usage">Tensor Usage</a><ul class="toc-headings">< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 03/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/device"><span class="arrow-prev">← </span><span>Device</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/autograd"><span>Autograd</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tensor-usage">Tensor Usage</a><ul class="toc-headings" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/time-profiling.html b/content/docs/3.0.0.rc1/time-profiling.html
similarity index 57%
copy from content/docs/time-profiling.html
copy to content/docs/3.0.0.rc1/time-profiling.html
index c193557..0832c38 100644
--- a/content/docs/time-profiling.html
+++ b/content/docs/3.0.0.rc1/time-profiling.html
@@ -1,78 +1,14 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              var headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                var el = event.target;
-                while(el !== headings){
-                  if (el.tagName === 'A') {
-                    document.body.classList.remove('tocActive');
-                    break;
-                  } else{
-                    el = el.parentNode;
-                  }
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/time-profiling.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Time Profiling</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contribu [...]
-<p>SINGA supports the time profiling of each of the operators buffered in the
-graph. To utilize the time profiling function, we first call the
-<code>device.SetVerbosity</code> method to set the verbosity of the time profilier, and
-then call the <code>device.PrintTimeProfiling</code> to print out the results of time
-profiling.</p>
-<h2><a class="anchor" aria-hidden="true" id="setup-the-time-profiling-verbosity"></a><a href="#setup-the-time-profiling-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
-<p>To use the time profiling function, we need to set the verbosity. There are
-three levels of verbosity. With the default value <code>verbosity == 0</code>, it will not
-do any time profiling. When we set <code>verbosity == 1</code>, it will profile the forward
-and backward propagation time. When <code>verbosity == 2</code>, it will profile the time
-spent on every buffered operation in the graph.</p>
-<p>The following is the example code to setup the time profiling function:</p>
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
+<p>SINGA支持对图中缓冲的每个运算符进行时间分析。为了利用时间分析功能,我们首先调用<code>device.SetVerbosity</code>方法来设置时间分析器的verbosity,然后调用<code>device.PrintTimeProfiling</code>来打印出时间分析的结果。</p>
+<h2><a class="anchor" aria-hidden="true" id="设置时间分析verbosity"></a><a href="#设置时间分析verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>要使用时间分析功能,我们需要设置verbosity。有三个级别的verbosity。在默认值<code>verbosity == 0</code>的情况下,它不会进行任何时间分析。当我们设置<code>verbosity == 1</code>时,它将对前向和后向传播时间进行分析。当<code>verbosity == 2</code>时,它将对图中每个缓冲操作所花费的时间进行分析。</p>
+<p>以下是设置时间分析功能的示例代码:</p>
 <pre><code class="hljs css language-python"><span class="hljs-comment"># create a device</span>
 <span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> device
 dev = device.create_cuda_gpu()
@@ -82,15 +18,11 @@ dev.SetVerbosity(verbosity)
 <span class="hljs-comment"># optional: skip the first 5 iterations when profiling the time</span>
 dev.SetSkipIteration(<span class="hljs-number">5</span>)
 </code></pre>
-<p>Then, after we have completed the training at the end of the program, we can
-print the time profiling result by calling the <code>device.PrintTimeProfiling</code>
-method:</p>
+<p>那么,当我们在程序的最后完成训练后,我们就可以通过调用<code>device.PrintTimeProfiling</code>方法来打印时间分析结果。</p>
 <pre><code class="hljs css language-python">dev.PrintTimeProfiling()
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="example-outputs-for-different-verbosity"></a><a href="#example-outputs-for-different-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2  [...]
-<p>We can run the ResNet
-<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">example</a>
-to see the output with different setting of verbosity:</p>
+<h2><a class="anchor" aria-hidden="true" id="不同verbosity的输出示例"></a><a href="#不同verbosity的输出示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>我们可以运行ResNet的<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">示例</a>,看看不同的verbosity设置的输出。</p>
 <ol>
 <li><code>verbosity == 1</code></li>
 </ol>
@@ -207,7 +139,7 @@ Backward Propagation <span class="hljs-built_in">Time</span> <span class="hljs-s
 <span class="hljs-string">.</span>
 <span class="hljs-string">.</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 9/27/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup-the-time-profiling-verbosity">Setup the [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 27/09/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#设置时间分析verbosity">设置时间分析Verbosity</a></li><li><a href="#不同verbosity的输出示例">不同Verbosity的输出示例</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/ [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/time-profiling/index.html b/content/docs/3.0.0.rc1/time-profiling/index.html
similarity index 57%
copy from content/docs/time-profiling/index.html
copy to content/docs/3.0.0.rc1/time-profiling/index.html
index c193557..0832c38 100644
--- a/content/docs/time-profiling/index.html
+++ b/content/docs/3.0.0.rc1/time-profiling/index.html
@@ -1,78 +1,14 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              var headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                var el = event.target;
-                while(el !== headings){
-                  if (el.tagName === 'A') {
-                    document.body.classList.remove('tocActive');
-                    break;
-                  } else{
-                    el = el.parentNode;
-                  }
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/time-profiling.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Time Profiling</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contribu [...]
-<p>SINGA supports the time profiling of each of the operators buffered in the
-graph. To utilize the time profiling function, we first call the
-<code>device.SetVerbosity</code> method to set the verbosity of the time profilier, and
-then call the <code>device.PrintTimeProfiling</code> to print out the results of time
-profiling.</p>
-<h2><a class="anchor" aria-hidden="true" id="setup-the-time-profiling-verbosity"></a><a href="#setup-the-time-profiling-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
-<p>To use the time profiling function, we need to set the verbosity. There are
-three levels of verbosity. With the default value <code>verbosity == 0</code>, it will not
-do any time profiling. When we set <code>verbosity == 1</code>, it will profile the forward
-and backward propagation time. When <code>verbosity == 2</code>, it will profile the time
-spent on every buffered operation in the graph.</p>
-<p>The following is the example code to setup the time profiling function:</p>
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
+<p>SINGA支持对图中缓冲的每个运算符进行时间分析。为了利用时间分析功能,我们首先调用<code>device.SetVerbosity</code>方法来设置时间分析器的verbosity,然后调用<code>device.PrintTimeProfiling</code>来打印出时间分析的结果。</p>
+<h2><a class="anchor" aria-hidden="true" id="设置时间分析verbosity"></a><a href="#设置时间分析verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>要使用时间分析功能,我们需要设置verbosity。有三个级别的verbosity。在默认值<code>verbosity == 0</code>的情况下,它不会进行任何时间分析。当我们设置<code>verbosity == 1</code>时,它将对前向和后向传播时间进行分析。当<code>verbosity == 2</code>时,它将对图中每个缓冲操作所花费的时间进行分析。</p>
+<p>以下是设置时间分析功能的示例代码:</p>
 <pre><code class="hljs css language-python"><span class="hljs-comment"># create a device</span>
 <span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> device
 dev = device.create_cuda_gpu()
@@ -82,15 +18,11 @@ dev.SetVerbosity(verbosity)
 <span class="hljs-comment"># optional: skip the first 5 iterations when profiling the time</span>
 dev.SetSkipIteration(<span class="hljs-number">5</span>)
 </code></pre>
-<p>Then, after we have completed the training at the end of the program, we can
-print the time profiling result by calling the <code>device.PrintTimeProfiling</code>
-method:</p>
+<p>那么,当我们在程序的最后完成训练后,我们就可以通过调用<code>device.PrintTimeProfiling</code>方法来打印时间分析结果。</p>
 <pre><code class="hljs css language-python">dev.PrintTimeProfiling()
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="example-outputs-for-different-verbosity"></a><a href="#example-outputs-for-different-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2  [...]
-<p>We can run the ResNet
-<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">example</a>
-to see the output with different setting of verbosity:</p>
+<h2><a class="anchor" aria-hidden="true" id="不同verbosity的输出示例"></a><a href="#不同verbosity的输出示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>我们可以运行ResNet的<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">示例</a>,看看不同的verbosity设置的输出。</p>
 <ol>
 <li><code>verbosity == 1</code></li>
 </ol>
@@ -207,7 +139,7 @@ Backward Propagation <span class="hljs-built_in">Time</span> <span class="hljs-s
 <span class="hljs-string">.</span>
 <span class="hljs-string">.</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 9/27/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup-the-time-profiling-verbosity">Setup the [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 27/09/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#设置时间分析verbosity">设置时间分析Verbosity</a></li><li><a href="#不同verbosity的输出示例">不同Verbosity的输出示例</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/ [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/wheel-cpu-dev.html b/content/docs/3.0.0.rc1/wheel-cpu-dev.html
new file mode 100644
index 0000000..172692e
--- /dev/null
+++ b/content/docs/3.0.0.rc1/wheel-cpu-dev.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding co [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.0.0.rc1/wheel-cpu-dev/index.html b/content/docs/3.0.0.rc1/wheel-cpu-dev/index.html
new file mode 100644
index 0000000..172692e
--- /dev/null
+++ b/content/docs/3.0.0.rc1/wheel-cpu-dev/index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding co [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/next/wheel-cpu.html b/content/docs/3.0.0.rc1/wheel-cpu.html
similarity index 62%
copy from content/docs/next/wheel-cpu.html
copy to content/docs/3.0.0.rc1/wheel-cpu.html
index c3e2cab..23170c6 100644
--- a/content/docs/next/wheel-cpu.html
+++ b/content/docs/3.0.0.rc1/wheel-cpu.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only Wheel Packages · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>next</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-interna [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.1.0-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
@@ -17,7 +17,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/next/wheel-cpu/index.html b/content/docs/3.0.0.rc1/wheel-cpu/index.html
similarity index 62%
copy from content/docs/next/wheel-cpu/index.html
copy to content/docs/3.0.0.rc1/wheel-cpu/index.html
index c3e2cab..23170c6 100644
--- a/content/docs/next/wheel-cpu/index.html
+++ b/content/docs/3.0.0.rc1/wheel-cpu/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only Wheel Packages · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>next</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-interna [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.1.0-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
@@ -17,7 +17,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/wheel-gpu-dev.html b/content/docs/3.0.0.rc1/wheel-gpu-dev.html
new file mode 100644
index 0000000..59f889e
--- /dev/null
+++ b/content/docs/3.0.0.rc1/wheel-gpu-dev.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regardin [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp36-cp36m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.0.0.rc1/wheel-gpu-dev/index.html b/content/docs/3.0.0.rc1/wheel-gpu-dev/index.html
new file mode 100644
index 0000000..59f889e
--- /dev/null
+++ b/content/docs/3.0.0.rc1/wheel-gpu-dev/index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regardin [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp36-cp36m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/wheel-gpu.html b/content/docs/3.0.0.rc1/wheel-gpu.html
similarity index 57%
copy from content/docs/wheel-gpu.html
copy to content/docs/3.0.0.rc1/wheel-gpu.html
index 87756f1..eda360c 100644
--- a/content/docs/wheel-gpu.html
+++ b/content/docs/3.0.0.rc1/wheel-gpu.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Wheel Packages with CUDA Enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information re [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ow [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li>[CUDA10.2, cuDNN 7.6.5, Python
@@ -20,7 +20,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/wheel-gpu/index.html b/content/docs/3.0.0.rc1/wheel-gpu/index.html
similarity index 57%
copy from content/docs/wheel-gpu/index.html
copy to content/docs/3.0.0.rc1/wheel-gpu/index.html
index 87756f1..eda360c 100644
--- a/content/docs/wheel-gpu/index.html
+++ b/content/docs/3.0.0.rc1/wheel-gpu/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Wheel Packages with CUDA Enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information re [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ow [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li>[CUDA10.2, cuDNN 7.6.5, Python
@@ -20,7 +20,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/autograd.html b/content/docs/3.0.0/autograd.html
index fcb0c82..f7198ab 100644
--- a/content/docs/3.0.0/autograd.html
+++ b/content/docs/3.0.0/autograd.html
@@ -275,7 +275,7 @@ model.graph(graph, sequential)
 <p>Refer
 <a href="https://singa.readthedocs.io/en/latest/docs/autograd.html#module-singa.autograd">here</a>
 for more details of Python API.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/3.0.0/graph"><span>Model</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#relevant-modules">Relevant Modules</a><ul class="toc-headings"><li><a  [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/3.0.0/graph"><span>Model</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#relevant-modules">Relevant Modules</a><ul class="toc-headings"><li>< [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/autograd/index.html b/content/docs/3.0.0/autograd/index.html
index fcb0c82..f7198ab 100644
--- a/content/docs/3.0.0/autograd/index.html
+++ b/content/docs/3.0.0/autograd/index.html
@@ -275,7 +275,7 @@ model.graph(graph, sequential)
 <p>Refer
 <a href="https://singa.readthedocs.io/en/latest/docs/autograd.html#module-singa.autograd">here</a>
 for more details of Python API.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/3.0.0/graph"><span>Model</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#relevant-modules">Relevant Modules</a><ul class="toc-headings"><li><a  [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/3.0.0/graph"><span>Model</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#relevant-modules">Relevant Modules</a><ul class="toc-headings"><li>< [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/benchmark-train.html b/content/docs/3.0.0/benchmark-train.html
index 111054a..dd6ae1e 100644
--- a/content/docs/3.0.0/benchmark-train.html
+++ b/content/docs/3.0.0/benchmark-train.html
@@ -21,7 +21,7 @@ system which uses the parameter server topology. The first GPU is selected as
 the server.</p>
 <p><img src="/docs/assets/benchmark.png" alt="Benchmark Experiments"> <br/> <strong>Scalability test. Bars
 are for the throughput; lines are for the communication cost.</strong></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/benchmark-train/index.html b/content/docs/3.0.0/benchmark-train/index.html
index 111054a..dd6ae1e 100644
--- a/content/docs/3.0.0/benchmark-train/index.html
+++ b/content/docs/3.0.0/benchmark-train/index.html
@@ -21,7 +21,7 @@ system which uses the parameter server topology. The first GPU is selected as
 the server.</p>
 <p><img src="/docs/assets/benchmark.png" alt="Benchmark Experiments"> <br/> <strong>Scalability test. Bars
 are for the throughput; lines are for the communication cost.</strong></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/build.html b/content/docs/3.0.0/build.html
index 002c090..04d75c7 100644
--- a/content/docs/3.0.0/build.html
+++ b/content/docs/3.0.0/build.html
@@ -416,7 +416,7 @@ build PySINGA from source, you need to specify the paths when invoking
 to change the python interpreter, e.g., reset the $PATH to put the correct
 path of Python at the front position.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/download-singa"><span class="arrow-prev">← </span><span>Download SINGA</span></a><a class="docs-next button" href="/docs/3.0.0/contribute-code"><span>How to Contribute Code</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#use-conda-to-build-singa">U [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/download-singa"><span class="arrow-prev">← </span><span>Download SINGA</span></a><a class="docs-next button" href="/docs/3.0.0/contribute-code"><span>How to Contribute Code</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#use-conda-to-build-singa" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/build/index.html b/content/docs/3.0.0/build/index.html
index 002c090..04d75c7 100644
--- a/content/docs/3.0.0/build/index.html
+++ b/content/docs/3.0.0/build/index.html
@@ -416,7 +416,7 @@ build PySINGA from source, you need to specify the paths when invoking
 to change the python interpreter, e.g., reset the $PATH to put the correct
 path of Python at the front position.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/download-singa"><span class="arrow-prev">← </span><span>Download SINGA</span></a><a class="docs-next button" href="/docs/3.0.0/contribute-code"><span>How to Contribute Code</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#use-conda-to-build-singa">U [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/download-singa"><span class="arrow-prev">← </span><span>Download SINGA</span></a><a class="docs-next button" href="/docs/3.0.0/contribute-code"><span>How to Contribute Code</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#use-conda-to-build-singa" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/contribute-code.html b/content/docs/3.0.0/contribute-code.html
index 640cb36..d5a5913 100644
--- a/content/docs/3.0.0/contribute-code.html
+++ b/content/docs/3.0.0/contribute-code.html
@@ -155,7 +155,7 @@ the updated Python files to replace those in the Python installation folder,</p>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="workflow"></a><a href="#workflow" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Please refer to the <a href="./git-workflow">git workflow page</a>.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/13/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/build"><span class="arrow-prev">← </span><span>Build SINGA from Source</span></a><a class="docs-next button" href="/docs/3.0.0/contribute-docs"><span>How to Contribute to Documentation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#coding-style"> [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 13/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/build"><span class="arrow-prev">← </span><span>Build SINGA from Source</span></a><a class="docs-next button" href="/docs/3.0.0/contribute-docs"><span>How to Contribute to Documentation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#coding-style" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/contribute-code/index.html b/content/docs/3.0.0/contribute-code/index.html
index 640cb36..d5a5913 100644
--- a/content/docs/3.0.0/contribute-code/index.html
+++ b/content/docs/3.0.0/contribute-code/index.html
@@ -155,7 +155,7 @@ the updated Python files to replace those in the Python installation folder,</p>
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="workflow"></a><a href="#workflow" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Please refer to the <a href="./git-workflow">git workflow page</a>.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/13/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/build"><span class="arrow-prev">← </span><span>Build SINGA from Source</span></a><a class="docs-next button" href="/docs/3.0.0/contribute-docs"><span>How to Contribute to Documentation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#coding-style"> [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 13/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/build"><span class="arrow-prev">← </span><span>Build SINGA from Source</span></a><a class="docs-next button" href="/docs/3.0.0/contribute-docs"><span>How to Contribute to Documentation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#coding-style" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/contribute-docs.html b/content/docs/3.0.0/contribute-docs.html
index a8c1858..e864ed1 100644
--- a/content/docs/3.0.0/contribute-docs.html
+++ b/content/docs/3.0.0/contribute-docs.html
@@ -139,7 +139,7 @@ via <code>File - Preferences - User Snippets - python.json</code></p>
 &quot;description&quot;: &quot;# spell check only for cpp comments&quot;
 }
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/3.0.0/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#markdown-files">M [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/3.0.0/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#markdown-files" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/contribute-docs/index.html b/content/docs/3.0.0/contribute-docs/index.html
index a8c1858..e864ed1 100644
--- a/content/docs/3.0.0/contribute-docs/index.html
+++ b/content/docs/3.0.0/contribute-docs/index.html
@@ -139,7 +139,7 @@ via <code>File - Preferences - User Snippets - python.json</code></p>
 &quot;description&quot;: &quot;# spell check only for cpp comments&quot;
 }
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/3.0.0/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#markdown-files">M [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/3.0.0/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#markdown-files" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/device.html b/content/docs/3.0.0/device.html
index 5f564c6..5207589 100644
--- a/content/docs/3.0.0/device.html
+++ b/content/docs/3.0.0/device.html
@@ -81,7 +81,7 @@ host = device.get_default_device()  <span class="hljs-comment"># get the default
 ary1 = device.create_cuda_gpus(<span class="hljs-number">2</span>)  <span class="hljs-comment"># create 2 devices, starting from ID 0</span>
 ary2 = device.create_cuda_gpus([<span class="hljs-number">0</span>,<span class="hljs-number">2</span>])  <span class="hljs-comment"># create 2 devices on ID 0 and 2</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.0.0/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#specific-devices">Specific devices</a></li><li><a href="#example [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.0.0/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#specific-devices">Specific devices</a></li><li><a href="#examp [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/device/index.html b/content/docs/3.0.0/device/index.html
index 5f564c6..5207589 100644
--- a/content/docs/3.0.0/device/index.html
+++ b/content/docs/3.0.0/device/index.html
@@ -81,7 +81,7 @@ host = device.get_default_device()  <span class="hljs-comment"># get the default
 ary1 = device.create_cuda_gpus(<span class="hljs-number">2</span>)  <span class="hljs-comment"># create 2 devices, starting from ID 0</span>
 ary2 = device.create_cuda_gpus([<span class="hljs-number">0</span>,<span class="hljs-number">2</span>])  <span class="hljs-comment"># create 2 devices on ID 0 and 2</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.0.0/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#specific-devices">Specific devices</a></li><li><a href="#example [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.0.0/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#specific-devices">Specific devices</a></li><li><a href="#examp [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/dist-train.html b/content/docs/3.0.0/dist-train.html
index 25d1ede..296df08 100644
--- a/content/docs/3.0.0/dist-train.html
+++ b/content/docs/3.0.0/dist-train.html
@@ -397,7 +397,7 @@ partitioned, so that each process can evaluate the sub-gradient based on the
 partitioned training data. Once the sub-gradient is calculated on each
 processes, the overall stochastic gradient is obtained by all-reducing the
 sub-gradients evaluated by all processes.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/onnx"><span class="arrow-prev">← </span><span>ONNX</span></a><a class="docs-next button" href="/docs/3.0.0/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a><ul class="toc-headings"><li><a href="#e [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/onnx"><span class="arrow-prev">← </span><span>ONNX</span></a><a class="docs-next button" href="/docs/3.0.0/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a><ul class="toc-headings"><li><a href=" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/dist-train/index.html b/content/docs/3.0.0/dist-train/index.html
index 25d1ede..296df08 100644
--- a/content/docs/3.0.0/dist-train/index.html
+++ b/content/docs/3.0.0/dist-train/index.html
@@ -397,7 +397,7 @@ partitioned, so that each process can evaluate the sub-gradient based on the
 partitioned training data. Once the sub-gradient is calculated on each
 processes, the overall stochastic gradient is obtained by all-reducing the
 sub-gradients evaluated by all processes.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/onnx"><span class="arrow-prev">← </span><span>ONNX</span></a><a class="docs-next button" href="/docs/3.0.0/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a><ul class="toc-headings"><li><a href="#e [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/onnx"><span class="arrow-prev">← </span><span>ONNX</span></a><a class="docs-next button" href="/docs/3.0.0/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a><ul class="toc-headings"><li><a href=" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/download-singa.html b/content/docs/3.0.0/download-singa.html
index 29ecacb..c14117c 100644
--- a/content/docs/3.0.0/download-singa.html
+++ b/content/docs/3.0.0/download-singa.html
@@ -243,7 +243,7 @@ models, energy models and RNN models.</li>
 <li>Unit test using gtest</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/19/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/3.0.0/build"><span>Build SINGA from Source</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verify">Verify</a></li><li><a hre [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 19/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/3.0.0/build"><span>Build SINGA from Source</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verify">Verify</a></li><li><a hr [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/download-singa/index.html b/content/docs/3.0.0/download-singa/index.html
index 29ecacb..c14117c 100644
--- a/content/docs/3.0.0/download-singa/index.html
+++ b/content/docs/3.0.0/download-singa/index.html
@@ -243,7 +243,7 @@ models, energy models and RNN models.</li>
 <li>Unit test using gtest</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/19/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/3.0.0/build"><span>Build SINGA from Source</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verify">Verify</a></li><li><a hre [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 19/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/3.0.0/build"><span>Build SINGA from Source</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verify">Verify</a></li><li><a hr [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/examples.html b/content/docs/3.0.0/examples.html
index 8a54a5e..b84a170 100644
--- a/content/docs/3.0.0/examples.html
+++ b/content/docs/3.0.0/examples.html
@@ -125,7 +125,7 @@ example is given below.</p>
 <li>Restricted Boltzmann Machine over the MNIST dataset, <a href="">source</a>,
 <a href="https://colab.research.google.com/drive/19996noGu9JyHHkVmp4edBGu7PJSRQKsd">Colab</a>.</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/software-stack"><span class="arrow-prev">← </span><span>Software Stack</span></a><a class="docs-next button" href="/docs/3.0.0/device"><span>Device</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#image-classification">Image Classification</a></li>< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/software-stack"><span class="arrow-prev">← </span><span>Software Stack</span></a><a class="docs-next button" href="/docs/3.0.0/device"><span>Device</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#image-classification">Image Classification</a></li [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/examples/index.html b/content/docs/3.0.0/examples/index.html
index 8a54a5e..b84a170 100644
--- a/content/docs/3.0.0/examples/index.html
+++ b/content/docs/3.0.0/examples/index.html
@@ -125,7 +125,7 @@ example is given below.</p>
 <li>Restricted Boltzmann Machine over the MNIST dataset, <a href="">source</a>,
 <a href="https://colab.research.google.com/drive/19996noGu9JyHHkVmp4edBGu7PJSRQKsd">Colab</a>.</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/software-stack"><span class="arrow-prev">← </span><span>Software Stack</span></a><a class="docs-next button" href="/docs/3.0.0/device"><span>Device</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#image-classification">Image Classification</a></li>< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/software-stack"><span class="arrow-prev">← </span><span>Software Stack</span></a><a class="docs-next button" href="/docs/3.0.0/device"><span>Device</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#image-classification">Image Classification</a></li [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/git-workflow.html b/content/docs/3.0.0/git-workflow.html
index 37149f9..3215015 100644
--- a/content/docs/3.0.0/git-workflow.html
+++ b/content/docs/3.0.0/git-workflow.html
@@ -162,7 +162,7 @@ git push asf dev:dev
 </code></pre>
 <p>Do not use rebase to merge the PR; and disable fast forward.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/how-to-release"><span class="arrow-prev">← </span><span>How to Prepare a Release</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#for-developers">For Developers</a></li><li><a href="#for-committers">For Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer"><sect [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/how-to-release"><span class="arrow-prev">← </span><span>How to Prepare a Release</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#for-developers">For Developers</a></li><li><a href="#for-committers">For Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer"><se [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/git-workflow/index.html b/content/docs/3.0.0/git-workflow/index.html
index 37149f9..3215015 100644
--- a/content/docs/3.0.0/git-workflow/index.html
+++ b/content/docs/3.0.0/git-workflow/index.html
@@ -162,7 +162,7 @@ git push asf dev:dev
 </code></pre>
 <p>Do not use rebase to merge the PR; and disable fast forward.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/how-to-release"><span class="arrow-prev">← </span><span>How to Prepare a Release</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#for-developers">For Developers</a></li><li><a href="#for-committers">For Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer"><sect [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/how-to-release"><span class="arrow-prev">← </span><span>How to Prepare a Release</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#for-developers">For Developers</a></li><li><a href="#for-committers">For Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer"><se [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/graph.html b/content/docs/3.0.0/graph.html
index d776a55..c443296 100644
--- a/content/docs/3.0.0/graph.html
+++ b/content/docs/3.0.0/graph.html
@@ -547,7 +547,7 @@ memory footprint.</li>
 <li>Currently, there is a little improvement in terms of speed. More optimizations
 can be done towards the efficiency.</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/13/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/autograd"><span class="arrow-prev">← </span><span>Autograd</span></a><a class="docs-next button" href="/docs/3.0.0/onnx"><span>ONNX</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example">Example</a></li><li><a href="#implementation">Implementati [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 13/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/autograd"><span class="arrow-prev">← </span><span>Autograd</span></a><a class="docs-next button" href="/docs/3.0.0/onnx"><span>ONNX</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example">Example</a></li><li><a href="#implementation">Implementat [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/graph/index.html b/content/docs/3.0.0/graph/index.html
index d776a55..c443296 100644
--- a/content/docs/3.0.0/graph/index.html
+++ b/content/docs/3.0.0/graph/index.html
@@ -547,7 +547,7 @@ memory footprint.</li>
 <li>Currently, there is a little improvement in terms of speed. More optimizations
 can be done towards the efficiency.</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/13/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/autograd"><span class="arrow-prev">← </span><span>Autograd</span></a><a class="docs-next button" href="/docs/3.0.0/onnx"><span>ONNX</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example">Example</a></li><li><a href="#implementation">Implementati [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 13/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/autograd"><span class="arrow-prev">← </span><span>Autograd</span></a><a class="docs-next button" href="/docs/3.0.0/onnx"><span>ONNX</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example">Example</a></li><li><a href="#implementation">Implementat [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/history-singa.html b/content/docs/3.0.0/history-singa.html
index 1235317..333a653 100644
--- a/content/docs/3.0.0/history-singa.html
+++ b/content/docs/3.0.0/history-singa.html
@@ -91,7 +91,7 @@ applications.</p>
 <h2><a class="anchor" aria-hidden="true" id="license"></a><a href="#license" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p>SINGA is released under
 <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License Version 2.0</a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/team-list"><span class="arrow-prev">← </span><span>The SINGA Team</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#history">History</a></li><li><a href="#license">License</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav- [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/team-list"><span class="arrow-prev">← </span><span>The SINGA Team</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#history">History</a></li><li><a href="#license">License</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="na [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/history-singa/index.html b/content/docs/3.0.0/history-singa/index.html
index 1235317..333a653 100644
--- a/content/docs/3.0.0/history-singa/index.html
+++ b/content/docs/3.0.0/history-singa/index.html
@@ -91,7 +91,7 @@ applications.</p>
 <h2><a class="anchor" aria-hidden="true" id="license"></a><a href="#license" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p>SINGA is released under
 <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License Version 2.0</a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/team-list"><span class="arrow-prev">← </span><span>The SINGA Team</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#history">History</a></li><li><a href="#license">License</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav- [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/team-list"><span class="arrow-prev">← </span><span>The SINGA Team</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#history">History</a></li><li><a href="#license">License</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="na [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/how-to-release.html b/content/docs/3.0.0/how-to-release.html
index d3a37fb..d853cb3 100644
--- a/content/docs/3.0.0/how-to-release.html
+++ b/content/docs/3.0.0/how-to-release.html
@@ -204,7 +204,7 @@ and contributions to the project.
 On behalf of the SINGA team, {SINGA Team Member Name}
 </code></pre></li>
 </ol>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/13/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/contribute-docs"><span class="arrow-prev">← </span><span>How to Contribute to Documentation</span></a><a class="docs-next button" href="/docs/3.0.0/git-workflow"><span>Git Workflow</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><secti [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 13/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/contribute-docs"><span class="arrow-prev">← </span><span>How to Contribute to Documentation</span></a><a class="docs-next button" href="/docs/3.0.0/git-workflow"><span>Git Workflow</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><sect [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/how-to-release/index.html b/content/docs/3.0.0/how-to-release/index.html
index d3a37fb..d853cb3 100644
--- a/content/docs/3.0.0/how-to-release/index.html
+++ b/content/docs/3.0.0/how-to-release/index.html
@@ -204,7 +204,7 @@ and contributions to the project.
 On behalf of the SINGA team, {SINGA Team Member Name}
 </code></pre></li>
 </ol>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/13/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/contribute-docs"><span class="arrow-prev">← </span><span>How to Contribute to Documentation</span></a><a class="docs-next button" href="/docs/3.0.0/git-workflow"><span>Git Workflow</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><secti [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 13/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/contribute-docs"><span class="arrow-prev">← </span><span>How to Contribute to Documentation</span></a><a class="docs-next button" href="/docs/3.0.0/git-workflow"><span>Git Workflow</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><sect [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/install-win.html b/content/docs/3.0.0/install-win.html
index ad35003..fad05a5 100644
--- a/content/docs/3.0.0/install-win.html
+++ b/content/docs/3.0.0/install-win.html
@@ -339,7 +339,7 @@ test/release folder</p></li>
 </ul>
 <p>A video tutorial for running the unit tests can be found here:</p>
 <p><a href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" alt="youtube video"></a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install-dependencies">Install Dependencies</a></li><li><a href="#build-singa-source">Build SINGA source</a></li><li><a href="#install-python-module">Install Python module</a></li><li><a href="#run-unit-tests">Run Unit Tests</a></li><li><a href="#build-gpu-support-with-cuda">Build GPU suppo [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install-dependencies">Install Dependencies</a></li><li><a href="#build-singa-source">Build SINGA source</a></li><li><a href="#install-python-module">Install Python module</a></li><li><a href="#run-unit-tests">Run Unit Tests</a></li><li><a href="#build-gpu-support-with-cuda">Build GPU sup [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/install-win/index.html b/content/docs/3.0.0/install-win/index.html
index ad35003..fad05a5 100644
--- a/content/docs/3.0.0/install-win/index.html
+++ b/content/docs/3.0.0/install-win/index.html
@@ -339,7 +339,7 @@ test/release folder</p></li>
 </ul>
 <p>A video tutorial for running the unit tests can be found here:</p>
 <p><a href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" alt="youtube video"></a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install-dependencies">Install Dependencies</a></li><li><a href="#build-singa-source">Build SINGA source</a></li><li><a href="#install-python-module">Install Python module</a></li><li><a href="#run-unit-tests">Run Unit Tests</a></li><li><a href="#build-gpu-support-with-cuda">Build GPU suppo [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install-dependencies">Install Dependencies</a></li><li><a href="#build-singa-source">Build SINGA source</a></li><li><a href="#install-python-module">Install Python module</a></li><li><a href="#run-unit-tests">Run Unit Tests</a></li><li><a href="#build-gpu-support-with-cuda">Build GPU sup [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/installation.html b/content/docs/3.0.0/installation.html
index 331ed19..d108a4b 100644
--- a/content/docs/3.0.0/installation.html
+++ b/content/docs/3.0.0/installation.html
@@ -171,7 +171,7 @@ check your interpreter by <code>which python</code> and check the Python linked
 via <code>otool -L &lt;path to _singa_wrap.so&gt;</code>. This problem should be resolved if
 SINGA is installation via conda.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0/software-stack"><span>Software Stack</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#from-conda">From Conda</a></li><li><a href="#using-docker">Using Docker</a></li><li><a href="#from-source">From source</a></li><li><a href="#faq">FAQ</a></li></ul> [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0/software-stack"><span>Software Stack</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#from-conda">From Conda</a></li><li><a href="#using-docker">Using Docker</a></li><li><a href="#from-source">From source</a></li><li><a href="#faq">FAQ</a></li></u [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/installation/index.html b/content/docs/3.0.0/installation/index.html
index 331ed19..d108a4b 100644
--- a/content/docs/3.0.0/installation/index.html
+++ b/content/docs/3.0.0/installation/index.html
@@ -171,7 +171,7 @@ check your interpreter by <code>which python</code> and check the Python linked
 via <code>otool -L &lt;path to _singa_wrap.so&gt;</code>. This problem should be resolved if
 SINGA is installation via conda.</p></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0/software-stack"><span>Software Stack</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#from-conda">From Conda</a></li><li><a href="#using-docker">Using Docker</a></li><li><a href="#from-source">From source</a></li><li><a href="#faq">FAQ</a></li></ul> [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0/software-stack"><span>Software Stack</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#from-conda">From Conda</a></li><li><a href="#using-docker">Using Docker</a></li><li><a href="#from-source">From source</a></li><li><a href="#faq">FAQ</a></li></u [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/issue-tracking.html b/content/docs/3.0.0/issue-tracking.html
index 69258f2..27c6134 100644
--- a/content/docs/3.0.0/issue-tracking.html
+++ b/content/docs/3.0.0/issue-tracking.html
@@ -64,7 +64,7 @@
 <p>SINGA used <a href="https://issues.apache.org/jira/browse/singa">JIRA</a> to manage issues
 including bugs, new features and discussions.</p>
 <p>We are now moving to <a href="https://github.com/apache/singa/issues">Github Issues</a>.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/mail-lists"><span class="arrow-prev">← </span><span>Project Mailing Lists</span></a><a class="docs-next button" href="/docs/3.0.0/security"><span>Security</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href= [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/mail-lists"><span class="arrow-prev">← </span><span>Project Mailing Lists</span></a><a class="docs-next button" href="/docs/3.0.0/security"><span>Security</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a hre [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/issue-tracking/index.html b/content/docs/3.0.0/issue-tracking/index.html
index 69258f2..27c6134 100644
--- a/content/docs/3.0.0/issue-tracking/index.html
+++ b/content/docs/3.0.0/issue-tracking/index.html
@@ -64,7 +64,7 @@
 <p>SINGA used <a href="https://issues.apache.org/jira/browse/singa">JIRA</a> to manage issues
 including bugs, new features and discussions.</p>
 <p>We are now moving to <a href="https://github.com/apache/singa/issues">Github Issues</a>.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/mail-lists"><span class="arrow-prev">← </span><span>Project Mailing Lists</span></a><a class="docs-next button" href="/docs/3.0.0/security"><span>Security</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href= [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/mail-lists"><span class="arrow-prev">← </span><span>Project Mailing Lists</span></a><a class="docs-next button" href="/docs/3.0.0/security"><span>Security</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a hre [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/mail-lists.html b/content/docs/3.0.0/mail-lists.html
index 64b3d8a..09bf61f 100644
--- a/content/docs/3.0.0/mail-lists.html
+++ b/content/docs/3.0.0/mail-lists.html
@@ -73,7 +73,7 @@ each list, there is a subscribe, unsubscribe, and an archive link.</p>
 <tr><td>Security</td><td><a href="mailto:security@singa.apache.org">security@singa.apache.org</a></td><td>private</td><td>private</td><td>private</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/source-repository"><span class="arrow-prev">← </span><span>Source Repository</span></a><a class="docs-next button" href="/docs/3.0.0/issue-tracking"><span>Issue Tracking</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="si [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/source-repository"><span class="arrow-prev">← </span><span>Source Repository</span></a><a class="docs-next button" href="/docs/3.0.0/issue-tracking"><span>Issue Tracking</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class=" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/mail-lists/index.html b/content/docs/3.0.0/mail-lists/index.html
index 64b3d8a..09bf61f 100644
--- a/content/docs/3.0.0/mail-lists/index.html
+++ b/content/docs/3.0.0/mail-lists/index.html
@@ -73,7 +73,7 @@ each list, there is a subscribe, unsubscribe, and an archive link.</p>
 <tr><td>Security</td><td><a href="mailto:security@singa.apache.org">security@singa.apache.org</a></td><td>private</td><td>private</td><td>private</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/source-repository"><span class="arrow-prev">← </span><span>Source Repository</span></a><a class="docs-next button" href="/docs/3.0.0/issue-tracking"><span>Issue Tracking</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="si [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/source-repository"><span class="arrow-prev">← </span><span>Source Repository</span></a><a class="docs-next button" href="/docs/3.0.0/issue-tracking"><span>Issue Tracking</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class=" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/onnx.html b/content/docs/3.0.0/onnx.html
index 743361e..dce8efb 100644
--- a/content/docs/3.0.0/onnx.html
+++ b/content/docs/3.0.0/onnx.html
@@ -752,7 +752,7 @@ of the model and run the SINGA operators one by one following the operators
 queue. The user can use <code>last_layers</code> to decide to run the model till the last
 few layers. Set <code>all_outputs</code> as <code>False</code> to get only the final output, <code>True</code> to
 also get all the intermediate output.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/10/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/graph"><span class="arrow-prev">← </span><span>Model</span></a><a class="docs-next button" href="/docs/3.0.0/dist-train"><span>Distributed Training</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#general-usage">General usage</a><ul class="toc-head [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/graph"><span class="arrow-prev">← </span><span>Model</span></a><a class="docs-next button" href="/docs/3.0.0/dist-train"><span>Distributed Training</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#general-usage">General usage</a><ul class="toc-hea [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/onnx/index.html b/content/docs/3.0.0/onnx/index.html
index 743361e..dce8efb 100644
--- a/content/docs/3.0.0/onnx/index.html
+++ b/content/docs/3.0.0/onnx/index.html
@@ -752,7 +752,7 @@ of the model and run the SINGA operators one by one following the operators
 queue. The user can use <code>last_layers</code> to decide to run the model till the last
 few layers. Set <code>all_outputs</code> as <code>False</code> to get only the final output, <code>True</code> to
 also get all the intermediate output.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/10/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/graph"><span class="arrow-prev">← </span><span>Model</span></a><a class="docs-next button" href="/docs/3.0.0/dist-train"><span>Distributed Training</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#general-usage">General usage</a><ul class="toc-head [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/graph"><span class="arrow-prev">← </span><span>Model</span></a><a class="docs-next button" href="/docs/3.0.0/dist-train"><span>Distributed Training</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#general-usage">General usage</a><ul class="toc-hea [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_0.1.0.html b/content/docs/3.0.0/releases/RELEASE_NOTES_0.1.0.html
index 43246ed..bb97f7b 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_0.1.0.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_0.1.0.html
@@ -173,7 +173,7 @@ Param update</li>
 <li><a href="https://issues.apache.org/jira/browse/SINGA-41">SINGA-41</a> Support single node
 single GPU training</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_0.1.0/index.html b/content/docs/3.0.0/releases/RELEASE_NOTES_0.1.0/index.html
index 43246ed..bb97f7b 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_0.1.0/index.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_0.1.0/index.html
@@ -173,7 +173,7 @@ Param update</li>
 <li><a href="https://issues.apache.org/jira/browse/SINGA-41">SINGA-41</a> Support single node
 single GPU training</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_0.2.0.html b/content/docs/3.0.0/releases/RELEASE_NOTES_0.2.0.html
index acd35ac..31da46e 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_0.2.0.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_0.2.0.html
@@ -108,7 +108,7 @@ main()</li>
 <li>[SINGA-116] Fix a bug in InnerProductLayer caused by weight matrix sharing</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_0.2.0/index.html b/content/docs/3.0.0/releases/RELEASE_NOTES_0.2.0/index.html
index acd35ac..31da46e 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_0.2.0/index.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_0.2.0/index.html
@@ -108,7 +108,7 @@ main()</li>
 <li>[SINGA-116] Fix a bug in InnerProductLayer caused by weight matrix sharing</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_0.3.0.html b/content/docs/3.0.0/releases/RELEASE_NOTES_0.3.0.html
index 28b47f8..246be3d 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_0.3.0.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_0.3.0.html
@@ -42,7 +42,7 @@ of popular deep learning models.</p>
 <li>[SINGA-143] The compilation cannot detect libsingagpu.so file</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_0.3.0/index.html b/content/docs/3.0.0/releases/RELEASE_NOTES_0.3.0/index.html
index 28b47f8..246be3d 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_0.3.0/index.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_0.3.0/index.html
@@ -42,7 +42,7 @@ of popular deep learning models.</p>
 <li>[SINGA-143] The compilation cannot detect libsingagpu.so file</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_1.0.0.html b/content/docs/3.0.0/releases/RELEASE_NOTES_1.0.0.html
index a7a802e..f92e95b 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_1.0.0.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_1.0.0.html
@@ -104,7 +104,7 @@ layer.</li>
 <li>[SINGA-172] Add CMake supporting for Cuda and Cudnn libs</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_1.0.0/index.html b/content/docs/3.0.0/releases/RELEASE_NOTES_1.0.0/index.html
index a7a802e..f92e95b 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_1.0.0/index.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_1.0.0/index.html
@@ -104,7 +104,7 @@ layer.</li>
 <li>[SINGA-172] Add CMake supporting for Cuda and Cudnn libs</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_1.1.0.html b/content/docs/3.0.0/releases/RELEASE_NOTES_1.1.0.html
index b8cad77..e108fc4 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_1.1.0.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_1.1.0.html
@@ -56,7 +56,7 @@ file</li>
 Python</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_1.1.0/index.html b/content/docs/3.0.0/releases/RELEASE_NOTES_1.1.0/index.html
index b8cad77..e108fc4 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_1.1.0/index.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_1.1.0/index.html
@@ -56,7 +56,7 @@ file</li>
 Python</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_1.2.0.html b/content/docs/3.0.0/releases/RELEASE_NOTES_1.2.0.html
index 5931674..77a1e87 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_1.2.0.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_1.2.0.html
@@ -62,7 +62,7 @@ learning models over large datasets.</p>
 <li>[SINGA-369] the errors of examples in testing</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_1.2.0/index.html b/content/docs/3.0.0/releases/RELEASE_NOTES_1.2.0/index.html
index 5931674..77a1e87 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_1.2.0/index.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_1.2.0/index.html
@@ -62,7 +62,7 @@ learning models over large datasets.</p>
 <li>[SINGA-369] the errors of examples in testing</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_2.0.0.html b/content/docs/3.0.0/releases/RELEASE_NOTES_2.0.0.html
index 347475e..ef3b11b 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_2.0.0.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_2.0.0.html
@@ -58,7 +58,7 @@ autograd</li>
 <li>[SINGA-380] Fix bugs from Reshape</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_2.0.0/index.html b/content/docs/3.0.0/releases/RELEASE_NOTES_2.0.0/index.html
index 347475e..ef3b11b 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_2.0.0/index.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_2.0.0/index.html
@@ -58,7 +58,7 @@ autograd</li>
 <li>[SINGA-380] Fix bugs from Reshape</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.html b/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.html
index e0d1c6f..9bba9d2 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.html
@@ -95,7 +95,7 @@ move some inputs to its attributes;</li>
 <li>Define and implement the type conversion map.</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/19/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readt [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 19/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.rc1.html b/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.rc1.html
index 50a2c0a..0a31b1c 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.rc1.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.rc1.html
@@ -95,7 +95,7 @@ move some inputs to its attributes;</li>
 <li>Define and implement the type conversion map.</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.rc1/index.html b/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.rc1/index.html
index 50a2c0a..0a31b1c 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.rc1/index.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0.rc1/index.html
@@ -95,7 +95,7 @@ move some inputs to its attributes;</li>
 <li>Define and implement the type conversion map.</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readth [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0/index.html b/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0/index.html
index e0d1c6f..9bba9d2 100644
--- a/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0/index.html
+++ b/content/docs/3.0.0/releases/RELEASE_NOTES_3.0.0/index.html
@@ -95,7 +95,7 @@ move some inputs to its attributes;</li>
 <li>Define and implement the type conversion map.</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/19/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.readt [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 19/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/security.html b/content/docs/3.0.0/security.html
index 929dabf..5f0b319 100644
--- a/content/docs/3.0.0/security.html
+++ b/content/docs/3.0.0/security.html
@@ -63,7 +63,7 @@
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/security.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Security</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license  [...]
 <p>Users can report security vulnerabilities to
 <a href="mailto:security@singa.apache.org">SINGA Security Team Mail List</a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/issue-tracking"><span class="arrow-prev">← </span><span>Issue Tracking</span></a><a class="docs-next button" href="/docs/3.0.0/team-list"><span>The SINGA Team</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a h [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/issue-tracking"><span class="arrow-prev">← </span><span>Issue Tracking</span></a><a class="docs-next button" href="/docs/3.0.0/team-list"><span>The SINGA Team</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/security/index.html b/content/docs/3.0.0/security/index.html
index 929dabf..5f0b319 100644
--- a/content/docs/3.0.0/security/index.html
+++ b/content/docs/3.0.0/security/index.html
@@ -63,7 +63,7 @@
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/security.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Security</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license  [...]
 <p>Users can report security vulnerabilities to
 <a href="mailto:security@singa.apache.org">SINGA Security Team Mail List</a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/issue-tracking"><span class="arrow-prev">← </span><span>Issue Tracking</span></a><a class="docs-next button" href="/docs/3.0.0/team-list"><span>The SINGA Team</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a h [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/issue-tracking"><span class="arrow-prev">← </span><span>Issue Tracking</span></a><a class="docs-next button" href="/docs/3.0.0/team-list"><span>The SINGA Team</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/software-stack.html b/content/docs/3.0.0/software-stack.html
index aaff1e2..acf04b5 100644
--- a/content/docs/3.0.0/software-stack.html
+++ b/content/docs/3.0.0/software-stack.html
@@ -172,7 +172,7 @@ update the parameters via <code>Opt</code> automatically when training data is f
 <li>SingaBackend for loading onnx format model into SINGA for training and
 inference.</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/installation"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/3.0.0/examples"><span>Examples</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#low-level-backend">Low-level Backend</a><ul class="t [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/installation"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/3.0.0/examples"><span>Examples</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#low-level-backend">Low-level Backend</a><ul class= [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/software-stack/index.html b/content/docs/3.0.0/software-stack/index.html
index aaff1e2..acf04b5 100644
--- a/content/docs/3.0.0/software-stack/index.html
+++ b/content/docs/3.0.0/software-stack/index.html
@@ -172,7 +172,7 @@ update the parameters via <code>Opt</code> automatically when training data is f
 <li>SingaBackend for loading onnx format model into SINGA for training and
 inference.</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/installation"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/3.0.0/examples"><span>Examples</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#low-level-backend">Low-level Backend</a><ul class="t [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/installation"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/3.0.0/examples"><span>Examples</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#low-level-backend">Low-level Backend</a><ul class= [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/source-repository.html b/content/docs/3.0.0/source-repository.html
index ae8c592..892e587 100644
--- a/content/docs/3.0.0/source-repository.html
+++ b/content/docs/3.0.0/source-repository.html
@@ -75,7 +75,7 @@ Instructions on Git use can be found at <a href="http://git-scm.com/documentatio
 <p>The code can be cloned from either repo, e.g.,</p>
 <pre><code class="hljs">git clone https://github.com/apache/singa.git
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0/mail-lists"><span>Project Mailing Lists</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#repository">Repository</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/sing [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0/mail-lists"><span>Project Mailing Lists</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#repository">Repository</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/si [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/source-repository/index.html b/content/docs/3.0.0/source-repository/index.html
index ae8c592..892e587 100644
--- a/content/docs/3.0.0/source-repository/index.html
+++ b/content/docs/3.0.0/source-repository/index.html
@@ -75,7 +75,7 @@ Instructions on Git use can be found at <a href="http://git-scm.com/documentatio
 <p>The code can be cloned from either repo, e.g.,</p>
 <pre><code class="hljs">git clone https://github.com/apache/singa.git
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0/mail-lists"><span>Project Mailing Lists</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#repository">Repository</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/sing [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/3.0.0/mail-lists"><span>Project Mailing Lists</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#repository">Repository</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/si [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/team-list.html b/content/docs/3.0.0/team-list.html
index 43d0d2e..d30c051 100644
--- a/content/docs/3.0.0/team-list.html
+++ b/content/docs/3.0.0/team-list.html
@@ -120,7 +120,7 @@ Zhejiang University, NetEase, Osaka University, yzBigData, etc.</p>
 <tr><td>Rulin Xing</td><td><a href="mailto:xjdkcsq3@gmail.com">xjdkcsq3@gmail.com</a></td><td>Huazhong University of Science and Technology</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/security"><span class="arrow-prev">← </span><span>Security</span></a><a class="docs-next button" href="/docs/3.0.0/history-singa"><span>History of SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pmc">PMC</a></li><li><a href="#committers">Comm [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/security"><span class="arrow-prev">← </span><span>Security</span></a><a class="docs-next button" href="/docs/3.0.0/history-singa"><span>History of SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pmc">PMC</a></li><li><a href="#committers">Co [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/team-list/index.html b/content/docs/3.0.0/team-list/index.html
index 43d0d2e..d30c051 100644
--- a/content/docs/3.0.0/team-list/index.html
+++ b/content/docs/3.0.0/team-list/index.html
@@ -120,7 +120,7 @@ Zhejiang University, NetEase, Osaka University, yzBigData, etc.</p>
 <tr><td>Rulin Xing</td><td><a href="mailto:xjdkcsq3@gmail.com">xjdkcsq3@gmail.com</a></td><td>Huazhong University of Science and Technology</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/security"><span class="arrow-prev">← </span><span>Security</span></a><a class="docs-next button" href="/docs/3.0.0/history-singa"><span>History of SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pmc">PMC</a></li><li><a href="#committers">Comm [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/security"><span class="arrow-prev">← </span><span>Security</span></a><a class="docs-next button" href="/docs/3.0.0/history-singa"><span>History of SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pmc">PMC</a></li><li><a href="#committers">Co [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/tensor.html b/content/docs/3.0.0/tensor.html
index 4ba5295..6a3ed11 100644
--- a/content/docs/3.0.0/tensor.html
+++ b/content/docs/3.0.0/tensor.html
@@ -242,7 +242,7 @@ generated function in <code>singa_wrap.py</code></li>
 <p><em>work in progress</em></p>
 <h2><a class="anchor" aria-hidden="true" id="cpp-api"></a><a href="#cpp-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p><em>work in progress</em></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/3/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/device"><span class="arrow-prev">← </span><span>Device</span></a><a class="docs-next button" href="/docs/3.0.0/autograd"><span>Autograd</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tensor-usage">Tensor Usage</a><ul class="toc-headings"><li><a hr [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 03/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/device"><span class="arrow-prev">← </span><span>Device</span></a><a class="docs-next button" href="/docs/3.0.0/autograd"><span>Autograd</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tensor-usage">Tensor Usage</a><ul class="toc-headings"><li><a  [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/tensor/index.html b/content/docs/3.0.0/tensor/index.html
index 4ba5295..6a3ed11 100644
--- a/content/docs/3.0.0/tensor/index.html
+++ b/content/docs/3.0.0/tensor/index.html
@@ -242,7 +242,7 @@ generated function in <code>singa_wrap.py</code></li>
 <p><em>work in progress</em></p>
 <h2><a class="anchor" aria-hidden="true" id="cpp-api"></a><a href="#cpp-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p><em>work in progress</em></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/3/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/device"><span class="arrow-prev">← </span><span>Device</span></a><a class="docs-next button" href="/docs/3.0.0/autograd"><span>Autograd</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tensor-usage">Tensor Usage</a><ul class="toc-headings"><li><a hr [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 03/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0/device"><span class="arrow-prev">← </span><span>Device</span></a><a class="docs-next button" href="/docs/3.0.0/autograd"><span>Autograd</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tensor-usage">Tensor Usage</a><ul class="toc-headings"><li><a  [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/time-profiling.html b/content/docs/3.0.0/time-profiling.html
similarity index 63%
copy from content/docs/time-profiling.html
copy to content/docs/3.0.0/time-profiling.html
index c193557..ce3f9cb 100644
--- a/content/docs/time-profiling.html
+++ b/content/docs/3.0.0/time-profiling.html
@@ -1,78 +1,14 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              var headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                var el = event.target;
-                while(el !== headings){
-                  if (el.tagName === 'A') {
-                    document.body.classList.remove('tocActive');
-                    break;
-                  } else{
-                    el = el.parentNode;
-                  }
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/time-profiling.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Time Profiling</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contribu [...]
-<p>SINGA supports the time profiling of each of the operators buffered in the
-graph. To utilize the time profiling function, we first call the
-<code>device.SetVerbosity</code> method to set the verbosity of the time profilier, and
-then call the <code>device.PrintTimeProfiling</code> to print out the results of time
-profiling.</p>
-<h2><a class="anchor" aria-hidden="true" id="setup-the-time-profiling-verbosity"></a><a href="#setup-the-time-profiling-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
-<p>To use the time profiling function, we need to set the verbosity. There are
-three levels of verbosity. With the default value <code>verbosity == 0</code>, it will not
-do any time profiling. When we set <code>verbosity == 1</code>, it will profile the forward
-and backward propagation time. When <code>verbosity == 2</code>, it will profile the time
-spent on every buffered operation in the graph.</p>
-<p>The following is the example code to setup the time profiling function:</p>
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<p>SINGA支持对图中缓冲的每个运算符进行时间分析。为了利用时间分析功能,我们首先调用<code>device.SetVerbosity</code>方法来设置时间分析器的verbosity,然后调用<code>device.PrintTimeProfiling</code>来打印出时间分析的结果。</p>
+<h2><a class="anchor" aria-hidden="true" id="设置时间分析verbosity"></a><a href="#设置时间分析verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>要使用时间分析功能,我们需要设置verbosity。有三个级别的verbosity。在默认值<code>verbosity == 0</code>的情况下,它不会进行任何时间分析。当我们设置<code>verbosity == 1</code>时,它将对前向和后向传播时间进行分析。当<code>verbosity == 2</code>时,它将对图中每个缓冲操作所花费的时间进行分析。</p>
+<p>以下是设置时间分析功能的示例代码:</p>
 <pre><code class="hljs css language-python"><span class="hljs-comment"># create a device</span>
 <span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> device
 dev = device.create_cuda_gpu()
@@ -82,15 +18,11 @@ dev.SetVerbosity(verbosity)
 <span class="hljs-comment"># optional: skip the first 5 iterations when profiling the time</span>
 dev.SetSkipIteration(<span class="hljs-number">5</span>)
 </code></pre>
-<p>Then, after we have completed the training at the end of the program, we can
-print the time profiling result by calling the <code>device.PrintTimeProfiling</code>
-method:</p>
+<p>那么,当我们在程序的最后完成训练后,我们就可以通过调用<code>device.PrintTimeProfiling</code>方法来打印时间分析结果。</p>
 <pre><code class="hljs css language-python">dev.PrintTimeProfiling()
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="example-outputs-for-different-verbosity"></a><a href="#example-outputs-for-different-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2  [...]
-<p>We can run the ResNet
-<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">example</a>
-to see the output with different setting of verbosity:</p>
+<h2><a class="anchor" aria-hidden="true" id="不同verbosity的输出示例"></a><a href="#不同verbosity的输出示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>我们可以运行ResNet的<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">示例</a>,看看不同的verbosity设置的输出。</p>
 <ol>
 <li><code>verbosity == 1</code></li>
 </ol>
@@ -207,7 +139,7 @@ Backward Propagation <span class="hljs-built_in">Time</span> <span class="hljs-s
 <span class="hljs-string">.</span>
 <span class="hljs-string">.</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 9/27/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup-the-time-profiling-verbosity">Setup the [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 27/09/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#设置时间分析verbosity">设置时间分析Verbosity</a></li><li><a href="#不同verbosity的输出示例">不同Verbosity的输出示例</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/ [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/time-profiling/index.html b/content/docs/3.0.0/time-profiling/index.html
similarity index 63%
copy from content/docs/time-profiling/index.html
copy to content/docs/3.0.0/time-profiling/index.html
index c193557..ce3f9cb 100644
--- a/content/docs/time-profiling/index.html
+++ b/content/docs/3.0.0/time-profiling/index.html
@@ -1,78 +1,14 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Time Profiling · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              var headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                var el = event.target;
-                while(el !== headings){
-                  if (el.tagName === 'A') {
-                    document.body.classList.remove('tocActive');
-                    break;
-                  } else{
-                    el = el.parentNode;
-                  }
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/time-profiling.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Time Profiling</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contribu [...]
-<p>SINGA supports the time profiling of each of the operators buffered in the
-graph. To utilize the time profiling function, we first call the
-<code>device.SetVerbosity</code> method to set the verbosity of the time profilier, and
-then call the <code>device.PrintTimeProfiling</code> to print out the results of time
-profiling.</p>
-<h2><a class="anchor" aria-hidden="true" id="setup-the-time-profiling-verbosity"></a><a href="#setup-the-time-profiling-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
-<p>To use the time profiling function, we need to set the verbosity. There are
-three levels of verbosity. With the default value <code>verbosity == 0</code>, it will not
-do any time profiling. When we set <code>verbosity == 1</code>, it will profile the forward
-and backward propagation time. When <code>verbosity == 2</code>, it will profile the time
-spent on every buffered operation in the graph.</p>
-<p>The following is the example code to setup the time profiling function:</p>
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<p>SINGA支持对图中缓冲的每个运算符进行时间分析。为了利用时间分析功能,我们首先调用<code>device.SetVerbosity</code>方法来设置时间分析器的verbosity,然后调用<code>device.PrintTimeProfiling</code>来打印出时间分析的结果。</p>
+<h2><a class="anchor" aria-hidden="true" id="设置时间分析verbosity"></a><a href="#设置时间分析verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>要使用时间分析功能,我们需要设置verbosity。有三个级别的verbosity。在默认值<code>verbosity == 0</code>的情况下,它不会进行任何时间分析。当我们设置<code>verbosity == 1</code>时,它将对前向和后向传播时间进行分析。当<code>verbosity == 2</code>时,它将对图中每个缓冲操作所花费的时间进行分析。</p>
+<p>以下是设置时间分析功能的示例代码:</p>
 <pre><code class="hljs css language-python"><span class="hljs-comment"># create a device</span>
 <span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> device
 dev = device.create_cuda_gpu()
@@ -82,15 +18,11 @@ dev.SetVerbosity(verbosity)
 <span class="hljs-comment"># optional: skip the first 5 iterations when profiling the time</span>
 dev.SetSkipIteration(<span class="hljs-number">5</span>)
 </code></pre>
-<p>Then, after we have completed the training at the end of the program, we can
-print the time profiling result by calling the <code>device.PrintTimeProfiling</code>
-method:</p>
+<p>那么,当我们在程序的最后完成训练后,我们就可以通过调用<code>device.PrintTimeProfiling</code>方法来打印时间分析结果。</p>
 <pre><code class="hljs css language-python">dev.PrintTimeProfiling()
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="example-outputs-for-different-verbosity"></a><a href="#example-outputs-for-different-verbosity" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2  [...]
-<p>We can run the ResNet
-<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">example</a>
-to see the output with different setting of verbosity:</p>
+<h2><a class="anchor" aria-hidden="true" id="不同verbosity的输出示例"></a><a href="#不同verbosity的输出示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>我们可以运行ResNet的<a href="https://github.com/apache/singa/blob/master/examples/cnn/benchmark.py">示例</a>,看看不同的verbosity设置的输出。</p>
 <ol>
 <li><code>verbosity == 1</code></li>
 </ol>
@@ -207,7 +139,7 @@ Backward Propagation <span class="hljs-built_in">Time</span> <span class="hljs-s
 <span class="hljs-string">.</span>
 <span class="hljs-string">.</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 9/27/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/dist-train"><span class="arrow-prev">← </span><span>Distributed Training</span></a><a class="docs-next button" href="/docs/download-singa"><span>Download SINGA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup-the-time-profiling-verbosity">Setup the [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 27/09/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#设置时间分析verbosity">设置时间分析Verbosity</a></li><li><a href="#不同verbosity的输出示例">不同Verbosity的输出示例</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/ [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/wheel-cpu-dev.html b/content/docs/3.0.0/wheel-cpu-dev.html
new file mode 100644
index 0000000..7401055
--- /dev/null
+++ b/content/docs/3.0.0/wheel-cpu-dev.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding co [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.0.0/wheel-cpu-dev/index.html b/content/docs/3.0.0/wheel-cpu-dev/index.html
new file mode 100644
index 0000000..7401055
--- /dev/null
+++ b/content/docs/3.0.0/wheel-cpu-dev/index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding co [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/wheel-cpu.html b/content/docs/3.0.0/wheel-cpu.html
similarity index 57%
copy from content/docs/wheel-cpu.html
copy to content/docs/3.0.0/wheel-cpu.html
index fe17082..6d11a37 100644
--- a/content/docs/wheel-cpu.html
+++ b/content/docs/3.0.0/wheel-cpu.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only Wheel Packages · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.1.0-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
@@ -17,7 +17,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/wheel-cpu/index.html b/content/docs/3.0.0/wheel-cpu/index.html
similarity index 57%
copy from content/docs/wheel-cpu/index.html
copy to content/docs/3.0.0/wheel-cpu/index.html
index fe17082..6d11a37 100644
--- a/content/docs/wheel-cpu/index.html
+++ b/content/docs/3.0.0/wheel-cpu/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only Wheel Packages · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding c [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CPU only · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.1.0-cp36-cp36m-manylinux2014_x86_64.whl">Python 3.6</a></li>
@@ -17,7 +17,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp37-cp37m-manylinux2014_x86_64.whl">Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0-cp38-cp38-manylinux2014_x86_64.whl">Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0/wheel-gpu-dev.html b/content/docs/3.0.0/wheel-gpu-dev.html
new file mode 100644
index 0000000..89acd8f
--- /dev/null
+++ b/content/docs/3.0.0/wheel-gpu-dev.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regardin [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp36-cp36m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.0.0/wheel-gpu-dev/index.html b/content/docs/3.0.0/wheel-gpu-dev/index.html
new file mode 100644
index 0000000..89acd8f
--- /dev/null
+++ b/content/docs/3.0.0/wheel-gpu-dev/index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled (dev version) · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regardin [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+<h2><a class="anchor" aria-hidden="true" id="300dev200720"></a><a href="#300dev200720" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp36-cp36m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.6</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
+<li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0.dev200720%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 02/04/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#300dev200720">3.0.0.dev200720</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting  [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/wheel-gpu.html b/content/docs/3.0.0/wheel-gpu.html
similarity index 58%
copy from content/docs/wheel-gpu.html
copy to content/docs/3.0.0/wheel-gpu.html
index 87756f1..907e23e 100644
--- a/content/docs/wheel-gpu.html
+++ b/content/docs/3.0.0/wheel-gpu.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Wheel Packages with CUDA Enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information re [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ow [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li>[CUDA10.2, cuDNN 7.6.5, Python
@@ -20,7 +20,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/wheel-gpu/index.html b/content/docs/3.0.0/wheel-gpu/index.html
similarity index 58%
copy from content/docs/wheel-gpu/index.html
copy to content/docs/3.0.0/wheel-gpu/index.html
index 87756f1..907e23e 100644
--- a/content/docs/wheel-gpu/index.html
+++ b/content/docs/3.0.0/wheel-gpu/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Wheel Packages with CUDA Enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information re [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>CUDA enabled · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ow [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
 <h2><a class="anchor" aria-hidden="true" id="310"></a><a href="#310" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
 <li>[CUDA10.2, cuDNN 7.6.5, Python
@@ -20,7 +20,7 @@
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp37-cp37m-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.7</a></li>
 <li><a href="https://singa-wheel.s3-ap-southeast-1.amazonaws.com/singa-3.0.0%2Bcuda10.2-cp38-cp38-manylinux2014_x86_64.whl">CUDA10.2, cuDNN 7.6.5, Python 3.8</a></li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/21/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 21/10/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#310">3.1.0</a></li><li><a href="#300">3.0.0</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installa [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/autograd.html b/content/docs/3.1.0_Chinese/autograd.html
similarity index 51%
copy from content/docs/autograd.html
copy to content/docs/3.1.0_Chinese/autograd.html
index 76a699f..d3843a9 100644
--- a/content/docs/autograd.html
+++ b/content/docs/3.1.0_Chinese/autograd.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Autograd · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Autograd · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -61,75 +61,35 @@
               }
             });
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/autograd.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Autograd</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license  [...]
-<p>There are two typical ways to implement autograd, via symbolic differentiation
-like <a href="http://deeplearning.net/software/theano/index.html">Theano</a> or reverse
-differentiation like
-<a href="https://pytorch.org/docs/stable/notes/autograd.html">Pytorch</a>. SINGA follows
-Pytorch way, which records the computation graph and apply the backward
-propagation automatically after forward propagation. The autograd algorithm is
-explained in details
-<a href="https://pytorch.org/docs/stable/notes/autograd.html">here</a>. We explain the
-relevant modules in Singa and give an example to illustrate the usage.</p>
-<h2><a class="anchor" aria-hidden="true" id="relevant-modules"></a><a href="#relevant-modules" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>There are three classes involved in autograd, namely <code>singa.tensor.Tensor</code>,
-<code>singa.autograd.Operation</code>, and <code>singa.autograd.Layer</code>. In the rest of this
-article, we use tensor, operation and layer to refer to an instance of the
-respective class.</p>
+<p>实现autograd有两种典型的方式,一种是通过如<a href="http://deeplearning.net/software/theano/index.html">Theano</a>的符号微分(symbolic differentiation)或通过如<a href="https://pytorch.org/docs/stable/notes/autograd.html">Pytorch</a>的反向微分(reverse differentialtion)。SINGA遵循Pytorch方式,即通过记录计算图,并在正向传播后自动应用反向传播。自动传播算法的详细解释请参阅<a href="https://pytorch.org/docs/stable/notes/autograd.html">这里</a>。我们接下来对SINGA中的相关模块进行解释,并举例说明其使用方法。</p>
+<h2><a class="anchor" aria-hidden="true" id="相关模块"></a><a href="#相关模块" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>在autograd中涉及三个类,分别是<code>singa.tensor.Tensor</code>,<code>singa.autograd.Operation</code>和<code>singa.autograd.Layer</code>。在本篇的后续部分中,我们使用Tensor、Operation和Layer来指代这三个类。</p>
 <h3><a class="anchor" aria-hidden="true" id="tensor"></a><a href="#tensor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>Three attributes of Tensor are used by autograd,</p>
+<p>Tensor的三个属性被autograd使用:</p>
 <ul>
-<li><code>.creator</code> is an <code>Operation</code> instance. It records the operation that generates
-the Tensor instance.</li>
-<li><code>.requires_grad</code> is a boolean variable. It is used to indicate that the
-autograd algorithm needs to compute the gradient of the tensor (i.e., the
-owner). For example, during backpropagation, the gradients of the tensors for
-the weight matrix of a linear layer and the feature maps of a convolution
-layer (not the bottom layer) should be computed.</li>
-<li><code>.stores_grad</code> is a boolean variable. It is used to indicate that the gradient
-of the owner tensor should be stored and output by the backward function. For
-example, the gradient of the feature maps is computed during backpropagation,
-but is not included in the output of the backward function.</li>
+<li><code>.creator</code>是一个<code>Operation</code>实例。它记录了产生Tensor实例的这个操作。</li>
+<li><code>.request_grad</code>是一个布尔变量。它用于指示autograd算法是否需要计算张量的梯度。例如,在反向传播的过程中,线性层的权重矩阵和卷积层(非底层)的特征图的张量梯度应该被计算。</li>
+<li><code>.store_grad</code>是一个布尔变量。它用于指示张量的梯度是否应该被存储并由后向函数输出。例如,特征图的梯度是在反向传播过程中计算出来的,但不包括在反向函数的输出中。</li>
 </ul>
-<p>Programmers can change <code>requires_grad</code> and <code>stores_grad</code> of a Tensor instance.
-For example, if later is set to True, the corresponding gradient is included in
-the output of the backward function. It should be noted that if <code>stores_grad</code> is
-True, then <code>requires_grad</code> must be true, not vice versa.</p>
+<p>开发者可以改变Tensor实例的<code>requires_grad</code>和<code>stores_grad</code>。例如,如果将后者设置为True,那么相应的梯度就会被包含在后向函数的输出。需要注意的是,如果<code>stores_grad</code>是True,那么 <code>requires_grad</code>一定是真,反之亦然。</p>
 <h3><a class="anchor" aria-hidden="true" id="operation"></a><a href="#operation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>It takes one or more <code>Tensor</code> instances as input, and then outputs one or more
-<code>Tensor</code> instances. For example, ReLU can be implemented as a specific Operation
-subclass. When an <code>Operation</code> instance is called (after instantiation), the
-following two steps are executed:</p>
-<ol>
-<li>record the source operations, i.e., the <code>creator</code>s of the input tensors.</li>
-<li>do calculation by calling member function <code>.forward()</code></li>
-</ol>
-<p>There are two member functions for forwarding and backwarding, i.e.,
-<code>.forward()</code> and <code>.backward()</code>. They take <code>Tensor.data</code> as inputs (the type is
-<code>CTensor</code>), and output <code>Ctensor</code>s. To add a specific operation, subclass
-<code>operation</code> should implement their own <code>.forward()</code> and <code>.backward()</code>. The
-<code>backward()</code> function is called by the <code>backward()</code> function of autograd
-automatically during backward propogation to compute the gradients of inputs
-(according to the <code>require_grad</code> field).</p>
+<p>它将一个或多个<code>Tensor</code>实例作为输入,然后输出一个或多个<code>Tensor</code>实例。例如,ReLU可以作为一个具体的Operation子类来实现。当一个<code>Operation</code>实例被调用时(实例化后),会执行以下两个步骤。</p>
+<p>1.记录源操作,即输入张量的<code>创建者</code>。
+2.通过调用成员函数<code>.forward()</code>进行计算。</p>
+<p>有两个成员函数用于前向和反向传播,即<code>.forward()</code>和<code>.backward()</code>。它们以<code>Tensor.data</code>作为输入(类型为<code>CTensor</code>),并输出<code>Ctensor</code>s。要添加一个特定的操作,子类<code>Operation</code>应该实现自己的<code>.forward()</code>和<code>.backward()</code>函数。在后向传播过程中,autograd的<code>backward()</code>函数会自动调用<code>backward()</code>函数来计算输入的梯度(根据<code>require_grad</code>字段的参数和约束)。</p>
 <h3><a class="anchor" aria-hidden="true" id="layer"></a><a href="#layer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
-<p>For those operations that require parameters, we package them into a new class,
-<code>Layer</code>. For example, convolution operation is wrapped into a convolution layer.
-<code>Layer</code> manages (stores) the parameters and calls the corresponding <code>Operation</code>s
-to implement the transformation.</p>
-<h2><a class="anchor" aria-hidden="true" id="examples"></a><a href="#examples" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>Multiple examples are provided in the
-<a href="https://github.com/apache/singa/tree/master/examples/autograd">example folder</a>.
-We explain two representative examples here.</p>
-<h3><a class="anchor" aria-hidden="true" id="operation-only"></a><a href="#operation-only" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>The following codes implement a MLP model using only Operation instances (no
-Layer instances).</p>
-<h4><a class="anchor" aria-hidden="true" id="import-packages"></a><a href="#import-packages" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>对于那些需要参数的Operation,我们把它们封装成一个新的类,<code>Layer</code>。例如,卷积操作被封装到卷积层(Convolution layer)中。<code>层</code>管理(存储)参数,并调用相应的<code>Operation</code>来实现变换。</p>
+<h2><a class="anchor" aria-hidden="true" id="样例"></a><a href="#样例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>在<a href="https://github.com/apache/singa/tree/master/examples/autograd">example folder</a>中提供了很多样例。在这里我我们分析两个最具代表性的例子。</p>
+<h3><a class="anchor" aria-hidden="true" id="只使用operation"></a><a href="#只使用operation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>下一段代码展示了一个只使用<code>Operation</code>的多层感知机(MLP)模型:</p>
+<h4><a class="anchor" aria-hidden="true" id="调用依赖包"></a><a href="#调用依赖包" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
 <pre><code class="hljs css language-python"><span class="hljs-keyword">from</span> singa.tensor <span class="hljs-keyword">import</span> Tensor
 <span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> autograd
 <span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> opt
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="create-weight-matrix-and-bias-vector"></a><a href="#create-weight-matrix-and-bias-vector" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 [...]
-<p>The parameter tensors are created with both <code>requires_grad</code> and <code>stores_grad</code>
-set to <code>True</code>.</p>
+<h4><a class="anchor" aria-hidden="true" id="创建权重矩阵和偏置向量"></a><a href="#创建权重矩阵和偏置向量" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>在将<code>requires_grad</code>和<code>stores_grad</code>都设置为<code>True</code>的情况下,创建参数张量。</p>
 <pre><code class="hljs css language-python">w0 = Tensor(shape=(<span class="hljs-number">2</span>, <span class="hljs-number">3</span>), requires_grad=<span class="hljs-literal">True</span>, stores_grad=<span class="hljs-literal">True</span>)
 w0.gaussian(<span class="hljs-number">0.0</span>, <span class="hljs-number">0.1</span>)
 b0 = Tensor(shape=(<span class="hljs-number">1</span>, <span class="hljs-number">3</span>), requires_grad=<span class="hljs-literal">True</span>, stores_grad=<span class="hljs-literal">True</span>)
@@ -140,7 +100,7 @@ w1.gaussian(<span class="hljs-number">0.0</span>, <span class="hljs-number">0.1<
 b1 = Tensor(shape=(<span class="hljs-number">1</span>, <span class="hljs-number">2</span>), requires_grad=<span class="hljs-literal">True</span>, stores_grad=<span class="hljs-literal">True</span>)
 b1.set_value(<span class="hljs-number">0.0</span>)
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="training"></a><a href="#training" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<h4><a class="anchor" aria-hidden="true" id="训练"></a><a href="#训练" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <pre><code class="hljs css language-python">inputs = Tensor(data=data)  <span class="hljs-comment"># data matrix</span>
 target = Tensor(data=label) <span class="hljs-comment"># label vector</span>
 autograd.training = <span class="hljs-literal">True</span>    <span class="hljs-comment"># for training</span>
@@ -159,11 +119,9 @@ sgd = opt.SGD(<span class="hljs-number">0.05</span>)   <span class="hljs-comment
     <span class="hljs-keyword">for</span> p, g <span class="hljs-keyword">in</span> autograd.backward(loss):
         sgd.update(p, g)
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="operation--layer"></a><a href="#operation--layer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>The following
-<a href="https://github.com/apache/singa/blob/master/examples/autograd/mnist_cnn.py">example</a>
-implements a CNN model using layers provided by the autograd module.</p>
-<h4><a class="anchor" aria-hidden="true" id="create-the-layers"></a><a href="#create-the-layers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
+<h3><a class="anchor" aria-hidden="true" id="使用operation和layer"></a><a href="#使用operation和layer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
+<p>下面的<a href="https://github.com/apache/singa/blob/master/examples/autograd/mnist_cnn.py">例子</a>使用autograd模块提供的层实现了一个CNN模型。</p>
+<h4><a class="anchor" aria-hidden="true" id="创建层"></a><a href="#创建层" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <pre><code class="hljs css language-python">conv1 = autograd.Conv2d(<span class="hljs-number">1</span>, <span class="hljs-number">32</span>, <span class="hljs-number">3</span>, padding=<span class="hljs-number">1</span>, bias=<span class="hljs-literal">False</span>)
 bn1 = autograd.BatchNorm2d(<span class="hljs-number">32</span>)
 pooling1 = autograd.MaxPool2d(<span class="hljs-number">3</span>, <span class="hljs-number">1</span>, padding=<span class="hljs-number">1</span>)
@@ -173,9 +131,8 @@ bn2 = autograd.BatchNorm2d(<span class="hljs-number">32</span>)
 linear = autograd.Linear(<span class="hljs-number">32</span> * <span class="hljs-number">28</span> * <span class="hljs-number">28</span>, <span class="hljs-number">10</span>)
 pooling2 = autograd.AvgPool2d(<span class="hljs-number">3</span>, <span class="hljs-number">1</span>, padding=<span class="hljs-number">1</span>)
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="define-the-forward-function"></a><a href="#define-the-forward-function" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>The operations in the forward pass will be recorded automatically for backward
-propagation.</p>
+<h4><a class="anchor" aria-hidden="true" id="定义正向传播函数"></a><a href="#定义正向传播函数" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>在正向传播中的operations会被自动记录,用于反向传播。</p>
 <pre><code class="hljs css language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">forward</span><span class="hljs-params">(x, t)</span>:</span>
     <span class="hljs-comment"># x is the input data (a batch of images)</span>
     <span class="hljs-comment"># t is the label vector (a batch of integers)</span>
@@ -197,7 +154,7 @@ propagation.</p>
     loss = autograd.softmax_cross_entropy(y, t)  <span class="hljs-comment"># operation</span>
     <span class="hljs-keyword">return</span> loss, y
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="training-1"></a><a href="#training-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<h4><a class="anchor" aria-hidden="true" id="训练-1"></a><a href="#训练-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <pre><code class="hljs css language-python">autograd.training = <span class="hljs-literal">True</span>
 <span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> range(epochs):
     <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(batch_number):
@@ -212,14 +169,9 @@ propagation.</p>
             sgd.update(p, gp)
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="using-the-model-api"></a><a href="#using-the-model-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>The following &lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD
-<a href="https://github.com/apache/singa/blob/master/examples/cnn/model/cnn.py">example</a>
-implements a CNN model using the <a href="./graph">Model API</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="define-the-subclass-of-model"></a><a href="#define-the-subclass-of-model" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
-<p>Define the model class, it should be the subclass of Model. In this way, all
-operations used during the training phase will form a computational graph and
-will be analyzed. The operations in the graph will be scheduled and executed
-efficiently. Layers can also be included in the model class.</p>
+<p>下面的<a href="https://github.com/apache/singa/blob/master/examples/cnn/model/cnn.py">样例</a>使用<a href="./graph">Model API</a>实现了一个CNN模型。.</p>
+<h4><a class="anchor" aria-hidden="true" id="定义model的子类"></a><a href="#定义model的子类" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>定义模型类,它应该是Model的子类。只有这样,在训练阶段使用的所有操作才会形成一个计算图以便进行分析。图中的操作将被按时序规划并有效执行,模型类中也可以包含层。</p>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MLP</span><span class="hljs-params">(model.Model)</span>:</span>  <span class="hljs-comment"># the model is a subclass of Model</span>
 
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, data_size=<span class="hljs-number">10</span>, perceptron_size=<span class="hljs-number">100</span>, num_classes=<span class="hljs-number">10</span>)</span>:</span>
@@ -246,7 +198,7 @@ efficiently. Layers can also be included in the model class.</p>
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">set_optimizer</span><span class="hljs-params">(self, optimizer)</span>:</span>  <span class="hljs-comment"># attach an optimizer</span>
         self.optimizer = optimizer
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="training-2"></a><a href="#training-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<h4><a class="anchor" aria-hidden="true" id="训练-2"></a><a href="#训练-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <pre><code class="hljs css language-python"><span class="hljs-comment"># create a model instance</span>
 model = MLP()
 <span class="hljs-comment"># initialize optimizer and attach it to the model</span>
@@ -270,14 +222,14 @@ model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=<
     <span class="hljs-comment"># Training with one batch</span>
     out, loss = model(tx, ty)
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="save-a-model-checkpoint"></a><a href="#save-a-model-checkpoint" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
+<h4><a class="anchor" aria-hidden="true" id="保存模型checkpoint"></a><a href="#保存模型checkpoint" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <pre><code class="hljs css language-python"><span class="hljs-comment"># define the path to save the checkpoint</span>
 checkpointpath=<span class="hljs-string">"checkpoint.zip"</span>
 
 <span class="hljs-comment"># save a checkpoint</span>
 model.save_states(fpath=checkpointpath)
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="load-a-model-checkpoint"></a><a href="#load-a-model-checkpoint" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
+<h4><a class="anchor" aria-hidden="true" id="加载模型checkpoint"></a><a href="#加载模型checkpoint" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <pre><code class="hljs css language-python"><span class="hljs-comment"># define the path to load the checkpoint</span>
 checkpointpath=<span class="hljs-string">"checkpoint.zip"</span>
 
@@ -287,10 +239,8 @@ checkpointpath=<span class="hljs-string">"checkpoint.zip"</span>
     model.load_states(fpath=checkpointpath)
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="python-api"></a><a href="#python-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>Refer
-<a href="https://singa.readthedocs.io/en/latest/autograd.html#module-singa.autograd">here</a>
-for more details of Python API.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/4/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/optimizer"><span>Optimizer</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#relevant-modules">Relevant Modules</a><ul class="toc-headings"><li><a hre [...]
+<p>关于Python API的更多细节,请参考<a href="https://singa.readthedocs.io/en/latest/autograd.html#module-singa.autograd">这里</a>。</p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 04/10/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/optimizer"><span>Optimizer</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#相关模块">相关模块</a><ul class="toc-headings"><li>< [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/autograd/index.html b/content/docs/3.1.0_Chinese/autograd/index.html
similarity index 51%
copy from content/docs/autograd/index.html
copy to content/docs/3.1.0_Chinese/autograd/index.html
index 76a699f..d3843a9 100644
--- a/content/docs/autograd/index.html
+++ b/content/docs/3.1.0_Chinese/autograd/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Autograd · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Autograd · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -61,75 +61,35 @@
               }
             });
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/autograd.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Autograd</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license  [...]
-<p>There are two typical ways to implement autograd, via symbolic differentiation
-like <a href="http://deeplearning.net/software/theano/index.html">Theano</a> or reverse
-differentiation like
-<a href="https://pytorch.org/docs/stable/notes/autograd.html">Pytorch</a>. SINGA follows
-Pytorch way, which records the computation graph and apply the backward
-propagation automatically after forward propagation. The autograd algorithm is
-explained in details
-<a href="https://pytorch.org/docs/stable/notes/autograd.html">here</a>. We explain the
-relevant modules in Singa and give an example to illustrate the usage.</p>
-<h2><a class="anchor" aria-hidden="true" id="relevant-modules"></a><a href="#relevant-modules" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>There are three classes involved in autograd, namely <code>singa.tensor.Tensor</code>,
-<code>singa.autograd.Operation</code>, and <code>singa.autograd.Layer</code>. In the rest of this
-article, we use tensor, operation and layer to refer to an instance of the
-respective class.</p>
+<p>实现autograd有两种典型的方式,一种是通过如<a href="http://deeplearning.net/software/theano/index.html">Theano</a>的符号微分(symbolic differentiation)或通过如<a href="https://pytorch.org/docs/stable/notes/autograd.html">Pytorch</a>的反向微分(reverse differentialtion)。SINGA遵循Pytorch方式,即通过记录计算图,并在正向传播后自动应用反向传播。自动传播算法的详细解释请参阅<a href="https://pytorch.org/docs/stable/notes/autograd.html">这里</a>。我们接下来对SINGA中的相关模块进行解释,并举例说明其使用方法。</p>
+<h2><a class="anchor" aria-hidden="true" id="相关模块"></a><a href="#相关模块" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>在autograd中涉及三个类,分别是<code>singa.tensor.Tensor</code>,<code>singa.autograd.Operation</code>和<code>singa.autograd.Layer</code>。在本篇的后续部分中,我们使用Tensor、Operation和Layer来指代这三个类。</p>
 <h3><a class="anchor" aria-hidden="true" id="tensor"></a><a href="#tensor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>Three attributes of Tensor are used by autograd,</p>
+<p>Tensor的三个属性被autograd使用:</p>
 <ul>
-<li><code>.creator</code> is an <code>Operation</code> instance. It records the operation that generates
-the Tensor instance.</li>
-<li><code>.requires_grad</code> is a boolean variable. It is used to indicate that the
-autograd algorithm needs to compute the gradient of the tensor (i.e., the
-owner). For example, during backpropagation, the gradients of the tensors for
-the weight matrix of a linear layer and the feature maps of a convolution
-layer (not the bottom layer) should be computed.</li>
-<li><code>.stores_grad</code> is a boolean variable. It is used to indicate that the gradient
-of the owner tensor should be stored and output by the backward function. For
-example, the gradient of the feature maps is computed during backpropagation,
-but is not included in the output of the backward function.</li>
+<li><code>.creator</code>是一个<code>Operation</code>实例。它记录了产生Tensor实例的这个操作。</li>
+<li><code>.request_grad</code>是一个布尔变量。它用于指示autograd算法是否需要计算张量的梯度。例如,在反向传播的过程中,线性层的权重矩阵和卷积层(非底层)的特征图的张量梯度应该被计算。</li>
+<li><code>.store_grad</code>是一个布尔变量。它用于指示张量的梯度是否应该被存储并由后向函数输出。例如,特征图的梯度是在反向传播过程中计算出来的,但不包括在反向函数的输出中。</li>
 </ul>
-<p>Programmers can change <code>requires_grad</code> and <code>stores_grad</code> of a Tensor instance.
-For example, if later is set to True, the corresponding gradient is included in
-the output of the backward function. It should be noted that if <code>stores_grad</code> is
-True, then <code>requires_grad</code> must be true, not vice versa.</p>
+<p>开发者可以改变Tensor实例的<code>requires_grad</code>和<code>stores_grad</code>。例如,如果将后者设置为True,那么相应的梯度就会被包含在后向函数的输出。需要注意的是,如果<code>stores_grad</code>是True,那么 <code>requires_grad</code>一定是真,反之亦然。</p>
 <h3><a class="anchor" aria-hidden="true" id="operation"></a><a href="#operation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>It takes one or more <code>Tensor</code> instances as input, and then outputs one or more
-<code>Tensor</code> instances. For example, ReLU can be implemented as a specific Operation
-subclass. When an <code>Operation</code> instance is called (after instantiation), the
-following two steps are executed:</p>
-<ol>
-<li>record the source operations, i.e., the <code>creator</code>s of the input tensors.</li>
-<li>do calculation by calling member function <code>.forward()</code></li>
-</ol>
-<p>There are two member functions for forwarding and backwarding, i.e.,
-<code>.forward()</code> and <code>.backward()</code>. They take <code>Tensor.data</code> as inputs (the type is
-<code>CTensor</code>), and output <code>Ctensor</code>s. To add a specific operation, subclass
-<code>operation</code> should implement their own <code>.forward()</code> and <code>.backward()</code>. The
-<code>backward()</code> function is called by the <code>backward()</code> function of autograd
-automatically during backward propogation to compute the gradients of inputs
-(according to the <code>require_grad</code> field).</p>
+<p>它将一个或多个<code>Tensor</code>实例作为输入,然后输出一个或多个<code>Tensor</code>实例。例如,ReLU可以作为一个具体的Operation子类来实现。当一个<code>Operation</code>实例被调用时(实例化后),会执行以下两个步骤。</p>
+<p>1.记录源操作,即输入张量的<code>创建者</code>。
+2.通过调用成员函数<code>.forward()</code>进行计算。</p>
+<p>有两个成员函数用于前向和反向传播,即<code>.forward()</code>和<code>.backward()</code>。它们以<code>Tensor.data</code>作为输入(类型为<code>CTensor</code>),并输出<code>Ctensor</code>s。要添加一个特定的操作,子类<code>Operation</code>应该实现自己的<code>.forward()</code>和<code>.backward()</code>函数。在后向传播过程中,autograd的<code>backward()</code>函数会自动调用<code>backward()</code>函数来计算输入的梯度(根据<code>require_grad</code>字段的参数和约束)。</p>
 <h3><a class="anchor" aria-hidden="true" id="layer"></a><a href="#layer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
-<p>For those operations that require parameters, we package them into a new class,
-<code>Layer</code>. For example, convolution operation is wrapped into a convolution layer.
-<code>Layer</code> manages (stores) the parameters and calls the corresponding <code>Operation</code>s
-to implement the transformation.</p>
-<h2><a class="anchor" aria-hidden="true" id="examples"></a><a href="#examples" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>Multiple examples are provided in the
-<a href="https://github.com/apache/singa/tree/master/examples/autograd">example folder</a>.
-We explain two representative examples here.</p>
-<h3><a class="anchor" aria-hidden="true" id="operation-only"></a><a href="#operation-only" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>The following codes implement a MLP model using only Operation instances (no
-Layer instances).</p>
-<h4><a class="anchor" aria-hidden="true" id="import-packages"></a><a href="#import-packages" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>对于那些需要参数的Operation,我们把它们封装成一个新的类,<code>Layer</code>。例如,卷积操作被封装到卷积层(Convolution layer)中。<code>层</code>管理(存储)参数,并调用相应的<code>Operation</code>来实现变换。</p>
+<h2><a class="anchor" aria-hidden="true" id="样例"></a><a href="#样例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>在<a href="https://github.com/apache/singa/tree/master/examples/autograd">example folder</a>中提供了很多样例。在这里我我们分析两个最具代表性的例子。</p>
+<h3><a class="anchor" aria-hidden="true" id="只使用operation"></a><a href="#只使用operation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>下一段代码展示了一个只使用<code>Operation</code>的多层感知机(MLP)模型:</p>
+<h4><a class="anchor" aria-hidden="true" id="调用依赖包"></a><a href="#调用依赖包" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
 <pre><code class="hljs css language-python"><span class="hljs-keyword">from</span> singa.tensor <span class="hljs-keyword">import</span> Tensor
 <span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> autograd
 <span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> opt
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="create-weight-matrix-and-bias-vector"></a><a href="#create-weight-matrix-and-bias-vector" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 [...]
-<p>The parameter tensors are created with both <code>requires_grad</code> and <code>stores_grad</code>
-set to <code>True</code>.</p>
+<h4><a class="anchor" aria-hidden="true" id="创建权重矩阵和偏置向量"></a><a href="#创建权重矩阵和偏置向量" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>在将<code>requires_grad</code>和<code>stores_grad</code>都设置为<code>True</code>的情况下,创建参数张量。</p>
 <pre><code class="hljs css language-python">w0 = Tensor(shape=(<span class="hljs-number">2</span>, <span class="hljs-number">3</span>), requires_grad=<span class="hljs-literal">True</span>, stores_grad=<span class="hljs-literal">True</span>)
 w0.gaussian(<span class="hljs-number">0.0</span>, <span class="hljs-number">0.1</span>)
 b0 = Tensor(shape=(<span class="hljs-number">1</span>, <span class="hljs-number">3</span>), requires_grad=<span class="hljs-literal">True</span>, stores_grad=<span class="hljs-literal">True</span>)
@@ -140,7 +100,7 @@ w1.gaussian(<span class="hljs-number">0.0</span>, <span class="hljs-number">0.1<
 b1 = Tensor(shape=(<span class="hljs-number">1</span>, <span class="hljs-number">2</span>), requires_grad=<span class="hljs-literal">True</span>, stores_grad=<span class="hljs-literal">True</span>)
 b1.set_value(<span class="hljs-number">0.0</span>)
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="training"></a><a href="#training" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<h4><a class="anchor" aria-hidden="true" id="训练"></a><a href="#训练" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <pre><code class="hljs css language-python">inputs = Tensor(data=data)  <span class="hljs-comment"># data matrix</span>
 target = Tensor(data=label) <span class="hljs-comment"># label vector</span>
 autograd.training = <span class="hljs-literal">True</span>    <span class="hljs-comment"># for training</span>
@@ -159,11 +119,9 @@ sgd = opt.SGD(<span class="hljs-number">0.05</span>)   <span class="hljs-comment
     <span class="hljs-keyword">for</span> p, g <span class="hljs-keyword">in</span> autograd.backward(loss):
         sgd.update(p, g)
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="operation--layer"></a><a href="#operation--layer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>The following
-<a href="https://github.com/apache/singa/blob/master/examples/autograd/mnist_cnn.py">example</a>
-implements a CNN model using layers provided by the autograd module.</p>
-<h4><a class="anchor" aria-hidden="true" id="create-the-layers"></a><a href="#create-the-layers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
+<h3><a class="anchor" aria-hidden="true" id="使用operation和layer"></a><a href="#使用operation和layer" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
+<p>下面的<a href="https://github.com/apache/singa/blob/master/examples/autograd/mnist_cnn.py">例子</a>使用autograd模块提供的层实现了一个CNN模型。</p>
+<h4><a class="anchor" aria-hidden="true" id="创建层"></a><a href="#创建层" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <pre><code class="hljs css language-python">conv1 = autograd.Conv2d(<span class="hljs-number">1</span>, <span class="hljs-number">32</span>, <span class="hljs-number">3</span>, padding=<span class="hljs-number">1</span>, bias=<span class="hljs-literal">False</span>)
 bn1 = autograd.BatchNorm2d(<span class="hljs-number">32</span>)
 pooling1 = autograd.MaxPool2d(<span class="hljs-number">3</span>, <span class="hljs-number">1</span>, padding=<span class="hljs-number">1</span>)
@@ -173,9 +131,8 @@ bn2 = autograd.BatchNorm2d(<span class="hljs-number">32</span>)
 linear = autograd.Linear(<span class="hljs-number">32</span> * <span class="hljs-number">28</span> * <span class="hljs-number">28</span>, <span class="hljs-number">10</span>)
 pooling2 = autograd.AvgPool2d(<span class="hljs-number">3</span>, <span class="hljs-number">1</span>, padding=<span class="hljs-number">1</span>)
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="define-the-forward-function"></a><a href="#define-the-forward-function" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>The operations in the forward pass will be recorded automatically for backward
-propagation.</p>
+<h4><a class="anchor" aria-hidden="true" id="定义正向传播函数"></a><a href="#定义正向传播函数" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>在正向传播中的operations会被自动记录,用于反向传播。</p>
 <pre><code class="hljs css language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">forward</span><span class="hljs-params">(x, t)</span>:</span>
     <span class="hljs-comment"># x is the input data (a batch of images)</span>
     <span class="hljs-comment"># t is the label vector (a batch of integers)</span>
@@ -197,7 +154,7 @@ propagation.</p>
     loss = autograd.softmax_cross_entropy(y, t)  <span class="hljs-comment"># operation</span>
     <span class="hljs-keyword">return</span> loss, y
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="training-1"></a><a href="#training-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<h4><a class="anchor" aria-hidden="true" id="训练-1"></a><a href="#训练-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <pre><code class="hljs css language-python">autograd.training = <span class="hljs-literal">True</span>
 <span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> range(epochs):
     <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(batch_number):
@@ -212,14 +169,9 @@ propagation.</p>
             sgd.update(p, gp)
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="using-the-model-api"></a><a href="#using-the-model-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>The following &lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD
-<a href="https://github.com/apache/singa/blob/master/examples/cnn/model/cnn.py">example</a>
-implements a CNN model using the <a href="./graph">Model API</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="define-the-subclass-of-model"></a><a href="#define-the-subclass-of-model" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
-<p>Define the model class, it should be the subclass of Model. In this way, all
-operations used during the training phase will form a computational graph and
-will be analyzed. The operations in the graph will be scheduled and executed
-efficiently. Layers can also be included in the model class.</p>
+<p>下面的<a href="https://github.com/apache/singa/blob/master/examples/cnn/model/cnn.py">样例</a>使用<a href="./graph">Model API</a>实现了一个CNN模型。.</p>
+<h4><a class="anchor" aria-hidden="true" id="定义model的子类"></a><a href="#定义model的子类" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>定义模型类,它应该是Model的子类。只有这样,在训练阶段使用的所有操作才会形成一个计算图以便进行分析。图中的操作将被按时序规划并有效执行,模型类中也可以包含层。</p>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MLP</span><span class="hljs-params">(model.Model)</span>:</span>  <span class="hljs-comment"># the model is a subclass of Model</span>
 
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, data_size=<span class="hljs-number">10</span>, perceptron_size=<span class="hljs-number">100</span>, num_classes=<span class="hljs-number">10</span>)</span>:</span>
@@ -246,7 +198,7 @@ efficiently. Layers can also be included in the model class.</p>
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">set_optimizer</span><span class="hljs-params">(self, optimizer)</span>:</span>  <span class="hljs-comment"># attach an optimizer</span>
         self.optimizer = optimizer
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="training-2"></a><a href="#training-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<h4><a class="anchor" aria-hidden="true" id="训练-2"></a><a href="#训练-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <pre><code class="hljs css language-python"><span class="hljs-comment"># create a model instance</span>
 model = MLP()
 <span class="hljs-comment"># initialize optimizer and attach it to the model</span>
@@ -270,14 +222,14 @@ model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=<
     <span class="hljs-comment"># Training with one batch</span>
     out, loss = model(tx, ty)
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="save-a-model-checkpoint"></a><a href="#save-a-model-checkpoint" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
+<h4><a class="anchor" aria-hidden="true" id="保存模型checkpoint"></a><a href="#保存模型checkpoint" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <pre><code class="hljs css language-python"><span class="hljs-comment"># define the path to save the checkpoint</span>
 checkpointpath=<span class="hljs-string">"checkpoint.zip"</span>
 
 <span class="hljs-comment"># save a checkpoint</span>
 model.save_states(fpath=checkpointpath)
 </code></pre>
-<h4><a class="anchor" aria-hidden="true" id="load-a-model-checkpoint"></a><a href="#load-a-model-checkpoint" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
+<h4><a class="anchor" aria-hidden="true" id="加载模型checkpoint"></a><a href="#加载模型checkpoint" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <pre><code class="hljs css language-python"><span class="hljs-comment"># define the path to load the checkpoint</span>
 checkpointpath=<span class="hljs-string">"checkpoint.zip"</span>
 
@@ -287,10 +239,8 @@ checkpointpath=<span class="hljs-string">"checkpoint.zip"</span>
     model.load_states(fpath=checkpointpath)
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="python-api"></a><a href="#python-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>Refer
-<a href="https://singa.readthedocs.io/en/latest/autograd.html#module-singa.autograd">here</a>
-for more details of Python API.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/4/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/optimizer"><span>Optimizer</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#relevant-modules">Relevant Modules</a><ul class="toc-headings"><li><a hre [...]
+<p>关于Python API的更多细节,请参考<a href="https://singa.readthedocs.io/en/latest/autograd.html#module-singa.autograd">这里</a>。</p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 04/10/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/tensor"><span class="arrow-prev">← </span><span>Tensor</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/optimizer"><span>Optimizer</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#相关模块">相关模块</a><ul class="toc-headings"><li>< [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.1.0_Chinese/benchmark-train.html b/content/docs/3.1.0_Chinese/benchmark-train.html
new file mode 100644
index 0000000..582f042
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/benchmark-train.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Benchmark for Distributed Training · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+<p>项目:我们使用深度卷积神经网络<a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">ResNet-50</a>。它有50个卷积层,用于图像分类。它需要3.8个GFLOPs来通过网络处理一张图像(尺寸为224x224)。输入的图像大小为224x224。</p>
+<p>硬件方面:我们使用的是AWS的p2.8xlarge实例,每个实例有8个Nvidia Tesla K80 GPU,共96GB GPU内存,32个vCPU,488GB主内存,10Gbps网络带宽。</p>
+<p>衡量标准:我们衡量不同数量worker的每次迭代时间,以评估SINGA的可扩展性。Batch-size固定为每个GPU32个。采用同步训练方案。因此,有效的batch-size是<code>32N</code>,其中N是GPU的数量。我们与一个流行的开源系统进行比较,该系统采用参数服务器拓扑结构。选择第一个GPU作为服务器。</p>
+<p><img src="/docs/assets/benchmark.png" alt="Benchmark Experiments"> <br/> <strong>可扩展性测试。条形为吞吐量,折线形为通信成本。</strong></p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.1.0_Chinese/benchmark-train/index.html b/content/docs/3.1.0_Chinese/benchmark-train/index.html
new file mode 100644
index 0000000..582f042
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/benchmark-train/index.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Benchmark for Distributed Training · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+<p>项目:我们使用深度卷积神经网络<a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">ResNet-50</a>。它有50个卷积层,用于图像分类。它需要3.8个GFLOPs来通过网络处理一张图像(尺寸为224x224)。输入的图像大小为224x224。</p>
+<p>硬件方面:我们使用的是AWS的p2.8xlarge实例,每个实例有8个Nvidia Tesla K80 GPU,共96GB GPU内存,32个vCPU,488GB主内存,10Gbps网络带宽。</p>
+<p>衡量标准:我们衡量不同数量worker的每次迭代时间,以评估SINGA的可扩展性。Batch-size固定为每个GPU32个。采用同步训练方案。因此,有效的batch-size是<code>32N</code>,其中N是GPU的数量。我们与一个流行的开源系统进行比较,该系统采用参数服务器拓扑结构。选择第一个GPU作为服务器。</p>
+<p><img src="/docs/assets/benchmark.png" alt="Benchmark Experiments"> <br/> <strong>可扩展性测试。条形为吞吐量,折线形为通信成本。</strong></p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/https://apache-singa.read [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.1.0_Chinese/build.html b/content/docs/3.1.0_Chinese/build.html
new file mode 100644
index 0000000..401cf7f
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/build.html
@@ -0,0 +1,351 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Build SINGA from Source · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding c [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/build.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Build SINGA from Source</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contribu [...]
+<p>源文件可以通过<a href="https://dist.apache.org/repos/dist/dev/singa/">tar.gz文件</a>或git repo的形式下载:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> git <span class="hljs-built_in">clone</span> https://github.com/apache/singa.git</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">cd</span> singa/</span>
+</code></pre>
+<p>如果您想为SINGA贡献代码,请参考<a href="/docs/3.1.0_Chinese/contribute-code">贡献代码</a>页面的步骤和要求。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用conda构筑singa"></a><a href="#使用conda构筑singa" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>Conda-build 是一个构建工具,它从anaconda cloud安装依赖的库并执行构建脚本。</p>
+<p>安装conda-build(需要先安装conda):</p>
+<pre><code class="hljs css language-shell">conda install conda-build
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="构建cpu版本"></a><a href="#构建cpu版本" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>构建SINGA的CPU版本:</p>
+<pre><code class="hljs css language-shell">conda build tool/conda/singa/
+</code></pre>
+<p>以上命令已经在Ubuntu(14.04,16.04和18.04)和macOS 10.11上测试过。更多信息请参考<a href="https://travis-ci.org/apache/singa">Travis-CI page</a>页面。</p>
+<h3><a class="anchor" aria-hidden="true" id="构建gpu版本"></a><a href="#构建gpu版本" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>要构建GPU版的SINGA,计算机必须装备有Nvida GPU,而且需要安装CUDA driver(&gt;=384.81)、CUDA toolkit(&gt;=9)和cuDNN(&gt;=7)。以下两个Docker镜像提供了构建环境:</p>
+<ol>
+<li>apache/singa:conda-cuda9.0</li>
+<li>apache/singa:conda-cuda10.0</li>
+</ol>
+<p>构建环境准备好后,需要先导出CUDA版本,然后运行conda命令构建SINGA:</p>
+<pre><code class="hljs css language-shell">export CUDA=x.y (e.g. 9.0)
+conda build tool/conda/singa/
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="后处理"></a><a href="#后处理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<p>生成的包文件的位置(<code>.tar.gz</code>)将打印在终端上,生成的包可以直接安装:</p>
+<pre><code class="hljs css language-shell">conda install -c conda-forge --use-local &lt;path to the package file&gt;
+</code></pre>
+<p>若要上传到anaconda云端供他人下载安装,需要在 anaconda 上注册一个账号,才能<a href="https://docs.anaconda.com/anaconda-cloud/user-guide/getting-started/">上传包</a>:</p>
+<pre><code class="hljs css language-shell">conda install anaconda-client
+anaconda login
+anaconda upload -l main &lt;path to the package file&gt;
+</code></pre>
+<p>将包上传到云端后,您可以在<a href="https://anaconda.org/">Anaconda Cloud</a>上看到,也可以通过以下命令查看:</p>
+<pre><code class="hljs css language-shell">conda search -c &lt;anaconda username&gt; singa
+</code></pre>
+<p>每个特定的SINGA软件包都由版本和构建字符串来标识。要安装一个特定的SINGA包,需要提供所有信息,例如:</p>
+<pre><code class="hljs css language-shell">conda install -c &lt;anaconda username&gt; -c conda-forge singa=2.1.0.dev=cpu_py36
+</code></pre>
+<p>为了使安装命令简单化,您可以创建以下附加包,这些包依赖于最新的CPU和GPU SINGA包:</p>
+<pre><code class="hljs css language-console"><span class="hljs-meta">#</span><span class="bash"> <span class="hljs-keyword">for</span> singa-cpu</span>
+conda build tool/conda/cpu/  --python=3.6
+conda build tool/conda/cpu/  --python=3.7
+<span class="hljs-meta">#</span><span class="bash"> <span class="hljs-keyword">for</span> singa-gpu</span>
+conda build tool/conda/gpu/  --python=3.6
+conda build tool/conda/gpu/  --python=3.7
+</code></pre>
+<p>因此,当您运行:</p>
+<pre><code class="hljs css language-shell">conda install -c &lt;anaconda username&gt; -c conda-forge singa-xpu
+</code></pre>
+<p>时(<code>xpu</code>表示'cpu' or 'gpu'), 相应的真正的SINGA包将作为依赖库被安装。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用本地工具在ubuntu上构建singa"></a><a href="#使用本地工具在ubuntu上构建singa" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>请参阅 SINGA <a href="https://github.com/apache/singa/blob/master/tool/docker/devel/ubuntu/cuda9/Dockerfile#L30">Dockerfiles</a>,了解在 Ubuntu 16.04 上安装依赖库的说明。您也可以使用 devel 映像创建一个 Docker 容器,并在容器中构建 SINGA。要使用GPU、DNNL、Python和单元测试来构建SINGA,请运行以下命令:</p>
+<pre><code class="hljs css language-shell">mkdir build    # at the root of singa folder
+cd build
+cmake -DENABLE_TEST=ON -DUSE_CUDA=ON -DUSE_DNNL=ON -DUSE_PYTHON3=ON ..
+make
+cd python
+pip install .
+</code></pre>
+<p>CMake选项的详细内容在本页最后一节解释,上面最后一条命令是安装Python包。你也可以运行<code>pip install -e .</code>,它可以创建符号链接,而不是将 Python 文件复制到 site-package 文件夹中。</p>
+<p>如果SINGA在ENABLE_TEST=ON的情况下编译,您可以通过以下方式运行单元测试:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> ./bin/test_singa</span>
+</code></pre>
+<p>您可以看到所有的测试案例与测试结果。如果SINGA通过了所有测试,那么您就成功安装了SINGA。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用本地工具在centos7上构建singa"></a><a href="#使用本地工具在centos7上构建singa" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+<p>由于Centos7的软件包名称不同,因此从源码开始构建会有所不同。</p>
+<h3><a class="anchor" aria-hidden="true" id="安装依赖项"></a><a href="#安装依赖项" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>基础包和库文件:</p>
+<pre><code class="hljs css language-shell">sudo yum install freetype-devel libXft-devel ncurses-devel openblas-devel blas-devel lapack devel atlas-devel kernel-headers unzip wget pkgconfig zip zlib-devel libcurl-devel cmake curl unzip dh-autoreconf git python-devel glog-devel protobuf-devel
+</code></pre>
+<p>构建必需的包:</p>
+<pre><code class="hljs css language-shell">sudo yum group install "Development Tools"
+</code></pre>
+<p>若要安装swig:</p>
+<pre><code class="hljs css language-shell">sudo yum install pcre-devel
+wget http://prdownloads.sourceforge.net/swig/swig-3.0.10.tar.gz
+tar xvzf swig-3.0.10.tar.gz
+cd swig-3.0.10.tar.gz
+./configure --prefix=${RUN}
+make
+make install
+</code></pre>
+<p>安装gfortran:</p>
+<pre><code class="hljs css language-shell">sudo yum install centos-release-scl-rh
+sudo yum --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc-gfortran
+</code></pre>
+<p>安装pip和其他包:</p>
+<pre><code class="hljs css language-shell">sudo yum install epel-release
+sudo yum install python-pip
+pip install matplotlib numpy pandas scikit-learn pydot
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="安装singa"></a><a href="#安装singa" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>按照《使用本地工具在Ubuntu上构建SINGA》的步骤1-5进行操作</p>
+<h3><a class="anchor" aria-hidden="true" id="测试"></a><a href="#测试" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>您可以通过如下方式进行</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> ./bin/test_singa</span>
+</code></pre>
+<p>您可以看到所有的测试案例与测试结果。如果SINGA通过了所有测试,即表示安装成功。</p>
+<h2><a class="anchor" aria-hidden="true" id="在windows中编译singa"></a><a href="#在windows中编译singa" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>在Windows上使用Python支持构建SINGA的说明可以在<a href="/docs/3.1.0_Chinese/install-win">install-win页面</a>找到。</p>
+<h2><a class="anchor" aria-hidden="true" id="关于编译选项的更多细节"></a><a href="#关于编译选项的更多细节" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<h3><a class="anchor" aria-hidden="true" id="use_modules-已过期废弃"></a><a href="#use_modules-已过期废弃" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
+<p>如果没有安装protobuf和openblas,你可以用它们一起编译SINGA</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> In SINGA ROOT folder</span>
+<span class="hljs-meta">$</span><span class="bash"> mkdir build</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">cd</span> build</span>
+<span class="hljs-meta">$</span><span class="bash"> cmake -DUSE_MODULES=ON ..</span>
+<span class="hljs-meta">$</span><span class="bash"> make</span>
+</code></pre>
+<p>cmake 会下载 OpenBlas 和 Protobuf (2.6.1) 并与 SINGA 一起编译。</p>
+<p>您可以使用<code>ccmake ..</code>来配置编译选项。如果一些依赖的库不在系统默认路径中,则您需要手动导出以下环境变量:</p>
+<pre><code class="hljs css language-shell">export CMAKE_INCLUDE_PATH=&lt;path to the header file folder&gt;
+export CMAKE_LIBRARY_PATH=&lt;path to the lib file folder&gt;
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="use_python"></a><a href="#use_python" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>编译SINGA的Python封装器选项:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> cmake -DUSE_PYTHON=ON ..</span>
+<span class="hljs-meta">$</span><span class="bash"> make</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">cd</span> python</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install .</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="use_cuda"></a><a href="#use_cuda" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>我们推荐用户安装CUDA和<a href="https://developer.nvidia.com/cudnn">cuDNN</a>,以便在GPU上运行SINGA,以获得更好的性能。</p>
+<p>SINGA已经在CUDA 9/10和cuDNN 7上进行了测试。如果cuDNN安装在非系统文件夹中,例如 /home/bob/local/cudnn/,则需要执行以下命令来让cmake在编译时能够找到它们:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> CMAKE_INCLUDE_PATH=/home/bob/<span class="hljs-built_in">local</span>/cudnn/include:<span class="hljs-variable">$CMAKE_INCLUDE_PATH</span></span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> CMAKE_LIBRARY_PATH=/home/bob/<span class="hljs-built_in">local</span>/cudnn/lib64:<span class="hljs-variable">$CMAKE_LIBRARY_PATH</span></span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> LD_LIBRARY_PATH=/home/bob/<span class="hljs-built_in">local</span>/cudnn/lib64:<span class="hljs-variable">$LD_LIBRARY_PATH</span></span>
+</code></pre>
+<p>CUDA和cuDNN的cmake选项应该设置成“ON”:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> Dependent libs are install already</span>
+<span class="hljs-meta">$</span><span class="bash"> cmake -DUSE_CUDA=ON ..</span>
+<span class="hljs-meta">$</span><span class="bash"> make</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="use_dnnl"></a><a href="#use_dnnl" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>用户可以启用DNNL来提高CPU的计算性能,DNNL的安装指南可以在<a href="https://github.com/intel/mkl-dnn#installation">这里</a>找到:</p>
+<p>SINGA在DNNL v1.1环境下已经进行过测试并通过,</p>
+<p>若要启用DNNL支持来编译SINGA:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> Dependent libs are installed already</span>
+<span class="hljs-meta">$</span><span class="bash"> cmake -DUSE_DNNL=ON ..</span>
+<span class="hljs-meta">$</span><span class="bash"> make</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="use_opencl"></a><a href="#use_opencl" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>SINGA使用opencl-headers和viennacl(版本1.7.1及以上)来支持OpenCL,它们可以通过如下方式安装:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> On Ubuntu 16.04</span>
+<span class="hljs-meta">$</span><span class="bash"> sudo apt-get install opencl-headers, libviennacl-dev</span>
+<span class="hljs-meta">#</span><span class="bash"> On Fedora</span>
+<span class="hljs-meta">$</span><span class="bash"> sudo yum install opencl-headers, viennacl</span>
+</code></pre>
+<p>此外,你需要在你想运行OpenCL的平台安装OpenCL Installable Client Driver(ICD)。</p>
+<ul>
+<li>对于AMD和Nvidia的GPU,驱动包也应该安装与之匹配的OpenCL ICD。</li>
+<li>对于Intel的CPU和/或GPU,请从<a href="https://software.intel.com/en-us/articles/opencl-drivers">Intel官方网站</a>上获取驱动程序。请注意,该网站上提供的驱动程序只支持最新的CPU和Iris GPU。</li>
+<li>对于旧的Intel CPU,你可以使用beignet-opencl-icd包。</li>
+</ul>
+<p>请注意,目前不建议在CPU上运行OpenCL,因为运行速度会很慢。内存传输是以整数秒为单位的(直观来说,CPU上是1000毫秒,而GPU上是1毫秒)。</p>
+<p>更多关于建立OpenCL工作环境的信息可以在<a href="https://wiki.tiker.net/OpenCLHowTo">这里</a>找到。</p>
+<p>如果ViennaCL的软件包版本不是至少1.7.1,则需要从源码构建它:</p>
+<p>从<a href="https://github.com/viennacl/viennacl-dev">这个git repo</a>clone版本库,切换(checkout)到release-1.7.1分支,然后构建它,并把项目路径添加到PATH,再把构建的库文件添加到LD_LIBRARY_PATH。</p>
+<p>构建支持OpenCL的SINGA(在SINGA 1.1上测试):</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> cmake -DUSE_OPENCL=ON ..</span>
+<span class="hljs-meta">$</span><span class="bash"> make</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="package"></a><a href="#package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>这个设置是用来构建 Debian 软件包的。设置PACKAGE=ON,然后用make命令来编译软件包,如下所示:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> cmake -DPACKAGE=ON</span>
+<span class="hljs-meta">$</span><span class="bash"> make package</span>
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="faq"></a><a href="#faq" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<ul>
+<li><p>Q: 'import singa'阶段报错</p>
+<p>A: 请检查<code>python -c &quot;from singa import _singa_wrap</code>中的详细错误。有时是由依赖库引起的,比如protobuf有多个版本,cudnn缺失,numpy版本不匹配等问题。下面展示了不同情况下的解决方案</p>
+<ol>
+<li><p>检查cudnn和cuda。如果cudnn缺失或与wheel包的版本不一致,你可以下载正确的cudnn版本到~/local/cudnn/,然后:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">echo</span> <span class="hljs-string">"export LD_LIBRARY_PATH=/home/&lt;yourname&gt;/local/cudnn/lib64:<span class="hljs-variable">$LD_LIBRARY_PATH</span>"</span> &gt;&gt; ~/.bashrc</span>
+</code></pre></li>
+<li><p>如果是protobuf的问题。你可以将protobuf (3.6.1)从源码安装到本地文件夹,比如 ~/local/,解压tar文件,然后:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> ./configure --prefix=/home/&lt;yourname&gt;<span class="hljs-built_in">local</span></span>
+<span class="hljs-meta">$</span><span class="bash"> make &amp;&amp; make install</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">echo</span> <span class="hljs-string">"export LD_LIBRARY_PATH=/home/&lt;yourname&gt;/local/lib:<span class="hljs-variable">$LD_LIBRARY_PATH</span>"</span> &gt;&gt; ~/.bashrc</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">source</span> ~/.bashrc</span>
+</code></pre></li>
+<li><p>如果找不到包括python在内的其他类库,则使用<code>pip</code>或<code>conda</code>创建虚拟环境.</p></li>
+<li><p>如果不是上述原因造成的,请到<code>_singa_wrap.so</code>文件夹中查看:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> python</span>
+<span class="hljs-meta">&gt;</span><span class="bash">&gt; import importlib</span>
+<span class="hljs-meta">&gt;</span><span class="bash">&gt; importlib.import_module(<span class="hljs-string">'_singa_wrap'</span>)</span>
+</code></pre>
+<p>来检查错误信息。例如,如果是numpy的版本不匹配,错误信息会是:</p>
+<pre><code class="hljs css language-shell">RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
+</code></pre>
+<p>那么你就需要更新numpy到更高版本。</p></li>
+</ol></li>
+</ul>
+<ul>
+<li><p>Q: 运行<code>cmake ...</code>时出错,找不到依赖库。</p>
+<p>A: 如果你还没有安装这些依赖库,请先安装它们。如果你在系统文件夹之外的文件夹中安装了库,例如/usr/local,那您需要手动导出以下变量:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> CMAKE_INCLUDE_PATH=&lt;path to your header file folder&gt;</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> CMAKE_LIBRARY_PATH=&lt;path to your lib file folder&gt;</span>
+</code></pre></li>
+</ul>
+<ul>
+<li><p>Q: 来自<code>make</code>的错误,例如linking阶段的错误.</p>
+<p>A: 如果您的库文件在系统默认路径以外的其他文件夹中,则需要手动导出以下变量。</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> LIBRARY_PATH=&lt;path to your lib file folder&gt;</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> LD_LIBRARY_PATH=&lt;path to your lib file folder&gt;</span>
+</code></pre></li>
+</ul>
+<ul>
+<li><p>Q: 来自头文件的错误,例如'cblas.h文件不存在'</p>
+<p>A: 您需要手动将cblas.h的文件夹包含在CPLUS_INCLUDE_PATH中,例如:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> CPLUS_INCLUDE_PATH=/opt/OpenBLAS/include:<span class="hljs-variable">$CPLUS_INCLUDE_PATH</span></span>
+</code></pre></li>
+<li><p>Q: 在编译SINGA时,我收到错误信息<code>SSE2 instruction set not enabled</code></p>
+<p>A:您可以尝试如下指令:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> make CFLAGS=<span class="hljs-string">'-msse2'</span> CXXFLAGS=<span class="hljs-string">'-msse2'</span></span>
+</code></pre></li>
+<li><p>Q:当试图导入.py文件时,从google.protobuf.internal收到<code>ImportError: cannot import name enum_type_wrapper</code>。</p>
+<p>A: 您需要安装protobuf的Python绑定包,它可以通过如下方式安装:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> sudo apt-get install protobuf</span>
+</code></pre>
+<p>或从源文件编译:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">cd</span> /PROTOBUF/SOURCE/FOLDER</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">cd</span> python</span>
+<span class="hljs-meta">$</span><span class="bash"> python setup.py build</span>
+<span class="hljs-meta">$</span><span class="bash"> python setup.py install</span>
+</code></pre></li>
+<li><p>Q: 当我从源码构建OpenBLAS时,被告知需要一个Fortran编译器。</p>
+<p>A: 您可以通过如下方式编译OpenBLAS:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> make ONLY_CBLAS=1</span>
+</code></pre>
+<p>或者通过如下方式安装:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> sudo apt-get install libopenblas-dev</span>
+</code></pre></li>
+<li><p>Q: 当我构建协议缓冲区时,它报告说在<code>/usr/lib64/libstdc++.so.6</code>中没有找到<code>GLIBC++_3.4.20</code>?</p>
+<p>A: 这意味着链接器找到了libstdc++.so.6,但该库属于旧的GCC(用于编译和链接程序的GCC)版本。此程序依赖于新的libstdc++中定义的代码,而该代码属于较新版本的GCC,所以必须告诉链接器如何找到较新的libstdc++共享库。最简单的解决方法是找到正确的libstdc++,并将其导出到LD_LIBRARY_PATH。例如,如果下面命令的输出中列出了GLIBC++_3.4.20:</p>
+<pre><code class="hljs">  $ strings /usr/local/lib64/libstdc++.so.6|grep GLIBC++
+</code></pre>
+<p>那么接下来需要设置环境变量为:</p>
+<pre><code class="hljs">  $ export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
+</code></pre></li>
+<li><p>Q: 当构建glog时,报告说 &quot;src/logging_unittest.cc:83:20: error: 'gflags' is not a namespace-name&quot;。</p>
+<p>A: 可能是由于安装的gflags用了不同的命名空间,比如 &quot;google&quot;,所以glog找不到'gflags'的命名空间。实际上建立glog并不需要gflags,所以你可以修改configure.ac文件来忽略gflags。</p>
+<pre><code class="hljs">  1. cd to glog src directory
+  2. change line 125 of configure.ac  to &quot;AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=0, ac_cv_have_libgflags=0)&quot;
+  3. autoreconf
+</code></pre>
+<p>执行上述命令后,就可以重新构建glog了。</p></li>
+<li><p>Q: 在使用虚拟环境时,每次运行pip install,都会重新安装numpy。但是,当运行<code>import numpy</code>时,numpy并没有被调用。</p>
+<p>A: 可能是由于<code>PYTHONPATH</code>造成的,在使用虚拟环境时,应将<code>PYTHONPATH</code>设置为空,以避免与虚拟环境本身的路径冲突。</p></li>
+<li><p>Q: 当从源代码编译PySINGA时,由于缺少&lt;numpy/objectarray.h&gt;,出现的编译错误。</p>
+<p>A: 请安装numpy并导出numpy头文件的路径为</p>
+<pre><code class="hljs">  $ export CPLUS_INCLUDE_PATH=`python -c &quot;import numpy; print numpy.get_include()&quot;`:$CPLUS_INCLUDE_PATH
+</code></pre></li>
+<li><p>Q: 当我在Mac OS X中运行SINGA时,报错 &quot;Fatal Python error:
+PyThreadState_Get: no current thread Abort trap: 6&quot;</p>
+<p>A: 这个错误通常发生在系统上有多个版本的Python,并且是通过pip安装的SINGA (通过conda安装时不会出现这个问题),例如,操作系统自带的版本和Homebrew安装的版本。PySINGA所链接的Python必须与Python解释器(interpreter)相同。 您可以通过 <code>which python</code> 检查您的解释器路径并通过<code>otool -L &lt;path to _singa_wrap.so&gt;</code>检查PySINGA链接的Python路径。要解决这个问题,请用正确的 Python 版本编译 SINGA。需要注意的是,如果您从源码编译 PySINGA,您需要在调用<a href="http://stackoverflow.com/questions/15291500/i-have-2-versions-of-python-installed-but-cmake-is-using-older-version-how-do">cmake</a>时指定路径:</p></li>
+</ul>
+<pre><code class="hljs">    $ cmake -DPYTHON_LIBRARY=`python-config --prefix`/lib/libpython2.7.dylib -DPYTHON_INCLUDE_DIR=`python-config --prefix`/include/python2.7/ ..
+</code></pre>
+<p>如果从二进制包中安装PySINGA,例如debian或wheel,那么你需要改变python解释器的路径,例如,重新设置$PATH,并把Python的正确路径放在前面的位置。</p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/download-singa"><span class="arrow-prev">← </span><span>Download SINGA</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/contribute-code"><span>How to Contribute Code</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#使用conda构筑 [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.1.0_Chinese/build/index.html b/content/docs/3.1.0_Chinese/build/index.html
new file mode 100644
index 0000000..401cf7f
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/build/index.html
@@ -0,0 +1,351 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Build SINGA from Source · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding c [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/build.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Build SINGA from Source</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contribu [...]
+<p>源文件可以通过<a href="https://dist.apache.org/repos/dist/dev/singa/">tar.gz文件</a>或git repo的形式下载:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> git <span class="hljs-built_in">clone</span> https://github.com/apache/singa.git</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">cd</span> singa/</span>
+</code></pre>
+<p>如果您想为SINGA贡献代码,请参考<a href="/docs/3.1.0_Chinese/contribute-code">贡献代码</a>页面的步骤和要求。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用conda构筑singa"></a><a href="#使用conda构筑singa" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>Conda-build 是一个构建工具,它从anaconda cloud安装依赖的库并执行构建脚本。</p>
+<p>安装conda-build(需要先安装conda):</p>
+<pre><code class="hljs css language-shell">conda install conda-build
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="构建cpu版本"></a><a href="#构建cpu版本" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>构建SINGA的CPU版本:</p>
+<pre><code class="hljs css language-shell">conda build tool/conda/singa/
+</code></pre>
+<p>以上命令已经在Ubuntu(14.04,16.04和18.04)和macOS 10.11上测试过。更多信息请参考<a href="https://travis-ci.org/apache/singa">Travis-CI page</a>页面。</p>
+<h3><a class="anchor" aria-hidden="true" id="构建gpu版本"></a><a href="#构建gpu版本" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>要构建GPU版的SINGA,计算机必须装备有Nvida GPU,而且需要安装CUDA driver(&gt;=384.81)、CUDA toolkit(&gt;=9)和cuDNN(&gt;=7)。以下两个Docker镜像提供了构建环境:</p>
+<ol>
+<li>apache/singa:conda-cuda9.0</li>
+<li>apache/singa:conda-cuda10.0</li>
+</ol>
+<p>构建环境准备好后,需要先导出CUDA版本,然后运行conda命令构建SINGA:</p>
+<pre><code class="hljs css language-shell">export CUDA=x.y (e.g. 9.0)
+conda build tool/conda/singa/
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="后处理"></a><a href="#后处理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<p>生成的包文件的位置(<code>.tar.gz</code>)将打印在终端上,生成的包可以直接安装:</p>
+<pre><code class="hljs css language-shell">conda install -c conda-forge --use-local &lt;path to the package file&gt;
+</code></pre>
+<p>若要上传到anaconda云端供他人下载安装,需要在 anaconda 上注册一个账号,才能<a href="https://docs.anaconda.com/anaconda-cloud/user-guide/getting-started/">上传包</a>:</p>
+<pre><code class="hljs css language-shell">conda install anaconda-client
+anaconda login
+anaconda upload -l main &lt;path to the package file&gt;
+</code></pre>
+<p>将包上传到云端后,您可以在<a href="https://anaconda.org/">Anaconda Cloud</a>上看到,也可以通过以下命令查看:</p>
+<pre><code class="hljs css language-shell">conda search -c &lt;anaconda username&gt; singa
+</code></pre>
+<p>每个特定的SINGA软件包都由版本和构建字符串来标识。要安装一个特定的SINGA包,需要提供所有信息,例如:</p>
+<pre><code class="hljs css language-shell">conda install -c &lt;anaconda username&gt; -c conda-forge singa=2.1.0.dev=cpu_py36
+</code></pre>
+<p>为了使安装命令简单化,您可以创建以下附加包,这些包依赖于最新的CPU和GPU SINGA包:</p>
+<pre><code class="hljs css language-console"><span class="hljs-meta">#</span><span class="bash"> <span class="hljs-keyword">for</span> singa-cpu</span>
+conda build tool/conda/cpu/  --python=3.6
+conda build tool/conda/cpu/  --python=3.7
+<span class="hljs-meta">#</span><span class="bash"> <span class="hljs-keyword">for</span> singa-gpu</span>
+conda build tool/conda/gpu/  --python=3.6
+conda build tool/conda/gpu/  --python=3.7
+</code></pre>
+<p>因此,当您运行:</p>
+<pre><code class="hljs css language-shell">conda install -c &lt;anaconda username&gt; -c conda-forge singa-xpu
+</code></pre>
+<p>时(<code>xpu</code>表示'cpu' or 'gpu'), 相应的真正的SINGA包将作为依赖库被安装。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用本地工具在ubuntu上构建singa"></a><a href="#使用本地工具在ubuntu上构建singa" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>请参阅 SINGA <a href="https://github.com/apache/singa/blob/master/tool/docker/devel/ubuntu/cuda9/Dockerfile#L30">Dockerfiles</a>,了解在 Ubuntu 16.04 上安装依赖库的说明。您也可以使用 devel 映像创建一个 Docker 容器,并在容器中构建 SINGA。要使用GPU、DNNL、Python和单元测试来构建SINGA,请运行以下命令:</p>
+<pre><code class="hljs css language-shell">mkdir build    # at the root of singa folder
+cd build
+cmake -DENABLE_TEST=ON -DUSE_CUDA=ON -DUSE_DNNL=ON -DUSE_PYTHON3=ON ..
+make
+cd python
+pip install .
+</code></pre>
+<p>CMake选项的详细内容在本页最后一节解释,上面最后一条命令是安装Python包。你也可以运行<code>pip install -e .</code>,它可以创建符号链接,而不是将 Python 文件复制到 site-package 文件夹中。</p>
+<p>如果SINGA在ENABLE_TEST=ON的情况下编译,您可以通过以下方式运行单元测试:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> ./bin/test_singa</span>
+</code></pre>
+<p>您可以看到所有的测试案例与测试结果。如果SINGA通过了所有测试,那么您就成功安装了SINGA。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用本地工具在centos7上构建singa"></a><a href="#使用本地工具在centos7上构建singa" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+<p>由于Centos7的软件包名称不同,因此从源码开始构建会有所不同。</p>
+<h3><a class="anchor" aria-hidden="true" id="安装依赖项"></a><a href="#安装依赖项" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>基础包和库文件:</p>
+<pre><code class="hljs css language-shell">sudo yum install freetype-devel libXft-devel ncurses-devel openblas-devel blas-devel lapack devel atlas-devel kernel-headers unzip wget pkgconfig zip zlib-devel libcurl-devel cmake curl unzip dh-autoreconf git python-devel glog-devel protobuf-devel
+</code></pre>
+<p>构建必需的包:</p>
+<pre><code class="hljs css language-shell">sudo yum group install "Development Tools"
+</code></pre>
+<p>若要安装swig:</p>
+<pre><code class="hljs css language-shell">sudo yum install pcre-devel
+wget http://prdownloads.sourceforge.net/swig/swig-3.0.10.tar.gz
+tar xvzf swig-3.0.10.tar.gz
+cd swig-3.0.10.tar.gz
+./configure --prefix=${RUN}
+make
+make install
+</code></pre>
+<p>安装gfortran:</p>
+<pre><code class="hljs css language-shell">sudo yum install centos-release-scl-rh
+sudo yum --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc-gfortran
+</code></pre>
+<p>安装pip和其他包:</p>
+<pre><code class="hljs css language-shell">sudo yum install epel-release
+sudo yum install python-pip
+pip install matplotlib numpy pandas scikit-learn pydot
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="安装singa"></a><a href="#安装singa" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>按照《使用本地工具在Ubuntu上构建SINGA》的步骤1-5进行操作</p>
+<h3><a class="anchor" aria-hidden="true" id="测试"></a><a href="#测试" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>您可以通过如下方式进行</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> ./bin/test_singa</span>
+</code></pre>
+<p>您可以看到所有的测试案例与测试结果。如果SINGA通过了所有测试,即表示安装成功。</p>
+<h2><a class="anchor" aria-hidden="true" id="在windows中编译singa"></a><a href="#在windows中编译singa" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>在Windows上使用Python支持构建SINGA的说明可以在<a href="/docs/3.1.0_Chinese/install-win">install-win页面</a>找到。</p>
+<h2><a class="anchor" aria-hidden="true" id="关于编译选项的更多细节"></a><a href="#关于编译选项的更多细节" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<h3><a class="anchor" aria-hidden="true" id="use_modules-已过期废弃"></a><a href="#use_modules-已过期废弃" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
+<p>如果没有安装protobuf和openblas,你可以用它们一起编译SINGA</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> In SINGA ROOT folder</span>
+<span class="hljs-meta">$</span><span class="bash"> mkdir build</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">cd</span> build</span>
+<span class="hljs-meta">$</span><span class="bash"> cmake -DUSE_MODULES=ON ..</span>
+<span class="hljs-meta">$</span><span class="bash"> make</span>
+</code></pre>
+<p>cmake 会下载 OpenBlas 和 Protobuf (2.6.1) 并与 SINGA 一起编译。</p>
+<p>您可以使用<code>ccmake ..</code>来配置编译选项。如果一些依赖的库不在系统默认路径中,则您需要手动导出以下环境变量:</p>
+<pre><code class="hljs css language-shell">export CMAKE_INCLUDE_PATH=&lt;path to the header file folder&gt;
+export CMAKE_LIBRARY_PATH=&lt;path to the lib file folder&gt;
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="use_python"></a><a href="#use_python" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>编译SINGA的Python封装器选项:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> cmake -DUSE_PYTHON=ON ..</span>
+<span class="hljs-meta">$</span><span class="bash"> make</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">cd</span> python</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install .</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="use_cuda"></a><a href="#use_cuda" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>我们推荐用户安装CUDA和<a href="https://developer.nvidia.com/cudnn">cuDNN</a>,以便在GPU上运行SINGA,以获得更好的性能。</p>
+<p>SINGA已经在CUDA 9/10和cuDNN 7上进行了测试。如果cuDNN安装在非系统文件夹中,例如 /home/bob/local/cudnn/,则需要执行以下命令来让cmake在编译时能够找到它们:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> CMAKE_INCLUDE_PATH=/home/bob/<span class="hljs-built_in">local</span>/cudnn/include:<span class="hljs-variable">$CMAKE_INCLUDE_PATH</span></span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> CMAKE_LIBRARY_PATH=/home/bob/<span class="hljs-built_in">local</span>/cudnn/lib64:<span class="hljs-variable">$CMAKE_LIBRARY_PATH</span></span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> LD_LIBRARY_PATH=/home/bob/<span class="hljs-built_in">local</span>/cudnn/lib64:<span class="hljs-variable">$LD_LIBRARY_PATH</span></span>
+</code></pre>
+<p>CUDA和cuDNN的cmake选项应该设置成“ON”:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> Dependent libs are install already</span>
+<span class="hljs-meta">$</span><span class="bash"> cmake -DUSE_CUDA=ON ..</span>
+<span class="hljs-meta">$</span><span class="bash"> make</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="use_dnnl"></a><a href="#use_dnnl" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>用户可以启用DNNL来提高CPU的计算性能,DNNL的安装指南可以在<a href="https://github.com/intel/mkl-dnn#installation">这里</a>找到:</p>
+<p>SINGA在DNNL v1.1环境下已经进行过测试并通过,</p>
+<p>若要启用DNNL支持来编译SINGA:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> Dependent libs are installed already</span>
+<span class="hljs-meta">$</span><span class="bash"> cmake -DUSE_DNNL=ON ..</span>
+<span class="hljs-meta">$</span><span class="bash"> make</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="use_opencl"></a><a href="#use_opencl" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>SINGA使用opencl-headers和viennacl(版本1.7.1及以上)来支持OpenCL,它们可以通过如下方式安装:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">#</span><span class="bash"> On Ubuntu 16.04</span>
+<span class="hljs-meta">$</span><span class="bash"> sudo apt-get install opencl-headers, libviennacl-dev</span>
+<span class="hljs-meta">#</span><span class="bash"> On Fedora</span>
+<span class="hljs-meta">$</span><span class="bash"> sudo yum install opencl-headers, viennacl</span>
+</code></pre>
+<p>此外,你需要在你想运行OpenCL的平台安装OpenCL Installable Client Driver(ICD)。</p>
+<ul>
+<li>对于AMD和Nvidia的GPU,驱动包也应该安装与之匹配的OpenCL ICD。</li>
+<li>对于Intel的CPU和/或GPU,请从<a href="https://software.intel.com/en-us/articles/opencl-drivers">Intel官方网站</a>上获取驱动程序。请注意,该网站上提供的驱动程序只支持最新的CPU和Iris GPU。</li>
+<li>对于旧的Intel CPU,你可以使用beignet-opencl-icd包。</li>
+</ul>
+<p>请注意,目前不建议在CPU上运行OpenCL,因为运行速度会很慢。内存传输是以整数秒为单位的(直观来说,CPU上是1000毫秒,而GPU上是1毫秒)。</p>
+<p>更多关于建立OpenCL工作环境的信息可以在<a href="https://wiki.tiker.net/OpenCLHowTo">这里</a>找到。</p>
+<p>如果ViennaCL的软件包版本不是至少1.7.1,则需要从源码构建它:</p>
+<p>从<a href="https://github.com/viennacl/viennacl-dev">这个git repo</a>clone版本库,切换(checkout)到release-1.7.1分支,然后构建它,并把项目路径添加到PATH,再把构建的库文件添加到LD_LIBRARY_PATH。</p>
+<p>构建支持OpenCL的SINGA(在SINGA 1.1上测试):</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> cmake -DUSE_OPENCL=ON ..</span>
+<span class="hljs-meta">$</span><span class="bash"> make</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="package"></a><a href="#package" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>这个设置是用来构建 Debian 软件包的。设置PACKAGE=ON,然后用make命令来编译软件包,如下所示:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> cmake -DPACKAGE=ON</span>
+<span class="hljs-meta">$</span><span class="bash"> make package</span>
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="faq"></a><a href="#faq" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
+<ul>
+<li><p>Q: 'import singa'阶段报错</p>
+<p>A: 请检查<code>python -c &quot;from singa import _singa_wrap</code>中的详细错误。有时是由依赖库引起的,比如protobuf有多个版本,cudnn缺失,numpy版本不匹配等问题。下面展示了不同情况下的解决方案</p>
+<ol>
+<li><p>检查cudnn和cuda。如果cudnn缺失或与wheel包的版本不一致,你可以下载正确的cudnn版本到~/local/cudnn/,然后:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">echo</span> <span class="hljs-string">"export LD_LIBRARY_PATH=/home/&lt;yourname&gt;/local/cudnn/lib64:<span class="hljs-variable">$LD_LIBRARY_PATH</span>"</span> &gt;&gt; ~/.bashrc</span>
+</code></pre></li>
+<li><p>如果是protobuf的问题。你可以将protobuf (3.6.1)从源码安装到本地文件夹,比如 ~/local/,解压tar文件,然后:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> ./configure --prefix=/home/&lt;yourname&gt;<span class="hljs-built_in">local</span></span>
+<span class="hljs-meta">$</span><span class="bash"> make &amp;&amp; make install</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">echo</span> <span class="hljs-string">"export LD_LIBRARY_PATH=/home/&lt;yourname&gt;/local/lib:<span class="hljs-variable">$LD_LIBRARY_PATH</span>"</span> &gt;&gt; ~/.bashrc</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">source</span> ~/.bashrc</span>
+</code></pre></li>
+<li><p>如果找不到包括python在内的其他类库,则使用<code>pip</code>或<code>conda</code>创建虚拟环境.</p></li>
+<li><p>如果不是上述原因造成的,请到<code>_singa_wrap.so</code>文件夹中查看:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> python</span>
+<span class="hljs-meta">&gt;</span><span class="bash">&gt; import importlib</span>
+<span class="hljs-meta">&gt;</span><span class="bash">&gt; importlib.import_module(<span class="hljs-string">'_singa_wrap'</span>)</span>
+</code></pre>
+<p>来检查错误信息。例如,如果是numpy的版本不匹配,错误信息会是:</p>
+<pre><code class="hljs css language-shell">RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
+</code></pre>
+<p>那么你就需要更新numpy到更高版本。</p></li>
+</ol></li>
+</ul>
+<ul>
+<li><p>Q: 运行<code>cmake ...</code>时出错,找不到依赖库。</p>
+<p>A: 如果你还没有安装这些依赖库,请先安装它们。如果你在系统文件夹之外的文件夹中安装了库,例如/usr/local,那您需要手动导出以下变量:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> CMAKE_INCLUDE_PATH=&lt;path to your header file folder&gt;</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> CMAKE_LIBRARY_PATH=&lt;path to your lib file folder&gt;</span>
+</code></pre></li>
+</ul>
+<ul>
+<li><p>Q: 来自<code>make</code>的错误,例如linking阶段的错误.</p>
+<p>A: 如果您的库文件在系统默认路径以外的其他文件夹中,则需要手动导出以下变量。</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> LIBRARY_PATH=&lt;path to your lib file folder&gt;</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> LD_LIBRARY_PATH=&lt;path to your lib file folder&gt;</span>
+</code></pre></li>
+</ul>
+<ul>
+<li><p>Q: 来自头文件的错误,例如'cblas.h文件不存在'</p>
+<p>A: 您需要手动将cblas.h的文件夹包含在CPLUS_INCLUDE_PATH中,例如:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">export</span> CPLUS_INCLUDE_PATH=/opt/OpenBLAS/include:<span class="hljs-variable">$CPLUS_INCLUDE_PATH</span></span>
+</code></pre></li>
+<li><p>Q: 在编译SINGA时,我收到错误信息<code>SSE2 instruction set not enabled</code></p>
+<p>A:您可以尝试如下指令:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> make CFLAGS=<span class="hljs-string">'-msse2'</span> CXXFLAGS=<span class="hljs-string">'-msse2'</span></span>
+</code></pre></li>
+<li><p>Q:当试图导入.py文件时,从google.protobuf.internal收到<code>ImportError: cannot import name enum_type_wrapper</code>。</p>
+<p>A: 您需要安装protobuf的Python绑定包,它可以通过如下方式安装:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> sudo apt-get install protobuf</span>
+</code></pre>
+<p>或从源文件编译:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">cd</span> /PROTOBUF/SOURCE/FOLDER</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">cd</span> python</span>
+<span class="hljs-meta">$</span><span class="bash"> python setup.py build</span>
+<span class="hljs-meta">$</span><span class="bash"> python setup.py install</span>
+</code></pre></li>
+<li><p>Q: 当我从源码构建OpenBLAS时,被告知需要一个Fortran编译器。</p>
+<p>A: 您可以通过如下方式编译OpenBLAS:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> make ONLY_CBLAS=1</span>
+</code></pre>
+<p>或者通过如下方式安装:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> sudo apt-get install libopenblas-dev</span>
+</code></pre></li>
+<li><p>Q: 当我构建协议缓冲区时,它报告说在<code>/usr/lib64/libstdc++.so.6</code>中没有找到<code>GLIBC++_3.4.20</code>?</p>
+<p>A: 这意味着链接器找到了libstdc++.so.6,但该库属于旧的GCC(用于编译和链接程序的GCC)版本。此程序依赖于新的libstdc++中定义的代码,而该代码属于较新版本的GCC,所以必须告诉链接器如何找到较新的libstdc++共享库。最简单的解决方法是找到正确的libstdc++,并将其导出到LD_LIBRARY_PATH。例如,如果下面命令的输出中列出了GLIBC++_3.4.20:</p>
+<pre><code class="hljs">  $ strings /usr/local/lib64/libstdc++.so.6|grep GLIBC++
+</code></pre>
+<p>那么接下来需要设置环境变量为:</p>
+<pre><code class="hljs">  $ export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
+</code></pre></li>
+<li><p>Q: 当构建glog时,报告说 &quot;src/logging_unittest.cc:83:20: error: 'gflags' is not a namespace-name&quot;。</p>
+<p>A: 可能是由于安装的gflags用了不同的命名空间,比如 &quot;google&quot;,所以glog找不到'gflags'的命名空间。实际上建立glog并不需要gflags,所以你可以修改configure.ac文件来忽略gflags。</p>
+<pre><code class="hljs">  1. cd to glog src directory
+  2. change line 125 of configure.ac  to &quot;AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=0, ac_cv_have_libgflags=0)&quot;
+  3. autoreconf
+</code></pre>
+<p>执行上述命令后,就可以重新构建glog了。</p></li>
+<li><p>Q: 在使用虚拟环境时,每次运行pip install,都会重新安装numpy。但是,当运行<code>import numpy</code>时,numpy并没有被调用。</p>
+<p>A: 可能是由于<code>PYTHONPATH</code>造成的,在使用虚拟环境时,应将<code>PYTHONPATH</code>设置为空,以避免与虚拟环境本身的路径冲突。</p></li>
+<li><p>Q: 当从源代码编译PySINGA时,由于缺少&lt;numpy/objectarray.h&gt;,出现的编译错误。</p>
+<p>A: 请安装numpy并导出numpy头文件的路径为</p>
+<pre><code class="hljs">  $ export CPLUS_INCLUDE_PATH=`python -c &quot;import numpy; print numpy.get_include()&quot;`:$CPLUS_INCLUDE_PATH
+</code></pre></li>
+<li><p>Q: 当我在Mac OS X中运行SINGA时,报错 &quot;Fatal Python error:
+PyThreadState_Get: no current thread Abort trap: 6&quot;</p>
+<p>A: 这个错误通常发生在系统上有多个版本的Python,并且是通过pip安装的SINGA (通过conda安装时不会出现这个问题),例如,操作系统自带的版本和Homebrew安装的版本。PySINGA所链接的Python必须与Python解释器(interpreter)相同。 您可以通过 <code>which python</code> 检查您的解释器路径并通过<code>otool -L &lt;path to _singa_wrap.so&gt;</code>检查PySINGA链接的Python路径。要解决这个问题,请用正确的 Python 版本编译 SINGA。需要注意的是,如果您从源码编译 PySINGA,您需要在调用<a href="http://stackoverflow.com/questions/15291500/i-have-2-versions-of-python-installed-but-cmake-is-using-older-version-how-do">cmake</a>时指定路径:</p></li>
+</ul>
+<pre><code class="hljs">    $ cmake -DPYTHON_LIBRARY=`python-config --prefix`/lib/libpython2.7.dylib -DPYTHON_INCLUDE_DIR=`python-config --prefix`/include/python2.7/ ..
+</code></pre>
+<p>如果从二进制包中安装PySINGA,例如debian或wheel,那么你需要改变python解释器的路径,例如,重新设置$PATH,并把Python的正确路径放在前面的位置。</p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/download-singa"><span class="arrow-prev">← </span><span>Download SINGA</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/contribute-code"><span>How to Contribute Code</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#使用conda构筑 [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.1.0_Chinese/contribute-code.html b/content/docs/3.1.0_Chinese/contribute-code.html
new file mode 100644
index 0000000..b542624
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/contribute-code.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to Contribute Code · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding cop [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/contribute-code.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">How to Contribute Code</h1></header><article><div><span><!-- Licensed to the Apache Software Foundation (ASF) under one or more  [...]
+<h2><a class="anchor" aria-hidden="true" id="代码风格"></a><a href="#代码风格" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>SINGA代码库在<a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml">CPP</a>和<a href="http://google.github.io/styleguide/pyguide.html">Python</a>代码中都遵循Google风格。</p>
+<p>强制执行Google编码风格的一个简单方法是使用Visual Studio Code编辑器中的linting和格式化工具:</p>
+<ul>
+<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools">C/C++扩展</a></li>
+<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.python">Python扩展</a></li>
+<li><a href="https://marketplace.visualstudio.com/items?itemName=mine.cpplint">cpplint扩展</a></li>
+<li><a href="https://marketplace.visualstudio.com/items?itemName=xaver.clang-format">Clang-Format</a></li>
+</ul>
+<p>安装扩展后,编辑<code>settings.json</code>文件:</p>
+<pre><code class="hljs css language-json">{
+  <span class="hljs-attr">"[cpp]"</span>: {
+    <span class="hljs-attr">"editor.defaultFormatter"</span>: <span class="hljs-string">"xaver.clang-format"</span>
+  },
+  <span class="hljs-attr">"cpplint.cpplintPath"</span>: <span class="hljs-string">"path/to/cpplint"</span>,
+
+  <span class="hljs-attr">"editor.formatOnSave"</span>: <span class="hljs-literal">true</span>,
+  <span class="hljs-attr">"python.formatting.provider"</span>: <span class="hljs-string">"yapf"</span>,
+  <span class="hljs-attr">"python.linting.enabled"</span>: <span class="hljs-literal">true</span>,
+  <span class="hljs-attr">"python.linting.lintOnSave"</span>: <span class="hljs-literal">true</span>,
+  <span class="hljs-attr">"clang-format.language.cpp.style"</span>: <span class="hljs-string">"google"</span>,
+  <span class="hljs-attr">"python.formatting.yapfArgs"</span>: [<span class="hljs-string">"--style"</span>, <span class="hljs-string">"{based_on_style: google}"</span>]
+}
+</code></pre>
+<p>根据您的操作系统,用户设置文件位于以下位置:</p>
+<ol>
+<li>Windows %APPDATA%\Code\User\settings.json</li>
+<li>macOS &quot;$HOME/Library/Application Support/Code/User/settings.json&quot;</li>
+<li>Linux &quot;$HOME/.config/Code/User/settings.json&quot;</li>
+</ol>
+<p>配置是在相应的配置文件中指定的。而这些工具会自动查找项目根目录下的配置文件,比如<code>.pylintrc</code>。</p>
+<h4><a class="anchor" aria-hidden="true" id="安装必要工具"></a><a href="#安装必要工具" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>最理想的情况是所有贡献者都使用相同版本的代码格式化工具(clang-format 9.0.0和yapf 0.29.0),这样在不同PR中的代码格式化就会完全相同,从而摆脱github pull request冲突。</p>
+<p>首先,安装LLVM 9.0,它提供了clang-format 9.0.0版本,LLVM的下载页面如下:</p>
+<ul>
+<li><p><a href="http://releases.llvm.org/download.html#9.0.0">LLVM</a></p>
+<ul>
+<li><p>Ubuntu系统:</p>
+<pre><code class="hljs css language-sh">sudo apt-get install clang-format-9
+</code></pre></li>
+<li><p>Windows系统,下载预编译包并安装。</p></li>
+</ul></li>
+</ul>
+<p>然后,安装cpplint, pylint和yapf</p>
+<ul>
+<li><p>Ubuntu或OSX:</p>
+<pre><code class="hljs"><span class="hljs-meta">$</span><span class="bash"> sudo pip install cpplint</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">which</span> cpplint</span>
+/path/to/cpplint
+<span class="hljs-meta">
+$</span><span class="bash"> pip install yapf==0.29.0</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pylint</span>
+</code></pre></li>
+<li><p>Windows: 安装Anaconda进行包管理</p>
+<pre><code class="hljs">$ pip <span class="hljs-keyword">install</span> cpplint
+$ <span class="hljs-keyword">where</span> cpplint
+C:/<span class="hljs-keyword">path</span>/<span class="hljs-keyword">to</span>/cpplint.exe
+
+$ pip <span class="hljs-keyword">install</span> yapf==<span class="hljs-number">0.29</span><span class="hljs-number">.0</span>
+$ pip <span class="hljs-keyword">install</span> pylint
+</code></pre></li>
+</ul>
+<h4><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<ul>
+<li>配置后,在编辑源代码文件时,linting会自动启用。错误和警告会在Visual Studio Code <code>PROBLEMS</code>面板中列出。</li>
+<li>代码格式化可以通过调出Command Palette(Windows中为<code>Shift+Ctrl+P</code>,OS X中为<code>Shift+Command+P</code>)并输入<code>Format Document</code>来完成。</li>
+</ul>
+<h4><a class="anchor" aria-hidden="true" id="提交"></a><a href="#提交" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>修正格式错误以后就可以提交pull request了。</p>
+<h2><a class="anchor" aria-hidden="true" id="开发环境"></a><a href="#开发环境" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>推荐使用Visual Studio Code作为编辑器。可以安装Python、C/C++、代码拼写检查器、autoDocstring、vim、远程开发等扩展。这些扩展的参考配置(即<code>settings.json</code>)可以在<a href="https://gist.github.com/nudles/3d23cfb6ffb30ca7636c45fe60278c55">这里</a>查看。</p>
+<p>如果更新CPP代码,需要从<a href="/docs/3.1.0_Chinese/build">源文件</a>重新编译SINGA。建议使用<code>*-devel Docker</code>镜像中的原生构建工具或使用<code>conda build</code>。</p>
+<p>如果要只更新Python代码,您可以安装一次SINGA,然后复制更新后的Python文件来替换Python安装文件夹中的文件。</p>
+<pre><code class="hljs css language-shell">cp python/singa/xx.py  &lt;path to conda&gt;/lib/python3.7/site-packages/singa/
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="工作流程"></a><a href="#工作流程" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>请参阅<a href="/docs/3.1.0_Chinese/git-workflow">git工作流程页面</a>.</p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/build"><span class="arrow-prev">← </span><span>Build SINGA from Source</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/contribute-docs"><span>How to Contribute to Documentation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.1.0_Chinese/contribute-code/index.html b/content/docs/3.1.0_Chinese/contribute-code/index.html
new file mode 100644
index 0000000..b542624
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/contribute-code/index.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to Contribute Code · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding cop [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/contribute-code.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">How to Contribute Code</h1></header><article><div><span><!-- Licensed to the Apache Software Foundation (ASF) under one or more  [...]
+<h2><a class="anchor" aria-hidden="true" id="代码风格"></a><a href="#代码风格" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>SINGA代码库在<a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml">CPP</a>和<a href="http://google.github.io/styleguide/pyguide.html">Python</a>代码中都遵循Google风格。</p>
+<p>强制执行Google编码风格的一个简单方法是使用Visual Studio Code编辑器中的linting和格式化工具:</p>
+<ul>
+<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools">C/C++扩展</a></li>
+<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.python">Python扩展</a></li>
+<li><a href="https://marketplace.visualstudio.com/items?itemName=mine.cpplint">cpplint扩展</a></li>
+<li><a href="https://marketplace.visualstudio.com/items?itemName=xaver.clang-format">Clang-Format</a></li>
+</ul>
+<p>安装扩展后,编辑<code>settings.json</code>文件:</p>
+<pre><code class="hljs css language-json">{
+  <span class="hljs-attr">"[cpp]"</span>: {
+    <span class="hljs-attr">"editor.defaultFormatter"</span>: <span class="hljs-string">"xaver.clang-format"</span>
+  },
+  <span class="hljs-attr">"cpplint.cpplintPath"</span>: <span class="hljs-string">"path/to/cpplint"</span>,
+
+  <span class="hljs-attr">"editor.formatOnSave"</span>: <span class="hljs-literal">true</span>,
+  <span class="hljs-attr">"python.formatting.provider"</span>: <span class="hljs-string">"yapf"</span>,
+  <span class="hljs-attr">"python.linting.enabled"</span>: <span class="hljs-literal">true</span>,
+  <span class="hljs-attr">"python.linting.lintOnSave"</span>: <span class="hljs-literal">true</span>,
+  <span class="hljs-attr">"clang-format.language.cpp.style"</span>: <span class="hljs-string">"google"</span>,
+  <span class="hljs-attr">"python.formatting.yapfArgs"</span>: [<span class="hljs-string">"--style"</span>, <span class="hljs-string">"{based_on_style: google}"</span>]
+}
+</code></pre>
+<p>根据您的操作系统,用户设置文件位于以下位置:</p>
+<ol>
+<li>Windows %APPDATA%\Code\User\settings.json</li>
+<li>macOS &quot;$HOME/Library/Application Support/Code/User/settings.json&quot;</li>
+<li>Linux &quot;$HOME/.config/Code/User/settings.json&quot;</li>
+</ol>
+<p>配置是在相应的配置文件中指定的。而这些工具会自动查找项目根目录下的配置文件,比如<code>.pylintrc</code>。</p>
+<h4><a class="anchor" aria-hidden="true" id="安装必要工具"></a><a href="#安装必要工具" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>最理想的情况是所有贡献者都使用相同版本的代码格式化工具(clang-format 9.0.0和yapf 0.29.0),这样在不同PR中的代码格式化就会完全相同,从而摆脱github pull request冲突。</p>
+<p>首先,安装LLVM 9.0,它提供了clang-format 9.0.0版本,LLVM的下载页面如下:</p>
+<ul>
+<li><p><a href="http://releases.llvm.org/download.html#9.0.0">LLVM</a></p>
+<ul>
+<li><p>Ubuntu系统:</p>
+<pre><code class="hljs css language-sh">sudo apt-get install clang-format-9
+</code></pre></li>
+<li><p>Windows系统,下载预编译包并安装。</p></li>
+</ul></li>
+</ul>
+<p>然后,安装cpplint, pylint和yapf</p>
+<ul>
+<li><p>Ubuntu或OSX:</p>
+<pre><code class="hljs"><span class="hljs-meta">$</span><span class="bash"> sudo pip install cpplint</span>
+<span class="hljs-meta">$</span><span class="bash"> <span class="hljs-built_in">which</span> cpplint</span>
+/path/to/cpplint
+<span class="hljs-meta">
+$</span><span class="bash"> pip install yapf==0.29.0</span>
+<span class="hljs-meta">$</span><span class="bash"> pip install pylint</span>
+</code></pre></li>
+<li><p>Windows: 安装Anaconda进行包管理</p>
+<pre><code class="hljs">$ pip <span class="hljs-keyword">install</span> cpplint
+$ <span class="hljs-keyword">where</span> cpplint
+C:/<span class="hljs-keyword">path</span>/<span class="hljs-keyword">to</span>/cpplint.exe
+
+$ pip <span class="hljs-keyword">install</span> yapf==<span class="hljs-number">0.29</span><span class="hljs-number">.0</span>
+$ pip <span class="hljs-keyword">install</span> pylint
+</code></pre></li>
+</ul>
+<h4><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<ul>
+<li>配置后,在编辑源代码文件时,linting会自动启用。错误和警告会在Visual Studio Code <code>PROBLEMS</code>面板中列出。</li>
+<li>代码格式化可以通过调出Command Palette(Windows中为<code>Shift+Ctrl+P</code>,OS X中为<code>Shift+Command+P</code>)并输入<code>Format Document</code>来完成。</li>
+</ul>
+<h4><a class="anchor" aria-hidden="true" id="提交"></a><a href="#提交" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>修正格式错误以后就可以提交pull request了。</p>
+<h2><a class="anchor" aria-hidden="true" id="开发环境"></a><a href="#开发环境" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>推荐使用Visual Studio Code作为编辑器。可以安装Python、C/C++、代码拼写检查器、autoDocstring、vim、远程开发等扩展。这些扩展的参考配置(即<code>settings.json</code>)可以在<a href="https://gist.github.com/nudles/3d23cfb6ffb30ca7636c45fe60278c55">这里</a>查看。</p>
+<p>如果更新CPP代码,需要从<a href="/docs/3.1.0_Chinese/build">源文件</a>重新编译SINGA。建议使用<code>*-devel Docker</code>镜像中的原生构建工具或使用<code>conda build</code>。</p>
+<p>如果要只更新Python代码,您可以安装一次SINGA,然后复制更新后的Python文件来替换Python安装文件夹中的文件。</p>
+<pre><code class="hljs css language-shell">cp python/singa/xx.py  &lt;path to conda&gt;/lib/python3.7/site-packages/singa/
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="工作流程"></a><a href="#工作流程" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>请参阅<a href="/docs/3.1.0_Chinese/git-workflow">git工作流程页面</a>.</p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/build"><span class="arrow-prev">← </span><span>Build SINGA from Source</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/contribute-docs"><span>How to Contribute to Documentation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/next/contribute-docs.html b/content/docs/3.1.0_Chinese/contribute-docs.html
similarity index 50%
copy from content/docs/next/contribute-docs.html
copy to content/docs/3.1.0_Chinese/contribute-docs.html
index 684d976..ac28598 100644
--- a/content/docs/next/contribute-docs.html
+++ b/content/docs/3.1.0_Chinese/contribute-docs.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to Contribute to Documentation · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information r [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to Contribute to Documentation · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information r [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>next</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-interna [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -61,62 +61,40 @@
               }
             });
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/contribute-docs.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">How to Contribute to Documentation</h1></header><article><div><span><!-- Licensed to the Apache Software Foundation (ASF) under  [...]
-<p>There are two types of documentation, namely markdown files and API usage
-reference. This guideline introduces some tools and instruction in preparing the
-source markdown files and API comments.</p>
-<p>The markdown files will be built into HTML pages via
-<a href="https://docusaurus.io/">Docusaurus</a>; The API comments (from the source code)
-will be used to generate API reference pages using Sphinx (for Python) and
-Doxygen (for CPP).</p>
-<h2><a class="anchor" aria-hidden="true" id="markdown-files"></a><a href="#markdown-files" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>Try to follow the
-<a href="https://developers.google.com/style">Google Documentation style</a>. For example,</p>
+<p>文档有两种类型,即markdown文件和API使用参考。本指南介绍了一些工具,并指导如何准备md文件和API注释。</p>
+<p>md文件将通过<a href="https://docusaurus.io/">Docusaurus</a>构建成HTML页面;API注释(来自源代码)将用于使用Sphinx(对应Python)和Doxygen(对应CPP)生成API参考页面。</p>
+<h2><a class="anchor" aria-hidden="true" id="markdown文件"></a><a href="#markdown文件" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>请尽量遵循<a href="https://developers.google.com/style">Google Documentation style</a>。例如:</p>
 <ol>
-<li>Remove 'please' from an instruction. 'Please click...' VS 'Click ...'.</li>
-<li>Follow the
-<a href="https://owl.purdue.edu/owl/general_writing/mechanics/help_with_capitals.html">standard captitalization rules</a>.</li>
-<li>Use 'you' instead of 'we' in the instructions.</li>
-<li>Use present tense and avoid 'will'</li>
-<li>Prefer active voice than passive voice.</li>
+<li>删除指令中的&quot;please&quot;。如:'Please click...' VS 'Click...'。</li>
+<li>遵循标准的<a href="https://owl.purdue.edu/owl/general_writing/mechanics/help_with_capitals.html">大小写规则</a>。</li>
+<li>在说明中用&quot;you&quot;代替&quot;we&quot;。</li>
+<li>使用现在时态,避免使用<code>will</code>。</li>
+<li>尽量使用主动语态而不是被动。</li>
 </ol>
-<p>In addition, to make the documentation consistent,</p>
+<p>此外,为了使文件一致:</p>
 <ol>
-<li>Keep the line short, e.g., length&lt;=80</li>
-<li>Use the relative path assuming that we are in the root folder of the repo,
-e.g., <code>doc-site/docs</code> refers to <code>singa-doc/docs-site/docs</code></li>
-<li>Higlight the command, path, class function and variable using backticks,
-e.g., <code>Tensor</code>, <code>singa-doc/docs-site/docs</code>.</li>
-<li>To hightlight other terms/concepts, use <em>graph</em> or <strong>graph</strong></li>
+<li>句子不宜过长, e.g., 长度&lt;=80</li>
+<li>尽量使用相对路径,假设我们在repo的根目录下,例如,<code>doc-site/docs</code>指的是<code>singa-doc/docs-site/docs</code>。</li>
+<li>使用背标将命令、路径、类函数和变量亮出来,例如,<code>Tensor</code>, <code>singa-doc/docs-site/docs</code>。</li>
+<li>为了突出其他术语/概念,使用 <em>斜体</em> or <strong>加粗</strong></li>
 </ol>
-<p>The <a href="https://prettier.io/">prettier tool</a> used by this project will auto-format
-the code according to the
-<a href="https://github.com/apache/singa-doc/blob/master/docs-site/.prettierrc">configuration</a>
-when we do <code>git commit</code>. For example, it will wrap the text in the markdown file
-to at most 80 characters (except the lines for comments).</p>
-<p>When introducing a concept (e.g., the <code>Tensor</code> class), provide the overview (the
-purpose and relation to other concepts), APIs and examples. Google colab can be
-used to demonstrate the usage.</p>
-<p>Refer to <a href="https://github.com/apache/singa-doc/tree/master/docs-site">this page</a>
-for the details on how to edit the markdown files and build the website.</p>
+<p>本项目使用的<a href="https://prettier.io/">prettier tool</a>会在我们进行git提交时,根据<a href="https://github.com/apache/singa-doc/blob/master/docs-site/.prettierrc">配置</a>自动格式化代码。例如,它会将markdown文件中的文本最多折叠成80个字符(注释行除外)。</p>
+<p>在介绍一个概念(如<code>Tensor</code>类)时,要提供概述(目的和与其他概念的关系)、API和例子,还可以用Google colab来演示其用法。</p>
+<p>详细的编辑md文件和建立网站的方法请参考<a href="https://github.com/apache/singa-doc/tree/master/docs-site">本页面</a>。</p>
 <h2><a class="anchor" aria-hidden="true" id="api-references"></a><a href="#api-references" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <h3><a class="anchor" aria-hidden="true" id="cpp-api"></a><a href="#cpp-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>Follow the
-<a href="https://google.github.io/styleguide/cppguide.html#Comments">Google CPP Comments Style</a>.</p>
-<p>To generate docs, run &quot;doxygen&quot; from the doc folder (Doxygen &gt;= 1.8 recommended)</p>
+<p>请遵循<a href="https://google.github.io/styleguide/cppguide.html#Comments">Google CPP注释风格</a>.</p>
+<p>要生成文档,请从doc文件夹中运行 &quot;doxygen&quot;(推荐使用Doxygen &gt;= 1.8)。</p>
 <h3><a class="anchor" aria-hidden="true" id="python-api"></a><a href="#python-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>Follow the
-<a href="http://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings">Google Python DocString Style</a>.</p>
+<p>请遵循<a href="http://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings">Google Python DocString风格</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="visual-studio-code-vscode"></a><a href="#visual-studio-code-vscode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>If you use vscode as the editor, the following plugins are useful.</p>
+<p>如果你使用vscode作为编辑器,我们推荐使用以下插件。</p>
 <h3><a class="anchor" aria-hidden="true" id="docstring-snippet"></a><a href="#docstring-snippet" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p><a href="https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring">autoDocstring</a>
-generates the docstring of functions, classes, etc. Choose the DocString Format
-to <code>google</code>.</p>
+<p><a href="https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring">autoDocstring</a>生成函数、类等的docstring,要注意选择使用<code>google</code>的docString格式。</p>
 <h3><a class="anchor" aria-hidden="true" id="spell-check"></a><a href="#spell-check" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p><a href="https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker">Code Spell Checker</a>
-can be configured to check the comments of the code, or .md and .rst files.</p>
-<p>To do spell check only for comments of Python code, add the following snippet
-via <code>File - Preferences - User Snippets - python.json</code></p>
+<p><a href="https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker">Code Spell Checker</a>可以用来检查代码的注释,或<code>.md</code>和<code>.rst</code>文件。</p>
+<p>要只对Python代码的注释进行拼写检查,可以在<code>File - Preferences - User Snippets - python.json</code>中添加以下代码段:</p>
 <pre><code class="hljs">&quot;cspell check&quot; : {
 &quot;prefix&quot;: &quot;cspell&quot;,
 &quot;body&quot;: [
@@ -128,8 +106,7 @@ via <code>File - Preferences - User Snippets - python.json</code></p>
 &quot;description&quot;: &quot;# spell check only for python comments&quot;
 }
 </code></pre>
-<p>To do spell check only for comments of Cpp code, add the following snippet via
-<code>File - Preferences - User Snippets - cpp.json</code></p>
+<p>如果要只对Cpp代码的注释进行拼写检查,可以在<code>File - Preferences - User Snippets - cpp.json</code>中添加以下代码段:</p>
 <pre><code class="hljs">&quot;cspell check&quot; : {
 &quot;prefix&quot;: &quot;cspell&quot;,
 &quot;body&quot;: [
@@ -139,7 +116,7 @@ via <code>File - Preferences - User Snippets - python.json</code></p>
 &quot;description&quot;: &quot;# spell check only for cpp comments&quot;
 }
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/next/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/next/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#markdown-files">Mar [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href=" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/next/contribute-docs/index.html b/content/docs/3.1.0_Chinese/contribute-docs/index.html
similarity index 50%
copy from content/docs/next/contribute-docs/index.html
copy to content/docs/3.1.0_Chinese/contribute-docs/index.html
index 684d976..ac28598 100644
--- a/content/docs/next/contribute-docs/index.html
+++ b/content/docs/3.1.0_Chinese/contribute-docs/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to Contribute to Documentation · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information r [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to Contribute to Documentation · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information r [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>next</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-interna [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -61,62 +61,40 @@
               }
             });
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/contribute-docs.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">How to Contribute to Documentation</h1></header><article><div><span><!-- Licensed to the Apache Software Foundation (ASF) under  [...]
-<p>There are two types of documentation, namely markdown files and API usage
-reference. This guideline introduces some tools and instruction in preparing the
-source markdown files and API comments.</p>
-<p>The markdown files will be built into HTML pages via
-<a href="https://docusaurus.io/">Docusaurus</a>; The API comments (from the source code)
-will be used to generate API reference pages using Sphinx (for Python) and
-Doxygen (for CPP).</p>
-<h2><a class="anchor" aria-hidden="true" id="markdown-files"></a><a href="#markdown-files" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>Try to follow the
-<a href="https://developers.google.com/style">Google Documentation style</a>. For example,</p>
+<p>文档有两种类型,即markdown文件和API使用参考。本指南介绍了一些工具,并指导如何准备md文件和API注释。</p>
+<p>md文件将通过<a href="https://docusaurus.io/">Docusaurus</a>构建成HTML页面;API注释(来自源代码)将用于使用Sphinx(对应Python)和Doxygen(对应CPP)生成API参考页面。</p>
+<h2><a class="anchor" aria-hidden="true" id="markdown文件"></a><a href="#markdown文件" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>请尽量遵循<a href="https://developers.google.com/style">Google Documentation style</a>。例如:</p>
 <ol>
-<li>Remove 'please' from an instruction. 'Please click...' VS 'Click ...'.</li>
-<li>Follow the
-<a href="https://owl.purdue.edu/owl/general_writing/mechanics/help_with_capitals.html">standard captitalization rules</a>.</li>
-<li>Use 'you' instead of 'we' in the instructions.</li>
-<li>Use present tense and avoid 'will'</li>
-<li>Prefer active voice than passive voice.</li>
+<li>删除指令中的&quot;please&quot;。如:'Please click...' VS 'Click...'。</li>
+<li>遵循标准的<a href="https://owl.purdue.edu/owl/general_writing/mechanics/help_with_capitals.html">大小写规则</a>。</li>
+<li>在说明中用&quot;you&quot;代替&quot;we&quot;。</li>
+<li>使用现在时态,避免使用<code>will</code>。</li>
+<li>尽量使用主动语态而不是被动。</li>
 </ol>
-<p>In addition, to make the documentation consistent,</p>
+<p>此外,为了使文件一致:</p>
 <ol>
-<li>Keep the line short, e.g., length&lt;=80</li>
-<li>Use the relative path assuming that we are in the root folder of the repo,
-e.g., <code>doc-site/docs</code> refers to <code>singa-doc/docs-site/docs</code></li>
-<li>Higlight the command, path, class function and variable using backticks,
-e.g., <code>Tensor</code>, <code>singa-doc/docs-site/docs</code>.</li>
-<li>To hightlight other terms/concepts, use <em>graph</em> or <strong>graph</strong></li>
+<li>句子不宜过长, e.g., 长度&lt;=80</li>
+<li>尽量使用相对路径,假设我们在repo的根目录下,例如,<code>doc-site/docs</code>指的是<code>singa-doc/docs-site/docs</code>。</li>
+<li>使用背标将命令、路径、类函数和变量亮出来,例如,<code>Tensor</code>, <code>singa-doc/docs-site/docs</code>。</li>
+<li>为了突出其他术语/概念,使用 <em>斜体</em> or <strong>加粗</strong></li>
 </ol>
-<p>The <a href="https://prettier.io/">prettier tool</a> used by this project will auto-format
-the code according to the
-<a href="https://github.com/apache/singa-doc/blob/master/docs-site/.prettierrc">configuration</a>
-when we do <code>git commit</code>. For example, it will wrap the text in the markdown file
-to at most 80 characters (except the lines for comments).</p>
-<p>When introducing a concept (e.g., the <code>Tensor</code> class), provide the overview (the
-purpose and relation to other concepts), APIs and examples. Google colab can be
-used to demonstrate the usage.</p>
-<p>Refer to <a href="https://github.com/apache/singa-doc/tree/master/docs-site">this page</a>
-for the details on how to edit the markdown files and build the website.</p>
+<p>本项目使用的<a href="https://prettier.io/">prettier tool</a>会在我们进行git提交时,根据<a href="https://github.com/apache/singa-doc/blob/master/docs-site/.prettierrc">配置</a>自动格式化代码。例如,它会将markdown文件中的文本最多折叠成80个字符(注释行除外)。</p>
+<p>在介绍一个概念(如<code>Tensor</code>类)时,要提供概述(目的和与其他概念的关系)、API和例子,还可以用Google colab来演示其用法。</p>
+<p>详细的编辑md文件和建立网站的方法请参考<a href="https://github.com/apache/singa-doc/tree/master/docs-site">本页面</a>。</p>
 <h2><a class="anchor" aria-hidden="true" id="api-references"></a><a href="#api-references" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <h3><a class="anchor" aria-hidden="true" id="cpp-api"></a><a href="#cpp-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>Follow the
-<a href="https://google.github.io/styleguide/cppguide.html#Comments">Google CPP Comments Style</a>.</p>
-<p>To generate docs, run &quot;doxygen&quot; from the doc folder (Doxygen &gt;= 1.8 recommended)</p>
+<p>请遵循<a href="https://google.github.io/styleguide/cppguide.html#Comments">Google CPP注释风格</a>.</p>
+<p>要生成文档,请从doc文件夹中运行 &quot;doxygen&quot;(推荐使用Doxygen &gt;= 1.8)。</p>
 <h3><a class="anchor" aria-hidden="true" id="python-api"></a><a href="#python-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>Follow the
-<a href="http://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings">Google Python DocString Style</a>.</p>
+<p>请遵循<a href="http://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings">Google Python DocString风格</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="visual-studio-code-vscode"></a><a href="#visual-studio-code-vscode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>If you use vscode as the editor, the following plugins are useful.</p>
+<p>如果你使用vscode作为编辑器,我们推荐使用以下插件。</p>
 <h3><a class="anchor" aria-hidden="true" id="docstring-snippet"></a><a href="#docstring-snippet" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p><a href="https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring">autoDocstring</a>
-generates the docstring of functions, classes, etc. Choose the DocString Format
-to <code>google</code>.</p>
+<p><a href="https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring">autoDocstring</a>生成函数、类等的docstring,要注意选择使用<code>google</code>的docString格式。</p>
 <h3><a class="anchor" aria-hidden="true" id="spell-check"></a><a href="#spell-check" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p><a href="https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker">Code Spell Checker</a>
-can be configured to check the comments of the code, or .md and .rst files.</p>
-<p>To do spell check only for comments of Python code, add the following snippet
-via <code>File - Preferences - User Snippets - python.json</code></p>
+<p><a href="https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker">Code Spell Checker</a>可以用来检查代码的注释,或<code>.md</code>和<code>.rst</code>文件。</p>
+<p>要只对Python代码的注释进行拼写检查,可以在<code>File - Preferences - User Snippets - python.json</code>中添加以下代码段:</p>
 <pre><code class="hljs">&quot;cspell check&quot; : {
 &quot;prefix&quot;: &quot;cspell&quot;,
 &quot;body&quot;: [
@@ -128,8 +106,7 @@ via <code>File - Preferences - User Snippets - python.json</code></p>
 &quot;description&quot;: &quot;# spell check only for python comments&quot;
 }
 </code></pre>
-<p>To do spell check only for comments of Cpp code, add the following snippet via
-<code>File - Preferences - User Snippets - cpp.json</code></p>
+<p>如果要只对Cpp代码的注释进行拼写检查,可以在<code>File - Preferences - User Snippets - cpp.json</code>中添加以下代码段:</p>
 <pre><code class="hljs">&quot;cspell check&quot; : {
 &quot;prefix&quot;: &quot;cspell&quot;,
 &quot;body&quot;: [
@@ -139,7 +116,7 @@ via <code>File - Preferences - User Snippets - python.json</code></p>
 &quot;description&quot;: &quot;# spell check only for cpp comments&quot;
 }
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/2/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/next/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/next/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#markdown-files">Mar [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/contribute-code"><span class="arrow-prev">← </span><span>How to Contribute Code</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/how-to-release"><span>How to Prepare a Release</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href=" [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/device.html b/content/docs/3.1.0_Chinese/device.html
similarity index 54%
copy from content/docs/3.0.0.rc1/device.html
copy to content/docs/3.1.0_Chinese/device.html
index 9250cc5..b13f08e 100644
--- a/content/docs/3.0.0.rc1/device.html
+++ b/content/docs/3.1.0_Chinese/device.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Device · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownershi [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Device · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownershi [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -61,27 +61,23 @@
               }
             });
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/device.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Device</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agre [...]
-<p>The Device abstract represents a hardware device with memory and computing
-units. All <a href="./tensor">Tensor operations</a> are scheduled by the resident device
-for execution. Tensor memory is also managed by the device's memory manager.
-Therefore, optimization of memory and execution are implemented in the Device
-class.</p>
-<h2><a class="anchor" aria-hidden="true" id="specific-devices"></a><a href="#specific-devices" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>Currently, SINGA has three Device implmentations,</p>
+<p>Device代表一个有内存和计算单元的硬件设备。所有的<a href="./tensor">Tensor操作</a>都由常驻设备安排执行的,Tensor内存也由设备的内存管理器管理。因此,需要在Device类中实现内存和执行的优化。</p>
+<h2><a class="anchor" aria-hidden="true" id="特定设备"></a><a href="#特定设备" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>目前,SINGA支持三种设备:</p>
 <ol>
-<li>CudaGPU for an Nvidia GPU card which runs Cuda code</li>
-<li>CppCPU for a CPU which runs Cpp code</li>
-<li>OpenclGPU for a GPU card which runs OpenCL code</li>
+<li>CudaGPU:用于运行Cuda代码的Nvidia GPU。</li>
+<li>CppCPU:用于运行Cpp代码的CPU。</li>
+<li>OpenclGPU:用于运行OpenCL代码的GPU卡。</li>
 </ol>
-<h2><a class="anchor" aria-hidden="true" id="example-usage"></a><a href="#example-usage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>The following code provides examples of creating devices:</p>
+<h2><a class="anchor" aria-hidden="true" id="用法示例"></a><a href="#用法示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>下面的代码提供了创建设备的例子:</p>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> device
 cuda = device.create_cuda_gpu_on(<span class="hljs-number">0</span>)  <span class="hljs-comment"># use GPU card of ID 0</span>
 host = device.get_default_device()  <span class="hljs-comment"># get the default host device (a CppCPU)</span>
 ary1 = device.create_cuda_gpus(<span class="hljs-number">2</span>)  <span class="hljs-comment"># create 2 devices, starting from ID 0</span>
 ary2 = device.create_cuda_gpus([<span class="hljs-number">0</span>,<span class="hljs-number">2</span>])  <span class="hljs-comment"># create 2 devices on ID 0 and 2</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#specific-devices">Specific devices</a></li><li><a href=" [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#特定设备">特定设备</a></li><li><a href="#用法示例">用法示例</a [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.0.0.rc1/device/index.html b/content/docs/3.1.0_Chinese/device/index.html
similarity index 54%
copy from content/docs/3.0.0.rc1/device/index.html
copy to content/docs/3.1.0_Chinese/device/index.html
index 9250cc5..b13f08e 100644
--- a/content/docs/3.0.0.rc1/device/index.html
+++ b/content/docs/3.1.0_Chinese/device/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Device · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownershi [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Device · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownershi [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-in [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -61,27 +61,23 @@
               }
             });
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/device.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Device</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agre [...]
-<p>The Device abstract represents a hardware device with memory and computing
-units. All <a href="./tensor">Tensor operations</a> are scheduled by the resident device
-for execution. Tensor memory is also managed by the device's memory manager.
-Therefore, optimization of memory and execution are implemented in the Device
-class.</p>
-<h2><a class="anchor" aria-hidden="true" id="specific-devices"></a><a href="#specific-devices" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>Currently, SINGA has three Device implmentations,</p>
+<p>Device代表一个有内存和计算单元的硬件设备。所有的<a href="./tensor">Tensor操作</a>都由常驻设备安排执行的,Tensor内存也由设备的内存管理器管理。因此,需要在Device类中实现内存和执行的优化。</p>
+<h2><a class="anchor" aria-hidden="true" id="特定设备"></a><a href="#特定设备" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>目前,SINGA支持三种设备:</p>
 <ol>
-<li>CudaGPU for an Nvidia GPU card which runs Cuda code</li>
-<li>CppCPU for a CPU which runs Cpp code</li>
-<li>OpenclGPU for a GPU card which runs OpenCL code</li>
+<li>CudaGPU:用于运行Cuda代码的Nvidia GPU。</li>
+<li>CppCPU:用于运行Cpp代码的CPU。</li>
+<li>OpenclGPU:用于运行OpenCL代码的GPU卡。</li>
 </ol>
-<h2><a class="anchor" aria-hidden="true" id="example-usage"></a><a href="#example-usage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>The following code provides examples of creating devices:</p>
+<h2><a class="anchor" aria-hidden="true" id="用法示例"></a><a href="#用法示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>下面的代码提供了创建设备的例子:</p>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">from</span> singa <span class="hljs-keyword">import</span> device
 cuda = device.create_cuda_gpu_on(<span class="hljs-number">0</span>)  <span class="hljs-comment"># use GPU card of ID 0</span>
 host = device.get_default_device()  <span class="hljs-comment"># get the default host device (a CppCPU)</span>
 ary1 = device.create_cuda_gpus(<span class="hljs-number">2</span>)  <span class="hljs-comment"># create 2 devices, starting from ID 0</span>
 ary2 = device.create_cuda_gpus([<span class="hljs-number">0</span>,<span class="hljs-number">2</span>])  <span class="hljs-comment"># create 2 devices on ID 0 and 2</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 4/9/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.0.0.rc1/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.0.0.rc1/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#specific-devices">Specific devices</a></li><li><a href=" [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/04/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/examples"><span class="arrow-prev">← </span><span>Examples</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/tensor"><span>Tensor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#特定设备">特定设备</a></li><li><a href="#用法示例">用法示例</a [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/dist-train.html b/content/docs/3.1.0_Chinese/dist-train.html
similarity index 50%
copy from content/docs/dist-train.html
copy to content/docs/3.1.0_Chinese/dist-train.html
index 56bff2b..3843555 100644
--- a/content/docs/dist-train.html
+++ b/content/docs/3.1.0_Chinese/dist-train.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Distributed Training · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copy [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Distributed Training · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copy [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -61,34 +61,16 @@
               }
             });
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/dist-train.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Distributed Training</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contri [...]
-<p>SINGA supports data parallel training across multiple GPUs (on a single node or
-across different nodes). The following figure illustrates the data parallel
-training:</p>
+<p>SINGA支持跨多个GPU的数据并行训练(在单个节点上或跨不同节点)。下图说明了数据并行训练的情况:</p>
 <p><img src="/docs/assets/MPI.png" alt="MPI.png"></p>
-<p>In distributed training, each process (called a worker) runs a training script
-over a single GPU. Each process has an individual communication rank. The
-training data is partitioned among the workers and the model is replicated on
-every worker. In each iteration, the workers read a mini-batch of data (e.g.,
-256 images) from its partition and run the BackPropagation algorithm to compute
-the gradients of the weights, which are averaged via all-reduce (provided by
-<a href="https://developer.nvidia.com/nccl">NCCL</a>) for weight update following
-stochastic gradient descent algorithms (SGD).</p>
-<p>The all-reduce operation by NCCL can be used to reduce and synchronize the
-gradients from different GPUs. Let's consider the training with 4 GPUs as shown
-below. Once the gradients from the 4 GPUs are calculated, all-reduce will return
-the sum of the gradients over the GPUs and make it available on every GPU. Then
-the averaged gradients can be easily calculated.</p>
+<p>在分布式训练中,每个进程(称为worker)在单个GPU上运行一个训练脚本,每个进程都有一个单独的通信等级,训练数据被分发给各个worker,模型在每个worker上被复制。在每次迭代中,worker从其分区中读取数据的一个mini-batch(例如,256张图像),并运行BackPropagation算法来计算权重的梯度,通过all-reduce(由<a href="https://developer.nvidia.com/nccl">NCCL</a>提供)进行平均,按照随机梯度下降算法(SGD)进行权重更新。</p>
+<p>NCCL的all-reduce操作可以用来减少和同步不同GPU的梯度。假设我们使用4个GPU进行训练,如下图所示。一旦计算出4个GPU的梯度,all-reduce将返回GPU的梯度之和,并使其在每个GPU上可用,然后就可以轻松计算出平均梯度。</p>
 <p><img src="/docs/assets/AllReduce.png" alt="AllReduce.png"></p>
-<h2><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
-<p>SINGA implements a module called <code>DistOpt</code> (a subclass of <code>Opt</code>) for distributed
-training. It wraps a normal SGD optimizer and calls <code>Communicator</code> for gradients
-synchronization. The following example illustrates the usage of <code>DistOpt</code> for
-training a CNN model over the MNIST dataset. The source code is available
-<a href="https://github.com/apache/singa/blob/master/examples/cnn/">here</a>, and there is
-a <a href="">Colab notebook</a> for it.</p>
-<h3><a class="anchor" aria-hidden="true" id="example-code"></a><a href="#example-code" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>SINGA提供了一个名为<code>DistOpt</code>(<code>Opt</code>的一个子类)的模块,用于分布式训练。它封装了一个普通的SGD优化器,并调用<code>Communicator</code>进行梯度同步。下面的例子说明了如何使用<code>DistOpt</code>在MNIST数据集上训练一个CNN模型。源代码在<a href="https://github.com/apache/singa/blob/master/examples/cnn/">这里</a>,或者可以使用<a href="">Colab notebook</a>。</p>
+<h3><a class="anchor" aria-hidden="true" id="代码示例"></a><a href="#代码示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <ol>
-<li>Define the neural network model:</li>
+<li>定义神经网络模型:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">CNN</span><span class="hljs-params">(model.Model)</span>:</span>
 
@@ -141,30 +123,22 @@ a <a href="">Colab notebook</a> for it.</p>
 model = CNN()
 </code></pre>
 <ol start="2">
-<li>Create the <code>DistOpt</code> instance and attach it to the created model:</li>
+<li>创建<code>DistOpt</code>实例并将其应用到创建的模型上:</li>
 </ol>
 <pre><code class="hljs css language-python">sgd = opt.SGD(lr=<span class="hljs-number">0.005</span>, momentum=<span class="hljs-number">0.9</span>, weight_decay=<span class="hljs-number">1e-5</span>)
 sgd = opt.DistOpt(sgd)
 model.set_optimizer(sgd)
 dev = device.create_cuda_gpu_on(sgd.local_rank)
 </code></pre>
-<p>Here are some explanations concerning some variables in the code:</p>
+<p>下面是关于代码中一些变量的解释:</p>
 <p>(i) <code>dev</code></p>
-<p>dev represents the <code>Device</code> instance, where to load data and run the CNN model.</p>
+<p>dev代表<code>Device</code>实例,在设备中加载数据并运行CNN模型。</p>
 <p>(ii)<code>local_rank</code></p>
-<p>Local rank represents the GPU number the current process is using in the same
-node. For example, if you are using a node with 2 GPUs, <code>local_rank=0</code> means
-that this process is using the first GPU, while <code>local_rank=1</code> means using the
-second GPU. Using MPI or multiprocess, you are able to run the same training
-script which is only different in the value of <code>local_rank</code>.</p>
+<p>Local rank表示当前进程在同一节点中使用的GPU数量。例如,如果你使用的节点有2个GPU,<code>local_rank=0</code>表示这个进程使用的是第一个GPU,而<code>local_rank=1</code>表示使用的是第二个GPU。使用MPI或多进程,你能够运行相同的训练脚本,唯一的区别<code>local_rank</code>的值不同。</p>
 <p>(iii)<code>global_rank</code></p>
-<p>Rank in global represents the global rank considered all the processes in all
-the nodes you are using. Let's consider the case you have 3 nodes and each of
-the node has two GPUs, <code>global_rank=0</code> means the process using the 1st GPU at
-the 1st node, <code>global_rank=2</code> means the process using the 1st GPU of the 2nd
-node, and <code>global_rank=4</code> means the process using the 1st GPU of the 3rd node.</p>
+<p>global中的rank代表了你使用的所有节点中所有进程的全局排名。让我们考虑这样的情况:你有3个节点,每个节点有两个GPU, <code>global_rank=0</code>表示使用第1个节点的第1个GPU的进程, <code>global_rank=2</code>表示使用第2个节点的第1个GPU的进程, <code>global_rank=4</code>表示使用第3个节点的第1个GPU的进程。</p>
 <ol start="3">
-<li>Load and partition the training/validation data:</li>
+<li>加载和分割训练/验证数据:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">data_partition</span><span class="hljs-params">(dataset_x, dataset_y, global_rank, world_size)</span>:</span>
     data_per_rank = dataset_x.shape[<span class="hljs-number">0</span>] // world_size
@@ -178,11 +152,10 @@ train_x, train_y = data_partition(train_x, train_y,
 test_x, test_y = data_partition(test_x, test_y,
                                 sgd.global_rank, sgd.world_size)
 </code></pre>
-<p>A partition of the dataset is returned for this <code>dev</code>.</p>
-<p>Here, <code>world_size</code> represents the total number of processes in all the nodes you
-are using for distributed training.</p>
+<p>这个<code>dev</code>的数据集的一个分区被返回。</p>
+<p>这里,<code>world_size</code>代表你用于分布式训练的所有节点中的进程总数。</p>
 <ol start="4">
-<li>Initialize and synchronize the model parameters among all workers:</li>
+<li>初始化并同步所有worker的模型参数:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-comment">#Synchronize the initial parameter</span>
 tx = tensor.Tensor((batch_size, <span class="hljs-number">1</span>, IMG_SIZE, IMG_SIZE), dev, tensor.float32)
@@ -195,7 +168,7 @@ dev.SetRandSeed(seed)
 np.random.seed(seed)
 </code></pre>
 <ol start="5">
-<li>Run BackPropagation and distributed SGD</li>
+<li>运行BackPropagation和分布式SGD</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> range(max_epoch):
     <span class="hljs-keyword">for</span> b <span class="hljs-keyword">in</span> range(num_train_batch):
@@ -206,18 +179,18 @@ np.random.seed(seed)
         <span class="hljs-comment"># Train the model</span>
         out, loss = model(tx, ty)
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="execution-instruction"></a><a href="#execution-instruction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>There are two ways to launch the training: MPI or Python multiprocessing.</p>
+<h3><a class="anchor" aria-hidden="true" id="执行命令"></a><a href="#执行命令" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>有两种方式可以启动训练,MPI或Python multiprocessing。</p>
 <h4><a class="anchor" aria-hidden="true" id="python-multiprocessing"></a><a href="#python-multiprocessing" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
-<p>It works on a single node with multiple GPUs, where each GPU is one worker.</p>
+<p>它可以在一个节点上使用多个GPU,其中,每个GPU是一个worker。</p>
 <ol>
-<li>Put all the above training codes in a function</li>
+<li>将上述训练用的代码打包进一个函数:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">train_mnist_cnn</span><span class="hljs-params">(nccl_id=None, local_rank=None, world_size=None)</span>:</span>
     ...
 </code></pre>
 <ol start="2">
-<li>Create <code>mnist_multiprocess.py</code></li>
+<li>创建<code>mnist_multiprocess.py</code>。</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
     <span class="hljs-comment"># Generate a NCCL ID to be used for collective communication</span>
@@ -236,29 +209,22 @@ np.random.seed(seed)
     <span class="hljs-keyword">for</span> p <span class="hljs-keyword">in</span> process:
         p.start()
 </code></pre>
-<p>Here are some explanations concerning the variables created above:</p>
+<p>下面是关于上面所创建的变量的一些说明:</p>
 <p>(i) <code>nccl_id</code></p>
-<p>Note that we need to generate a NCCL ID here to be used for collective
-communication, and then pass it to all the processes. The NCCL ID is like a
-ticket, where only the processes with this ID can join the all-reduce operation.
-(Later if we use MPI, the passing of NCCL ID is not necessary, because the ID is
-broadcased by MPI in our code automatically)</p>
+<p>需要注意的是,我们在这里需要生成一个NCCL ID,用于集体通信,然后将其传递给所有进程。NCCL ID就像一个门票,只有拥有这个ID的进程才能加入到all-reduce操作中。(如果我们接下来使用MPI,NCCL ID的传递就没有必要了,因为在我们的代码中,这个ID会由MPI自动广播。)</p>
 <p>(ii) <code>world_size</code></p>
-<p>world_size is the number of GPUs you would like to use for training.</p>
+<p>world_size是您想用于训练的GPU数量。</p>
 <p>(iii) <code>local_rank</code></p>
-<p>local_rank determine the local rank of the distributed training and which gpu is
-used in the process. In the code above, we used a for loop to run the train
-function where the argument local_rank iterates from 0 to world_size. In this
-case, different processes can use different GPUs for training.</p>
-<p>The arguments for creating the <code>DistOpt</code> instance should be updated as follows</p>
+<p>local_rank决定分布式训练的本地顺序,以及在训练过程中使用哪个gpu。在上面的代码中,我们使用for循环来运行训练函数,其中参数local_rank从0迭代到world_size。在这种情况下,不同的进程可以使用不同的GPU进行训练。</p>
+<p>创建<code>DistOpt</code>实例的参数应按照如下方式更新:</p>
 <pre><code class="hljs css language-python">sgd = opt.DistOpt(sgd, nccl_id=nccl_id, local_rank=local_rank, world_size=world_size)
 </code></pre>
 <ol start="3">
-<li>Run <code>mnist_multiprocess.py</code></li>
+<li>运行<code>mnist_multiprocess.py</code>:</li>
 </ol>
 <pre><code class="hljs css language-sh">python mnist_multiprocess.py 2
 </code></pre>
-<p>It results in speed up compared to the single GPU training.</p>
+<p>与单GPU训练相比,它最主要的意义是速度提升:</p>
 <pre><code class="hljs">Starting Epoch <span class="hljs-number">0</span>:
 Training loss = <span class="hljs-number">408.909790</span>, training accuracy = <span class="hljs-number">0.880475</span>
 Evaluation accuracy = <span class="hljs-number">0.956430</span>
@@ -291,26 +257,24 @@ Training loss = <span class="hljs-number">24.039650</span>, training accuracy =
 Evaluation accuracy = <span class="hljs-number">0.989083</span>
 </code></pre>
 <h4><a class="anchor" aria-hidden="true" id="mpi"></a><a href="#mpi" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
-<p>It works for both single node and multiple nodes as long as there are multiple
-GPUs.</p>
+<p>只要有多个GPU,MPI既适用于单节点,也适用于多节点。</p>
 <ol>
-<li>Create <code>mnist_dist.py</code></li>
+<li>创建<code>mnist_dist.py</code>。</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
     train_mnist_cnn()
 </code></pre>
 <ol start="2">
-<li>Generate a hostfile for MPI, e.g. the hostfile below uses 2 processes (i.e.,
-2 GPUs) on a single node</li>
+<li>为MPI生成一个hostfile,例如下面的hostfile在一个节点上使用了2个进程(即2个GPU):</li>
 </ol>
 <pre><code class="hljs css language-txt">localhost:<span class="hljs-number">2</span>
 </code></pre>
 <ol start="3">
-<li>Launch the training via <code>mpiexec</code></li>
+<li>通过<code>mpiexec</code>启动训练:</li>
 </ol>
 <pre><code class="hljs css language-sh">mpiexec --hostfile host_file python mnist_dist.py
 </code></pre>
-<p>It could result in speed up compared to the single GPU training.</p>
+<p>与单GPU训练相比,它同样可以带来速度的提升:</p>
 <pre><code class="hljs">Starting Epoch <span class="hljs-number">0</span>:
 Training loss = <span class="hljs-number">383.969543</span>, training accuracy = <span class="hljs-number">0.886402</span>
 Evaluation accuracy = <span class="hljs-number">0.954327</span>
@@ -342,87 +306,49 @@ Starting Epoch <span class="hljs-number">9</span>:
 Training loss = <span class="hljs-number">24.548153</span>, training accuracy = <span class="hljs-number">0.992171</span>
 Evaluation accuracy = <span class="hljs-number">0.988682</span>
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="optimizations-for-distributed-training"></a><a href="#optimizations-for-distributed-training" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
-<p>SINGA provides multiple optimization strategies for distributed training to
-reduce the communication cost. Refer to the API for <code>DistOpt</code> for the
-configuration of each strategy.</p>
-<p>When we use <code>model.Model</code> to build a model, we need to put the options for
-distributed training in the <code>train_one_batch</code> method. Please refer to the
-example code on top of this page. We could just copy the code for the options
-and use it in other models.</p>
-<p>With the defined options, we can put the arguments <code>dist_option</code> and <code>spars</code>
-when we start the training with <code>model(tx, ty, dist_option, spars)</code></p>
-<h3><a class="anchor" aria-hidden="true" id="no-optimizations"></a><a href="#no-optimizations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<h2><a class="anchor" aria-hidden="true" id="针对分布式训练的优化"></a><a href="#针对分布式训练的优化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>SINGA为分布式训练提供了多种优化策略,以降低模块间的通信成本。参考<code>DistOpt</code>的API,了解每种策略的配置。</p>
+<p>当我们使用<code>model.Model</code>建立模型时,我们需要在<code>training_one_batch</code>方法中启用分布式训练的选项,请参考本页顶部的示例代码。我们也可以直接复制这些选项的代码,然后在其他模型中使用。</p>
+<p>有了定义的选项,我们可以在使用<code>model(tx, ty, dist_option, spars)</code>开始训练时,设置对应的参数<code>dist_option</code>和<code>spars</code>。</p>
+<h3><a class="anchor" aria-hidden="true" id="不采取优化手段"></a><a href="#不采取优化手段" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <pre><code class="hljs css language-python">out, loss = model(tx, ty)
 </code></pre>
-<p><code>loss</code> is the output tensor from the loss function, e.g., cross-entropy for
-classification tasks.</p>
-<h3><a class="anchor" aria-hidden="true" id="half-precision-gradients"></a><a href="#half-precision-gradients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-. [...]
+<p><code>loss</code>是损失函数的输出张量,例如分类任务中的交叉熵。</p>
+<h3><a class="anchor" aria-hidden="true" id="半精度梯度(half-precision-gradients)"></a><a href="#半精度梯度(half-precision-gradients)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
 <pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'fp16'</span>)
 </code></pre>
-<p>It converts each gradient value to 16-bit representation (i.e., half-precision)
-before calling all-reduce.</p>
-<h3><a class="anchor" aria-hidden="true" id="partial-synchronization"></a><a href="#partial-synchronization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
+<p>在调用all-reduce之前,它将每个梯度值转换为16-bit表示(即半精度)。</p>
+<h3><a class="anchor" aria-hidden="true" id="部分同步(partial-synchronization)"></a><a href="#部分同步(partial-synchronization)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
 <pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'partialUpdate'</span>)
 </code></pre>
-<p>In each iteration, every rank do the local sgd update. Then, only a chunk of
-parameters are averaged for synchronization, which saves the communication cost.
-The chunk size is configured when creating the <code>DistOpt</code> instance.</p>
-<h3><a class="anchor" aria-hidden="true" id="gradient-sparsification"></a><a href="#gradient-sparsification" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
-<p>It applies sparsification schemes to select a subset of gradients for
-all-reduce. There are two scheme:</p>
+<p>在每一次迭代中,每个rank都做本地SGD更新。然后,只对一个部分的参数进行平均同步,从而节省了通信成本。分块大小是在创建<code>DistOpt</code>实例时配置的。</p>
+<h3><a class="anchor" aria-hidden="true" id="梯度稀疏化(gradient-sparsification)"></a><a href="#梯度稀疏化(gradient-sparsification)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
+<p>该策略应用稀疏化方案来选择梯度的子集进行all-reduce,有两种方式:</p>
 <ul>
-<li>The top-K largest elements are selected. spars is the portion (0 - 1) of total
-elements selected.</li>
+<li>选择前k大的元素,spars是被选择的元素的一部分(比例在0 - 1之间)。</li>
 </ul>
 <pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'sparseTopK'</span>, spars = spars)
 </code></pre>
 <ul>
-<li>All gradients whose absolute value are larger than predefined threshold spars
-are selected.</li>
+<li>所有绝对值大于预定义阈值的梯度都会被选中。</li>
 </ul>
 <pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'sparseThreshold'</span>, spars = spars)
 </code></pre>
-<p>The hyper-parameters are configured when creating the <code>DistOpt</code> instance.</p>
-<h2><a class="anchor" aria-hidden="true" id="implementation"></a><a href="#implementation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>This section is mainly for developers who want to know how the code in
-distribute module is implemented.</p>
-<h3><a class="anchor" aria-hidden="true" id="c-interface-for-nccl-communicator"></a><a href="#c-interface-for-nccl-communicator" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
-<p>Firstly, the communication layer is written in C language
-<a href="https://github.com/apache/singa/blob/master/src/io/communicator.cc">communicator.cc</a>.
-It applies the NCCL library for collective communication.</p>
-<p>There are two constructors for the communicator, one for MPI and another for
-multiprocess.</p>
-<p>(i) Constructor using MPI</p>
-<p>The constructor first obtains the global rank and the world size first, and
-calculate the local rank. Then, rank 0 generates a NCCL ID and broadcast it to
-every rank. After that, it calls the setup function to initialize the NCCL
-communicator, cuda streams, and buffers.</p>
-<p>(ii) Constructor using Python multiprocess</p>
-<p>The constructor first obtains the rank, the world size, and the NCCL ID from the
-input argument. After that, it calls the setup function to initialize the NCCL
-communicator, cuda streams, and buffers.</p>
-<p>After the initialization, it provides the all-reduce functionality to
-synchronize the model parameters or gradients. For instance, synch takes a input
-tensor and perform all-reduce through the NCCL routine. After we call synch, it
-is necessary to call wait function to wait for the all-reduce operation to be
-completed.</p>
-<h3><a class="anchor" aria-hidden="true" id="python-interface-for-distopt"></a><a href="#python-interface-for-distopt" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
-<p>Then, the python interface provide a
-<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">DistOpt</a> class
-to wrap an
-<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">optimizer</a>
-object to perform distributed training based on MPI or multiprocessing. During
-the initialization, it creates a NCCL communicator object (from the C interface
-as mentioned in the subsection above). Then, this communicator object is used
-for every all-reduce operations in DistOpt.</p>
-<p>In MPI or multiprocess, each process has an individual rank, which gives
-information of which GPU the individual process is using. The training data is
-partitioned, so that each process can evaluate the sub-gradient based on the
-partitioned training data. Once the sub-gradient is calculated on each
-processes, the overall stochastic gradient is obtained by all-reducing the
-sub-gradients evaluated by all processes.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 9/18/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/onnx"><span class="arrow-prev">← </span><span>ONNX</span></a><a class="docs-next button" href="/docs/time-profiling"><span>Time Profiling</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a><ul class="toc-headings"><li><a href="#example-code [...]
+<p>超参数在创建<code>DistOpt</code>实例时配置。</p>
+<h2><a class="anchor" aria-hidden="true" id="实现"></a><a href="#实现" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>本节主要是让开发者了解分布训练模块的代码是如何实现的。</p>
+<h3><a class="anchor" aria-hidden="true" id="nccl-communicator的c接口"></a><a href="#nccl-communicator的c接口" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>首先,通信层是用C语言<a href="https://github.com/apache/singa/blob/master/src/io/communicator.cc">communicator.cc</a>编写的,它调用用NCCL库进行集体通信。</p>
+<p>communicator有两个构造器,一个是MPI的,另一个是Multiprocess的。</p>
+<p>(i) MPI构造器</p>
+<p>构造器首先先获取全局rank和world_size,计算出本地rank,然后由rank 0生成NCCL ID并广播给每个rank。之后,它调用setup函数来初始化NCCL communicator、cuda流和缓冲区。</p>
+<p>(ii) Python multiprocess构造器</p>
+<p>构造器首先从输入参数中获取rank、world_size和NCCL ID。之后,调用setup函数来初始化NCCL communicator、cuda流和缓冲区。</p>
+<p>在初始化之后,它提供了all-reduce功能来同步模型参数或梯度。例如,synch接收一个输入张量,通过NCCL例程进行all-reduce,在我们调用synch之后,需要调用wait函数来等待all-reduce操作的完成。</p>
+<h3><a class="anchor" aria-hidden="true" id="distopt的python接口"></a><a href="#distopt的python接口" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>然后,python接口提供了一个<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">DistOpt</a>类来封装一个<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">optimizer</a>对象,以执行基于MPI或Multiprocess的分布式训练。在初始化过程中,它创建了一个NCCL communicator对象(来自于上面小节提到的C接口),然后,<code>DistOpt</code>中的每一次all-reduce操作都会用到这个communicator对象。</p>
+<p>在MPI或Multiprocess中,每个进程都有一个独立的rank,它给出了各个进程使用的GPU的信息。训练数据是被拆分的,因此每个进程可以根据一部分训练数据来评估子梯度。一旦每个进程的子梯度被计算出来,就可以将所有进程计算出的子梯度做all-reduce,得到总体随机梯度。</p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/onnx"><span class="arrow-prev">← </span><span>ONNX</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/time-profiling"><span>Time Profiling</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#使用">使用</a><ul class="toc-headings"><li [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/dist-train/index.html b/content/docs/3.1.0_Chinese/dist-train/index.html
similarity index 50%
copy from content/docs/dist-train/index.html
copy to content/docs/3.1.0_Chinese/dist-train/index.html
index 56bff2b..3843555 100644
--- a/content/docs/dist-train/index.html
+++ b/content/docs/3.1.0_Chinese/dist-train/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Distributed Training · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copy [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Distributed Training · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copy [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -61,34 +61,16 @@
               }
             });
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/dist-train.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Distributed Training</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contri [...]
-<p>SINGA supports data parallel training across multiple GPUs (on a single node or
-across different nodes). The following figure illustrates the data parallel
-training:</p>
+<p>SINGA支持跨多个GPU的数据并行训练(在单个节点上或跨不同节点)。下图说明了数据并行训练的情况:</p>
 <p><img src="/docs/assets/MPI.png" alt="MPI.png"></p>
-<p>In distributed training, each process (called a worker) runs a training script
-over a single GPU. Each process has an individual communication rank. The
-training data is partitioned among the workers and the model is replicated on
-every worker. In each iteration, the workers read a mini-batch of data (e.g.,
-256 images) from its partition and run the BackPropagation algorithm to compute
-the gradients of the weights, which are averaged via all-reduce (provided by
-<a href="https://developer.nvidia.com/nccl">NCCL</a>) for weight update following
-stochastic gradient descent algorithms (SGD).</p>
-<p>The all-reduce operation by NCCL can be used to reduce and synchronize the
-gradients from different GPUs. Let's consider the training with 4 GPUs as shown
-below. Once the gradients from the 4 GPUs are calculated, all-reduce will return
-the sum of the gradients over the GPUs and make it available on every GPU. Then
-the averaged gradients can be easily calculated.</p>
+<p>在分布式训练中,每个进程(称为worker)在单个GPU上运行一个训练脚本,每个进程都有一个单独的通信等级,训练数据被分发给各个worker,模型在每个worker上被复制。在每次迭代中,worker从其分区中读取数据的一个mini-batch(例如,256张图像),并运行BackPropagation算法来计算权重的梯度,通过all-reduce(由<a href="https://developer.nvidia.com/nccl">NCCL</a>提供)进行平均,按照随机梯度下降算法(SGD)进行权重更新。</p>
+<p>NCCL的all-reduce操作可以用来减少和同步不同GPU的梯度。假设我们使用4个GPU进行训练,如下图所示。一旦计算出4个GPU的梯度,all-reduce将返回GPU的梯度之和,并使其在每个GPU上可用,然后就可以轻松计算出平均梯度。</p>
 <p><img src="/docs/assets/AllReduce.png" alt="AllReduce.png"></p>
-<h2><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
-<p>SINGA implements a module called <code>DistOpt</code> (a subclass of <code>Opt</code>) for distributed
-training. It wraps a normal SGD optimizer and calls <code>Communicator</code> for gradients
-synchronization. The following example illustrates the usage of <code>DistOpt</code> for
-training a CNN model over the MNIST dataset. The source code is available
-<a href="https://github.com/apache/singa/blob/master/examples/cnn/">here</a>, and there is
-a <a href="">Colab notebook</a> for it.</p>
-<h3><a class="anchor" aria-hidden="true" id="example-code"></a><a href="#example-code" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>SINGA提供了一个名为<code>DistOpt</code>(<code>Opt</code>的一个子类)的模块,用于分布式训练。它封装了一个普通的SGD优化器,并调用<code>Communicator</code>进行梯度同步。下面的例子说明了如何使用<code>DistOpt</code>在MNIST数据集上训练一个CNN模型。源代码在<a href="https://github.com/apache/singa/blob/master/examples/cnn/">这里</a>,或者可以使用<a href="">Colab notebook</a>。</p>
+<h3><a class="anchor" aria-hidden="true" id="代码示例"></a><a href="#代码示例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <ol>
-<li>Define the neural network model:</li>
+<li>定义神经网络模型:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">CNN</span><span class="hljs-params">(model.Model)</span>:</span>
 
@@ -141,30 +123,22 @@ a <a href="">Colab notebook</a> for it.</p>
 model = CNN()
 </code></pre>
 <ol start="2">
-<li>Create the <code>DistOpt</code> instance and attach it to the created model:</li>
+<li>创建<code>DistOpt</code>实例并将其应用到创建的模型上:</li>
 </ol>
 <pre><code class="hljs css language-python">sgd = opt.SGD(lr=<span class="hljs-number">0.005</span>, momentum=<span class="hljs-number">0.9</span>, weight_decay=<span class="hljs-number">1e-5</span>)
 sgd = opt.DistOpt(sgd)
 model.set_optimizer(sgd)
 dev = device.create_cuda_gpu_on(sgd.local_rank)
 </code></pre>
-<p>Here are some explanations concerning some variables in the code:</p>
+<p>下面是关于代码中一些变量的解释:</p>
 <p>(i) <code>dev</code></p>
-<p>dev represents the <code>Device</code> instance, where to load data and run the CNN model.</p>
+<p>dev代表<code>Device</code>实例,在设备中加载数据并运行CNN模型。</p>
 <p>(ii)<code>local_rank</code></p>
-<p>Local rank represents the GPU number the current process is using in the same
-node. For example, if you are using a node with 2 GPUs, <code>local_rank=0</code> means
-that this process is using the first GPU, while <code>local_rank=1</code> means using the
-second GPU. Using MPI or multiprocess, you are able to run the same training
-script which is only different in the value of <code>local_rank</code>.</p>
+<p>Local rank表示当前进程在同一节点中使用的GPU数量。例如,如果你使用的节点有2个GPU,<code>local_rank=0</code>表示这个进程使用的是第一个GPU,而<code>local_rank=1</code>表示使用的是第二个GPU。使用MPI或多进程,你能够运行相同的训练脚本,唯一的区别<code>local_rank</code>的值不同。</p>
 <p>(iii)<code>global_rank</code></p>
-<p>Rank in global represents the global rank considered all the processes in all
-the nodes you are using. Let's consider the case you have 3 nodes and each of
-the node has two GPUs, <code>global_rank=0</code> means the process using the 1st GPU at
-the 1st node, <code>global_rank=2</code> means the process using the 1st GPU of the 2nd
-node, and <code>global_rank=4</code> means the process using the 1st GPU of the 3rd node.</p>
+<p>global中的rank代表了你使用的所有节点中所有进程的全局排名。让我们考虑这样的情况:你有3个节点,每个节点有两个GPU, <code>global_rank=0</code>表示使用第1个节点的第1个GPU的进程, <code>global_rank=2</code>表示使用第2个节点的第1个GPU的进程, <code>global_rank=4</code>表示使用第3个节点的第1个GPU的进程。</p>
 <ol start="3">
-<li>Load and partition the training/validation data:</li>
+<li>加载和分割训练/验证数据:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">data_partition</span><span class="hljs-params">(dataset_x, dataset_y, global_rank, world_size)</span>:</span>
     data_per_rank = dataset_x.shape[<span class="hljs-number">0</span>] // world_size
@@ -178,11 +152,10 @@ train_x, train_y = data_partition(train_x, train_y,
 test_x, test_y = data_partition(test_x, test_y,
                                 sgd.global_rank, sgd.world_size)
 </code></pre>
-<p>A partition of the dataset is returned for this <code>dev</code>.</p>
-<p>Here, <code>world_size</code> represents the total number of processes in all the nodes you
-are using for distributed training.</p>
+<p>这个<code>dev</code>的数据集的一个分区被返回。</p>
+<p>这里,<code>world_size</code>代表你用于分布式训练的所有节点中的进程总数。</p>
 <ol start="4">
-<li>Initialize and synchronize the model parameters among all workers:</li>
+<li>初始化并同步所有worker的模型参数:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-comment">#Synchronize the initial parameter</span>
 tx = tensor.Tensor((batch_size, <span class="hljs-number">1</span>, IMG_SIZE, IMG_SIZE), dev, tensor.float32)
@@ -195,7 +168,7 @@ dev.SetRandSeed(seed)
 np.random.seed(seed)
 </code></pre>
 <ol start="5">
-<li>Run BackPropagation and distributed SGD</li>
+<li>运行BackPropagation和分布式SGD</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> range(max_epoch):
     <span class="hljs-keyword">for</span> b <span class="hljs-keyword">in</span> range(num_train_batch):
@@ -206,18 +179,18 @@ np.random.seed(seed)
         <span class="hljs-comment"># Train the model</span>
         out, loss = model(tx, ty)
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="execution-instruction"></a><a href="#execution-instruction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>There are two ways to launch the training: MPI or Python multiprocessing.</p>
+<h3><a class="anchor" aria-hidden="true" id="执行命令"></a><a href="#执行命令" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>有两种方式可以启动训练,MPI或Python multiprocessing。</p>
 <h4><a class="anchor" aria-hidden="true" id="python-multiprocessing"></a><a href="#python-multiprocessing" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
-<p>It works on a single node with multiple GPUs, where each GPU is one worker.</p>
+<p>它可以在一个节点上使用多个GPU,其中,每个GPU是一个worker。</p>
 <ol>
-<li>Put all the above training codes in a function</li>
+<li>将上述训练用的代码打包进一个函数:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">train_mnist_cnn</span><span class="hljs-params">(nccl_id=None, local_rank=None, world_size=None)</span>:</span>
     ...
 </code></pre>
 <ol start="2">
-<li>Create <code>mnist_multiprocess.py</code></li>
+<li>创建<code>mnist_multiprocess.py</code>。</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
     <span class="hljs-comment"># Generate a NCCL ID to be used for collective communication</span>
@@ -236,29 +209,22 @@ np.random.seed(seed)
     <span class="hljs-keyword">for</span> p <span class="hljs-keyword">in</span> process:
         p.start()
 </code></pre>
-<p>Here are some explanations concerning the variables created above:</p>
+<p>下面是关于上面所创建的变量的一些说明:</p>
 <p>(i) <code>nccl_id</code></p>
-<p>Note that we need to generate a NCCL ID here to be used for collective
-communication, and then pass it to all the processes. The NCCL ID is like a
-ticket, where only the processes with this ID can join the all-reduce operation.
-(Later if we use MPI, the passing of NCCL ID is not necessary, because the ID is
-broadcased by MPI in our code automatically)</p>
+<p>需要注意的是,我们在这里需要生成一个NCCL ID,用于集体通信,然后将其传递给所有进程。NCCL ID就像一个门票,只有拥有这个ID的进程才能加入到all-reduce操作中。(如果我们接下来使用MPI,NCCL ID的传递就没有必要了,因为在我们的代码中,这个ID会由MPI自动广播。)</p>
 <p>(ii) <code>world_size</code></p>
-<p>world_size is the number of GPUs you would like to use for training.</p>
+<p>world_size是您想用于训练的GPU数量。</p>
 <p>(iii) <code>local_rank</code></p>
-<p>local_rank determine the local rank of the distributed training and which gpu is
-used in the process. In the code above, we used a for loop to run the train
-function where the argument local_rank iterates from 0 to world_size. In this
-case, different processes can use different GPUs for training.</p>
-<p>The arguments for creating the <code>DistOpt</code> instance should be updated as follows</p>
+<p>local_rank决定分布式训练的本地顺序,以及在训练过程中使用哪个gpu。在上面的代码中,我们使用for循环来运行训练函数,其中参数local_rank从0迭代到world_size。在这种情况下,不同的进程可以使用不同的GPU进行训练。</p>
+<p>创建<code>DistOpt</code>实例的参数应按照如下方式更新:</p>
 <pre><code class="hljs css language-python">sgd = opt.DistOpt(sgd, nccl_id=nccl_id, local_rank=local_rank, world_size=world_size)
 </code></pre>
 <ol start="3">
-<li>Run <code>mnist_multiprocess.py</code></li>
+<li>运行<code>mnist_multiprocess.py</code>:</li>
 </ol>
 <pre><code class="hljs css language-sh">python mnist_multiprocess.py 2
 </code></pre>
-<p>It results in speed up compared to the single GPU training.</p>
+<p>与单GPU训练相比,它最主要的意义是速度提升:</p>
 <pre><code class="hljs">Starting Epoch <span class="hljs-number">0</span>:
 Training loss = <span class="hljs-number">408.909790</span>, training accuracy = <span class="hljs-number">0.880475</span>
 Evaluation accuracy = <span class="hljs-number">0.956430</span>
@@ -291,26 +257,24 @@ Training loss = <span class="hljs-number">24.039650</span>, training accuracy =
 Evaluation accuracy = <span class="hljs-number">0.989083</span>
 </code></pre>
 <h4><a class="anchor" aria-hidden="true" id="mpi"></a><a href="#mpi" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
-<p>It works for both single node and multiple nodes as long as there are multiple
-GPUs.</p>
+<p>只要有多个GPU,MPI既适用于单节点,也适用于多节点。</p>
 <ol>
-<li>Create <code>mnist_dist.py</code></li>
+<li>创建<code>mnist_dist.py</code>。</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
     train_mnist_cnn()
 </code></pre>
 <ol start="2">
-<li>Generate a hostfile for MPI, e.g. the hostfile below uses 2 processes (i.e.,
-2 GPUs) on a single node</li>
+<li>为MPI生成一个hostfile,例如下面的hostfile在一个节点上使用了2个进程(即2个GPU):</li>
 </ol>
 <pre><code class="hljs css language-txt">localhost:<span class="hljs-number">2</span>
 </code></pre>
 <ol start="3">
-<li>Launch the training via <code>mpiexec</code></li>
+<li>通过<code>mpiexec</code>启动训练:</li>
 </ol>
 <pre><code class="hljs css language-sh">mpiexec --hostfile host_file python mnist_dist.py
 </code></pre>
-<p>It could result in speed up compared to the single GPU training.</p>
+<p>与单GPU训练相比,它同样可以带来速度的提升:</p>
 <pre><code class="hljs">Starting Epoch <span class="hljs-number">0</span>:
 Training loss = <span class="hljs-number">383.969543</span>, training accuracy = <span class="hljs-number">0.886402</span>
 Evaluation accuracy = <span class="hljs-number">0.954327</span>
@@ -342,87 +306,49 @@ Starting Epoch <span class="hljs-number">9</span>:
 Training loss = <span class="hljs-number">24.548153</span>, training accuracy = <span class="hljs-number">0.992171</span>
 Evaluation accuracy = <span class="hljs-number">0.988682</span>
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="optimizations-for-distributed-training"></a><a href="#optimizations-for-distributed-training" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
-<p>SINGA provides multiple optimization strategies for distributed training to
-reduce the communication cost. Refer to the API for <code>DistOpt</code> for the
-configuration of each strategy.</p>
-<p>When we use <code>model.Model</code> to build a model, we need to put the options for
-distributed training in the <code>train_one_batch</code> method. Please refer to the
-example code on top of this page. We could just copy the code for the options
-and use it in other models.</p>
-<p>With the defined options, we can put the arguments <code>dist_option</code> and <code>spars</code>
-when we start the training with <code>model(tx, ty, dist_option, spars)</code></p>
-<h3><a class="anchor" aria-hidden="true" id="no-optimizations"></a><a href="#no-optimizations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<h2><a class="anchor" aria-hidden="true" id="针对分布式训练的优化"></a><a href="#针对分布式训练的优化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>SINGA为分布式训练提供了多种优化策略,以降低模块间的通信成本。参考<code>DistOpt</code>的API,了解每种策略的配置。</p>
+<p>当我们使用<code>model.Model</code>建立模型时,我们需要在<code>training_one_batch</code>方法中启用分布式训练的选项,请参考本页顶部的示例代码。我们也可以直接复制这些选项的代码,然后在其他模型中使用。</p>
+<p>有了定义的选项,我们可以在使用<code>model(tx, ty, dist_option, spars)</code>开始训练时,设置对应的参数<code>dist_option</code>和<code>spars</code>。</p>
+<h3><a class="anchor" aria-hidden="true" id="不采取优化手段"></a><a href="#不采取优化手段" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <pre><code class="hljs css language-python">out, loss = model(tx, ty)
 </code></pre>
-<p><code>loss</code> is the output tensor from the loss function, e.g., cross-entropy for
-classification tasks.</p>
-<h3><a class="anchor" aria-hidden="true" id="half-precision-gradients"></a><a href="#half-precision-gradients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-. [...]
+<p><code>loss</code>是损失函数的输出张量,例如分类任务中的交叉熵。</p>
+<h3><a class="anchor" aria-hidden="true" id="半精度梯度(half-precision-gradients)"></a><a href="#半精度梯度(half-precision-gradients)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
 <pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'fp16'</span>)
 </code></pre>
-<p>It converts each gradient value to 16-bit representation (i.e., half-precision)
-before calling all-reduce.</p>
-<h3><a class="anchor" aria-hidden="true" id="partial-synchronization"></a><a href="#partial-synchronization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
+<p>在调用all-reduce之前,它将每个梯度值转换为16-bit表示(即半精度)。</p>
+<h3><a class="anchor" aria-hidden="true" id="部分同步(partial-synchronization)"></a><a href="#部分同步(partial-synchronization)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
 <pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'partialUpdate'</span>)
 </code></pre>
-<p>In each iteration, every rank do the local sgd update. Then, only a chunk of
-parameters are averaged for synchronization, which saves the communication cost.
-The chunk size is configured when creating the <code>DistOpt</code> instance.</p>
-<h3><a class="anchor" aria-hidden="true" id="gradient-sparsification"></a><a href="#gradient-sparsification" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
-<p>It applies sparsification schemes to select a subset of gradients for
-all-reduce. There are two scheme:</p>
+<p>在每一次迭代中,每个rank都做本地SGD更新。然后,只对一个部分的参数进行平均同步,从而节省了通信成本。分块大小是在创建<code>DistOpt</code>实例时配置的。</p>
+<h3><a class="anchor" aria-hidden="true" id="梯度稀疏化(gradient-sparsification)"></a><a href="#梯度稀疏化(gradient-sparsification)" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
+<p>该策略应用稀疏化方案来选择梯度的子集进行all-reduce,有两种方式:</p>
 <ul>
-<li>The top-K largest elements are selected. spars is the portion (0 - 1) of total
-elements selected.</li>
+<li>选择前k大的元素,spars是被选择的元素的一部分(比例在0 - 1之间)。</li>
 </ul>
 <pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'sparseTopK'</span>, spars = spars)
 </code></pre>
 <ul>
-<li>All gradients whose absolute value are larger than predefined threshold spars
-are selected.</li>
+<li>所有绝对值大于预定义阈值的梯度都会被选中。</li>
 </ul>
 <pre><code class="hljs css language-python">out, loss = model(tx, ty, dist_option = <span class="hljs-string">'sparseThreshold'</span>, spars = spars)
 </code></pre>
-<p>The hyper-parameters are configured when creating the <code>DistOpt</code> instance.</p>
-<h2><a class="anchor" aria-hidden="true" id="implementation"></a><a href="#implementation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>This section is mainly for developers who want to know how the code in
-distribute module is implemented.</p>
-<h3><a class="anchor" aria-hidden="true" id="c-interface-for-nccl-communicator"></a><a href="#c-interface-for-nccl-communicator" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
-<p>Firstly, the communication layer is written in C language
-<a href="https://github.com/apache/singa/blob/master/src/io/communicator.cc">communicator.cc</a>.
-It applies the NCCL library for collective communication.</p>
-<p>There are two constructors for the communicator, one for MPI and another for
-multiprocess.</p>
-<p>(i) Constructor using MPI</p>
-<p>The constructor first obtains the global rank and the world size first, and
-calculate the local rank. Then, rank 0 generates a NCCL ID and broadcast it to
-every rank. After that, it calls the setup function to initialize the NCCL
-communicator, cuda streams, and buffers.</p>
-<p>(ii) Constructor using Python multiprocess</p>
-<p>The constructor first obtains the rank, the world size, and the NCCL ID from the
-input argument. After that, it calls the setup function to initialize the NCCL
-communicator, cuda streams, and buffers.</p>
-<p>After the initialization, it provides the all-reduce functionality to
-synchronize the model parameters or gradients. For instance, synch takes a input
-tensor and perform all-reduce through the NCCL routine. After we call synch, it
-is necessary to call wait function to wait for the all-reduce operation to be
-completed.</p>
-<h3><a class="anchor" aria-hidden="true" id="python-interface-for-distopt"></a><a href="#python-interface-for-distopt" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
-<p>Then, the python interface provide a
-<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">DistOpt</a> class
-to wrap an
-<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">optimizer</a>
-object to perform distributed training based on MPI or multiprocessing. During
-the initialization, it creates a NCCL communicator object (from the C interface
-as mentioned in the subsection above). Then, this communicator object is used
-for every all-reduce operations in DistOpt.</p>
-<p>In MPI or multiprocess, each process has an individual rank, which gives
-information of which GPU the individual process is using. The training data is
-partitioned, so that each process can evaluate the sub-gradient based on the
-partitioned training data. Once the sub-gradient is calculated on each
-processes, the overall stochastic gradient is obtained by all-reducing the
-sub-gradients evaluated by all processes.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 9/18/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/onnx"><span class="arrow-prev">← </span><span>ONNX</span></a><a class="docs-next button" href="/docs/time-profiling"><span>Time Profiling</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#usage">Usage</a><ul class="toc-headings"><li><a href="#example-code [...]
+<p>超参数在创建<code>DistOpt</code>实例时配置。</p>
+<h2><a class="anchor" aria-hidden="true" id="实现"></a><a href="#实现" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>本节主要是让开发者了解分布训练模块的代码是如何实现的。</p>
+<h3><a class="anchor" aria-hidden="true" id="nccl-communicator的c接口"></a><a href="#nccl-communicator的c接口" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>首先,通信层是用C语言<a href="https://github.com/apache/singa/blob/master/src/io/communicator.cc">communicator.cc</a>编写的,它调用用NCCL库进行集体通信。</p>
+<p>communicator有两个构造器,一个是MPI的,另一个是Multiprocess的。</p>
+<p>(i) MPI构造器</p>
+<p>构造器首先先获取全局rank和world_size,计算出本地rank,然后由rank 0生成NCCL ID并广播给每个rank。之后,它调用setup函数来初始化NCCL communicator、cuda流和缓冲区。</p>
+<p>(ii) Python multiprocess构造器</p>
+<p>构造器首先从输入参数中获取rank、world_size和NCCL ID。之后,调用setup函数来初始化NCCL communicator、cuda流和缓冲区。</p>
+<p>在初始化之后,它提供了all-reduce功能来同步模型参数或梯度。例如,synch接收一个输入张量,通过NCCL例程进行all-reduce,在我们调用synch之后,需要调用wait函数来等待all-reduce操作的完成。</p>
+<h3><a class="anchor" aria-hidden="true" id="distopt的python接口"></a><a href="#distopt的python接口" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>然后,python接口提供了一个<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">DistOpt</a>类来封装一个<a href="https://github.com/apache/singa/blob/master/python/singa/opt.py">optimizer</a>对象,以执行基于MPI或Multiprocess的分布式训练。在初始化过程中,它创建了一个NCCL communicator对象(来自于上面小节提到的C接口),然后,<code>DistOpt</code>中的每一次all-reduce操作都会用到这个communicator对象。</p>
+<p>在MPI或Multiprocess中,每个进程都有一个独立的rank,它给出了各个进程使用的GPU的信息。训练数据是被拆分的,因此每个进程可以根据一部分训练数据来评估子梯度。一旦每个进程的子梯度被计算出来,就可以将所有进程计算出的子梯度做all-reduce,得到总体随机梯度。</p>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/onnx"><span class="arrow-prev">← </span><span>ONNX</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/time-profiling"><span>Time Profiling</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#使用">使用</a><ul class="toc-headings"><li [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.1.0_Chinese/download-singa.html b/content/docs/3.1.0_Chinese/download-singa.html
new file mode 100644
index 0000000..1dc5916
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/download-singa.html
@@ -0,0 +1,252 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Download SINGA · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/download.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Download SINGA</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor li [...]
+<h2><a class="anchor" aria-hidden="true" id="verify"></a><a href="#verify" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>要验证下载的tar.gz文件,下载<a href="https://www.apache.org/dist/singa/KEYS">KEYS</a>和ASC文件,然后执行以下命令:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">%</span><span class="bash"> gpg --import KEYS</span>
+<span class="hljs-meta">%</span><span class="bash"> gpg --verify downloaded_file.asc downloaded_file</span>
+</code></pre>
+<p>你也可以检查SHA512或MD5值判断下载是否完成。</p>
+<h2><a class="anchor" aria-hidden="true" id="v300-18-april-2020"></a><a href="#v300-18-april-2020" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<ul>
+<li><a href="http://www.apache.org/dyn/closer.cgi/singa/3.0.0/apache-singa-3.0.0.tar.gz">Apache SINGA 3.0.0</a>
+<a href="https://www.apache.org/dist/singa/3.0.0/apache-singa-3.0.0.tar.gz.sha512">[SHA512]</a>
+<a href="https://www.apache.org/dist/singa/3.0.0/apache-singa-3.0.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_3.0.0">Release Notes 3.0.0</a></li>
+<li>新特性及重要更新:
+<ul>
+<li>增强了ONNX。在SINGA中测试了多种ONNX模型。</li>
+<li>使用 MPI 和 NCCL Communication进行分布式训练,通过梯度稀疏化和压缩以及分块传输进行了优化。</li>
+<li>计算图的构建,利用图优化了速度和内存。</li>
+<li>新的文档网站(singa.apache.org)和API参考网站(apache-singa.rtfd.io)。</li>
+<li>使用CI实现代码质量检查。</li>
+<li>将MKLDNN替换为DNNL。</li>
+<li>更新Tensor API以支持广播操作。</li>
+<li>实现了支持ONNX模型的新的autograd操作符。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v200-20-april-2019"></a><a href="#孵化版本(incubating)-v200-20-april-2019" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2 [...]
+<ul>
+<li><a href="http://www.apache.org/dyn/closer.cgi/incubator/singa/2.0.0/apache-singa-incubating-2.0.0.tar.gz">Apache SINGA 2.0.0 (incubating)</a>
+<a href="https://www.apache.org/dist/incubator/singa/2.0.0/apache-singa-incubating-2.0.0.tar.gz.sha512">[SHA512]</a>
+<a href="https://www.apache.org/dist/incubator/singa/2.0.0/apache-singa-incubating-2.0.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_2.0.0.html">Release Notes 2.0.0 (incubating)</a></li>
+<li>新特性及重要更新:
+<ul>
+<li>增强了autograd功能(适用于卷积网络和循环网络)。</li>
+<li>支持ONNX。</li>
+<li>通过英特尔MKL DNN lib改进CPP操作。</li>
+<li>实现tensor广播。</li>
+<li>在Apache用户名下移动Docker镜像。</li>
+<li>更新conda-build配置中依赖的lib版本。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v120-6-june-2018"></a><a href="#孵化版本(incubating)-v120-6-june-2018" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/1.2.0/apache-singa-incubating-1.2.0.tar.gz">Apache SINGA 1.2.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.2.0/apache-singa-incubating-1.2.0.tar.gz.sha512">[SHA512]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.2.0/apache-singa-incubating-1.2.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_1.2.0.html">Release Notes 1.2.0 (incubating)</a></li>
+<li>新特性及重要更新:
+<ul>
+<li>实现了autograd(目前支持MLP模式)。</li>
+<li>升级PySinga以支持Python 3</li>
+<li>改进Tensor类的stride范围。</li>
+<li>将cuDNN从V5升级到V7。</li>
+<li>增加VGG、Inception V4、ResNet和DenseNet进行ImageNet分类。</li>
+<li>为conda包创建别名</li>
+<li>完整的中文文档</li>
+<li>添加在Windows上运行Singa的说明</li>
+<li>更新编译,CI</li>
+<li>修复一些错误</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v110-12-february-2017"></a><a href="#孵化版本(incubating)-v110-12-february-2017" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/1.1.0/apache-singa-incubating-1.1.0.tar.gz">Apache SINGA 1.1.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.1.0/apache-singa-incubating-1.1.0.tar.gz.md5">[MD5]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.1.0/apache-singa-incubating-1.1.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_1.1.0.html">Release Notes 1.1.0 (incubating)</a></li>
+<li>新特性和重要更新:
+<ul>
+<li>创建Docker镜像(CPU和GPU版本)</li>
+<li>为SINGA创建Amazon AMI(CPU版)。</li>
+<li>集成Jenkins,自动生成Wheel和Debian包(用于安装),并更新网站。</li>
+<li>增强FeedFowardNet,例如,多输入和用于调试的verbose模式。</li>
+<li>添加Concat和Slice层。</li>
+<li>优化CrossEntropyLoss以接受带有多个标签的实例。</li>
+<li>添加包含图像增强方法的image_tool.py。</li>
+<li>支持通过快照API加载和保存模型。</li>
+<li>在Windows上编译SINGA源代码。</li>
+<li>将必要依赖库与SINGA代码一起编译。</li>
+<li>为SINGA启用Java binding(基本)。</li>
+<li>在checkpoint文件中添加版本ID。</li>
+<li>增加Rafiki工具包以提供RESTFul APIs。</li>
+<li>添加了从Caffe预训练的例子,包括GoogleNet。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v100-8-september-2016"></a><a href="#孵化版本(incubating)-v100-8-september-2016" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/1.0.0/apache-singa-incubating-1.0.0.tar.gz">Apache SINGA 1.0.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.0.0/apache-singa-incubating-1.0.0.tar.gz.md5">[MD5]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.0.0/apache-singa-incubating-1.0.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_1.0.0.html">Release Notes 1.0.0 (incubating)</a></li>
+<li>新特性和重要更新:
+<ul>
+<li>创建Tensor概念,用于支持更多的机器学习模型。</li>
+<li>创建Device概念,用于运行在不同的硬件设备上,包括CPU,(Nvidia/AMD) GPU 和 FPGA (将在以后的版本中测试)。</li>
+<li>用 cmake 取代 GNU autotool 进行编译。</li>
+<li>支持 Mac OS。</li>
+<li>改进Python binding,包括安装和编程。</li>
+<li>更多的深度学习模型,包括VGG和ResNet。</li>
+<li>更多的IO类用于读取/写入文件和编码/解码数据。</li>
+<li>直接基于Socket的新网络通信组件。</li>
+<li>Cudnn V5,包含Dropout和RNN层。</li>
+<li>将网页构建工具从maven更换为Sphinx。</li>
+<li>整合Travis-CI。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v030-20-april-2016"></a><a href="#孵化版本(incubating)-v030-20-april-2016" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2 [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/0.3.0/apache-singa-incubating-0.3.0.tar.gz">Apache SINGA 0.3.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/0.3.0/apache-singa-incubating-0.3.0.tar.gz.md5">[MD5]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/0.3.0/apache-singa-incubating-0.3.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_0.3.0.html">Release Notes 0.3.0 (incubating)</a></li>
+<li>新特性和重要更新:
+<ul>
+<li>在GPU集群上进行训练,可以在GPU集群上进行深度学习模型的训练。</li>
+<li>改进Python wrapper简化配置工作,包括神经网络和SGD算法。</li>
+<li>新增SGD更新器,包括Adam、AdaDelta和AdaMax。</li>
+<li>安装时减少了单节点训练的依赖库。</li>
+<li>使用CPU和GPU进行异构训练。</li>
+<li>支持 cuDNN V4。</li>
+<li>数据预取。</li>
+<li>修复一些bug。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v020-14-january-2016"></a><a href="#孵化版本(incubating)-v020-14-january-2016" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/0.2.0/apache-singa-incubating-0.2.0.tar.gz">Apache SINGA 0.2.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/0.2.0/apache-singa-incubating-0.2.0.tar.gz.md5">[MD5]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/0.2.0/apache-singa-incubating-0.2.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_0.2.0.html">Release Notes 0.2.0 (incubating)</a></li>
+<li>新特性和重要更新:
+<ul>
+<li>在GPU上进行训练,可以在一个节点上用多个GPU卡训练复杂的模型。</li>
+<li>混合神经网分区支持数据和模型同时并行。</li>
+<li>Python wrapper简化配置,包括神经网络和SGD算法。</li>
+<li>实现了RNN模型和BPTT算法,支持基于RNN模型的应用,如GRU。</li>
+<li>云软件集成,包括Mesos、Docker和HDFS。</li>
+<li>可视化神经网结构和层信息,以便优化调试。</li>
+<li>针对Blobs和原始数据指针的线性代数函数和随机函数。</li>
+<li>添加新的层,包括SoftmaxLayer、ArgSortLayer、DummyLayer、RNN层和cuDNN层。</li>
+<li>更新Layer类以携带多个数据/梯度Blobs。</li>
+<li>通过加载之前训练的模型参数,提取特征并测试新数据的性能。</li>
+<li>为IO操作添加Store类。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="incubating-v010-8-october-2015"></a><a href="#incubating-v010-8-october-2015" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/apache-singa-incubating-0.1.0.tar.gz">Apache SINGA 0.1.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/apache-singa-incubating-0.1.0.tar.gz.md5">[MD5]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/apache-singa-incubating-0.1.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="https://console.aws.amazon.com/ec2/v2/home?region=ap-southeast-1#LaunchInstanceWizard:ami=ami-b41001e6">Amazon EC2 image</a></li>
+<li><a href="releases/RELEASE_NOTES_0.1.0.html">Release Notes 0.1.0 (incubating)</a></li>
+<li>新特性和重要更新:
+<ul>
+<li>允许使用GNU构建工具进行安装。</li>
+<li>实现用zookeeper进行工作管理的脚本。</li>
+<li>实现基于NeuralNet和Layer的编程模型。</li>
+<li>实现基于Worker、Server和Stub的系统架构。</li>
+<li>训练模型来自三种不同的模型类别,即前馈模型、能量模型和RNN模型。</li>
+<li>使用CPU的同步和异步分布式训练框架。</li>
+<li>checkpoint文件生成和恢复。</li>
+<li>使用gtest进行单元测试。</li>
+</ul></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/time-profiling"><span class="arrow-prev">← </span><span>Time Profiling</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/build"><span>Build SINGA from Source</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verify">Verify</a> [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.1.0_Chinese/download-singa/index.html b/content/docs/3.1.0_Chinese/download-singa/index.html
new file mode 100644
index 0000000..1dc5916
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/download-singa/index.html
@@ -0,0 +1,252 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Download SINGA · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/download.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Download SINGA</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor li [...]
+<h2><a class="anchor" aria-hidden="true" id="verify"></a><a href="#verify" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>要验证下载的tar.gz文件,下载<a href="https://www.apache.org/dist/singa/KEYS">KEYS</a>和ASC文件,然后执行以下命令:</p>
+<pre><code class="hljs css language-shell"><span class="hljs-meta">%</span><span class="bash"> gpg --import KEYS</span>
+<span class="hljs-meta">%</span><span class="bash"> gpg --verify downloaded_file.asc downloaded_file</span>
+</code></pre>
+<p>你也可以检查SHA512或MD5值判断下载是否完成。</p>
+<h2><a class="anchor" aria-hidden="true" id="v300-18-april-2020"></a><a href="#v300-18-april-2020" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<ul>
+<li><a href="http://www.apache.org/dyn/closer.cgi/singa/3.0.0/apache-singa-3.0.0.tar.gz">Apache SINGA 3.0.0</a>
+<a href="https://www.apache.org/dist/singa/3.0.0/apache-singa-3.0.0.tar.gz.sha512">[SHA512]</a>
+<a href="https://www.apache.org/dist/singa/3.0.0/apache-singa-3.0.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_3.0.0">Release Notes 3.0.0</a></li>
+<li>新特性及重要更新:
+<ul>
+<li>增强了ONNX。在SINGA中测试了多种ONNX模型。</li>
+<li>使用 MPI 和 NCCL Communication进行分布式训练,通过梯度稀疏化和压缩以及分块传输进行了优化。</li>
+<li>计算图的构建,利用图优化了速度和内存。</li>
+<li>新的文档网站(singa.apache.org)和API参考网站(apache-singa.rtfd.io)。</li>
+<li>使用CI实现代码质量检查。</li>
+<li>将MKLDNN替换为DNNL。</li>
+<li>更新Tensor API以支持广播操作。</li>
+<li>实现了支持ONNX模型的新的autograd操作符。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v200-20-april-2019"></a><a href="#孵化版本(incubating)-v200-20-april-2019" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2 [...]
+<ul>
+<li><a href="http://www.apache.org/dyn/closer.cgi/incubator/singa/2.0.0/apache-singa-incubating-2.0.0.tar.gz">Apache SINGA 2.0.0 (incubating)</a>
+<a href="https://www.apache.org/dist/incubator/singa/2.0.0/apache-singa-incubating-2.0.0.tar.gz.sha512">[SHA512]</a>
+<a href="https://www.apache.org/dist/incubator/singa/2.0.0/apache-singa-incubating-2.0.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_2.0.0.html">Release Notes 2.0.0 (incubating)</a></li>
+<li>新特性及重要更新:
+<ul>
+<li>增强了autograd功能(适用于卷积网络和循环网络)。</li>
+<li>支持ONNX。</li>
+<li>通过英特尔MKL DNN lib改进CPP操作。</li>
+<li>实现tensor广播。</li>
+<li>在Apache用户名下移动Docker镜像。</li>
+<li>更新conda-build配置中依赖的lib版本。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v120-6-june-2018"></a><a href="#孵化版本(incubating)-v120-6-june-2018" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/1.2.0/apache-singa-incubating-1.2.0.tar.gz">Apache SINGA 1.2.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.2.0/apache-singa-incubating-1.2.0.tar.gz.sha512">[SHA512]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.2.0/apache-singa-incubating-1.2.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_1.2.0.html">Release Notes 1.2.0 (incubating)</a></li>
+<li>新特性及重要更新:
+<ul>
+<li>实现了autograd(目前支持MLP模式)。</li>
+<li>升级PySinga以支持Python 3</li>
+<li>改进Tensor类的stride范围。</li>
+<li>将cuDNN从V5升级到V7。</li>
+<li>增加VGG、Inception V4、ResNet和DenseNet进行ImageNet分类。</li>
+<li>为conda包创建别名</li>
+<li>完整的中文文档</li>
+<li>添加在Windows上运行Singa的说明</li>
+<li>更新编译,CI</li>
+<li>修复一些错误</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v110-12-february-2017"></a><a href="#孵化版本(incubating)-v110-12-february-2017" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/1.1.0/apache-singa-incubating-1.1.0.tar.gz">Apache SINGA 1.1.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.1.0/apache-singa-incubating-1.1.0.tar.gz.md5">[MD5]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.1.0/apache-singa-incubating-1.1.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_1.1.0.html">Release Notes 1.1.0 (incubating)</a></li>
+<li>新特性和重要更新:
+<ul>
+<li>创建Docker镜像(CPU和GPU版本)</li>
+<li>为SINGA创建Amazon AMI(CPU版)。</li>
+<li>集成Jenkins,自动生成Wheel和Debian包(用于安装),并更新网站。</li>
+<li>增强FeedFowardNet,例如,多输入和用于调试的verbose模式。</li>
+<li>添加Concat和Slice层。</li>
+<li>优化CrossEntropyLoss以接受带有多个标签的实例。</li>
+<li>添加包含图像增强方法的image_tool.py。</li>
+<li>支持通过快照API加载和保存模型。</li>
+<li>在Windows上编译SINGA源代码。</li>
+<li>将必要依赖库与SINGA代码一起编译。</li>
+<li>为SINGA启用Java binding(基本)。</li>
+<li>在checkpoint文件中添加版本ID。</li>
+<li>增加Rafiki工具包以提供RESTFul APIs。</li>
+<li>添加了从Caffe预训练的例子,包括GoogleNet。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v100-8-september-2016"></a><a href="#孵化版本(incubating)-v100-8-september-2016" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/1.0.0/apache-singa-incubating-1.0.0.tar.gz">Apache SINGA 1.0.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.0.0/apache-singa-incubating-1.0.0.tar.gz.md5">[MD5]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/1.0.0/apache-singa-incubating-1.0.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_1.0.0.html">Release Notes 1.0.0 (incubating)</a></li>
+<li>新特性和重要更新:
+<ul>
+<li>创建Tensor概念,用于支持更多的机器学习模型。</li>
+<li>创建Device概念,用于运行在不同的硬件设备上,包括CPU,(Nvidia/AMD) GPU 和 FPGA (将在以后的版本中测试)。</li>
+<li>用 cmake 取代 GNU autotool 进行编译。</li>
+<li>支持 Mac OS。</li>
+<li>改进Python binding,包括安装和编程。</li>
+<li>更多的深度学习模型,包括VGG和ResNet。</li>
+<li>更多的IO类用于读取/写入文件和编码/解码数据。</li>
+<li>直接基于Socket的新网络通信组件。</li>
+<li>Cudnn V5,包含Dropout和RNN层。</li>
+<li>将网页构建工具从maven更换为Sphinx。</li>
+<li>整合Travis-CI。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v030-20-april-2016"></a><a href="#孵化版本(incubating)-v030-20-april-2016" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2 [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/0.3.0/apache-singa-incubating-0.3.0.tar.gz">Apache SINGA 0.3.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/0.3.0/apache-singa-incubating-0.3.0.tar.gz.md5">[MD5]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/0.3.0/apache-singa-incubating-0.3.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_0.3.0.html">Release Notes 0.3.0 (incubating)</a></li>
+<li>新特性和重要更新:
+<ul>
+<li>在GPU集群上进行训练,可以在GPU集群上进行深度学习模型的训练。</li>
+<li>改进Python wrapper简化配置工作,包括神经网络和SGD算法。</li>
+<li>新增SGD更新器,包括Adam、AdaDelta和AdaMax。</li>
+<li>安装时减少了单节点训练的依赖库。</li>
+<li>使用CPU和GPU进行异构训练。</li>
+<li>支持 cuDNN V4。</li>
+<li>数据预取。</li>
+<li>修复一些bug。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="孵化版本(incubating)-v020-14-january-2016"></a><a href="#孵化版本(incubating)-v020-14-january-2016" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/0.2.0/apache-singa-incubating-0.2.0.tar.gz">Apache SINGA 0.2.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/0.2.0/apache-singa-incubating-0.2.0.tar.gz.md5">[MD5]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/0.2.0/apache-singa-incubating-0.2.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="releases/RELEASE_NOTES_0.2.0.html">Release Notes 0.2.0 (incubating)</a></li>
+<li>新特性和重要更新:
+<ul>
+<li>在GPU上进行训练,可以在一个节点上用多个GPU卡训练复杂的模型。</li>
+<li>混合神经网分区支持数据和模型同时并行。</li>
+<li>Python wrapper简化配置,包括神经网络和SGD算法。</li>
+<li>实现了RNN模型和BPTT算法,支持基于RNN模型的应用,如GRU。</li>
+<li>云软件集成,包括Mesos、Docker和HDFS。</li>
+<li>可视化神经网结构和层信息,以便优化调试。</li>
+<li>针对Blobs和原始数据指针的线性代数函数和随机函数。</li>
+<li>添加新的层,包括SoftmaxLayer、ArgSortLayer、DummyLayer、RNN层和cuDNN层。</li>
+<li>更新Layer类以携带多个数据/梯度Blobs。</li>
+<li>通过加载之前训练的模型参数,提取特征并测试新数据的性能。</li>
+<li>为IO操作添加Store类。</li>
+</ul></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="incubating-v010-8-october-2015"></a><a href="#incubating-v010-8-october-2015" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
+<ul>
+<li><a href="https://archive.apache.org/dist/incubator/singa/apache-singa-incubating-0.1.0.tar.gz">Apache SINGA 0.1.0 (incubating)</a>
+<a href="https://archive.apache.org/dist/incubator/singa/apache-singa-incubating-0.1.0.tar.gz.md5">[MD5]</a>
+<a href="https://archive.apache.org/dist/incubator/singa/apache-singa-incubating-0.1.0.tar.gz.asc">[ASC]</a></li>
+<li><a href="https://console.aws.amazon.com/ec2/v2/home?region=ap-southeast-1#LaunchInstanceWizard:ami=ami-b41001e6">Amazon EC2 image</a></li>
+<li><a href="releases/RELEASE_NOTES_0.1.0.html">Release Notes 0.1.0 (incubating)</a></li>
+<li>新特性和重要更新:
+<ul>
+<li>允许使用GNU构建工具进行安装。</li>
+<li>实现用zookeeper进行工作管理的脚本。</li>
+<li>实现基于NeuralNet和Layer的编程模型。</li>
+<li>实现基于Worker、Server和Stub的系统架构。</li>
+<li>训练模型来自三种不同的模型类别,即前馈模型、能量模型和RNN模型。</li>
+<li>使用CPU的同步和异步分布式训练框架。</li>
+<li>checkpoint文件生成和恢复。</li>
+<li>使用gtest进行单元测试。</li>
+</ul></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/time-profiling"><span class="arrow-prev">← </span><span>Time Profiling</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/build"><span>Build SINGA from Source</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verify">Verify</a> [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.1.0_Chinese/examples.html b/content/docs/3.1.0_Chinese/examples.html
new file mode 100644
index 0000000..0ce7a6e
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/examples.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Examples · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/examples.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Examples</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license  [...]
+<p>本页列出了一些使用SINGA的深度学习任务示例。源代码维护在 <a href="https://github.com/apache/singa/tree/master/examples">Github</a> 上的 SINGA repo 内。对于使用SINGA Python API在CPU或单GPU上运行的例子,它们也可以在<a href="https://colab.research.google.com/">Google Colab</a>上获得。你可以直接在谷歌云上运行它们,而无需在本地设置环境。下面给出了每个例子的链接。</p>
+<h2><a class="anchor" aria-hidden="true" id="图像分类"></a><a href="#图像分类" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>网络模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Simple CNN</td><td>MNIST, CIFAR10, CIFAR100</td><td><a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">Colab</a></td></tr>
+<tr><td>AlexNet</td><td>ImageNet</td><td><a href="">Cpp</a></td></tr>
+<tr><td>VGG</td><td>ImageNet</td><td><a href="">Cpp</a>, <a href="">Python</a>, <a href="https://colab.research.google.com/drive/14kxgRKtbjPCKKsDJVNi3AvTev81Gp_Ds">Colab</a></td></tr>
+<tr><td>XceptionNet</td><td>MNIST, CIFAR10, CIFAR100</td><td><a href="">Python</a></td></tr>
+<tr><td>ResNet</td><td>MNIST, CIFAR10, CIFAR100, CIFAR10</td><td><a href="">Python</a>, <a href="https://colab.research.google.com/drive/1u1RYefSsVbiP4I-5wiBKHjsT9L0FxLm9">Colab</a></td></tr>
+<tr><td>MobileNet</td><td>ImageNet</td><td><a href="https://colab.research.google.com/drive/1HsixqJMIpKyEPhkbB8jy7NwNEFEAUWAf">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="目标检测"></a><a href="#目标检测" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>网络模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Tiny YOLOv2</td><td>Pascal VOC</td><td><a href="https://colab.research.google.com/drive/11V4I6cRjIJNUv5ZGsEGwqHuoQEie6b1T">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="面部及表情识别"></a><a href="#面部及表情识别" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>ArcFace</td><td>Refined MS-Celeb-1M</td><td><a href="https://colab.research.google.com/drive/1qanaqUKGIDtifdzEzJOHjEj4kYzA9uJC">Colab</a></td></tr>
+<tr><td>Emotion FerPlus</td><td><a href="https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data">Facial Expression Recognition Challenge</a></td><td><a href="https://colab.research.google.com/drive/1XHtBQGRhe58PDi4LGYJzYueWBeWbO23r">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="图像生成"></a><a href="#图像生成" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>GAN</td><td>MNIST</td><td><a href="https://colab.research.google.com/drive/1f86MNDW47DJqHoIqWD1tOxcyx2MWys8L">Colab</a></td></tr>
+<tr><td>LSGAN</td><td>MNIST</td><td><a href="https://colab.research.google.com/drive/1C6jNRf28vnFOI9JVM4lpkJPqxsnhxdol">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="机器理解"></a><a href="#机器理解" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Bert-Squad</td><td><a href="https://rajpurkar.github.io/SQuAD-explorer/explore/1.1/dev/">SQuAD v1.1</a></td><td><a href="https://colab.research.google.com/drive/1kud-lUPjS_u-TkDAzihBTw0Vqr0FjCE-">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="文字识别"></a><a href="#文字识别" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Simple LSTM</td><td>IMDB</td><td><a href="">python</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="文本排序"></a><a href="#文本排序" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>BiLSTM</td><td>InsuranceQA</td><td><a href="">python</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="其他"></a><a href="#其他" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<ul>
+<li>MNIST数据集的有限玻尔兹曼机, <a href="">source</a>,
+<a href="https://colab.research.google.com/drive/19996noGu9JyHHkVmp4edBGu7PJSRQKsd">Colab</a>.</li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 18/09/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/software-stack"><span class="arrow-prev">← </span><span>Software Stack</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/device"><span>Device</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#图像分类">图像分类</a></li><li><a href="#目 [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.1.0_Chinese/examples/index.html b/content/docs/3.1.0_Chinese/examples/index.html
new file mode 100644
index 0000000..0ce7a6e
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/examples/index.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Examples · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright owners [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/examples.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Examples</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license  [...]
+<p>本页列出了一些使用SINGA的深度学习任务示例。源代码维护在 <a href="https://github.com/apache/singa/tree/master/examples">Github</a> 上的 SINGA repo 内。对于使用SINGA Python API在CPU或单GPU上运行的例子,它们也可以在<a href="https://colab.research.google.com/">Google Colab</a>上获得。你可以直接在谷歌云上运行它们,而无需在本地设置环境。下面给出了每个例子的链接。</p>
+<h2><a class="anchor" aria-hidden="true" id="图像分类"></a><a href="#图像分类" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>网络模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Simple CNN</td><td>MNIST, CIFAR10, CIFAR100</td><td><a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">Colab</a></td></tr>
+<tr><td>AlexNet</td><td>ImageNet</td><td><a href="">Cpp</a></td></tr>
+<tr><td>VGG</td><td>ImageNet</td><td><a href="">Cpp</a>, <a href="">Python</a>, <a href="https://colab.research.google.com/drive/14kxgRKtbjPCKKsDJVNi3AvTev81Gp_Ds">Colab</a></td></tr>
+<tr><td>XceptionNet</td><td>MNIST, CIFAR10, CIFAR100</td><td><a href="">Python</a></td></tr>
+<tr><td>ResNet</td><td>MNIST, CIFAR10, CIFAR100, CIFAR10</td><td><a href="">Python</a>, <a href="https://colab.research.google.com/drive/1u1RYefSsVbiP4I-5wiBKHjsT9L0FxLm9">Colab</a></td></tr>
+<tr><td>MobileNet</td><td>ImageNet</td><td><a href="https://colab.research.google.com/drive/1HsixqJMIpKyEPhkbB8jy7NwNEFEAUWAf">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="目标检测"></a><a href="#目标检测" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>网络模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Tiny YOLOv2</td><td>Pascal VOC</td><td><a href="https://colab.research.google.com/drive/11V4I6cRjIJNUv5ZGsEGwqHuoQEie6b1T">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="面部及表情识别"></a><a href="#面部及表情识别" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>ArcFace</td><td>Refined MS-Celeb-1M</td><td><a href="https://colab.research.google.com/drive/1qanaqUKGIDtifdzEzJOHjEj4kYzA9uJC">Colab</a></td></tr>
+<tr><td>Emotion FerPlus</td><td><a href="https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data">Facial Expression Recognition Challenge</a></td><td><a href="https://colab.research.google.com/drive/1XHtBQGRhe58PDi4LGYJzYueWBeWbO23r">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="图像生成"></a><a href="#图像生成" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>GAN</td><td>MNIST</td><td><a href="https://colab.research.google.com/drive/1f86MNDW47DJqHoIqWD1tOxcyx2MWys8L">Colab</a></td></tr>
+<tr><td>LSGAN</td><td>MNIST</td><td><a href="https://colab.research.google.com/drive/1C6jNRf28vnFOI9JVM4lpkJPqxsnhxdol">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="机器理解"></a><a href="#机器理解" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Bert-Squad</td><td><a href="https://rajpurkar.github.io/SQuAD-explorer/explore/1.1/dev/">SQuAD v1.1</a></td><td><a href="https://colab.research.google.com/drive/1kud-lUPjS_u-TkDAzihBTw0Vqr0FjCE-">Colab</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="文字识别"></a><a href="#文字识别" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>Simple LSTM</td><td>IMDB</td><td><a href="">python</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="文本排序"></a><a href="#文本排序" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<table>
+<thead>
+<tr><th>模型</th><th>数据集</th><th>链接</th></tr>
+</thead>
+<tbody>
+<tr><td>BiLSTM</td><td>InsuranceQA</td><td><a href="">python</a></td></tr>
+</tbody>
+</table>
+<h2><a class="anchor" aria-hidden="true" id="其他"></a><a href="#其他" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<ul>
+<li>MNIST数据集的有限玻尔兹曼机, <a href="">source</a>,
+<a href="https://colab.research.google.com/drive/19996noGu9JyHHkVmp4edBGu7PJSRQKsd">Colab</a>.</li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 18/09/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/software-stack"><span class="arrow-prev">← </span><span>Software Stack</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/device"><span>Device</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#图像分类">图像分类</a></li><li><a href="#目 [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.1.0_Chinese/git-workflow.html b/content/docs/3.1.0_Chinese/git-workflow.html
new file mode 100644
index 0000000..d681e25
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/git-workflow.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Git Workflow · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ow [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/git-workflow.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Git Workflow</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor  [...]
+<h2><a class="anchor" aria-hidden="true" id="对于开发者"></a><a href="#对于开发者" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<ol>
+<li><p>将<a href="https://github.com/apache/singa">SINGA Github repository</a> fork到你自己的Github账户。</p></li>
+<li><p>从你自己的git仓库中clone <strong>repo</strong> (short for repository):</p>
+<pre><code class="hljs css language-shell">git clone https://github.com/&lt;Github account&gt;/singa.git
+git remote add upstream https://github.com/apache/singa.git
+</code></pre></li>
+<li><p>创建一个新的分支(例如 <code>feature-foo</code> 或 <code>fixbug-foo</code>),在这个分支上工作并提交你的代码:</p>
+<pre><code class="hljs css language-shell">git checkout dev
+git checkout -b feature-foo
+<span class="hljs-meta">#</span><span class="bash"> write your code</span>
+git add &lt;created/updated files&gt;
+git commit
+</code></pre>
+<p>commit信息应包括:</p>
+<ul>
+<li>一个概括性的标题。</li>
+<li>详细的描述。如果提交是为了修复bug,描述中最好包括问题的简短复现;如果是新功能,可以描述新功能的动机/目的。</li>
+</ul>
+<p>如果您的分支有很多小的commit,您需要通过:</p>
+<pre><code class="hljs css language-shell">git rebase -i &lt;commit id&gt;
+</code></pre>
+<p>你可以<a href="https://help.github.com/en/articles/about-git-rebase">压制和重写</a>提交的内容。</p></li>
+<li><p>当你在写代码的时候,SINGA的<code>dev</code>分支可能已经被别人更新了;在这种情况下,你需要拉取最新的<code>dev</code>分支:</p>
+<pre><code class="hljs css language-shell">git checkout dev
+git pull upstream dev:dev
+</code></pre></li>
+<li><p>将<code>feature-foo</code> <a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">rebase</a>到<code>dev</code>分支上,并将提交的内容推送到自己的Github账户(你刚刚创建的新分支),rebase操作是为了清理提交历史。提交当前工作后,应执行以下 git 指令:</p>
+<pre><code class="hljs css language-shell">git checkout feature-foo
+git rebase dev
+git push origin feature-foo:feature-foo
+</code></pre>
+<p>Rebase命令的<a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">操作步骤</a>如下: &quot;这个操作的工作原理是进入到两个分支(你所在的分支和你要rebase的分支)的共同来源 -&gt; 获取你所在分支的每次commit所引入的差异 -&gt; 将这些差异保存到临时文件中 -&gt; 将当前分支重置为与你要rebase的分支相同的commit -&gt; 最后依次修改每个差异。&quot;</p>
+<p>因此,执行后,你还是在特性分支上,但你自己的提交ID/hash被改变了,因为diffs是在rebase时提交的;而且你的分支现在有来自<code>dev</code>分支和你自己分支的最新代码。</p></li>
+<li><p>在 Github 网站上创建一个针对 apache/singa <code>dev</code>分支的pull request(PR)。如果你想通知其他在相同文件上工作过的贡献者,你可以在Github上找到文件,然后点击 &quot;Blame&quot;,就可以看到最后修改代码的人的逐行注释。然后,你可以在PR描述中加上@username,就可以立即ping到他们。请说明该贡献是你的原创作品,并且你在项目的开源许可下将该作品授权给项目。你的新分支的进一步提交(例如,bug修复)将由Github自动添加到这个pull request中。</p></li>
+<li><p>接下来等待committer审核PR。在这段时间里,SINGA的<code>dev</code>可能已经被其他人更新了,这时你需要<a href="https://docs.fast.ai/dev/git.html#how-to-keep-your-feature-branch-up-to-date">合并</a>最新的<code>dev</code>来解决冲突。有些人将PR重新<a href="https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request">rebase到最新的dev</a>上,而不是合并。但是,如果其他开发者获取这个PR来添加新的功能,然后再发送PR,那么rebase操作会在未来的PR中引入<strong>重复的提交</strong>(不同的哈希)。关于何时避免使用rebase的细节,请参见<a href="https://www.atlassian.com/git/tutorials/merging-vs-rebasing">The Golden Rule  [...]
+</ol>
+<h2><a class="anchor" aria-hidden="true" id="对于committers"></a><a href="#对于committers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>Committer可以将PR合并到上游 repo 的 dev 分支。在合并每一个PR之前,提交者应该做到:</p>
+<ul>
+<li>检查commit信息(内容和格式)</li>
+<li>检查对现有代码的修改,API的变化应该被记录下来</li>
+<li>检查Travis测试结果,检查代码/文档格式和单元测试。</li>
+</ul>
+<p>合并PR的方式有两种:</p>
+<ul>
+<li><p>在Github上,按照<a href="https://gitbox.apache.org/setup/">说明</a>将你的Apache账户与Github账户链接,之后你就可以直接在GitHub上合并PR了。</p></li>
+<li><p>通过命令行合并pull request到<a href="https://github.com/apache/singa/pull/xxx">https://github.com/apache/singa/pull/xxx</a>,应执行以下指令:</p>
+<pre><code class="hljs css language-shell">git clone https://github.com/apache/singa.git
+git remote add asf https://gitbox.apache.org/repos/asf/singa.git
+git fetch origin pull/xxx/head:prxxx
+git checkout dev
+git merge --no-ff prxxx
+git push asf dev:dev
+</code></pre>
+<p>不要使用rebase来合并PR,并禁用fast forward。</p></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/how-to-release"><span class="arrow-prev">← </span><span>How to Prepare a Release</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#对于开发者">对于开发者</a></li><li><a href="#对于committers">对于Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="s [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/3.1.0_Chinese/git-workflow/index.html b/content/docs/3.1.0_Chinese/git-workflow/index.html
new file mode 100644
index 0000000..d681e25
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/git-workflow/index.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Git Workflow · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ow [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/git-workflow.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Git Workflow</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor  [...]
+<h2><a class="anchor" aria-hidden="true" id="对于开发者"></a><a href="#对于开发者" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<ol>
+<li><p>将<a href="https://github.com/apache/singa">SINGA Github repository</a> fork到你自己的Github账户。</p></li>
+<li><p>从你自己的git仓库中clone <strong>repo</strong> (short for repository):</p>
+<pre><code class="hljs css language-shell">git clone https://github.com/&lt;Github account&gt;/singa.git
+git remote add upstream https://github.com/apache/singa.git
+</code></pre></li>
+<li><p>创建一个新的分支(例如 <code>feature-foo</code> 或 <code>fixbug-foo</code>),在这个分支上工作并提交你的代码:</p>
+<pre><code class="hljs css language-shell">git checkout dev
+git checkout -b feature-foo
+<span class="hljs-meta">#</span><span class="bash"> write your code</span>
+git add &lt;created/updated files&gt;
+git commit
+</code></pre>
+<p>commit信息应包括:</p>
+<ul>
+<li>一个概括性的标题。</li>
+<li>详细的描述。如果提交是为了修复bug,描述中最好包括问题的简短复现;如果是新功能,可以描述新功能的动机/目的。</li>
+</ul>
+<p>如果您的分支有很多小的commit,您需要通过:</p>
+<pre><code class="hljs css language-shell">git rebase -i &lt;commit id&gt;
+</code></pre>
+<p>你可以<a href="https://help.github.com/en/articles/about-git-rebase">压制和重写</a>提交的内容。</p></li>
+<li><p>当你在写代码的时候,SINGA的<code>dev</code>分支可能已经被别人更新了;在这种情况下,你需要拉取最新的<code>dev</code>分支:</p>
+<pre><code class="hljs css language-shell">git checkout dev
+git pull upstream dev:dev
+</code></pre></li>
+<li><p>将<code>feature-foo</code> <a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">rebase</a>到<code>dev</code>分支上,并将提交的内容推送到自己的Github账户(你刚刚创建的新分支),rebase操作是为了清理提交历史。提交当前工作后,应执行以下 git 指令:</p>
+<pre><code class="hljs css language-shell">git checkout feature-foo
+git rebase dev
+git push origin feature-foo:feature-foo
+</code></pre>
+<p>Rebase命令的<a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">操作步骤</a>如下: &quot;这个操作的工作原理是进入到两个分支(你所在的分支和你要rebase的分支)的共同来源 -&gt; 获取你所在分支的每次commit所引入的差异 -&gt; 将这些差异保存到临时文件中 -&gt; 将当前分支重置为与你要rebase的分支相同的commit -&gt; 最后依次修改每个差异。&quot;</p>
+<p>因此,执行后,你还是在特性分支上,但你自己的提交ID/hash被改变了,因为diffs是在rebase时提交的;而且你的分支现在有来自<code>dev</code>分支和你自己分支的最新代码。</p></li>
+<li><p>在 Github 网站上创建一个针对 apache/singa <code>dev</code>分支的pull request(PR)。如果你想通知其他在相同文件上工作过的贡献者,你可以在Github上找到文件,然后点击 &quot;Blame&quot;,就可以看到最后修改代码的人的逐行注释。然后,你可以在PR描述中加上@username,就可以立即ping到他们。请说明该贡献是你的原创作品,并且你在项目的开源许可下将该作品授权给项目。你的新分支的进一步提交(例如,bug修复)将由Github自动添加到这个pull request中。</p></li>
+<li><p>接下来等待committer审核PR。在这段时间里,SINGA的<code>dev</code>可能已经被其他人更新了,这时你需要<a href="https://docs.fast.ai/dev/git.html#how-to-keep-your-feature-branch-up-to-date">合并</a>最新的<code>dev</code>来解决冲突。有些人将PR重新<a href="https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request">rebase到最新的dev</a>上,而不是合并。但是,如果其他开发者获取这个PR来添加新的功能,然后再发送PR,那么rebase操作会在未来的PR中引入<strong>重复的提交</strong>(不同的哈希)。关于何时避免使用rebase的细节,请参见<a href="https://www.atlassian.com/git/tutorials/merging-vs-rebasing">The Golden Rule  [...]
+</ol>
+<h2><a class="anchor" aria-hidden="true" id="对于committers"></a><a href="#对于committers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>Committer可以将PR合并到上游 repo 的 dev 分支。在合并每一个PR之前,提交者应该做到:</p>
+<ul>
+<li>检查commit信息(内容和格式)</li>
+<li>检查对现有代码的修改,API的变化应该被记录下来</li>
+<li>检查Travis测试结果,检查代码/文档格式和单元测试。</li>
+</ul>
+<p>合并PR的方式有两种:</p>
+<ul>
+<li><p>在Github上,按照<a href="https://gitbox.apache.org/setup/">说明</a>将你的Apache账户与Github账户链接,之后你就可以直接在GitHub上合并PR了。</p></li>
+<li><p>通过命令行合并pull request到<a href="https://github.com/apache/singa/pull/xxx">https://github.com/apache/singa/pull/xxx</a>,应执行以下指令:</p>
+<pre><code class="hljs css language-shell">git clone https://github.com/apache/singa.git
+git remote add asf https://gitbox.apache.org/repos/asf/singa.git
+git fetch origin pull/xxx/head:prxxx
+git checkout dev
+git merge --no-ff prxxx
+git push asf dev:dev
+</code></pre>
+<p>不要使用rebase来合并PR,并禁用fast forward。</p></li>
+</ul>
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 09/11/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/how-to-release"><span class="arrow-prev">← </span><span>How to Prepare a Release</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#对于开发者">对于开发者</a></li><li><a href="#对于committers">对于Committers</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="s [...]
+   The Apache Software Foundation. All rights reserved.
+   Apache SINGA, Apache, the Apache feather logo, and
+   the Apache SINGA project logos are trademarks of The
+   Apache Software Foundation. All other marks mentioned
+   may be trademarks or registered trademarks of their
+   respective owners.</section></div></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter- [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '45202133606c0b5fa6d21cddc4725dd8',
+                indexName: 'apache_singa',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {"facetFilters":["language:en","version:3.0.0"]}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/content/docs/graph.html b/content/docs/3.1.0_Chinese/graph.html
similarity index 54%
copy from content/docs/graph.html
copy to content/docs/3.1.0_Chinese/graph.html
index 67407ad..a8bf9a7 100644
--- a/content/docs/graph.html
+++ b/content/docs/3.1.0_Chinese/graph.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Model · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership. [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Model · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership. [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -61,28 +61,12 @@
               }
             });
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/graph.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Model</h1></header><article><div><span><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreeme [...]
-<p>The forward and backward propagation in a neural network can be represented
-using a set of operations such as convolution and pooling. Each operation takes
-some input <a href="./tensor">tensors</a> and applies an <a href="./autograd">operator</a> to generate
-output tensors. By representing each operator as a node and each tensor as an
-edge, all operations form a computational graph. With the computational graph,
-speed and memory optimization can be conducted by scheduling the execution of
-the operations and memory allocation/release intelligently. In SINGA, users only
-need to define the neural network model using the
-<a href="https://github.com/apache/singa/blob/master/python/singa/model.py">Model</a> API.
-The graph is constructed and optimized at the C++ backend automatically.</p>
-<p>In this way, on the one hand, users implement a network using the
-<a href="./graph">Model</a> API following the imperative programming style like PyTorch.
-Different from PyTorch which recreates the operations in every iteration, SINGA
-buffers the operations to create a computational graph implicitly (when this
-feature is enabled) after the first iteration. Therefore, on the other hand,
-SINGA has a similar computational graph as the one created by libraries using
-declarative programming, e.g., TensorFlow. Consequently, it can enjoy the
-optimizations done over the graph.</p>
-<h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>The following code illustrates the usage of the <code>Model</code> API.</p>
+<p>神经网络中的前向和反向传播可以用一组操作来表示,比如卷积和池化。每个操作都需要一些输入的<a href="./tensor">tensors</a>,并应用一个<a href="./autograd">operator</a>来生成输出的张量。通过将每个运算符表示为一个节点,将每个张量表示为一条边,所有的运算就形成了一个计算图。有了计算图,可以通过调度运算的执行和内存的智能分配/释放来进行速度和内存优化。在SINGA中,用户只需要使用<a href="https://github.com/apache/singa/blob/master/python/singa/model.py">Model</a> API定义神经网络模型,计算图则会在C++后台自动构建和优化。</p>
+<p>这样,一方面,用户使用<a href="./graph">Model</a> API按照PyTorch那样的命令式编程风格实现网络。而与PyTorch在每次迭代中重新创建操作不同的是,SINGA在第一次迭代后就会缓冲操作,隐式地创建计算图(当该功能被启用时)。因此,另一方面,SINGA的计算图与使用声明式编程的库(如TensorFlow)创建的计算图类似,因而它可以享受在图上进行的优化。</p>
+<h2><a class="anchor" aria-hidden="true" id="样例"></a><a href="#样例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>下面的代码说明了<code>Model</code>API的用法:</p>
 <ol>
-<li>Implement the new model as a subclass of the Model class.</li>
+<li>将新模型实现为Model类的子类:</li>
 </ol>
 <pre><code class="hljs css language-Python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">CNN</span><span class="hljs-params">(model.Model)</span>:</span>
 
@@ -116,7 +100,7 @@ optimizations done over the graph.</p>
         <span class="hljs-keyword">return</span> out, loss
 </code></pre>
 <ol start="2">
-<li>Create an instance of model, optimizer, device, etc. Compile the model</li>
+<li>创建model、optimizer、device等的实例。编译模型:</li>
 </ol>
 <pre><code class="hljs css language-python">model = CNN()
 
@@ -135,7 +119,7 @@ ty = tensor.Tensor((batch_size, num_classes), dev, tensor.int32)
 model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=<span class="hljs-literal">True</span>, sequential=<span class="hljs-literal">False</span>)
 </code></pre>
 <ol start="3">
-<li>Train the model iteratively</li>
+<li>迭代训练:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">for</span> b <span class="hljs-keyword">in</span> range(num_train_batch):
     <span class="hljs-comment"># generate the next mini-batch</span>
@@ -148,26 +132,22 @@ model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=<
     <span class="hljs-comment"># Training with one batch</span>
     out, loss = model(tx, ty)
 </code></pre>
-<p>A Google Colab notebook of this example is available
-<a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">here</a>.</p>
-<p>More examples:</p>
+<p>这个例子的Google Colab notebook可以在<a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">这里</a>找到。</p>
+<p>更多例子:</p>
 <ul>
 <li><a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP</a></li>
 <li><a href="https://github.com/apache/singa/blob/master/examples/cnn/model/cnn.py">CNN</a></li>
 <li><a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">ResNet</a></li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="implementation"></a><a href="#implementation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<h3><a class="anchor" aria-hidden="true" id="graph-construction"></a><a href="#graph-construction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<p>SINGA constructs the computational graph in three steps:</p>
+<h2><a class="anchor" aria-hidden="true" id="实现"></a><a href="#实现" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<h3><a class="anchor" aria-hidden="true" id="图的构建"></a><a href="#图的构建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>SINGA分三步构建计算图:</p>
 <ol>
-<li>buffer the operations</li>
-<li>analyze the dependencies operations</li>
-<li>create the nodes and edges based on the dependencies</li>
+<li>将操作保存在缓冲区。</li>
+<li>分析操作的依赖性。</li>
+<li>根据依赖关系创建节点和边。</li>
 </ol>
-<p>Take the matrix multiplication operation from the dense layer of a
-<a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP model</a>
-as an example. The operation is called in the <code>forward</code> function of the MLP
-class</p>
+<p>以MLP模型的dense层的矩阵乘法运算为例,该操作会在<a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP model</a>的前向函数中被调用:</p>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MLP</span><span class="hljs-params">(model.Model)</span>:</span>
 
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, data_size=<span class="hljs-number">10</span>, perceptron_size=<span class="hljs-number">100</span>, num_classes=<span class="hljs-number">10</span>)</span>:</span>
@@ -179,14 +159,14 @@ class</p>
         y = self.linear1(inputs)
         ...
 </code></pre>
-<p>The <code>Linear</code> layer is composed of the <code>mutmul</code> operator. <code>autograd</code> implements
-the <code>matmul</code> operator by calling the function <code>Mult</code> exposed from CPP via SWIG.</p>
+<p><code>线性</code>层由<code>mutmul</code>运算符组成,<code>autograd</code>通过SWIG调用CPP中提供的<code>Mult</code>函数来实现<code>matmul</code>运算符。</p>
 <pre><code class="hljs css language-python"><span class="hljs-comment"># implementation of matmul()</span>
 singa.Mult(inputs, w)
 </code></pre>
 <p>At the backend, the <code>Mult</code> function is implemented by calling <code>GEMV</code> a CBLAS
 function. Instead of calling <code>GEMV</code> directly, <code>Mult</code> submits <code>GEMV</code> and the
-arguments to the device as follows,</p>
+arguments to the device as follows,
+在后端,<code>Mult</code>函数是通过调用<code>GEMV</code>一个CBLAS函数来实现的。但<code>Mult</code>没有直接调用<code>GEMV</code>,而是将<code>GEMV</code>和参数提交给设备,具体如下。</p>
 <pre><code class="hljs css language-c++"><span class="hljs-comment">// implementation of Mult()</span>
 C-&gt;device()-&gt;Exec(
     [a, A, b, B, CRef](Context *ctx) <span class="hljs-keyword">mutable</span> {
@@ -194,56 +174,19 @@ C-&gt;device()-&gt;Exec(
     },
     read_blocks, {C-&gt;block()});
 </code></pre>
-<p>The <code>Exec</code> function of <code>Device</code> buffers the function and its arguments. In
-addition, it also has the information about the blocks (a block is a chunk of
-memory for a tensor) to be read and written by this function.</p>
-<p>Once <code>Model.forward()</code> has been executed once, all operations are buffered by
-<code>Device</code>. Next, the read/write information of all operations are analyzed to
-create the computational graph. For example, if a block <code>b</code> is written by one
-operation O1 and is later read by another operation O2, we would know O2 depends
-on O1 and there is a directed edge from A to B, which represents block <code>b</code> (or
-its tensor). After that a directed acyclic graph is constructed as shown below.
-The graph is constructed once.</p>
+<p><code>Device</code>的<code>Exec</code>函数对函数及其参数进行缓冲。此外,它还拥有这个函数要读写的块的信息(块是指张量的内存块)。</p>
+<p>一旦<code>Model.forward()</code>被执行一次,所有的操作就会被<code>Device</code>缓冲。接下来,对所有操作的读写信息进行分析,用来建立计算图。例如,如果一个块<code>b</code>被一个操作O1写入,之后又被另一个操作O2读出,我们就会知道O2依赖于O1并且有一条从A到B的有向边,它代表了块<code>b</code>(或其张量)。之后我们就构建了一个有向无环图,如下图所示。该图会构建一次。</p>
 <p><img src="/docs/assets/GraphOfMLP.png" alt="The computational graph of MLP"></p>
-<p><br/><strong>Figure 1 - The computational graph of the MLP example.</strong></p>
-<h3><a class="anchor" aria-hidden="true" id="optimization"></a><a href="#optimization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>Currently, the following optimizations are done based on the computational
-graph.</p>
-<p><strong>Lazy allocation</strong> When tensor/blocks are created, devices do not allocate
-memory for them immediately. Instead, when the block is accessed for the first
-time, the memory is allocated.</p>
-<p><strong>Automatic recycling</strong> The reference count of each tensor/block is calculated
-based on the graph. Before executing the operations, the reference count is the
-number of operations that read this block. During the execution, once an
-operation is executed, the reference count of the every input block is decreased
-by 1. If one block's reference count reaches 0, it means that this block will
-not be read again in the remaining operations. Therefore, its memory can be
-released safely. In addition, SINGA tracks the usage of the block outside of the
-graph. If a block is used by Python code (not by autograd operators), it will
-not be recycled.</p>
-<p><strong>Memory sharing</strong> SINGA uses memory pool, e.g.,
-<a href="https://github.com/NVIDIA/cnmem">CnMem</a> to manage CUDA memory. With <em>Automatic
-recycling</em> and memory pool, SINGA can share the memory among tensors. Consider
-two operations <code>c = a + b</code> and <code>d=2xc</code>. Before executing the second operation,
-according to <em>Lazy allocation</em>, the memory of d should be allocated. Suppose <code>a</code>
-is not used in the rest operations. According to Automatic recycling, the block
-of <code>a</code> will be released after the first operation. Therefore, SINGA would submit
-four operations to the CUDA stream: addition, free <code>a</code>, malloc <code>b</code>, and
-multiplication. The memory pool is then able to share the memory released by <code>a</code>
-with <code>b</code> instead of ask the GPU to do real malloc for <code>b</code>.</p>
-<p>Other optimization techniques e.g., from compliers, such as common
-sub-expression elimination and parallelizing operations on different CUDA
-streams can also be applied.</p>
-<h2><a class="anchor" aria-hidden="true" id="new-operator"></a><a href="#new-operator" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>Each operator defined in <code>autograd</code> module implements two functions: forward and
-backward, which are implemented by calling the operators from the backend. To
-add a new operator in <code>autograd</code>, you need to add the multiple operators at the
-backend.</p>
-<p>Take the
-<a href="https://github.com/apache/singa/blob/master/python/singa/autograd.py">Conv2d</a>
-operator as an example, at the Python side, the forward and backward function
-are implemented by calling the operators from the backend depending on the
-device type.</p>
+<p><br/><strong>Figure 1 - MLP例子的计算图</strong></p>
+<h3><a class="anchor" aria-hidden="true" id="优化"></a><a href="#优化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>目前,基于计算图进行了以下优化:</p>
+<p><strong>惰性分配</strong> 当创建张量/块时,设备不会立即为它们分配内存。相反,是在第一次访问块时,才会分配内存。</p>
+<p><strong>自动回收</strong>  每个张量/块的参考计数是根据图计算出来的。在执行操作之前,参考计数是读取这个块的操作次数。在执行过程中,一旦执行了一个操作,每一个输入块的参考数就会减少1,如果一个块的参考数达到了0,就意味着这个块在剩下的操作中不会再被读取。因此,它的内存可以被安全释放。此外,SINGA还会跟踪图外的块的使用情况。如果一个块被Python代码使用(而不是被autograd操作符使用),它将不会被回收。</p>
+<p><strong>内存共享</strong>  SINGA使用内存池,如<a href="https://github.com/NVIDIA/cnmem">CnMem</a>来管理CUDA内存。有了自动回收和内存池,SINGA就可以在张量之间共享内存。考虑两个操作<code>c=a+b</code>和<code>d=2xc</code>。在执行第二个操作之前,根据惰性分配原则,应该分配d的内存。假设<code>a</code>在其余操作中没有使用。根据自动回收,<code>a</code>的块将在第一次操作后被释放。因此,SINGA会向CUDA流提交四个操作:加法、释放<code>a</code>、分配<code>b</code>和乘法。这样,内存池就可以将<code>a</code>释放的内存与<code>b</code>共享,而不是要求GPU为<code>b</code>做真正的malloc。</p>
+<p>其他的优化技术,如来自编译器的优化技术,如常见的子表达式消除和不同CUDA流上的并行化操作也可以应用。</p>
+<h2><a class="anchor" aria-hidden="true" id="新的操作符"></a><a href="#新的操作符" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p><code>autograd</code>模块中定义的每个运算符都实现了两个功能:前向和反向,通过在后台调用运算符来实现。如果要在<code>autograd</code>中添加一个新的运算符,需要在后台添加多个运算符。</p>
+<p>以<a href="https://github.com/apache/singa/blob/master/python/singa/autograd.py">Conv2d</a>运算符为例,在Python端,根据设备类型,从后台调用运算符来实现前向和反向功能:</p>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">_Conv2d</span><span class="hljs-params">(Operation)</span>:</span>
 
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">forward</span><span class="hljs-params">(self, x, W, b=None)</span>:</span>
@@ -281,27 +224,17 @@ device type.</p>
         <span class="hljs-keyword">else</span>:
             <span class="hljs-keyword">return</span> dx, dW
 </code></pre>
-<p>For each operator at the backend, it should be implemented in the following way:</p>
+<p>对于后台的每一个操作符,应按以下方式实现:</p>
 <ul>
-<li><p>Suppose the operator is <code>foo()</code>; its real implementation should be wrapped in
-another function e.g., <code>_foo()</code>. <code>foo()</code> passes <code>_foo</code> together with the
-arguments as a lambda function to <code>Device</code>'s <code>Exec</code> function for buffering.
-The blocks to be read and written are also passed to <code>Exec</code>.</p></li>
-<li><p>All arguments used in the lambda expression need to be captured according to
-the following rules.</p>
+<li><p>假设操作符是<code>foo()</code>,它的真正实现应该包装在另一个函数中,例如<code>_foo()</code>。<code>foo()</code>将<code>_foo</code>和参数一起作为lambda函数传递给<code>Device</code>的<code>Exec</code>函数进行缓冲,要读和写的块也同时被传递给<code>Exec</code>。</p></li>
+<li><p>lambda表达式中使用的所有参数都需要根据以下规则获取:</p>
 <ul>
-<li><p><code>capture by value</code>: If the argument variable is a local variable or will be
-immediately released (e.g. intermediate tensors). Otherwise, these variables
-will be destroyed once <code>foo()</code> exists.</p></li>
-<li><p><code>capture by reference</code>:If the variable is recorded on the python side or a
-persistent variable (e.g. parameter W and ConvHand in the Conv2d class).</p></li>
-<li><p><code>mutable</code>: The lambda expression should have the mutable tag if a variable
-captured by value is modified in <code>_foo()</code></p></li>
+<li><p><code>值捕获</code>: 如果参数变量是一个局部变量,或者将被立刻释放(例如,中间时序)。否则,一旦<code>foo()</code>存在,这些变量将被销毁。</p></li>
+<li><p><code>引用捕获</code>:如果变量是记录在python端或者是一个持久变量(例如Conv2d类中的参数W和ConvHand)。</p></li>
+<li><p><code>可变捕获</code>: 如果在<code>_foo()</code>中修改了由值捕获的变量,则lambda表达式应带有mutable(可变)标签。</p></li>
 </ul></li>
 </ul>
-<p>Here is one
-<a href="https://github.com/apache/singa/blob/master/src/model/operation/convolution.cc">example</a>
-operator implemented at the backend.</p>
+<p>下面是一个在后台实现的操作的<a href="https://github.com/apache/singa/blob/master/src/model/operation/convolution.cc">例子</a>:</p>
 <pre><code class="hljs css language-c++"><span class="hljs-function">Tensor <span class="hljs-title">GpuConvBackwardx</span><span class="hljs-params">(<span class="hljs-keyword">const</span> Tensor &amp;dy, <span class="hljs-keyword">const</span> Tensor &amp;W, <span class="hljs-keyword">const</span> Tensor &amp;x,
                         <span class="hljs-keyword">const</span> CudnnConvHandle &amp;cch)</span> </span>{
   CHECK_EQ(dy.device()-&gt;lang(), kCuda);
@@ -335,31 +268,31 @@ operator implemented at the backend.</p>
 }
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="benchmark"></a><a href="#benchmark" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<h3><a class="anchor" aria-hidden="true" id="single-node"></a><a href="#single-node" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<h3><a class="anchor" aria-hidden="true" id="单节点"></a><a href="#单节点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
-<li>Experiment settings
+<li>实验设定
 <ul>
-<li>Model
+<li>模型:
 <ul>
-<li>Using layer: ResNet50 in
+<li>使用层: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/autograd/resnet_cifar10.py">resnet.py</a></li>
-<li>Using model: ResNet50 in
+<li>使用模型: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">resnet.py</a></li>
 </ul></li>
 <li>GPU: NVIDIA RTX 2080Ti</li>
 </ul></li>
-<li>Notations
+<li>注释:
 <ul>
-<li><code>s</code> :second</li>
-<li><code>it</code> : iteration</li>
-<li><code>Mem</code>:peak memory usage of single GPU</li>
-<li><code>Throughout</code>:number of images processed per second</li>
-<li><code>Time</code>:total time</li>
-<li><code>Speed</code>:iterations per second</li>
-<li><code>Reduction</code>:the memory usage reduction rate compared with that using layer</li>
-<li><code>Speedup</code>: speedup ratio compared with dev branch</li>
+<li><code>s</code> :second,秒</li>
+<li><code>it</code> : iteration,迭代次数</li>
+<li><code>Mem</code>:peak memory usage of single GPU,单GPU显存峰值</li>
+<li><code>Throughout</code>:number of images processed per second,每秒处理的图像数</li>
+<li><code>Time</code>:total time,总时间</li>
+<li><code>Speed</code>:iterations per second。每秒迭代次数</li>
+<li><code>Reduction</code>:the memory usage reduction rate compared with that using layer,与使用层的内存使用率相比,内存使用率降低了多少</li>
+<li><code>Speedup</code>: speedup ratio compared with dev branch,与dev分支相比的加速率</li>
 </ul></li>
-<li>Result
+<li>结果:
   <table style="text-align: center">
       <tr>
           <th style="text-align: center">Batchsize</th>
@@ -448,22 +381,22 @@ operator implemented at the backend.</p>
   </table>
 </li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="multi-processes"></a><a href="#multi-processes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<h3><a class="anchor" aria-hidden="true" id="多线程"></a><a href="#多线程" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
-<li>Experiment settings
+<li>实验设置:
 <ul>
-<li>API
+<li>API:
 <ul>
-<li>using Layer: ResNet50 in
+<li>使用层: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/autograd/resnet_dist.py">resnet_dist.py</a></li>
-<li>using Model: ResNet50 in
+<li>使用模型: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">resnet.py</a></li>
 </ul></li>
 <li>GPU: NVIDIA RTX 2080Ti * 2</li>
-<li>MPI: two MPI processes on one node</li>
+<li>MPI: 在同一节点上的两个MPI processes</li>
 </ul></li>
-<li>Notations: the same as above</li>
-<li>Result
+<li>注释: 与上面相同</li>
+<li>结果:
   <table style="text-align: center">
       <tr>
           <th style="text-align: center">Batchsize</th>
@@ -552,14 +485,12 @@ operator implemented at the backend.</p>
   </table>
 </li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="conclusion"></a><a href="#conclusion" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<h3><a class="anchor" aria-hidden="true" id="结论"></a><a href="#结论" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <ul>
-<li>Training with the computational graph enabled can significantly reduce the
-memory footprint.</li>
-<li>Currently, there is a little improvement in terms of speed. More optimizations
-can be done towards the efficiency.</li>
+<li>在启用计算图的情况下进行训练,可以显著减少内存占用。</li>
+<li>目前,在速度上有一点改进。在效率方面还可以做更多的优化。</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/4/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/optimizer"><span class="arrow-prev">← </span><span>Optimizer</span></a><a class="docs-next button" href="/docs/onnx"><span>ONNX</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example">Example</a></li><li><a href="#implementation">Implementation</a><ul  [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 04/10/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/optimizer"><span class="arrow-prev">← </span><span>Optimizer</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/onnx"><span>ONNX</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#样例">样例</a></li><li><a href="#实现">实现</a><ul class [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/graph/index.html b/content/docs/3.1.0_Chinese/graph/index.html
similarity index 54%
copy from content/docs/graph/index.html
copy to content/docs/3.1.0_Chinese/graph/index.html
index 67407ad..a8bf9a7 100644
--- a/content/docs/graph/index.html
+++ b/content/docs/3.1.0_Chinese/graph/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Model · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership. [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Model · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership. [...]
         document.addEventListener('DOMContentLoaded', function() {
           addBackToTop(
             {"zIndex":100}
           )
         });
-        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-intern [...]
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -61,28 +61,12 @@
               }
             });
         </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/graph.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">Model</h1></header><article><div><span><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreeme [...]
-<p>The forward and backward propagation in a neural network can be represented
-using a set of operations such as convolution and pooling. Each operation takes
-some input <a href="./tensor">tensors</a> and applies an <a href="./autograd">operator</a> to generate
-output tensors. By representing each operator as a node and each tensor as an
-edge, all operations form a computational graph. With the computational graph,
-speed and memory optimization can be conducted by scheduling the execution of
-the operations and memory allocation/release intelligently. In SINGA, users only
-need to define the neural network model using the
-<a href="https://github.com/apache/singa/blob/master/python/singa/model.py">Model</a> API.
-The graph is constructed and optimized at the C++ backend automatically.</p>
-<p>In this way, on the one hand, users implement a network using the
-<a href="./graph">Model</a> API following the imperative programming style like PyTorch.
-Different from PyTorch which recreates the operations in every iteration, SINGA
-buffers the operations to create a computational graph implicitly (when this
-feature is enabled) after the first iteration. Therefore, on the other hand,
-SINGA has a similar computational graph as the one created by libraries using
-declarative programming, e.g., TensorFlow. Consequently, it can enjoy the
-optimizations done over the graph.</p>
-<h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>The following code illustrates the usage of the <code>Model</code> API.</p>
+<p>神经网络中的前向和反向传播可以用一组操作来表示,比如卷积和池化。每个操作都需要一些输入的<a href="./tensor">tensors</a>,并应用一个<a href="./autograd">operator</a>来生成输出的张量。通过将每个运算符表示为一个节点,将每个张量表示为一条边,所有的运算就形成了一个计算图。有了计算图,可以通过调度运算的执行和内存的智能分配/释放来进行速度和内存优化。在SINGA中,用户只需要使用<a href="https://github.com/apache/singa/blob/master/python/singa/model.py">Model</a> API定义神经网络模型,计算图则会在C++后台自动构建和优化。</p>
+<p>这样,一方面,用户使用<a href="./graph">Model</a> API按照PyTorch那样的命令式编程风格实现网络。而与PyTorch在每次迭代中重新创建操作不同的是,SINGA在第一次迭代后就会缓冲操作,隐式地创建计算图(当该功能被启用时)。因此,另一方面,SINGA的计算图与使用声明式编程的库(如TensorFlow)创建的计算图类似,因而它可以享受在图上进行的优化。</p>
+<h2><a class="anchor" aria-hidden="true" id="样例"></a><a href="#样例" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>下面的代码说明了<code>Model</code>API的用法:</p>
 <ol>
-<li>Implement the new model as a subclass of the Model class.</li>
+<li>将新模型实现为Model类的子类:</li>
 </ol>
 <pre><code class="hljs css language-Python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">CNN</span><span class="hljs-params">(model.Model)</span>:</span>
 
@@ -116,7 +100,7 @@ optimizations done over the graph.</p>
         <span class="hljs-keyword">return</span> out, loss
 </code></pre>
 <ol start="2">
-<li>Create an instance of model, optimizer, device, etc. Compile the model</li>
+<li>创建model、optimizer、device等的实例。编译模型:</li>
 </ol>
 <pre><code class="hljs css language-python">model = CNN()
 
@@ -135,7 +119,7 @@ ty = tensor.Tensor((batch_size, num_classes), dev, tensor.int32)
 model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=<span class="hljs-literal">True</span>, sequential=<span class="hljs-literal">False</span>)
 </code></pre>
 <ol start="3">
-<li>Train the model iteratively</li>
+<li>迭代训练:</li>
 </ol>
 <pre><code class="hljs css language-python"><span class="hljs-keyword">for</span> b <span class="hljs-keyword">in</span> range(num_train_batch):
     <span class="hljs-comment"># generate the next mini-batch</span>
@@ -148,26 +132,22 @@ model.compile([tx], is_train=<span class="hljs-literal">True</span>, use_graph=<
     <span class="hljs-comment"># Training with one batch</span>
     out, loss = model(tx, ty)
 </code></pre>
-<p>A Google Colab notebook of this example is available
-<a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">here</a>.</p>
-<p>More examples:</p>
+<p>这个例子的Google Colab notebook可以在<a href="https://colab.research.google.com/drive/1fbGUs1AsoX6bU5F745RwQpohP4bHTktq">这里</a>找到。</p>
+<p>更多例子:</p>
 <ul>
 <li><a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP</a></li>
 <li><a href="https://github.com/apache/singa/blob/master/examples/cnn/model/cnn.py">CNN</a></li>
 <li><a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">ResNet</a></li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="implementation"></a><a href="#implementation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<h3><a class="anchor" aria-hidden="true" id="graph-construction"></a><a href="#graph-construction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<p>SINGA constructs the computational graph in three steps:</p>
+<h2><a class="anchor" aria-hidden="true" id="实现"></a><a href="#实现" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<h3><a class="anchor" aria-hidden="true" id="图的构建"></a><a href="#图的构建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>SINGA分三步构建计算图:</p>
 <ol>
-<li>buffer the operations</li>
-<li>analyze the dependencies operations</li>
-<li>create the nodes and edges based on the dependencies</li>
+<li>将操作保存在缓冲区。</li>
+<li>分析操作的依赖性。</li>
+<li>根据依赖关系创建节点和边。</li>
 </ol>
-<p>Take the matrix multiplication operation from the dense layer of a
-<a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP model</a>
-as an example. The operation is called in the <code>forward</code> function of the MLP
-class</p>
+<p>以MLP模型的dense层的矩阵乘法运算为例,该操作会在<a href="https://github.com/apache/singa/blob/master/examples/mlp/model.py">MLP model</a>的前向函数中被调用:</p>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MLP</span><span class="hljs-params">(model.Model)</span>:</span>
 
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, data_size=<span class="hljs-number">10</span>, perceptron_size=<span class="hljs-number">100</span>, num_classes=<span class="hljs-number">10</span>)</span>:</span>
@@ -179,14 +159,14 @@ class</p>
         y = self.linear1(inputs)
         ...
 </code></pre>
-<p>The <code>Linear</code> layer is composed of the <code>mutmul</code> operator. <code>autograd</code> implements
-the <code>matmul</code> operator by calling the function <code>Mult</code> exposed from CPP via SWIG.</p>
+<p><code>线性</code>层由<code>mutmul</code>运算符组成,<code>autograd</code>通过SWIG调用CPP中提供的<code>Mult</code>函数来实现<code>matmul</code>运算符。</p>
 <pre><code class="hljs css language-python"><span class="hljs-comment"># implementation of matmul()</span>
 singa.Mult(inputs, w)
 </code></pre>
 <p>At the backend, the <code>Mult</code> function is implemented by calling <code>GEMV</code> a CBLAS
 function. Instead of calling <code>GEMV</code> directly, <code>Mult</code> submits <code>GEMV</code> and the
-arguments to the device as follows,</p>
+arguments to the device as follows,
+在后端,<code>Mult</code>函数是通过调用<code>GEMV</code>一个CBLAS函数来实现的。但<code>Mult</code>没有直接调用<code>GEMV</code>,而是将<code>GEMV</code>和参数提交给设备,具体如下。</p>
 <pre><code class="hljs css language-c++"><span class="hljs-comment">// implementation of Mult()</span>
 C-&gt;device()-&gt;Exec(
     [a, A, b, B, CRef](Context *ctx) <span class="hljs-keyword">mutable</span> {
@@ -194,56 +174,19 @@ C-&gt;device()-&gt;Exec(
     },
     read_blocks, {C-&gt;block()});
 </code></pre>
-<p>The <code>Exec</code> function of <code>Device</code> buffers the function and its arguments. In
-addition, it also has the information about the blocks (a block is a chunk of
-memory for a tensor) to be read and written by this function.</p>
-<p>Once <code>Model.forward()</code> has been executed once, all operations are buffered by
-<code>Device</code>. Next, the read/write information of all operations are analyzed to
-create the computational graph. For example, if a block <code>b</code> is written by one
-operation O1 and is later read by another operation O2, we would know O2 depends
-on O1 and there is a directed edge from A to B, which represents block <code>b</code> (or
-its tensor). After that a directed acyclic graph is constructed as shown below.
-The graph is constructed once.</p>
+<p><code>Device</code>的<code>Exec</code>函数对函数及其参数进行缓冲。此外,它还拥有这个函数要读写的块的信息(块是指张量的内存块)。</p>
+<p>一旦<code>Model.forward()</code>被执行一次,所有的操作就会被<code>Device</code>缓冲。接下来,对所有操作的读写信息进行分析,用来建立计算图。例如,如果一个块<code>b</code>被一个操作O1写入,之后又被另一个操作O2读出,我们就会知道O2依赖于O1并且有一条从A到B的有向边,它代表了块<code>b</code>(或其张量)。之后我们就构建了一个有向无环图,如下图所示。该图会构建一次。</p>
 <p><img src="/docs/assets/GraphOfMLP.png" alt="The computational graph of MLP"></p>
-<p><br/><strong>Figure 1 - The computational graph of the MLP example.</strong></p>
-<h3><a class="anchor" aria-hidden="true" id="optimization"></a><a href="#optimization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>Currently, the following optimizations are done based on the computational
-graph.</p>
-<p><strong>Lazy allocation</strong> When tensor/blocks are created, devices do not allocate
-memory for them immediately. Instead, when the block is accessed for the first
-time, the memory is allocated.</p>
-<p><strong>Automatic recycling</strong> The reference count of each tensor/block is calculated
-based on the graph. Before executing the operations, the reference count is the
-number of operations that read this block. During the execution, once an
-operation is executed, the reference count of the every input block is decreased
-by 1. If one block's reference count reaches 0, it means that this block will
-not be read again in the remaining operations. Therefore, its memory can be
-released safely. In addition, SINGA tracks the usage of the block outside of the
-graph. If a block is used by Python code (not by autograd operators), it will
-not be recycled.</p>
-<p><strong>Memory sharing</strong> SINGA uses memory pool, e.g.,
-<a href="https://github.com/NVIDIA/cnmem">CnMem</a> to manage CUDA memory. With <em>Automatic
-recycling</em> and memory pool, SINGA can share the memory among tensors. Consider
-two operations <code>c = a + b</code> and <code>d=2xc</code>. Before executing the second operation,
-according to <em>Lazy allocation</em>, the memory of d should be allocated. Suppose <code>a</code>
-is not used in the rest operations. According to Automatic recycling, the block
-of <code>a</code> will be released after the first operation. Therefore, SINGA would submit
-four operations to the CUDA stream: addition, free <code>a</code>, malloc <code>b</code>, and
-multiplication. The memory pool is then able to share the memory released by <code>a</code>
-with <code>b</code> instead of ask the GPU to do real malloc for <code>b</code>.</p>
-<p>Other optimization techniques e.g., from compliers, such as common
-sub-expression elimination and parallelizing operations on different CUDA
-streams can also be applied.</p>
-<h2><a class="anchor" aria-hidden="true" id="new-operator"></a><a href="#new-operator" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>Each operator defined in <code>autograd</code> module implements two functions: forward and
-backward, which are implemented by calling the operators from the backend. To
-add a new operator in <code>autograd</code>, you need to add the multiple operators at the
-backend.</p>
-<p>Take the
-<a href="https://github.com/apache/singa/blob/master/python/singa/autograd.py">Conv2d</a>
-operator as an example, at the Python side, the forward and backward function
-are implemented by calling the operators from the backend depending on the
-device type.</p>
+<p><br/><strong>Figure 1 - MLP例子的计算图</strong></p>
+<h3><a class="anchor" aria-hidden="true" id="优化"></a><a href="#优化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>目前,基于计算图进行了以下优化:</p>
+<p><strong>惰性分配</strong> 当创建张量/块时,设备不会立即为它们分配内存。相反,是在第一次访问块时,才会分配内存。</p>
+<p><strong>自动回收</strong>  每个张量/块的参考计数是根据图计算出来的。在执行操作之前,参考计数是读取这个块的操作次数。在执行过程中,一旦执行了一个操作,每一个输入块的参考数就会减少1,如果一个块的参考数达到了0,就意味着这个块在剩下的操作中不会再被读取。因此,它的内存可以被安全释放。此外,SINGA还会跟踪图外的块的使用情况。如果一个块被Python代码使用(而不是被autograd操作符使用),它将不会被回收。</p>
+<p><strong>内存共享</strong>  SINGA使用内存池,如<a href="https://github.com/NVIDIA/cnmem">CnMem</a>来管理CUDA内存。有了自动回收和内存池,SINGA就可以在张量之间共享内存。考虑两个操作<code>c=a+b</code>和<code>d=2xc</code>。在执行第二个操作之前,根据惰性分配原则,应该分配d的内存。假设<code>a</code>在其余操作中没有使用。根据自动回收,<code>a</code>的块将在第一次操作后被释放。因此,SINGA会向CUDA流提交四个操作:加法、释放<code>a</code>、分配<code>b</code>和乘法。这样,内存池就可以将<code>a</code>释放的内存与<code>b</code>共享,而不是要求GPU为<code>b</code>做真正的malloc。</p>
+<p>其他的优化技术,如来自编译器的优化技术,如常见的子表达式消除和不同CUDA流上的并行化操作也可以应用。</p>
+<h2><a class="anchor" aria-hidden="true" id="新的操作符"></a><a href="#新的操作符" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p><code>autograd</code>模块中定义的每个运算符都实现了两个功能:前向和反向,通过在后台调用运算符来实现。如果要在<code>autograd</code>中添加一个新的运算符,需要在后台添加多个运算符。</p>
+<p>以<a href="https://github.com/apache/singa/blob/master/python/singa/autograd.py">Conv2d</a>运算符为例,在Python端,根据设备类型,从后台调用运算符来实现前向和反向功能:</p>
 <pre><code class="hljs css language-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">_Conv2d</span><span class="hljs-params">(Operation)</span>:</span>
 
     <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">forward</span><span class="hljs-params">(self, x, W, b=None)</span>:</span>
@@ -281,27 +224,17 @@ device type.</p>
         <span class="hljs-keyword">else</span>:
             <span class="hljs-keyword">return</span> dx, dW
 </code></pre>
-<p>For each operator at the backend, it should be implemented in the following way:</p>
+<p>对于后台的每一个操作符,应按以下方式实现:</p>
 <ul>
-<li><p>Suppose the operator is <code>foo()</code>; its real implementation should be wrapped in
-another function e.g., <code>_foo()</code>. <code>foo()</code> passes <code>_foo</code> together with the
-arguments as a lambda function to <code>Device</code>'s <code>Exec</code> function for buffering.
-The blocks to be read and written are also passed to <code>Exec</code>.</p></li>
-<li><p>All arguments used in the lambda expression need to be captured according to
-the following rules.</p>
+<li><p>假设操作符是<code>foo()</code>,它的真正实现应该包装在另一个函数中,例如<code>_foo()</code>。<code>foo()</code>将<code>_foo</code>和参数一起作为lambda函数传递给<code>Device</code>的<code>Exec</code>函数进行缓冲,要读和写的块也同时被传递给<code>Exec</code>。</p></li>
+<li><p>lambda表达式中使用的所有参数都需要根据以下规则获取:</p>
 <ul>
-<li><p><code>capture by value</code>: If the argument variable is a local variable or will be
-immediately released (e.g. intermediate tensors). Otherwise, these variables
-will be destroyed once <code>foo()</code> exists.</p></li>
-<li><p><code>capture by reference</code>:If the variable is recorded on the python side or a
-persistent variable (e.g. parameter W and ConvHand in the Conv2d class).</p></li>
-<li><p><code>mutable</code>: The lambda expression should have the mutable tag if a variable
-captured by value is modified in <code>_foo()</code></p></li>
+<li><p><code>值捕获</code>: 如果参数变量是一个局部变量,或者将被立刻释放(例如,中间时序)。否则,一旦<code>foo()</code>存在,这些变量将被销毁。</p></li>
+<li><p><code>引用捕获</code>:如果变量是记录在python端或者是一个持久变量(例如Conv2d类中的参数W和ConvHand)。</p></li>
+<li><p><code>可变捕获</code>: 如果在<code>_foo()</code>中修改了由值捕获的变量,则lambda表达式应带有mutable(可变)标签。</p></li>
 </ul></li>
 </ul>
-<p>Here is one
-<a href="https://github.com/apache/singa/blob/master/src/model/operation/convolution.cc">example</a>
-operator implemented at the backend.</p>
+<p>下面是一个在后台实现的操作的<a href="https://github.com/apache/singa/blob/master/src/model/operation/convolution.cc">例子</a>:</p>
 <pre><code class="hljs css language-c++"><span class="hljs-function">Tensor <span class="hljs-title">GpuConvBackwardx</span><span class="hljs-params">(<span class="hljs-keyword">const</span> Tensor &amp;dy, <span class="hljs-keyword">const</span> Tensor &amp;W, <span class="hljs-keyword">const</span> Tensor &amp;x,
                         <span class="hljs-keyword">const</span> CudnnConvHandle &amp;cch)</span> </span>{
   CHECK_EQ(dy.device()-&gt;lang(), kCuda);
@@ -335,31 +268,31 @@ operator implemented at the backend.</p>
 }
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="benchmark"></a><a href="#benchmark" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<h3><a class="anchor" aria-hidden="true" id="single-node"></a><a href="#single-node" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<h3><a class="anchor" aria-hidden="true" id="单节点"></a><a href="#单节点" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
-<li>Experiment settings
+<li>实验设定
 <ul>
-<li>Model
+<li>模型:
 <ul>
-<li>Using layer: ResNet50 in
+<li>使用层: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/autograd/resnet_cifar10.py">resnet.py</a></li>
-<li>Using model: ResNet50 in
+<li>使用模型: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">resnet.py</a></li>
 </ul></li>
 <li>GPU: NVIDIA RTX 2080Ti</li>
 </ul></li>
-<li>Notations
+<li>注释:
 <ul>
-<li><code>s</code> :second</li>
-<li><code>it</code> : iteration</li>
-<li><code>Mem</code>:peak memory usage of single GPU</li>
-<li><code>Throughout</code>:number of images processed per second</li>
-<li><code>Time</code>:total time</li>
-<li><code>Speed</code>:iterations per second</li>
-<li><code>Reduction</code>:the memory usage reduction rate compared with that using layer</li>
-<li><code>Speedup</code>: speedup ratio compared with dev branch</li>
+<li><code>s</code> :second,秒</li>
+<li><code>it</code> : iteration,迭代次数</li>
+<li><code>Mem</code>:peak memory usage of single GPU,单GPU显存峰值</li>
+<li><code>Throughout</code>:number of images processed per second,每秒处理的图像数</li>
+<li><code>Time</code>:total time,总时间</li>
+<li><code>Speed</code>:iterations per second。每秒迭代次数</li>
+<li><code>Reduction</code>:the memory usage reduction rate compared with that using layer,与使用层的内存使用率相比,内存使用率降低了多少</li>
+<li><code>Speedup</code>: speedup ratio compared with dev branch,与dev分支相比的加速率</li>
 </ul></li>
-<li>Result
+<li>结果:
   <table style="text-align: center">
       <tr>
           <th style="text-align: center">Batchsize</th>
@@ -448,22 +381,22 @@ operator implemented at the backend.</p>
   </table>
 </li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="multi-processes"></a><a href="#multi-processes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<h3><a class="anchor" aria-hidden="true" id="多线程"></a><a href="#多线程" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <ul>
-<li>Experiment settings
+<li>实验设置:
 <ul>
-<li>API
+<li>API:
 <ul>
-<li>using Layer: ResNet50 in
+<li>使用层: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/autograd/resnet_dist.py">resnet_dist.py</a></li>
-<li>using Model: ResNet50 in
+<li>使用模型: ResNet50 in
 <a href="https://github.com/apache/singa/blob/master/examples/cnn/model/resnet.py">resnet.py</a></li>
 </ul></li>
 <li>GPU: NVIDIA RTX 2080Ti * 2</li>
-<li>MPI: two MPI processes on one node</li>
+<li>MPI: 在同一节点上的两个MPI processes</li>
 </ul></li>
-<li>Notations: the same as above</li>
-<li>Result
+<li>注释: 与上面相同</li>
+<li>结果:
   <table style="text-align: center">
       <tr>
           <th style="text-align: center">Batchsize</th>
@@ -552,14 +485,12 @@ operator implemented at the backend.</p>
   </table>
 </li>
 </ul>
-<h3><a class="anchor" aria-hidden="true" id="conclusion"></a><a href="#conclusion" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<h3><a class="anchor" aria-hidden="true" id="结论"></a><a href="#结论" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <ul>
-<li>Training with the computational graph enabled can significantly reduce the
-memory footprint.</li>
-<li>Currently, there is a little improvement in terms of speed. More optimizations
-can be done towards the efficiency.</li>
+<li>在启用计算图的情况下进行训练,可以显著减少内存占用。</li>
+<li>目前,在速度上有一点改进。在效率方面还可以做更多的优化。</li>
 </ul>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 10/4/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/optimizer"><span class="arrow-prev">← </span><span>Optimizer</span></a><a class="docs-next button" href="/docs/onnx"><span>ONNX</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example">Example</a></li><li><a href="#implementation">Implementation</a><ul  [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 04/10/2020</em></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/3.1.0_Chinese/optimizer"><span class="arrow-prev">← </span><span>Optimizer</span></a><a class="docs-next button" href="/docs/3.1.0_Chinese/onnx"><span>ONNX</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#样例">样例</a></li><li><a href="#实现">实现</a><ul class [...]
    The Apache Software Foundation. All rights reserved.
    Apache SINGA, Apache, the Apache feather logo, and
    the Apache SINGA project logos are trademarks of The
diff --git a/content/docs/3.1.0_Chinese/history-singa.html b/content/docs/3.1.0_Chinese/history-singa.html
new file mode 100644
index 0000000..78c74c1
--- /dev/null
+++ b/content/docs/3.1.0_Chinese/history-singa.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>History of SINGA · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyrigh [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>3.1.0_Chinese</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-sit [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs-site/docs/history-singa.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">History of SINGA</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contrib [...]
+<h2><a class="anchor" aria-hidden="true" id="历史"></a><a href="#历史" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>SINGA由新加坡国立大学DB System Group于2014年发起,与浙江大学数据库组合作。如果您在研究中使用SINGA,请引用以下两篇论文。</p>
+<ul>
+<li><p>B.C. Ooi, K.-L. Tan, S. Wang, W. Wang, Q. Cai, G. Chen, J. Gao, Z. Luo, A. K.
+H. Tung, Y. Wang, Z. Xie, M. Zhang, and K. Zheng.
... 9555 lines suppressed ...