You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Keras搭建符合指定结构的简单神经网络?

搭建符合要求的MNIST分类神经网络

需求回顾

  • 输入:与MNIST数字同形状的张量(MNIST单张图片为28×28的灰度图)
  • 网络结构要求:
    1. 第一个隐藏层:输出300维向量,激活函数为sigmoid
    2. 第二个隐藏层:输出300维向量,激活函数为relu
    3. 输出层:对应MNIST 10分类任务,使用softmax激活函数

修正后的完整代码

import keras
import tensorflow as tf
from keras.datasets import mnist
from keras.utils.np_utils import to_categorical
from keras import optimizers
from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten

# 加载并预处理MNIST数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 将像素值归一化到0-1区间,提升模型训练稳定性
x_train = x_train / 255.0
x_test = x_test / 255.0
# 将标签转为独热编码,适配多分类损失函数
y_train = to_categorical(y_train, num_classes=10)
y_test = to_categorical(y_test, num_classes=10)

# 搭建神经网络模型
model = Sequential()
# 先把28×28的二维输入张量展平为一维向量(784维)
model.add(Flatten(input_shape=(28, 28)))
# 第一个隐藏层:300个神经元,对应300维输出,激活函数sigmoid
model.add(Dense(300))
model.add(Activation('sigmoid'))
# 第二个隐藏层:300个神经元,对应300维输出,激活函数relu
model.add(Dense(300))
model.add(Activation('relu'))
# 输出层:10个神经元对应10分类,激活函数softmax
model.add(Dense(10))
model.add(Activation('softmax'))

# 编译模型(用于后续训练)
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

# 查看模型结构详情
model.summary()

关键参数说明

  1. 输入层处理:
    MNIST输入是28×28的二维张量,而Dense层仅接受一维输入,因此用Flatten层将二维张量展平为784维的一维向量,input_shape=(28,28)对应单张MNIST图片的原始形状。

  2. Dense层的units参数:

    • 第一个隐藏层Dense(300):units参数代表神经元数量,直接决定输出维度,设置为300满足需求的300维输出。
    • 第二个隐藏层Dense(300):同样设置units=300,匹配需求的300维输出要求。
    • 输出层Dense(10):MNIST是0-9的10分类任务,因此设置units=10,对应每个类别的预测概率。
  3. 激活函数的使用:

    • Activation('sigmoid'):Keras内置实现和你给出的公式1/(1 + np.exp(-x))逻辑完全一致,无需自定义。
    • Activation('relu'):对应公式max(0.0, x),内置实现经过优化,比自定义更高效稳定。
    • Activation('softmax'):内置实现会自动处理数值溢出问题,比你给出的自定义代码更适合实际训练场景。

内容的提问来源于stack exchange,提问作者user19825372

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:50:34