【实训目的】
通过本次实训,要求了解深度学习在计算机视觉中的应用,特别是对人脸检测、识别的应用理解;掌握TensorFlow的基本实现与相关应用。
【实训环境】
Python3.7、PyCharm环境、TensorFlow 1.14.0或TensorFlow-gpu(gpu版本)及其他依赖包。
【实训内容】
一、设计神经网络对项目九中的MNIST进行训练和测试
要求使用Tensorflow,准确率达到95%以上。
二、实现卷积神经网络CNN,并在MINST数据集上对其进行应用
在卷积神经网络(Convolutional Neural Network,CNN)中,卷积层的神经元只与前一层的部分神经元节点相连,即它的神经元间的连接是非全连接的,且同一层中某些神经元之间的连接的权重和偏移是共享的(即相同的),这样大量地减少了需要训练参数的数量。
卷积神经网络CNN的结构一般包含这几个层:(1)输入层:用于数据的输入;(2)卷积层:使用卷积核进行特征提取和特征映射;(3)激励层:由于卷积也是一种线性运算,因此需要增加非线性映射;(4)池化层:进行下采样,对特征图稀疏处理,减少数据运算量;(5)全连接层:通常在CNN的尾部进行重新拟合,减少特征信息的损失;(6)输出层:用于输出结果。
Tensorflow中卷积层的相关代码如下:
tf.nn.conv2d( input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None ) |
池化层的相关代码如下:
tf.nn.max_pool( value, ksize,strides,padding,data_format=’NHWC’,name=None ) 或者 tf.nn.avg_pool( … ) |
具体如何实现,读者可以根据需要深入学习,实现CNN,展开应用。
三、使用Tensorflow实现目标检测SSD,并应用于多目标检测
SSD直接采用卷积对不同的特征图来进行提取检测结果。在github.com上有许多开源的实现SSD源码共享,读者可以登陆https://github.com/balancap/SSD-Tensorflow查看SSD的示例,实现多目标检测。本书不再详细介绍。