You need to enable JavaScript to run this app. 自定义Fashion MNIST编码器训练时出现ValueError输入维度不兼容问题
优惠活动
大模型
产品
解决方案
定价
更多

自定义Fashion MNIST编码器训练时出现ValueError输入维度不兼容问题

错误含义解释

该报错为输入形状不匹配错误:你当前定义的编码器模型要求输入的张量形状为(批量大小, 784),即要求单张输入图像提前展平为784维的一维向量;但你实际传入训练接口的x_train数据形状为(32, 28, 28),每个batch内的样本仍是28*28的二维原始图像,形状不符合模型要求因此触发错误。

解决方案

你不需要同时修改模型和数据,二选一即可:

  • 方案1:保留现有模型结构,预处理数据匹配模型输入要求
    对训练集、测试集执行展平操作即可,代码如下:
    x_train = x_train.reshape(-1, 784)
    x_test = x_test.reshape(-1, 784)
    
    处理完成后直接调用model.fit训练即可。
  • 方案2:保留原始数据格式,修改模型输入层适配原始数据
    如果你不想提前处理数据,可以调整模型输入定义,将展平操作集成到模型内部,修改后的编码器代码如下:
    #Encoder 适配原始28*28图像输入
    from tensorflow.keras.layers import Flatten
    input1 = Input(shape = (28, 28,))
    flatten_layer = Flatten()(input1)
    hidden1 = Dense(128, activation = 'relu')(flatten_layer)
    hidden2 = Dense(64, activation = 'relu')(hidden1)
    hidden3 = Dense(32, activation = 'relu')(hidden2)
    model = Model(inputs = input1, outputs = hidden3)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 02:36:06