欢迎光临
我们一直在努力

CNN 卷积神经网络 (MNIST 手写数字数据集的分类)

CNN 卷积神经网络(MNIST 手写数字数据集分类)

数据准备

MNIST 数据集包含 60,000 张训练图像和 10,000 张测试图像,每张图像为 28×28 的灰度手写数字。数据需要预处理为适合 CNN 输入的格式:

import tensorflow as tf
from tensorflow.keras.datasets import mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(-1, 28, 28, 1).astype('float32') / 255.0
x_test = x_test.reshape(-1, 28, 28, 1).astype('float32') / 255.0
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)

模型架构

典型的 CNN 结构包含卷积层、池化层和全连接层:

model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
tf.keras.layers.MaxPooling2D((2, 2)),
tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),
tf.keras.layers.MaxPooling2D((2, 2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])

训练配置

使用交叉熵损失函数和 Adam 优化器:

model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
history = model.fit(x_train, y_train, epochs=5, batch_size=64, validation_split=0.2)

性能评估

测试集上的准确率通常可达 99% 以上:

test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"Test accuracy: {test_acc:.4f}")

关键改进方向
  • 数据增强:通过旋转、平移等操作扩充训练数据
  • 批归一化:在卷积层后添加 BatchNormalization 加速收敛
  • Dropout:在全连接层前加入 Dropout(0.5) 防止过拟合
  • 更深的网络:尝试 ResNet 等现代架构
完整代码示例

import tensorflow as tf
from tensorflow.keras import layers

# 数据加载与预处理
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
x_train = x_train.reshape(-1, 28, 28, 1).astype('float32') / 255.0
x_test = x_test.reshape(-1, 28, 28, 1).astype('float32') / 255.0
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)

# 模型构建
model = tf.keras.Sequential([
layers.Conv2D(32, 3, activation='relu', input_shape=(28, 28, 1)),
layers.MaxPooling2D(),
layers.Conv2D(64, 3, activation='relu'),
layers.MaxPooling2D(),
layers.Flatten(),
layers.Dense(128, activation='relu'),
layers.Dense(10, activation='softmax')
])

# 训练与评估
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))

