1.层级如下:针对mnist手写28x28的图片,使用卷积神经网络进行训练:
卷积层1、池化层1、卷积层2、池化层2、Flatten层、隐含层、输出层。

2.
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(train_x,train_y),(test_x,test_y)=mnist.load_data()
train_x = train_x.reshape(60000,28,28,1)
test_x = test_x.reshape(10000,28,28,1)
X_train=tf.cast(train_x/255.0,tf.float32)
X_test = tf.cast(test_x/255.0, tf.float32)
Y_train =tf.cast(train_y,tf.int32)
Y_test = tf.cast(test_y,tf.int32)
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(16,kernel_size=(3,3),padding='same',activation=tf.nn.relu,input_shape=(28,28,1)),
tf.keras.layers.MaxPool2D(pool_size=(2,2)),
tf.keras.layers.Conv2D(32, kernel_size=(3, 3), padding='same', activation=tf.nn.relu),
tf.keras.layers.MaxPool2D(pool_size=(2, 2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128,activation='relu'),
tf.keras.layers.Dense(10,activation='softmax')
])
model.summary()
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['sparse_categorical_accuracy'])
history = model.fit(X_train,Y_train,batch_size=64,epochs=5,validation_split=0.2)
model.evaluate(X_test,Y_test,verbose=2)
y_pred = np.argmax(model.predict(X_test[0:4]),axis=1)
for i in range(4):
plt.subplot(1,4,i+1)
plt.axis('off')
plt.imshow(test_x[i],cmap='gray')
plt.title("y="+str(test_y[i])+"\n y_pred:"+str(y_pred[i]))
plt.show()
#model.save("testjuanji1.h5")

CNN用于MNIST手写图片训练
574

被折叠的 条评论
为什么被折叠?



