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)

    预测结果

  • 相关阅读:
    JS,JQuery的扩展方法
    Listbox简单用法
    Button模板,样式
    WPF开发经验
    弹出窗体主体实现事件
    从一知半解到揭晓Java高级语法—泛型
    深入理解Java之装箱与拆箱
    探究 — 二叉搜索树
    深入理解二叉树(超详细)
    二分查找及其变种算法
  • 原文地址:https://www.cnblogs.com/2016-zck/p/14496352.html
Copyright © 2011-2022 走看看