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)

    预测结果

  • 相关阅读:
    java ssh整合报错:java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
    Ubuntu16.04安装搜狗输入法后有黑边问题的解决方法
    socket
    vim编辑器的使用
    linux用户和群组
    bash shell
    [LightOJ 1128]Greatest Parent
    [Luogu P4180][BJWC 2010]严格次小生成树
    函数、方法区别
    有关_meta内容(持续更新)
  • 原文地址:https://www.cnblogs.com/2016-zck/p/14496352.html
Copyright © 2011-2022 走看看