MxNet系列——community——contribute

翻译 2017年02月09日 11:30:20

对MXNet做贡献

MXNet是由一群活跃的社区成员开发和使用的。请对其贡献,以改善它。
当你的补丁被合并时,别忘记将你的名字提交到 CONTRIBUTORS.md.

Guidelines

提交Pull请求

  • 在提交你的贡献前,在最新版的master上,git rebase 你的代码:
git remote add upstream https://github.com/dmlc/mxnet
git fetch upstream
git rebase upstream/master
  • 如果你有多个小的提交,将其合并成一个有意义的组 (先使用 git rebase,在使用 squash)。
  • 发送pull请求。
  • 修改自动检查报告的问题。
  • 如果你正在对一个新模块做贡献,考虑在 tests 中添加一个测试用例。

解决与Master的冲突问题

  • Rebase 到当前master分支:
# 前两行只需做一次。如果已经执行过,跳过即可。
git remote add upstream https://github.com/dmlc/mxnet
git fetch upstream
git rebase upstream/master
  • Git 可能打印一些冲突,阻止合并。例如, conflicted.py
    • 手动修改文件,以解决冲突。
    • 解决冲突后,使用下面的代码将其标记为已解决(resolved)
git add conflicted.py.
  • 使用下面的命令继续 rebase:
git rebase --continue
  • 最终推送到你的fork。可能需要强制推送:
git push --force

组合多个提交

如果你正在提交多个commits,而后面的commits刚好修复(fix to)在前面的一个时,你可以将多个commits组合成一个有意义的组,然后在创建一个推送请求。

  • 开始前,先配置Git的默认编辑器(如果之前没有配置过的话):
git config core.editor the-editor-you-like
  • 假定你希望合并最后3个 commits,执行下面的命令:
git rebase -i HEAD~3
  • 出现一个文本编辑器,将第一个commit设置为 pick,后一个设置为 squash

  • 保存文件之后,会出现另一个文本编辑器,让你修改组合的commit的信息。

  • 通过强制推送,将改变推送到你的fork。

git push --force.

强制推送的结果是什么?

由于我们改变了commit路径,之前的两个Tips需要强制推送。强制推送到你自己的fork是没有问题的,只有你自己的commit被改变了。

文档

  • 文档是使用 Sphinx 和 recommonmark 创建的。
  • 你可以在本地构建文档来证实。

测试用例

  • 所有的测试用例都在GitHub中的 tests 目录。
  • 我们使用 python nose 作为python测试用例,用 gtest 作为 c++ 单元测试。

例程

  • 用例和例程在Git的 examples目录。
  • 如果你有关于MXNet的帖子后使用MXNet的教程,请告知我们。我们将会在GitHub中的例子中添加一个链接指向你的博客。

核心库

  • 对于 C++ 代码,我们遵循Google C++ 风格指南(Google C++ Style Guide)。
  • 我们使用 doxygen 将接口代码进行文档化。
  • 你可以通过 make lint 重新生成 linter checks。

Python库

  • 总是以numpydoc的格式为新的函数添加 docstring。
  • 你可以通过 make lint 重新生成 linter checks。

R包

代码风格

  • R包中的绝大多数C++代码都严重地依赖 Rcpp
  • 对于 C++ 代码,我们遵循Google C++ 风格指南(Google C++ Style Guide)。 这使得我们能够与项目的其它部分保持一致。它也允许我们使用 linter 自动检查风格。
  • 在根目录中运行下面的命令,以检查代码风格:
make rcpplint
  • 如果有必要,你可以通过 // NOLINT(*) 注释,来取消linter警告。

自动生成的API

  • 很多 MXNet APIs 动态地暴露于Rcpp。
  • mx_generated.R 是对这些函数自动生成的API和文档。
  • 通过执行下面的命令,Remake 文件:
make rcppexport
  • 仅当动态函数有更新时,才使用这个命令。

API 文档

文档是由 roxygen2 生成的。在根目录中执行下面的代码,可以 remake 文档:

make roxygen.

R Markdown Vignettes

R Markdown vignettes 位于GitHub上的 R-package/vignettes 目录。
这些 R Markdown 文件并没有编译。编译过的版本放在 doc/R-package

添加一个新的 R Markdown vignettes:

  • 将原始的 R Markdown 文件添加到 R-package/vignettes
  • 修改 doc/R-package/Makefile,添加待构建的 Markdown 文件。
  • dmlc/web-data 仓库克隆到 doc 文件夹。
  • doc/R-package 中的文件,执行以下命令:
