微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ValueError:层顺序需要 1 个输入,但它收到 239 个输入张量 固定代码

如何解决ValueError:层顺序需要 1 个输入,但它收到 239 个输入张量 固定代码

我正在尝试测试一个简单的卷积层,其中输入图像(1 个波段 = 灰度)是存储在列表中的 numpy 数组,而目标存储在 Pandas 数据帧中。输入图像的大小为 16x16。 model.fit 的输出是“层顺序需要 1 个输入,但它收到 239 个输入张量”的错误。我也检查了 this link 但我仍然找不到答案。谁能帮我解决这个错误

(trainY,testY,trainX,testX) = train_test_split(df,images,test_size=0.20,random_state=42)
print (np.shape(trainY),np.shape(testY),np.shape(trainX),np.shape(testX))

result: (239,1) (60,1) (239,16,16) (60,16)

model = models.Sequential()
model.add(layers.Conv2D(32,(3,3),activation='relu',input_shape=(16,1),name='Layer1'))
model.add(layers.Flatten())
model.add(layers.Dense(16,name='layer2'))
model.add(layers.Dense(1,activation='linear',name='Layer3'))
model.summary()

model.compile(optimizer='adam',loss='mean_squared_error',metrics=['mae'])

history = model.fit(trainX,trainY,epochs=10,validation_split=.2,batch_size=4)

解决方法

在您的模型架构中定义的模型预期的输入是

function formatValeurDecimal(valeurAFormate,longueurPartieEntier,longueurPartieDecimal){

valeurAFormate = valeurAFormate.replace(",",".")
valeurAFormate = parseFloat(valeurAFormate).toFixed(longueurPartieDecimal)
if(valeurAFormate == 'NaN'){
    return 0
}

//____________________valeurPartieEntier__________________________________
var valeurPartieEntier = valeurAFormate | 0

var strValeur = valeurPartieEntier.toString()
strValeur = strValeur.substring(0,longueurPartieEntier)
valeurPartieEntier = strValeur

//____________________valeurPartieDecimal__________________________________
strValeur = valeurAFormate
strValeur = strValeur.substring(strValeur.indexOf('.')+1)
var valeurPartieDecimal = strValeur

valeurAFormate = valeurPartieEntier +'.'+valeurPartieDecimal
if(valeurAFormate == null){
    valeurAFormate = 0
}

return valeurAFormate

因此,在训练时,您可以发送一批 input_shape=(16,16,1) 单通道 (16X16) 图像。但是,您的数据形状是 X1。即您有一批 239 张 (239,16) 图像。您所要做的就是将 16X16 重塑为 16X16。由于您的数据位于 numpy 数组中,因此您可以使用 16X16X1 执行此操作。

expand_dim

固定代码

trainX = np.expand_dims(trainX,-1)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。