如何将InceptionV3中的数据拟合到ImageDataGenerator

时间:2017-07-25 23:29:22

标签: neural-network keras deep-linking

如何将InceptionV3中的数据拟合到ImageDataGenerator?

我找到的将数据拟合到ImageDataGenerator的示例适用于mnist或cifar10,如下所示:

(X_train, y_train), (X_test, y_test) = mnist.load_data()
# fit parameters from data
datagen.fit(X_train)

但是我可以将InceptionV3模型的数据拟合到我的ImageDataGenerator吗?

我加载了我的Inception V3模型,如:

base_model = InceptionV3(weights='imagenet', include_top=True)
datagen = ImageDataGenerator(...)
datagen.fit(base_model.get_layer('avg_pool').output)

但我得到的错误是'ValueError:设置带序列的数组元素。'

1 个答案:

答案 0 :(得分:1)

我认为你需要分两步完成。首先将数据输入InceptionV3模型并将输出保存到numpy数组中。然后将这个numpy阵列送入你的第二个模型。

第一步是这样的(取自here):

generator = datagen.flow_from_directory(
    'data/train',
    target_size=(150, 150),
    batch_size=batch_size,
    class_mode=None,  # this means our generator will only yield batches of data, no labels
    shuffle=False)  # our data will be in order

bottleneck_features_train = model.predict_generator(generator, 2000)

np.save(open('bottleneck_features_train.npy', 'w'), 

bottleneck_features_train)