Python 如何在Keras/Tensorflow中返回扩充数据

Python 如何在Keras/Tensorflow中返回扩充数据,python,numpy,matrix,tensorflow,keras,Python,Numpy,Matrix,Tensorflow,Keras,我在增强数据中有一个预先训练过的网络,但我想从最后一层提取特征向量,然后训练另一个分类器(例如,svm)。为此,我需要从增强训练数据和测试数据中提取输出 然而,我在Keras/tensorflow方面非常在行,我只需要在numpy数组中拥有增强的训练数据,以便在我的特征提取程序代码中使用它。如果我没有问题地使用增强训练数据,我可以做到这一点 以下是我迄今为止所做的尝试: #train on augmented data model.fit_generator(datagen.flow(x_tra

我在增强数据中有一个预先训练过的网络,但我想从最后一层提取特征向量,然后训练另一个分类器(例如,svm)。为此,我需要从增强训练数据和测试数据中提取输出

然而,我在Keras/tensorflow方面非常在行,我只需要在numpy数组中拥有增强的训练数据,以便在我的特征提取程序代码中使用它。如果我没有问题地使用增强训练数据,我可以做到这一点

以下是我迄今为止所做的尝试:

#train on augmented data
model.fit_generator(datagen.flow(x_train, y_train,
                                     batch_size=batch_size),
                                     steps_per_epoch=x_train.shape[0] // batch_size,
                                     epochs=epochs,
                                     validation_data=(x_test, y_test))

#extract augmented data. Is this correct?
x_train_augmented, y_train_augmented=datagen.flow(x_train, y_train, batch_size=batch_size)
根据函数流(X,y):获取numpy数据和标签数组,并生成成批的增强/规范化数据。在无限循环中无限期地生成批次


那么,如何循环并返回形状矩阵(num_图像、宽度、高度、通道)中的增强数据呢

假设您有数量为28x28的灰度图像,那么您可以使用

for x_train_augmented, y_train_augmented in datagen.flow(x_train, y_train, batch_size=batch_size):
        x_train_data = x_train_augmented.reshape(-1, 28, 28, 1)

这里,x\u列数据的形状将是[N,28,28,1]。

谢谢您的回答。最后一个问题:这个循环有终点吗?似乎没有。是的,你是对的,它没有尽头。它将被执行,直到您停止它。我想,你知道如何终止循环。你们可以用柜台。