3 回答

TA贡献1786条经验 获得超13个赞
最好的方法是改变你的 keras 模型并重新训练。
无论如何,如果您无法重新训练您的网络,您可以手动编辑您的model.json文件。
您需要在model.json文件中找到输入层并添加
"config": {
...
"batch_input_shape": [
null,
28,
28,
1
]
...
}

TA贡献1853条经验 获得超9个赞
尝试将您的神经网络调整为以下格式:
input_img = Input(batch_shape=(None, 28,28,1))
layer1=Conv2D(filters=64, kernel_size=5, data_format="channels_last", activation="relu")(input_img)
layer2=BatchNormalization()(layer1)
.
.
.
final_layer=Dense(units=8, activation="softmax")(previous_layer)
……等等。在最后:
model = Model(inputs = input_img, outputs = final_layer)

TA贡献1900条经验 获得超5个赞
您必须在 keras 模型的 Conv2D 层中指定输入形状。
# imports ...
model = Sequential()
model.add(Conv2D(input_shape=(28, 28, 1), filters=64, kernel_size=5, data_format="channels_last", activation="relu"))
model.add(BatchNormalization())
model.add(MaxPooling2D(data_format="channels_last"))
model.add(Conv2D(filters=32, kernel_size=3, data_format="channels_last", activation="relu"))
model.add(BatchNormalization())
model.add(MaxPooling2D(data_format="channels_last"))
model.add(Flatten(data_format="channels_last"))
model.add(Dense(units=256, activation="relu"))
model.add(Dense(units=128, activation="relu"))
model.add(Dense(units=32, activation="relu"))
model.add(Dense(units=8, activation="softmax"))
# training ...
model.save("model.h5")
添加回答
举报