diff --git a/README.md b/README.md index c0835af327fddfaa877329329f5e3164f86059cc..e64b1c82da31837b1d1dad9c7122b41c54a31318 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,14 @@ -# PLSC: 飞桨大规模分类库 +English | [Simplified Chinese](./README_cn.md) +# PLSC: PaddlePaddle Large Scale Classfication Package -## 简介 -深度学习中用于解决多分类问题的深度神经网络的最后一层通常是全连接层和Softmax的组合层,并采用交叉熵(Cross-Entropy)算法计算神经网络的损失函数。由于全连接层的参数量随着分类类别数的增长线性增长,当分类类别数相当大时,神经网络的训练会面临下面两个主要挑战: +## Introduction +The last layer of deep neural networks for multi-class classfication tasks is often a combined layer of fully-connected function and softmax function, after which the corss-entropy function is used to compute the final loss. As the size of parameters for the fully-connected layer at the end of a nueral network increasing lineary with the increase in number of classes, the training of a neural network faces the following challenges when the task has a large number of classes to classify: + +* GPU memory exhausive: + +* Heavy communication overhead: For data parallel training, gradients must be exchanged among GPUs, + +由于全连接层的参数量随着分类类别数的增长线性增长,当分类类别数相当大时,神经网络的训练会面临下面两个主要挑战: 1. 参数量过大,超出单个GPU卡的显存容量:假设分类网络最后一层隐层的输出维度为512,那么当分类类别数为一百万时,最后一层全连接层参数的大小约为2GB(假设以32比特浮点数表示参数)。当分类问题的类别数为一亿时(例如,对自然界中的生物进行分类),则最后一层全连接层参数的大小接近200GB,远远超过当前GPU的显存容量。 @@ -9,7 +16,7 @@ 飞桨大规模分类(PLSC: **P**addlePaddle **L**arge **S**cale **C**lassification)库是基于[飞桨平台](https://github.com/PaddlePaddle/Paddle)构建的超大规模分类库,为用户提供从训练到部署的大规模分类问题全流程解决方案。 -## PLSC特性 +## Highlights * 支持超大规模分类:单机8张V100 GPU配置下支持的最大类别数扩大2.52倍,支持的类别数随GPU卡数的增加而增加; * 训练速度快:单机8张V100 GPU配置下,基于ResNet50模型的百万类别分类训练速度2,122.56 images/s, 并支持多机分布式训练和混合精度训练; * 支持训练训练卡数的调整:加载模型参数的热启动训练可以使用和预训练不同的GPU卡数,并自动进行参数转换;