make the-markdown-to-make.md
  • 这将会生成 markdown 和图片,并将它们放在 doc/web-data/mxnet/knitr
  • 修改 doc/R-package/index.md,使其指向生成的markdown。
  • 将生成的图片添加到 dmlc/web-data 仓库。
    • 如果你已经将这个仓库克隆到doc目录下,使用 git add 即可。
  • 为markdown和 dmlc/web-data 创建一个 pull 请求。
  • 你可以使用以下命令在本地构建文档:
make html

这从根本上阻止了仓库增加(生成)图像大小的存储。

Opencv3.0和contribute模块的下载 编译 安装

1 Opencv介绍和资源链接       Opencv3.0版本已经发布了有一年左右的时间,在这段时间也是不断的进行了更新和修复,最近看了一下3.0新增的一些功能,感觉还是蛮强大的,作为一个一直以O...
  • u012462822
  • u012462822
  • 2015年10月13日 23:14
  • 5123

MxNet系列——how_to——new_op

如何创建新的操作符(网络层)本节内容描述了创建新的MXNet操作符(或网络)的过程。我们已经尽了最大努力为最常用的案例提供高性能操作符。然而,如果你需要自定义一个网络层,比如新的损失函数,有两个选择:...
  • xuezhisdc
  • xuezhisdc
  • 2017年02月08日 15:38
  • 1236

Win10下MxNet安装手记

依赖软件环境 Python2.7 64位版(mxnet也必须为64位版,由于系统bug,mxnet只能在Win10下运行) 转换caffemodel到mxnet所需的工具 ...
  • hollyholly5
  • hollyholly5
  • 2016年07月08日 11:34
  • 1778

Informatica基础系列(外)——不支持 MySQL Community 版本的解决方案

Informatica Power Center 是一个 ETL 工具,提供强大的数据集成软件和服务,一般用于大数据的抽取、转换、加载,常应用于数据仓库、BI 等领域,并支持各种主流的数据源,如 Or...
  • water_0815
  • water_0815
  • 2017年05月13日 17:03
  • 1140

MxNet系列——how_to——env_var

环境变量=====================环境可以修改MXNet的一些设置。一般情况下,你不需要修改这些设置。本节将它们罗列出来,用于参考。设置线程数目 MXNET_GPU_WORKER_NT...
  • xuezhisdc
  • xuezhisdc
  • 2017年02月08日 15:48
  • 1176

MxNet系列——get_started——windows_setup

Windows上安装 MXNet在Windows上,你可以直接下载和安装已经编译过的MXNet工具包,或者自行下载,构建,安装MXNet。构建MXNet共享库(动态链接库)两种方法:既可以直接下载并使...
  • xuezhisdc
  • xuezhisdc
  • 2017年02月08日 15:58
  • 836

MxNet系列——get_started——setup

综述你可以在Amazon Linux, Ubuntu/Debian, OS X, 和 Windows等操作系统上运行MXNet。MXNet 也可以在 Docker 和类似于AWS的云上运行。MXNet...
  • xuezhisdc
  • xuezhisdc
  • 2017年02月09日 11:27
  • 1041

MxNet系列——how_to——visualize_graph

如何将神经网络可视化为计算图该章节描述了如何在MXNet中使用在mx.viz.plot_network来可视化(使用MXNet构建的)神经网络。mx.viz.plot_network有助于将神经网络表...
  • xuezhisdc
  • xuezhisdc
  • 2017年02月08日 15:35
  • 731

MxNet系列——get_started——amazonlinux_setup

Installing MXNet on Ubuntu对于 Amazon Linux 操作系统上的Python用户来说,MXNet 提供了一系列的 Git Bash 脚本,来安装MXNet的依赖和MXN...
  • xuezhisdc
  • xuezhisdc
  • 2017年02月09日 11:26
  • 403

MxNet系列——how_to——index

MXNet 怎么办系列How-tos 提供了一系列的有关安装,基本概念,说明,命令和使用预训练模型完成的例程指南。下面的主题解释了基本概念,并为特定任务提供了步骤。其中一些包含了使用预训练模型完成的例...
  • xuezhisdc
  • xuezhisdc
  • 2017年02月08日 15:46
  • 327
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MxNet系列——community——contribute
举报原因:
原因补充:

(最多只允许输入30个字)