LeNet-5实战

import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

batch = 32 #要处理的样本数

model = tf.keras.Sequential([ #层的堆叠模型
    keras.layers.Conv2D(6, 3), #将二维向量进行卷积
    keras.layers.MaxPooling2D(pool_size=2, strides=2),
    keras.layers.ReLU(),
    keras.layers.Conv2D(16, 3),
    keras.layers.MaxPooling2D(pool_size=2, strides=2),
    keras.layers.ReLU(),
    keras.layers.Flatten(), #多维的输入一维化
    keras.layers.Dense(120, activation='relu'),
    keras.layers.Dense(84, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])

model.build(input_shape=(batch, 28, 28, 1))
model.compile(optimizer=keras.optimizers.Adam(),
              loss=keras.losses.CategoricalCrossentropy(),
              metrics=['accuracy'])

def preprocess(x, y):
    x = tf.cast(x, dtype=tf.float32) / 255. #数据类型转换
    x = tf.reshape(x, [-1, 28, 28, 1])
    y = tf.one_hot(y, depth=10)
    return x, y

(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
train_db = tf.data.Dataset.from_tensor_slices((x_train, y_train))
train_db = train_db.shuffle(10000) #打乱
train_db = train_db.batch(128) #顺序读取
train_db = train_db.map(preprocess)

test_db = tf.data.Dataset.from_tensor_slices((x_test, y_test))
test_db = test_db.shuffle(10000)
test_db = test_db.batch(128)
test_db = test_db.map(preprocess)

model.fit(train_db, epochs=5)
model.evaluate(test_db)

预测结果:

 1/79 [..............................] - ETA: 7s - loss: 0.0385 - accuracy: 0.9922
11/79 [===>..........................] - ETA: 0s - loss: 0.0482 - accuracy: 0.9865
21/79 [======>.......................] - ETA: 0s - loss: 0.0385 - accuracy: 0.9900
31/79 [==========>...................] - ETA: 0s - loss: 0.0396 - accuracy: 0.9889
40/79 [==============>...............] - ETA: 0s - loss: 0.0421 - accuracy: 0.9881
50/79 [=================>............] - ETA: 0s - loss: 0.0424 - accuracy: 0.9873
60/79 [=====================>........] - ETA: 0s - loss: 0.0449 - accuracy: 0.9865
70/79 [=========================>....] - ETA: 0s - loss: 0.0425 - accuracy: 0.9872
79/79 [==============================] - 1s 7ms/step - loss: 0.0411 - accuracy: 0.9872
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
tf2.0深度学习实战(三)是一本介绍如何搭建lenet-5卷积神经网络的书籍。Lenet-5是一个经典的深度学习模型,通常用于手写数字识别任务。该书籍详细介绍了如何使用TensorFlow 2.0框架来实现Lenet-5模型,从搭建模型、编写代码到模型训练和验证,全方位地指导读者进行实战。 首先,书籍介绍了Lenet-5模型的结构和原理,包括卷积层、池化层和全连接层等基本组件的构成,以及激活函数、损失函数和优化器的选择。然后,通过TensorFlow 2.0的高层API,书籍演示了如何使用keras库来构建Lenet-5模型的代码,包括定义模型结构、编译模型、设置优化器和损失函数等步骤,使读者能够快速上手。 接着,书籍详细讲解了如何使用MNIST手写数字数据集来训练和验证Lenet-5模型,包括数据预处理、模型训练和测试评估等内容。通过实际的代码演示和实验结果展示,读者可以直观地了解模型的性能和训练过程,提升对深度学习模型的理解和实践能力。 最后,书籍还介绍了如何对Lenet-5模型进行优化和改进,包括调整模型结构、改变参数配置和使用其他技巧来提升模型的性能。通过这些内容,读者可以深入理解Lenet-5模型的原理和实现细节,为之后在实际项目中应用深度学习模型打下良好的基础。整体而言,tf2.0深度学习实战(三)通过详细的讲解和实战操作,帮助读者掌握了搭建Lenet-5卷积神经网络的技能和经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值