machine-learning - 使用 Keras 进行层串联

标签 machine-learning keras

我计划进行以下设计:


enter image description here


但是我的代码似乎不起作用:

import numpy as np
from keras.models import Model
from keras.layers import Dense, Input, Concatenate
from keras import optimizers

trainX1 = np.array([[1,2],[3,4],[5,6],[7,8]])   # fake training data
trainY1 = np.array([[1],[2],[3],[4]])           # fake label

trainX2 = np.array([[2,3],[4,5],[6,7]])
trainY2 = np.array([[1],[2],[3]])

trainX3 = np.array([[0,1],[2,3]])
trainY3 = np.array([[1],[2]])

numFeatures = 2
trainXList = [trainX1, trainX2, trainX3]
trainYStack = np.vstack((trainY1,trainY2,trainY3))
inputList = []
modelList = []
for i,_ in enumerate(trainXList):
    tempInput= Input(shape = (numFeatures,))
    m = Dense(10, activation='tanh')(tempInput)
    inputList.append(tempInput)
    modelList.append(m)

mAll = Concatenate()(modelList)
out = Dense(1, activation='tanh')(mAll)
model = Model(inputs=inputList, outputs=out)

rmsp = optimizers.rmsprop(lr=0.00001)
model.compile(optimizer=rmsp,loss='mse', dropout = 0.1)
model.fit(trainXList, trainYStack, epochs = 1, verbose=0)

错误消息表明我的输入数据集形状不一样,但在我填充训练集以使所有 3 组的样本数 = 4 后,我仍然收到错误消息,指出尺寸不正确。我可以知道如何正确设计这个网络吗?谢谢!

<小时/>

附:这是填充之前的错误消息:

ValueError: All input arrays (x) should have the same number of samples. Got array shapes: [(4, 2), (3, 2), (2, 2)]

这是填充后的错误消息(发生在代码的最后一行):

ValueError: Input arrays should have the same number of samples as target arrays. Found 4 input samples and 12 target samples.

最佳答案

对于给定的输入,您的输入形状是错误的。 您为输入指定了 numFeatures 的大小,但实际上您有二维数组,并且它们是不同的 (4,2)(3,2)(2,2)。我不确定你的问题,但样本数量和特征数量似乎是相反的。

tempInput= Input(shape = (numFeatures,))

而且你的y也很奇怪。通常你有X(样本数,特征数)和y(样本数,标签)。

使用 model.summary() 查看您的网络的外观。

关于machine-learning - 使用 Keras 进行层串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51884171/

相关文章:

python - 使用随机森林算法、灵敏度和特异性进行预测

python - 值错误 : Cannot convert a Tensor of dtype resource to a NumPy array

java - 如何通过 TensorFlowInferenceInterface.java 提供 boolean 值占位符?

r - R 中的无监督学习?矩阵分类 - 什么是正确的包?

Tensorflow 错误解析记录

machine-learning - 麦卡洛克-皮茨神经元 NAND

python - Keras VGG 提取特征

matlab - 代表星图的两个向量之间的相似性

python - 如何将 tf.lookup 表与 TensorFlow 2.0 keras 和 MLFlow 结合使用

tensorflow - keras 和 tf.keras 有什么区别?