RNN例程

本文介绍了如何使用TensorFlow构建一个简单的卷积神经网络(CNN)来识别MNIST数据集中的手写数字,涵盖了数据预处理、模型构建、训练和测试过程。关键步骤包括Reshape操作、卷积层、池化层和全连接层的运用。
摘要由CSDN通过智能技术生成
import os
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import models
from tensorflow.keras import datasets,Sequential,layers,optimizers,metrics
from tensorflow.keras.layers import Conv2D,MaxPooling2D,Flatten,Dense,Reshape

print(tf.__version__)

#数据预处理
def proprocess(x,y):
    x = tf.cast(x, dtype=tf.float32) / 255.
    y = tf.cast(y, dtype=tf.int32)
    return x,y
#构建数据集对象,方便对数据的打乱,批处理等超操作
batch_size = 32
#load data
(x_train,y_train),(x_test,y_test) = datasets.mnist.load_data()

#构建网络中用到的权重
def Model():
    model = models.Sequential()
    model.add(Reshape((28,28,1),input_shape=(28,28)))
    model.add(Conv2D(32,(3,3),activation='relu'))
    model.add(MaxPooling2D(2,2))
    model.add(Conv2D(64,(3,3),activation='relu'))
    model.add(MaxPooling2D(2,2))
    model.add(Conv2D(64,(3,3),activation='relu'))
    model.add(Flatten())
    model.add(Dense(64,activation='relu'))
    model.add(Dense(10,activation='softmax'))
    return  model


if __name__ == '__main__':
    #gpu config
    # physical_devices = tf.config.experimental.list_logical_devices('GPU')
    # tf.config.experimental.set_memory_growth(device=physical_devices[0],enable=True)

    #load data
    (x_train,y_train),(x_test,y_test) = datasets.mnist.load_data()

    #get CNN model
    model =Model()

    #show
    model.summary()

    #train
    model.compile(optimizers.SGD(0.005),loss = 'sparse_categorical_crossentropy',metrics=['accuracy'])
    model.fit(
        x_train,
        y_train,
        batch_size=32,
        epochs=30) 

    #test
    test_loss,test_acc = model.evaluate(x_test,y_test)
    print(test_acc)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值