avg.163.com/topic/detail/9409357
avg.163.com/topic/detail/9409370
avg.163.com/topic/detail/9409389
avg.163.com/topic/detail/9409351
avg.163.com/topic/detail/9409355
avg.163.com/topic/detail/9409352
avg.163.com/topic/detail/9409372
avg.163.com/topic/detail/9409393
avg.163.com/topic/detail/9409412
avg.163.com/topic/detail/9409369
avg.163.com/topic/detail/9409390
avg.163.com/topic/detail/9409407
avg.163.com/topic/detail/9409358
avg.163.com/topic/detail/9409377
avg.163.com/topic/detail/9409396
avg.163.com/topic/detail/9409416
avg.163.com/topic/detail/9409376
avg.163.com/topic/detail/9409426
avg.163.com/topic/detail/9409409
avg.163.com/topic/detail/9409354
avg.163.com/topic/detail/9409449
avg.163.com/topic/detail/9409433
avg.163.com/topic/detail/9409373
avg.163.com/topic/detail/9409339
avg.163.com/topic/detail/9409348
avg.163.com/topic/detail/9409367
avg.163.com/topic/detail/9409353
avg.163.com/topic/detail/9409384
avg.163.com/topic/detail/9409438
avg.163.com/topic/detail/9409395
avg.163.com/topic/detail/9409423
avg.163.com/topic/detail/9409414
avg.163.com/topic/detail/9409463
avg.163.com/topic/detail/9409430
avg.163.com/topic/detail/9409454
avg.163.com/topic/detail/9409435
avg.163.com/topic/detail/9409388
avg.163.com/topic/detail/9409359
avg.163.com/topic/detail/9409350
avg.163.com/topic/detail/9409431
avg.163.com/topic/detail/9409356
avg.163.com/topic/detail/9409452
avg.163.com/topic/detail/9409394
avg.163.com/topic/detail/9409413
avg.163.com/topic/detail/9409458
avg.163.com/topic/detail/9409445
avg.163.com/topic/detail/9409478
avg.163.com/topic/detail/9409451
avg.163.com/topic/detail/9409490
avg.163.com/topic/detail/9409487
avg.163.com/topic/detail/9409477
avg.163.com/topic/detail/9409456
avg.163.com/topic/detail/9409378
avg.163.com/topic/detail/9409476
avg.163.com/topic/detail/9409371
avg.163.com/topic/detail/9409374
avg.163.com/topic/detail/9409392
avg.163.com/topic/detail/9409473
avg.163.com/topic/detail/9409494
avg.163.com/topic/detail/9409509
avg.163.com/topic/detail/9409434
avg.163.com/topic/detail/9409470
avg.163.com/topic/detail/9409471
avg.163.com/topic/detail/9409489
avg.163.com/topic/detail/9409516
avg.163.com/topic/detail/9409510
avg.163.com/topic/detail/9409495
avg.163.com/topic/detail/9409397
avg.163.com/topic/detail/9409506
avg.163.com/topic/detail/9409497
avg.163.com/topic/detail/9409391
avg.163.com/topic/detail/9409515
avg.163.com/topic/detail/9409408
avg.163.com/topic/detail/9409428
avg.163.com/topic/detail/9409343
avg.163.com/topic/detail/9409526
avg.163.com/topic/detail/9409455
avg.163.com/topic/detail/9409450
avg.163.com/topic/detail/9409472
avg.163.com/topic/detail/9409492
avg.163.com/topic/detail/9409536
avg.163.com/topic/detail/9409503
avg.163.com/topic/detail/9409508
avg.163.com/topic/detail/9409531
avg.163.com/topic/detail/9409415
avg.163.com/topic/detail/9409528
avg.163.com/topic/detail/9409437
avg.163.com/topic/detail/9409411
avg.163.com/topic/detail/9409535
avg.163.com/topic/detail/9409553
avg.163.com/topic/detail/9409405
avg.163.com/topic/detail/9409548
avg.163.com/topic/detail/9409563
avg.163.com/topic/detail/9409469
avg.163.com/topic/detail/9409491
avg.163.com/topic/detail/9409555
avg.163.com/topic/detail/9409496
avg.163.com/topic/detail/9409523
avg.163.com/topic/detail/9409524
avg.163.com/topic/detail/9409547
avg.163.com/topic/detail/9409511
avg.163.com/topic/detail/9409550
avg.163.com/topic/detail/9409457
avg.163.com/topic/detail/9409565
avg.163.com/topic/detail/9409432
avg.163.com/topic/detail/9409453
avg.163.com/topic/detail/9409424
avg.163.com/topic/detail/9409560
avg.163.com/topic/detail/9409606
avg.163.com/topic/detail/9409591
avg.163.com/topic/detail/9409512
avg.163.com/topic/detail/9409567
avg.163.com/topic/detail/9409542
avg.163.com/topic/detail/9409546
avg.163.com/topic/detail/9409594
avg.163.com/topic/detail/9409572
avg.163.com/topic/detail/9409532
avg.163.com/topic/detail/9409474
avg.163.com/topic/detail/9409554
avg.163.com/topic/detail/9409592
avg.163.com/topic/detail/9409475
avg.163.com/topic/detail/9409602
avg.163.com/topic/detail/9409444
avg.163.com/topic/detail/9409634
avg.163.com/topic/detail/9409468
avg.163.com/topic/detail/9409604
avg.163.com/topic/detail/9409628
avg.163.com/topic/detail/9409533
avg.163.com/topic/detail/9409566
avg.163.com/topic/detail/9409611
avg.163.com/topic/detail/9409562
avg.163.com/topic/detail/9409579
avg.163.com/topic/detail/9409586
avg.163.com/topic/detail/9409514
avg.163.com/topic/detail/9409570
avg.163.com/topic/detail/9409534
avg.163.com/topic/detail/9409493
avg.163.com/topic/detail/9409551
avg.163.com/topic/detail/9409630
avg.163.com/topic/detail/9409342
avg.163.com/topic/detail/9409651
avg.163.com/topic/detail/9409647
avg.163.com/topic/detail/9409486
avg.163.com/topic/detail/9409648
avg.163.com/topic/detail/9409501
avg.163.com/topic/detail/9409549
avg.163.com/topic/detail/9409632
avg.163.com/topic/detail/9409585
avg.163.com/topic/detail/9409573
avg.163.com/topic/detail/9409613
avg.163.com/topic/detail/9409605
avg.163.com/topic/detail/9409593
avg.163.com/topic/detail/9409617
avg.163.com/topic/detail/9409344
avg.163.com/topic/detail/9409513
avg.163.com/topic/detail/9409568
avg.163.com/topic/detail/9409363
avg.163.com/topic/detail/9409667
avg.163.com/topic/detail/9409666
avg.163.com/topic/detail/9409708
avg.163.com/topic/detail/9409685
avg.163.com/topic/detail/9409522
avg.163.com/topic/detail/9409649
avg.163.com/topic/detail/9409607
avg.163.com/topic/detail/9409582
avg.163.com/topic/detail/9409624
avg.163.com/topic/detail/9409627
avg.163.com/topic/detail/9409609
avg.163.com/topic/detail/9409656
avg.163.com/topic/detail/9409385
avg.163.com/topic/detail/9409633
avg.163.com/topic/detail/9409530
avg.163.com/topic/detail/9409587
avg.163.com/topic/detail/9409552
avg.163.com/topic/detail/9409380
avg.163.com/topic/detail/9409687
avg.163.com/topic/detail/9409419
avg.163.com/topic/detail/9409725
avg.163.com/topic/detail/9409703
avg.163.com/topic/detail/9409564
avg.163.com/topic/detail/9409347
avg.163.com/topic/detail/9409744
avg.163.com/topic/detail/9409669
avg.163.com/topic/detail/9409614
avg.163.com/topic/detail/9409638
avg.163.com/topic/detail/9409686
avg.163.com/topic/detail/9409645
avg.163.com/topic/detail/9409680
avg.163.com/topic/detail/9409402
avg.163.com/topic/detail/9409664
avg.163.com/topic/detail/9409650
avg.163.com/topic/detail/9409601
avg.163.com/topic/detail/9409558
avg.163.com/topic/detail/9409668
avg.163.com/topic/detail/9409704
avg.163.com/topic/detail/9409440
avg.163.com/topic/detail/9409737
avg.163.com/topic/detail/9409724
avg.163.com/topic/detail/9409365
avg.163.com/topic/detail/9409584
avg.163.com/topic/detail/9409764
avg.163.com/topic/detail/9409626
avg.163.com/topic/detail/9409662
avg.163.com/topic/detail/9409783
avg.163.com/topic/detail/9409705
avg.163.com/topic/detail/9409699
avg.163.com/topic/detail/9409425
avg.163.com/topic/detail/9409683
avg.163.com/topic/detail/9409670
avg.163.com/topic/detail/9409446
avg.163.com/topic/detail/9409589
avg.163.com/topic/detail/9409465
avg.163.com/topic/detail/9409688
avg.163.com/topic/detail/9409460
avg.163.com/topic/detail/9409707
avg.163.com/topic/detail/9409758
avg.163.com/topic/detail/9409603
avg.163.com/topic/detail/9409386
avg.163.com/topic/detail/9409779
avg.163.com/topic/detail/9409742
avg.163.com/topic/detail/9409643
avg.163.com/topic/detail/9409806
avg.163.com/topic/detail/9409679
avg.163.com/topic/detail/9409762
avg.163.com/topic/detail/9409741
avg.163.com/topic/detail/9409710
avg.163.com/topic/detail/9409701
avg.163.com/topic/detail/9409689
avg.163.com/topic/detail/9409733
avg.163.com/topic/detail/9409599
avg.163.com/topic/detail/9409756
avg.163.com/topic/detail/9409485
avg.163.com/topic/detail/9409480
avg.163.com/topic/detail/9409723
avg.163.com/topic/detail/9409345
avg.163.com/topic/detail/9409642
avg.163.com/topic/detail/9409404
avg.163.com/topic/detail/9409663
avg.163.com/topic/detail/9409800
avg.163.com/topic/detail/9409695
avg.163.com/topic/detail/9409763
avg.163.com/topic/detail/9409782
avg.163.com/topic/detail/9409720
avg.163.com/topic/detail/9409824
avg.163.com/topic/detail/9409706
avg.163.com/topic/detail/9409735
avg.163.com/topic/detail/9409631
avg.163.com/topic/detail/9409772
avg.163.com/topic/detail/9409504
avg.163.com/topic/detail/9409646
avg.163.com/topic/detail/9409498
avg.163.com/topic/detail/9409740
avg.163.com/topic/detail/9409368
avg.163.com/topic/detail/9409517
avg.163.com/topic/detail/9409364
avg.163.com/topic/detail/9409427
avg.163.com/topic/detail/9409653
avg.163.com/topic/detail/9409678
avg.163.com/topic/detail/9409820
avg.163.com/topic/detail/9409714
avg.163.com/topic/detail/9409836
avg.163.com/topic/detail/9409784
avg.163.com/topic/detail/9409845
avg.163.com/topic/detail/9409804
avg.163.com/topic/detail/9409807
avg.163.com/topic/detail/9409722
avg.163.com/topic/detail/9409757
avg.163.com/topic/detail/9409791
avg.163.com/topic/detail/9409525
avg.163.com/topic/detail/9409778
avg.163.com/topic/detail/9409760
avg.163.com/topic/detail/9409665
avg.163.com/topic/detail/9409537
avg.163.com/topic/detail/9409387
avg.163.com/topic/detail/9409383
avg.163.com/topic/detail/9409447
avg.163.com/topic/detail/9409676
avg.163.com/topic/detail/9409403
avg.163.com/topic/detail/9409700
avg.163.com/topic/detail/9409728
avg.163.com/topic/detail/9409734
avg.163.com/topic/detail/9409856
avg.163.com/topic/detail/9409866
avg.163.com/topic/detail/9409884
avg.163.com/topic/detail/9409825
avg.163.com/topic/detail/9409743
avg.163.com/topic/detail/9409826
avg.163.com/topic/detail/9409814
avg.163.com/topic/detail/9409842
avg.163.com/topic/detail/9409543

赞(0)
未经允许不得转载:171主机测评 » CNN 卷积神经网络 (MNIST 手写数字数据集的分类)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址