基于tensorflow2

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

模型结构

keras mnist

 

代码 

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('\ntest loss: ',loss)
print('\ntest accuracy: ',acc)

 

相关文章:

  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
  • 2021-08-14
  • 2021-05-30
  • 2021-11-02
  • 2022-12-23
  • 2021-05-12
猜你喜欢
  • 2022-12-23
  • 2022-02-07
  • 2022-12-23
  • 2021-09-25
  • 2021-10-20
  • 2022-02-25
  • 2022-12-23
相关资源
相似解决方案