如何调整Keras模型的输出尺寸?

问题描述 投票:1回答:2

我正在尝试使用Keras建立一个人工神经网络。模型的输入尺寸为(5,5,2),而输出的尺寸为(5,5)。运行keras.fit()函数时,遇到以下错误:

ValueError: Error when checking target: expected dense_3 to have 4 dimensions, but got array with shape (5, 5)

这是我正在执行的代码

from keras.models import Sequential
from keras.layers import Dense, Flatten
import matplotlib.pyplot as plt
from keras.callbacks import EarlyStopping, ModelCheckpoint

model = Sequential()

model.add(Dense(1000, input_shape=(5, 5, 2), activation="relu"))
model.add(Dense(1000, activation="relu"))
model.add(Dense(2), output_shape=(5,5))

model.summary()

model.compile(optimizer="adam",loss="mse", metrics = ["mse"])

monitor_val_acc = EarlyStopping(monitor="loss", patience = 10)


history = model.fit(trainX, trainYbliss, epochs=1000, validation_data=(testX, testY), callbacks = [monitor_val_acc], verbose = 1)

clinical = model.predict(np.arange(0, len(testY)))

这是网络的体系结构:

Layer (type)                 Output Shape              Param #   
=================================================================
dense_1 (Dense)              (None, 5, 5, 1000)        3000      
_________________________________________________________________
dense_2 (Dense)              (None, 5, 5, 1000)        1001000   
_________________________________________________________________
dense_3 (Dense)              (None, 5, 5, 1)           1001      
=================================================================
Total params: 1,005,001
Trainable params: 1,005,001
Non-trainable params: 0
_________________________________________________________________

模型应基于(5,5,2)数组输出(5,5)数组,但在最低隐藏层失败。我该如何解决?

python python-3.x tensorflow keras keras-layer
2个回答
0
投票

使用下面的代码作为参考,根据您的输入值更改值:

train_data = train_data.reshape(train_data.shape [0],10、30、30、1)

对于您输入的两个火车数据,


-1
投票

您的网络将输出形状为(batch_size, 5, 5, 1)的张量。您的输出是4维张量吗?如果它是(5,5)的单个值,则需要将其重塑为(1,5,5,1),我认为

© www.soinside.com 2019 - 2024. All rights reserved.