Skip to content

Commit 9838bac

Browse files
authored
Merge branch 'develop' into optimize/op/fusion_lstm
2 parents 80edd7e + 597b730 commit 9838bac

File tree

156 files changed

+2250
-402
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

156 files changed

+2250
-402
lines changed

benchmark/fluid/fluid_benchmark.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ def train(avg_loss, infer_prog, optimizer, train_reader, test_reader, batch_acc,
151151
if data == None:
152152
break
153153
if iters == args.iterations:
154+
reader_generator.close()
154155
break
155156
if iters == args.skip_batch_num:
156157
start_time = time.time()
@@ -252,6 +253,7 @@ def train_parallel(avg_loss, infer_prog, optimizer, train_reader, test_reader,
252253
if data == None:
253254
break
254255
if iters == args.iterations:
256+
reader_generator.close()
255257
break
256258
if args.profile and pass_id == 0 and batch_id == 5:
257259
profiler.start_profiler("All")

doc/fluid/new_docs/advanced_usage/deploy/index_anakin.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
服务器端部署 - Anakin
2-
#####################
1+
Anakin - 服务器端加速引擎
2+
#######################
33

44

55
使用文档

doc/fluid/new_docs/advanced_usage/deploy/index_native.rst

Lines changed: 0 additions & 8 deletions
This file was deleted.

doc/fluid/new_docs/advanced_usage/index.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
.. toctree::
1111
:maxdepth: 2
1212

13-
deploy/index_native.rst
1413
deploy/index_anakin.rst
1514
deploy/index_mobile.rst
1615
development/contribute_to_paddle.md
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
*.pyc
2+
train.log
3+
output
4+
data/cifar-10-batches-py/
5+
data/cifar-10-python.tar.gz
6+
data/*.txt
7+
data/*.list
8+
data/mean.meta

doc/fluid/new_docs/beginners_guide/basics/image_classification/README.cn.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
图像分类包括通用图像分类、细粒度图像分类等。图1展示了通用图像分类效果,即模型可以正确识别图像上的主要物体。
2222

2323
<p align="center">
24-
<img src="image/dog_cat.png " width="350" ><br/>
24+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/dog_cat.png?raw=true" width="350" ><br/>
2525
图1. 通用图像分类展示
2626
</p>
2727

@@ -30,15 +30,15 @@
3030

3131

3232
<p align="center">
33-
<img src="image/flowers.png" width="400" ><br/>
33+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/flowers.png?raw=true" width="400" ><br/>
3434
图2. 细粒度图像分类展示
3535
</p>
3636

3737

3838
一个好的模型既要对不同类别识别正确,同时也应该能够对不同视角、光照、背景、变形或部分遮挡的图像正确识别(这里我们统一称作图像扰动)。图3展示了一些图像的扰动,较好的模型会像聪明的人类一样能够正确识别。
3939

4040
<p align="center">
41-
<img src="image/variations.png" width="550" ><br/>
41+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/variations.png?raw=true" width="550" ><br/>
4242
图3. 扰动图片展示[22]
4343
</p>
4444

@@ -61,7 +61,7 @@
6161
Alex Krizhevsky在2012年ILSVRC提出的CNN模型 \[[9](#参考文献)\] 取得了历史性的突破,效果大幅度超越传统方法,获得了ILSVRC2012冠军,该模型被称作AlexNet。这也是首次将深度学习用于大规模图像分类中。从AlexNet之后,涌现了一系列CNN模型,不断地在ImageNet上刷新成绩,如图4展示。随着模型变得越来越深以及精妙的结构设计,Top-5的错误率也越来越低,降到了3.5%附近。而在同样的ImageNet数据集上,人眼的辨识错误率大概在5.1%,也就是目前的深度学习模型的识别能力已经超过了人眼。
6262

6363
<p align="center">
64-
<img src="image/ilsvrc.png" width="500" ><br/>
64+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/ilsvrc.png?raw=true" width="500" ><br/>
6565
图4. ILSVRC图像分类Top-5错误率
6666
</p>
6767

@@ -70,7 +70,7 @@ Alex Krizhevsky在2012年ILSVRC提出的CNN模型 \[[9](#参考文献)\] 取得
7070
传统CNN包含卷积层、全连接层等组件,并采用softmax多类别分类器和多类交叉熵损失函数,一个典型的卷积神经网络如图5所示,我们先介绍用来构造CNN的常见组件。
7171

7272
<p align="center">
73-
<img src="image/lenet.png"><br/>
73+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/lenet.png?raw=true"><br/>
7474
图5. CNN网络示例[20]
7575
</p>
7676

@@ -89,7 +89,7 @@ Alex Krizhevsky在2012年ILSVRC提出的CNN模型 \[[9](#参考文献)\] 取得
8989
牛津大学VGG(Visual Geometry Group)组在2014年ILSVRC提出的模型被称作VGG模型 \[[11](#参考文献)\] 。该模型相比以往模型进一步加宽和加深了网络结构,它的核心是五组卷积操作,每两组之间做Max-Pooling空间降维。同一组内采用多次连续的3X3卷积,卷积核的数目由较浅组的64增多到最深组的512,同一组内的卷积核数目是一样的。卷积之后接两层全连接层,之后是分类层。由于每组内卷积层的不同,有11、13、16、19层这几种模型,下图展示一个16层的网络结构。VGG模型结构相对简洁,提出之后也有很多文章基于此模型进行研究,如在ImageNet上首次公开超过人眼识别的模型\[[19](#参考文献)\]就是借鉴VGG模型的结构。
9090

9191
<p align="center">
92-
<img src="image/vgg16.png" width="750" ><br/>
92+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/vgg16.png?raw=true" width="750" ><br/>
9393
图6. 基于ImageNet的VGG16模型
9494
</p>
9595

@@ -106,7 +106,7 @@ NIN模型主要有两个特点:
106106
Inception模块如下图7所示,图(a)是最简单的设计,输出是3个卷积层和一个池化层的特征拼接。这种设计的缺点是池化层不会改变特征通道数,拼接后会导致特征的通道数较大,经过几层这样的模块堆积后,通道数会越来越大,导致参数和计算量也随之增大。为了改善这个缺点,图(b)引入3个1x1卷积层进行降维,所谓的降维就是减少通道数,同时如NIN模型中提到的1x1卷积也可以修正线性特征。
107107

108108
<p align="center">
109-
<img src="image/inception.png" width="800" ><br/>
109+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/inception.png?raw=ture" width="800" ><br/>
110110
图7. Inception模块
111111
</p>
112112

@@ -115,7 +115,7 @@ GoogleNet由多组Inception模块堆积而成。另外,在网络最后也没
115115
GoogleNet整体网络结构如图8所示,总共22层网络:开始由3层普通的卷积组成;接下来由三组子网络组成,第一组子网络包含2个Inception模块,第二组包含5个Inception模块,第三组包含2个Inception模块;然后接均值池化层、全连接层。
116116

117117
<p align="center">
118-
<img src="image/googlenet.jpeg" ><br/>
118+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/googlenet.jpeg?raw=true" ><br/>
119119
图8. GoogleNet[12]
120120
</p>
121121

@@ -130,14 +130,14 @@ ResNet(Residual Network) \[[15](#参考文献)\] 是2015年ImageNet图像分类
130130
残差模块如图9所示,左边是基本模块连接方式,由两个输出通道数相同的3x3卷积组成。右边是瓶颈模块(Bottleneck)连接方式,之所以称为瓶颈,是因为上面的1x1卷积用来降维(图示例即256->64),下面的1x1卷积用来升维(图示例即64->256),这样中间3x3卷积的输入和输出通道数都较小(图示例即64->64)。
131131

132132
<p align="center">
133-
<img src="image/resnet_block.jpg" width="400"><br/>
133+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/resnet_block.jpg?raw=true" width="400"><br/>
134134
图9. 残差模块
135135
</p>
136136

137137
图10展示了50、101、152层网络连接示意图,使用的是瓶颈模块。这三个模型的区别在于每组中残差模块的重复次数不同(见图右上角)。ResNet训练收敛较快,成功的训练了上百乃至近千层的卷积神经网络。
138138

139139
<p align="center">
140-
<img src="image/resnet.png"><br/>
140+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/resnet.png?raw=true"><br/>
141141
图10. 基于ImageNet的ResNet模型
142142
</p>
143143

@@ -149,7 +149,7 @@ ResNet(Residual Network) \[[15](#参考文献)\] 是2015年ImageNet图像分类
149149
由于ImageNet数据集较大,下载和训练较慢,为了方便大家学习,我们使用[CIFAR10](<https://www.cs.toronto.edu/~kriz/cifar.html>)数据集。CIFAR10数据集包含60,000张32x32的彩色图片,10个类别,每个类包含6,000张。其中50,000张图片作为训练集,10000张作为测试集。图11从每个类别中随机抽取了10张图片,展示了所有的类别。
150150

151151
<p align="center">
152-
<img src="image/cifar.png" width="350"><br/>
152+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/cifar.png?raw=true" width="350"><br/>
153153
图11. CIFAR10数据集[21]
154154
</p>
155155

@@ -377,7 +377,7 @@ test_reader = paddle.batch(
377377
`event_handler_plot`可以用来利用回调数据来打点画图:
378378

379379
<p align="center">
380-
<img src="image/train_and_test.png" width="350"><br/>
380+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/train_and_test.png?raw=true" width="350"><br/>
381381
图12. 训练结果
382382
</p>
383383

@@ -469,7 +469,7 @@ Test with Pass 0, Loss 1.1, Acc 0.6
469469
图13是训练的分类错误率曲线图,运行到第200个pass后基本收敛,最终得到测试集上分类错误率为8.54%。
470470

471471
<p align="center">
472-
<img src="image/plot.png" width="400" ><br/>
472+
<img src="https://github.com/PaddlePaddle/book/blob/develop/03.image_classification/image/plot.png?raw=true" width="400" ><br/>
473473
图13. CIFAR10数据集上VGG模型的分类错误率
474474
</p>
475475

Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)