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)

    预测结果

  • 相关阅读:
    [ubuntu] aptget 详解
    zoj 1048 求平均数 python
    zoj 1001 A+B Python版本
    HustOj 数据库分析(r1292) [—夏 夏 ]
    poj 3020 Antenna Placement 夜
    poj 3349 Snowfalke Snow Snowflakes 夜
    poj 1062 昂贵的聘礼 夜
    poj 3368 Frequent values 夜
    poj 2524 Ubiquitous Religions 夜
    poj 1273 Drainage Ditches 夜
  • 原文地址:https://www.cnblogs.com/2016-zck/p/14496352.html
Copyright © 2011-2022 走看看