zoukankan      html  css  js  c++  java
  • keras mnist

    基于tensorflow2

    最简单的keras demo,做一个备份,以后有需要直接复制

    模型结构

    代码 

    import numpy as np
    import tensorflow as tf
    from tensorflow.keras import layers
    from tensorflow.keras import models
    from tensorflow.keras import optimizers
    from tensorflow.keras import datasets
    from tensorflow.python.keras.utils import np_utils
    
    
    (x_train,y_train),(x_test,y_test)=datasets.mnist.load_data()
    print(x_train.shape,x_test.shape)
    print(y_train.shape,y_test.shape)
    
    
    x_train=x_train.reshape(x_train.shape[0],x_train.shape[1],x_train.shape[2],1)
    x_test=x_test.reshape(x_test.shape[0],x_test.shape[1],x_test.shape[2],1)
    x_train=x_train/255
    x_test=x_test/255
    y_train=np_utils.to_categorical(y_train)
    y_test=np_utils.to_categorical(y_test)
    print(x_train.shape,x_test.shape)
    print(y_train.shape,y_test.shape)
    
    
    inp_img=layers.Input(shape=(28,28,1))
    layer1_conv=layers.Conv2D(32,(3,3),padding='same',activation='relu')(inp_img)
    layer1_pool=layers.AveragePooling2D((2,2))(layer1_conv) 
    layer2_conv=layers.Conv2D(64,(3,3),padding='same',activation='relu')(layer1_pool)
    layer2_pool=layers.AveragePooling2D((2,2))(layer2_conv)  
    layer3_conv=layers.Conv2D(128,(3,3),padding='same',activation='relu')(layer2_pool)
    layer3_pool=layers.AveragePooling2D((7,7))(layer3_conv)   
    layer4_fc=layers.Flatten()(layer3_pool)
    pred=layers.Dense(10,activation='softmax')(layer4_fc)
    model=models.Model(inp_img,pred)
    adam=optimizers.Adam(lr=0.01)
    model.compile(optimizer=adam,loss='categorical_crossentropy',metrics=['acc'])
    model.summary()
    
    
    model.fit(x_train,y=y_train,epochs=10,batch_size=32)
    model.save('mnist_cnn.h5')
    loss,acc=model.evaluate(x_test,y_test)
    print('
    test loss: ',loss)
    print('
    test accuracy: ',acc)
    无情的摸鱼机器
  • 相关阅读:
    移动端input中的placeholder属性垂直
    js将文字转化为语音并播放
    js生成二维码
    jquery移除事件,绑定事件,触发事件
    js计算本地时间
    正则判断支付金额
    去除input默认带的上下按钮与修改placeholder的默认颜色、背景、placeholder内容的大小
    rem自适应手机端布局
    Python_PyQt5_库
    Python_用PyQt5 建 notepad 界面
  • 原文地址:https://www.cnblogs.com/wangtianning1223/p/14436368.html
Copyright © 2011-2022 走看看