六、卷积神经网络高级应用
CNN进阶
EaHalen
这个作者很懒,什么都没留下…
展开
-
6.12 超参数选择原则
一、网络容量概念:可以认为与网络中的可训练参数成正比网络中的神经单元数越多,层数越多,神经网络的拟合能力越强。但是训练速度、难度越大,越容易产生过拟合。二、如何选择超参数所谓超参数,也就是搭建神经网络中,需要我们自己选择(不是通过梯度下降算法去优化)的那些参数。比如,中间层的神经元个数、学习速率三、如何提高网络的拟合能力一种显然的想法是增大网络容量:1.增加层2.增加隐藏神经元个数这两种方法哪种更好呢?单纯的增加...原创 2022-04-04 00:27:33 · 417 阅读 · 0 评论 -
6.11 批标准化
一、什么是标准化传统机器学习中标准化也叫做归一化,一般是将数据映射到指定的范围,用于去除不同维度数据的量纲以及量纲单位。数据标准化让机器学习模型看到的不同样本彼此之间更加相似,这有助于模型的学习与对新数据的泛化。常见的数据标准化形式:标准化和归一化将数据减去其平均值使其中心为 0,然后将数据除以其标准差使其标准差为 1。标准化:减均值,除方差归一化:减最小值,除最大值减最小值二、什么是批标准化Batch Normalization, 批标准化, 和普通的数据标准化类似原创 2022-04-04 00:27:46 · 150 阅读 · 0 评论 -
6.10 输出层总结
回归问题 ------ 输出一个连续的值 --- 没有激活函数二分类问题 ------ 输出一个概率值 --- sigmoid激活多分类问题 ------ 输出N个值 --- softmax激活多标签问题原创 2022-04-04 00:28:07 · 376 阅读 · 0 评论 -
6.9 常见的预训练网络模型
一、可用的模型在ImageNet上预训练过的用于图像分类的模型:VGG16VGG19ResNet50InceptionV3InceptionResNetV2XceptionMobileNetMobileNetV2DenseNetNASNet二、Xception使用实例tf.keras.applications.xception.Xception(include_ top=True, weights= imagenet', input tensor=No...原创 2022-04-04 00:28:19 · 727 阅读 · 0 评论 -
6.8 使用预训练网络 3.0 实现猫狗分类 --- 微调
微调所谓微调: 冻结模型库的底部的卷积层,共同训练新添加的分类器层和顶部部分卷积层。这允许我们“微调”基础模型中的高阶特征表示,以使它们与特定任务更相关。只有分类器已经训练好了,才能微调卷积基的顶部卷积层。如果有没有这样的话,刚开始的训练误差很大,微调之前这些卷积层学到的表示会被破坏掉微调步骤一、在预训练卷积基上添加自定义层二、冻结卷积基所有层三、训练添加的分类层四、解冻卷积基的一部分层在1.0版本基础上添加covn_base.trainable...原创 2022-04-04 00:28:31 · 239 阅读 · 0 评论 -
6.7 使用预训练网络 2.0 实现猫狗分类
keras内置经典网络实现covn_base = keras.applications.VGG16(weights='imagenet', include_top=False, input_shape=(200, 200, 3))covn_base.summary()batch_size=20def extract_features(dat原创 2022-04-04 00:28:42 · 124 阅读 · 0 评论 -
6.6 前向传播与反向传播
一、深度学习网络本质深度学习网络本质是一种表示或者说映射网络输入一张图片 ------》 是猫的概率这就神经网络做的事情二、前向传播与反向传播前向传播:输入一张图片 ------》 概率反向传播:计算这个概率与实际的差距,叫做损失或者误差误差将被反向传递给网络的每一层三、预训练网络我们使用了预训练网络的前向传播过程使用网络做出预测,就是在使用网络前向传播的过程1、为什么训练网络过程这么慢...原创 2022-04-04 00:28:53 · 426 阅读 · 0 评论 -
6.5 使用 VGG 预训练网络实现猫狗分类
一)代码实现迁移学习import tensorflow as tfimport kerasfrom keras import layersimport numpy as npimport osimport shutilbase_dir = './dataset/cat_dog'train_dir = base_dir + '/train'train_dog_dir = train_dir + '/dog'train_cat_dir = train_dir + '/cat't..原创 2022-04-04 00:10:49 · 245 阅读 · 0 评论 -
6.4 预训练网络(迁移学习)基础概念
一、预训练网络预训练网络是一个保存好的之前已在大型数据集(大规模图像分类任务)上训练好的卷积神经网络。如果这个原始数据集足够大且足够通用,那么预训练网络学到的特征的空间层次结构可以作为有效的提取视觉世界特征的模型。即使新问题和新任务与原始任务完全不同学习到的特征在不同问题之间是可移植的,这也是深度学习与浅层学习方法的一个重要优势。它使得深度学习对于小数据问题非常的有效。二、 Keras内置预训练网络Keras库中包含VGG16、 VGG...原创 2022-04-03 20:30:03 · 939 阅读 · 0 评论 -
6.3 使用回调函数在训练过程中保存模型
在训练期间保存检查点在训练期间或训练结束时自动保存检查点。这样一来,您便可以使用经过训练的模型,而无需重新训练该模型,或从上次暂停的地方继续训练,以防训练过程中断。回调函数:tf.keras.callbacks.ModelCheckpointcheckpoint_path = 'training_cp/cp.ckpt'cp_callback = tf.keras.callbacks.ModelCheckpoint( checkpoint_path, ...原创 2022-04-03 18:17:06 · 262 阅读 · 0 评论 -
6.2 模型保存 --- 加载和保存模型结构&权重
一、只保存/加载模型的结构保存模型的结构,而非其权重或训练配置项:json_string = model.to_json()model.save('my_model.h5')my_model_json = model.to_json()with open('my_json_model.json', 'w') as f: f.write(my_model_json)from keras.models import model_from_jsonmodel = model_fr.原创 2022-04-03 17:41:05 · 2813 阅读 · 0 评论 -
6.1 Keras模型保存 ---- 加载和保存整个模型
一、模型保存依赖包Keras 模型保存为 HDF5 文件Keras 使用了 h5py Python 包。h5py 是 Keras 的依赖项,应默认被安装二、保存/加载整个模型不建议使用 pickle 或 cPickle 来保存 Keras 模型。使用 model.save(filepath) 将 Keras 模型保存到单个HDF5 文件中。三、Keras卷积实例 手写数据集import tensorflow as tfimpo...原创 2022-04-03 17:31:14 · 3760 阅读 · 0 评论