6.1 卷积神经网络实例

CNN用于MNIST手写图片训练

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")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_34047402

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值