当前位置:首页>AI快讯 >

如何构建自己的第一个神经网络

发布时间:2025-10-12源自:融质(上海)科技有限公司作者:融质科技编辑部

构建你的第一个神经网络:手写数字识别实战指南

*环境准备*

安装Python(推荐3.8+版本)

安装必要库(命令行执行):

bash

pip install tensorflow numpy matplotlib

*代码实现(6步完成)*


**1. 导入核心库**

import tensorflow as tf

from tensorflow.keras import layers

import matplotlib.pyplot as plt

**2. 加载数据集(内置MNIST)**

(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()

**3. 数据预处理**

train_images = train_images.reshape((60000, 28, 28, 1)).astype('float32') / 255

test_images = test_images.reshape((10000, 28, 28, 1)).astype('float32') / 255

**4. 构建神经网络模型**

model = tf.keras.Sequential([

    layers.Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)),

    layers.MaxPooling2D((2,2)),

    layers.Flatten(),

    layers.Dense(128, activation='relu'),

    layers.Dense(10, activation='softmax')

])

**5. 编译与训练**

model.compile(optimizer='adam',

              loss='sparse_categorical_crossentropy',

              metrics=['accuracy'])

history = model.fit(train_images, train_labels, 

                    epochs=5, 

                    batch_size=64,

                    validation_split=0.2)

**6. 评估模型**

test_loss, test_acc = model.evaluate(test_images, test_labels)

print(f'
测试准确率: {test_acc:.4f}')

*关键组件解析*

卷积层:提取图像特征(如边缘、纹理)

池化层:压缩特征图尺寸,增强位置不变性

全连接层:整合特征进行最终分类

Softmax激活:将输出转换为概率分布

*可视化训练过程*


**绘制准确率变化曲线**

plt.plot(history.history['accuracy'], label='训练集')

plt.plot(history.history['val_accuracy'], label='验证集')

plt.title('模型训练准确率变化')

plt.ylabel('准确率')

plt.xlabel('训练轮次')

plt.legend()

plt.show()

*新数据预测示例*


**选取测试集第0张图片**

sample = test_images[0].reshape(1,28,28,1)

prediction = model.predict(sample)

print(f'模型预测: {tf.argmax(prediction[0]).numpy()}')

print(f'实际标签: {test_labels[0]}')

**显示图片**

plt.imshow(test_images[0].reshape(28,28), cmap='gray')

plt.show()

*常见问题处理*

过拟合:添加Dropout层(如layers.Dropout(0.2)

训练缓慢:减少网络深度或增加batch_size

准确率低:尝试增加卷积层数量或训练轮次

进阶提示

  1. 尝试调整卷积核数量(32→64)

  2. 添加第二个卷积层提升特征提取能力

  3. 使用数据增强(旋转/平移图片)提升泛化性

恭喜!你已实现能识别手写数字的卷积神经网络。通过修改网络结构和参数,可进一步应用于图像分类、物体检测等场景。

欢迎分享转载→ https://shrzkj.com.cn/aikuaixun/144596.html

Copyright © 2025 融质(上海)科技有限公司 All Rights Reserved. 本站部分资源来自互联网收集,如有侵权请联系我们删除。沪ICP备2024065424号-2XML地图