DL之AlexNet(Keras框架):利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型→加载模型)

简介: DL之AlexNet(Keras框架):利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型→加载模型)


目录

利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)

设计思路

处理过程及结果呈现

基于ImageDataGenerator实现数据增强

类AlexNet代码


相关文章

DL之AlexNet(Keras框架):利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)

DL之AlexNet(Keras框架):利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)实现

利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型→加载模型)

设计思路

处理过程及结果呈现

Found 17500 images belonging to 2 classes.

Found 7500 images belonging to 2 classes.

1. _________________________________________________________________
2. Layer (type)                 Output Shape              Param #   
3. =================================================================
4. input_1 (InputLayer)         (None, 150, 150, 3)       0
5. _________________________________________________________________
6. conv2d_1 (Conv2D)            (None, 148, 148, 64)      1792
7. _________________________________________________________________
8. batch_normalization_1 (Batch (None, 148, 148, 64)      256
9. _________________________________________________________________
10. activation_1 (Activation)    (None, 148, 148, 64)      0
11. _________________________________________________________________
12. max_pooling2d_1 (MaxPooling2 (None, 74, 74, 64)        0
13. _________________________________________________________________
14. conv2d_2 (Conv2D)            (None, 72, 72, 64)        36928
15. _________________________________________________________________
16. batch_normalization_2 (Batch (None, 72, 72, 64)        256
17. _________________________________________________________________
18. activation_2 (Activation)    (None, 72, 72, 64)        0
19. _________________________________________________________________
20. max_pooling2d_2 (MaxPooling2 (None, 36, 36, 64)        0
21. _________________________________________________________________
22. conv2d_3 (Conv2D)            (None, 34, 34, 128)       73856
23. _________________________________________________________________
24. batch_normalization_3 (Batch (None, 34, 34, 128)       512
25. _________________________________________________________________
26. activation_3 (Activation)    (None, 34, 34, 128)       0
27. _________________________________________________________________
28. max_pooling2d_3 (MaxPooling2 (None, 17, 17, 128)       0
29. _________________________________________________________________
30. conv2d_4 (Conv2D)            (None, 15, 15, 128)       147584
31. _________________________________________________________________
32. batch_normalization_4 (Batch (None, 15, 15, 128)       512
33. _________________________________________________________________
34. activation_4 (Activation)    (None, 15, 15, 128)       0
35. _________________________________________________________________
36. max_pooling2d_4 (MaxPooling2 (None, 7, 7, 128)         0
37. _________________________________________________________________
38. flatten_1 (Flatten)          (None, 6272)              0
39. _________________________________________________________________
40. dense_1 (Dense)              (None, 64)                401472
41. _________________________________________________________________
42. batch_normalization_5 (Batch (None, 64)                256
43. _________________________________________________________________
44. activation_5 (Activation)    (None, 64)                0
45. _________________________________________________________________
46. dropout_1 (Dropout)          (None, 64)                0
47. _________________________________________________________________
48. dense_2 (Dense)              (None, 1)                 65
49. _________________________________________________________________
50. activation_6 (Activation)    (None, 1)                 0
51. =================================================================
52. Total params: 663,489
53. Trainable params: 662,593
54. Non-trainable params: 896
55. _________________________________________________________________
56. None
57. Epoch 1/10
58.  - 837s - loss: 0.8109 - binary_accuracy: 0.5731 - val_loss: 0.7552 - val_binary_accuracy: 0.6275
59. Epoch 2/10
60.  - 972s - loss: 0.6892 - binary_accuracy: 0.6184 - val_loss: 0.6323 - val_binary_accuracy: 0.6538
61. Epoch 3/10
62.  - 888s - loss: 0.6773 - binary_accuracy: 0.6275 - val_loss: 0.6702 - val_binary_accuracy: 0.6475
63. Epoch 4/10
64.  - 827s - loss: 0.6503 - binary_accuracy: 0.6522 - val_loss: 1.4757 - val_binary_accuracy: 0.5437
65. Epoch 5/10
66.  - 775s - loss: 0.6024 - binary_accuracy: 0.6749 - val_loss: 0.5872 - val_binary_accuracy: 0.6975
67. Epoch 6/10
68.  - 775s - loss: 0.5855 - binary_accuracy: 0.6935 - val_loss: 1.6343 - val_binary_accuracy: 0.5075
69. Epoch 7/10
70.  - 781s - loss: 0.5725 - binary_accuracy: 0.7117 - val_loss: 1.0417 - val_binary_accuracy: 0.5850
71. Epoch 8/10
72.  - 770s - loss: 0.5594 - binary_accuracy: 0.7268 - val_loss: 0.6793 - val_binary_accuracy: 0.6150
73. Epoch 9/10
74.  - 774s - loss: 0.5619 - binary_accuracy: 0.7239 - val_loss: 0.7271 - val_binary_accuracy: 0.5737
75. Epoch 10/10
76.  - 772s - loss: 0.5206 - binary_accuracy: 0.7485 - val_loss: 1.2269 - val_binary_accuracy: 0.5564
77. train_history.history {'val_loss': [0.7552271389961243, 0.6323019933700561, 0.6702361726760864, 1.4756725096702576, 0.5872411811351776, 1.6343200182914734, 1.0417238283157348, 0.679338448047638, 0.7270535206794739, 1.2268943945566813], 'val_binary_accuracy': [0.6275, 0.65375, 0.6475, 0.54375, 0.6975, 0.5075, 0.585, 0.615, 0.57375, 0.5564102564102564], 'loss': [0.8109277236846185, 0.6891729639422509, 0.6772915293132106, 0.6502932430275025, 0.6023876513204267, 0.5855168705025027, 0.5725259766463311, 0.5594036031153894, 0.561434359863551, 0.5205760602989504], 'binary_accuracy': [0.5730846774193549, 0.6184475806451613, 0.6275201612903226, 0.6522177419354839, 0.6748991935483871, 0.6935483870967742, 0.7116935483870968, 0.7268145161290323, 0.7242424240015974, 0.7484879032258065]}
78.

基于ImageDataGenerator实现数据增强

扩充数据集大小,增强模型的泛化能力。比如进行旋转、变形、归一化等。

  • 扩充数据量:对图像作简单的预处理(如缩放,改变像素值范围);
    随机打乱图像顺序,并且在图像集上无限循环(不会出现数据用完的情况);
    对图像加入扰动,大大增大数据量,避免多次输入相同的训练图像产生过拟合。
  • 优化训练效率:训练神经网络时经常需要将数据分成小的批次(例如每16张图像作为一个batch提供给神经网络),在ImageDataGenerator中,只需要简单提供一个参数 batch_size = 16。

类AlexNet代码

1. n_channels = 3
2. input_shape = (*image_size, n_channels)
3. input_layer = Input(input_shape)
4. z = input_layer
5. z = Conv2D(64, (3, 3))(z)
6. z = BatchNormalization()(z)
7. z = Activation('relu')(z)
8. z = MaxPooling2D(pool_size=(2, 2))(z)
9. 
10. z = Conv2D(64, (3, 3))(z)
11. z = BatchNormalization()(z)
12. z = Activation('relu')(z)
13. z = MaxPooling2D(pool_size=(2, 2))(z)
14. 
15. z = Conv2D(128, (3, 3))(z)
16. z = BatchNormalization()(z)
17. z = Activation('relu')(z)
18. z = MaxPooling2D(pool_size=(2, 2))(z)
19. 
20. z = Conv2D(128, (3, 3))(z)
21. z = BatchNormalization()(z)
22. z = Activation('relu')(z)
23. z = MaxPooling2D(pool_size=(2, 2))(z)
24. 
25. z = Flatten()(z) # 将特征变成一维向量
26. z = Dense(64)(z)
27. z = BatchNormalization()(z)
28. z = Activation('relu')(z)
29. z = Dropout(0.5)(z)
30. z = Dense(1)(z)
31. z = Activation('sigmoid')(z)


相关文章
|
6月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
495 0
|
7月前
|
机器学习/深度学习 数据采集 运维
匹配网络处理不平衡数据集的6种优化策略:有效提升分类准确率
匹配网络是一种基于度量的元学习方法,通过计算查询样本与支持集样本的相似性实现分类。其核心依赖距离度量函数(如余弦相似度),并引入注意力机制对特征维度加权,提升对关键特征的关注能力,尤其在处理复杂或噪声数据时表现出更强的泛化性。
401 6
匹配网络处理不平衡数据集的6种优化策略:有效提升分类准确率
|
5月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
856 0
|
5月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
242 0
|
6月前
|
机器学习/深度学习 数据采集 并行计算
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
683 2
|
6月前
|
安全 网络性能优化 网络虚拟化
网络交换机分类与功能解析
接入交换机(ASW)连接终端设备,提供高密度端口与基础安全策略;二层交换机(LSW)基于MAC地址转发数据,构成局域网基础;汇聚交换机(DSW)聚合流量并实施VLAN路由、QoS等高级策略;核心交换机(CSW)作为网络骨干,具备高性能、高可靠性的高速转发能力;中间交换机(ISW)可指汇聚层设备或刀片服务器内交换模块。典型流量路径为:终端→ASW→DSW/ISW→CSW,分层架构提升网络扩展性与管理效率。(238字)
1526 0
|
6月前
|
机器学习/深度学习 计算机视觉
基于CNN和大气散射模型的图像去雾
基于CNN和大气散射模型的图像去雾
|
6月前
|
机器学习/深度学习 数据采集 运维
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
379 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
295 10

热门文章

最新文章