使用多个数据集训练神经网络(KERAS)

问题描述

我正在处理的数据集对应于各个时间序列信号。每个信号都是唯一的,具有不同的数据点总数,尽管每个信号代表相同的语义数据(速度单位为每小时英里)。

我正在与凯拉斯一起工作,并试图将一个基本的神经网络与数据相匹配,只是为了对其进行评估。以下是该功能的Python代码:

model = Sequential()
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(64, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

基本上,我将模型拟合到每个数据集,如下所示:

for file in directory:
    data = pd.read_csv(file)
    # get x_train and y_train ...
    model.fit(X_train, y_train, epochs=10)

这是在同一语义数据的多个数据集上训练模型的有效方法吗?


解决方案

可以,您可以创建模型然后调用循环中的数据进行训练,也可以使用循环将数据堆叠在单个矩阵中,然后调用Fit函数。在第一种方法中,您将在较小的数据块中调用Fit()n次,而在后一种方法中,您将只调用Fit()一次,但使用大数据矩阵。

但是,第一种方法更好,因为将所有数据分配到一个矩阵中可能会有问题。因此,请继续您当前的实施。

相关文章