zoukankan      html  css  js  c++  java
  • 深度学习-手写数字识别代码

    Tensorflow2.0

    训练模型

    import tensorflow as tf
    from tensorflow import keras
    from tensorflow.keras.datasets import mnist
    from tensorflow.keras import layers
    (x_train,y_train),(x_test,y_test) = mnist.load_data()
    print(x_train.shape,y_train.shape)
    # 创建张量
    x_train = tf.constant(x_train,dtype=tf.float32)
    x_test = tf.constant(x_test,dtype=tf.float32)
    # Reshape
    x_train4d = tf.reshape(x_train,[x_train.shape[0],28,28,1])
    x_test4d = tf.reshape(x_test,[x_test.shape[0],28,28,1])
    print(tf.shape(x_train4d),tf.shape(x_test4d))
    #图像标准化
    x_train4d,x_test4d = x_train4d/255.0,x_test4d/255.0
    
    #模型搭建
    model = keras.Sequential([
        layers.Conv2D(filters=16,kernel_size=(5,5),padding='same',input_shape=(28,28,1),activation='relu'),
        layers.MaxPool2D(pool_size=(2,2)),
        layers.Conv2D(filters=36, kernel_size=(5, 5), padding='same', activation='relu'),
        layers.MaxPool2D(pool_size=(2,2)),
        layers.Dropout(0.25),
        layers.Flatten(),
        layers.Dense(128,activation='relu'),
        layers.Dropout(0.5),
        layers.Dense(10,activation='softmax')
    ])
    print(model.summary())
    
    #开始训练
    model.compile(loss='sparse_categorical_crossentropy',optimizer='adam', metrics=['accuracy'])
    model.fit(x=x_train4d, y=y_train, validation_split=0.2,epochs=20, batch_size=300, verbose=2)
    model.save("./model.h5")

    模型预测

    import tensorflow as tf
    from tensorflow import keras
    from tensorflow.keras.datasets import mnist
    from tensorflow.keras import layers
    (x_train,y_train),(x_test,y_test) = mnist.load_data()
    print(x_train.shape,y_train.shape)
    # 创建张量
    x_train = tf.constant(x_train,dtype=tf.float32)
    x_test = tf.constant(x_test,dtype=tf.float32)
    # Reshape
    x_train4d = tf.reshape(x_train,[x_train.shape[0],28,28,1])
    x_test4d = tf.reshape(x_test,[x_test.shape[0],28,28,1])
    print(tf.shape(x_train4d),tf.shape(x_test4d))
    #图像标准化
    x_train4d,x_test4d = x_train4d/255.0,x_test4d/255.0
    
    new_model =tf.keras.models.load_model("./model.h5")
    print(new_model.summary())
    new_model.evaluate(x_train4d,y_test)

    预测结果

  • 相关阅读:
    Vue学习笔记(4)-带参数路由,嵌套路由,编程式导航
    JS数组&&数组对象去重
    Vue学习笔记(3)-品牌管理系统
    Vue学习笔记(2)-组件生命周期
    负margin
    CSS布局奇淫巧计之-强大的负边距
    由浅入深漫谈margin属性
    双飞翼布局和圣杯布局的对比
    圣杯布局的实现过程
    CSS实现垂直居中的5种方法
  • 原文地址:https://www.cnblogs.com/2016-zck/p/14496352.html
Copyright © 2011-2022 走看看