200813_tensorflow2---5、卷积神经网络讲课,用CBAPD讲的话,真的极佳
200813_tensorflow2---5、卷积神经网络讲课,用CBAPD讲的话,真的极佳
一、总结
一句话总结:
卷积就是特征提取器,就是C(卷积层)B(批标准化层)A(激活层)P(池化层)D(dropout层)
model=tf.keras.models.Sequential([ Conv2D(filters=6,kernel_size=(5,5),padding='same'),#卷积层 BatchNormalization(),#BN层 Activation('relu'),#激活层 MaxPoo12D(pool_size=(2,2),strides=2,padding='same'),#池化层 Dropout(0.2),#dropout层 ])
1、保存模型的时候,比起保存整个模型,保存weight的意义何在?
保存weight可以非常方便的查看每一层神经网络weight的参数,可以非常直观的查看整个网络
print(model.trainable_variables) file = open('./weights.txt', 'w') for v in model.trainable_variables: file.write(str(v.name) + '\n') file.write(str(v.shape) + '\n') file.write(str(v.numpy()) + '\n') file.close()
2、LeNet(1998)和AlexNet(2012)的特点?
LeNet(1998):卷积网络开篇之作,共享卷积核,减少网络参数
AlexNet(2012):使用relu激活函数,提升训练速度;使用Dropout,缓解过拟合
3、VGGNet(2014)、InceptionNet(2014)、ResNet(2015)的特点?
VGGNet(2014):小尺寸卷积核减少参数,网络结构规整,适合并行加速
InceptionNet(2014):一层内使用不同尺寸卷积核,提升感知力使用批标准化,缓解梯度消失
ResNet(2015):层间残差跳连,引入前方信息,缓解模型退化,使神经网络层数加深成为可能
4、我们常说的优化模型中的参数初始化到底是什么?
就是初始化w和b,比如全0、全1、正态分布、标准分布等等
5、神经网络训练的一般技巧?
(A)、数据增强(对训练集图像进行旋转、偏移、翻转等多种操作, 目的是增强训练集的随机性)、
(B)、学习率策略(一般的策略是在训练过程中逐步减小学习率)、
(C)、Batch size 的大小设置(每个 batch 包含训练集图片的数量)、
(D)、模型参数初始化的方式等等。
另外,需要指出的是,在利用这些网络训练 cifar10 数据集时,课程给出的源码并未包 含其它的一些训练技巧,
例如数据增强(对训练集图像进行旋转、偏移、翻转等多种操作, 目的是增强训练集的随机性)、学习率策略(一般的策略是在训练过程中逐步减小学习率)、 Batch size 的大小设置(每个 batch 包含训练集图片的数量)、模型参数初始化的方式等等。
然而实际上,一些训练方法和超参数的设定对模型训练结果的影响是相当显著的,以 ResNet18 为例,如果采取合适的训练技巧,cifar10 的识别准确率是足以突破 90 %的。
所以, 在神经网络的训练中,除了选择合适的模型以外,如何更好地训练一个模型也是一个非常值 得探究的问题。
6、为什么在cifar10中的InceptionNet的表现不好?
(I)、首先其本身的设计理念是采用不同尺寸的卷积核,提供不同的感受 野,但 cifar10 只是一个单一的分类任务,二者的契合度并不高,
(II)、另外,由于本身结构的原因,InceptionNet 的参数量和计算量都比较大,训练需要耗费的资源比较多,所以课堂上仅 仅搭建了一个深度为 10 的精简版本(完整的 InceptionNet v1,即 GoogLeNet 有 22 层,训练 难度很大)
二、内容在总结中
博客对应课程的视频位置:
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-09-05:27岁,宅加太忙,特此在网上找女朋友,vx:fan404006308
AI交流资料群:753014672