动态神经网络工具包
概述
DyNet 是由卡内基梅隆大学和许多其他机构开发的神经网络库。它用 C++ 编写(具有 Python 绑定),旨在在 CPU 或 GPU 上运行时高效,并能很好地处理每个训练实例都会变化的动态结构网络。例如,这类网络在自然语言处理任务中尤为重要,DyNet 已被用于构建最先进的系统,如句法分析、机器翻译、形态变化等多个应用领域。
阅读文档以开始使用,如有任何问题,请随时联系 dynet-users 群组(如果您想接收电子邮件,请确保在注册时选择"所有电子邮件")。我们非常感谢任何错误报告和贡献,您可以通过GitHub 页面提交问题或提出拉取请求。
您也可以在我们的技术报告中阅读更多技术细节。
入门
您可以在这里(C++)和这里(Python)以及这里(EMNLP 2016 教程)找到使用 DyNet 的教程。
DyNet 与其他工具包的一个区别在于自动批处理功能。请查看关于批处理的文档。
example
文件夹包含多个 C++ 和 Python 的示例。
安装
DyNet 依赖于一些外部程序/库,包括 CMake 和 Eigen。CMake 可以从标准存储库安装。
例如,在 Ubuntu Linux 上:
sudo apt-get install build-essential cmake
或者在 macOS 上,首先确保已安装 Apple 命令行工具,然后使用 homebrew 或 macports 安装 CMake 和 Mercurial:
xcode-select --install
brew install cmake # 使用 homebrew
sudo port install cmake # 使用 macports
在 Windows 上,请参阅文档。
要编译 DyNet,您还需要 Eigen 库的特定版本。如果您使用任何已发布的版本,可能会遇到断言失败或编译错误。 您可以使用以下命令轻松获取:
mkdir eigen
cd eigen
wget https://github.com/clab/dynet/releases/download/2.1/eigen-b2e267dc99d4.zip
unzip eigen-b2e267dc99d4.zip
C++ 安装
您可以使用以下命令安装 C++ 版本的 DyNet:
# 克隆 GitHub 仓库
git clone https://github.com/clab/dynet.git
cd dynet
mkdir build
cd build
# 运行 CMake
# -DENABLE_BOOST=ON 与 -DENABLE_CPP_EXAMPLES=ON 一起使用也会
# 编译多进程 C++ 示例
cmake .. -DEIGEN3_INCLUDE_DIR=/path/to/eigen -DENABLE_CPP_EXAMPLES=ON
# 使用 2 个进程编译
make -j 2
# 用示例测试
./examples/xor
更多详细信息,请参阅文档
Python 安装
您可以使用以下命令安装 Python 版本的 DyNet:
pip install git+https://github.com/clab/dynet#egg=dynet
更多详细信息,请参阅文档
引用
如果您在研究中使用 DyNet,请按以下方式引用此报告:
@article{dynet,
title={DyNet: The Dynamic Neural Network Toolkit},
author={Graham Neubig and Chris Dyer and Yoav Goldberg and Austin Matthews and Waleed Ammar and Antonios Anastasopoulos and Miguel Ballesteros and David Chiang and Daniel Clothiaux and Trevor Cohn and Kevin Duh and Manaal Faruqui and Cynthia Gan and Dan Garrette and Yangfeng Ji and Lingpeng Kong and Adhiguna Kuncoro and Gaurav Kumar and Chaitanya Malaviya and Paul Michel and Yusuke Oda and Matthew Richardson and Naomi Saphra and Swabha Swayamdipta and Pengcheng Yin},
journal={arXiv preprint arXiv:1701.03980},
year={2017}
}
贡献
我们欢迎对 DyNet 的任何贡献!您可以在这里找到贡献指南。