如何通过循环将 predict_generator 输出写入文件?
how to write predict_generator output to a file over a loop?
我有一个大的图像数据集,我想在其上 运行 predict_generator。由于内存问题,我无法一次 运行 所有这些。这个想法是
通过遍历图像范围并对其进行预测,将一小组图像迭代地提供给生成器。
将预测保存到文件
稍后循环打开文件以读取所有预测以计算代码中提到的概率。
validation_generator = ImageDataGenerator(rescale=1./255).flow_from_directory(path, target_size=(img_width, img_height),
batch_size=6,shuffle=False)
print("generator built")
print (counter)
#file = open('Failed.py', 'w')
#for x in file:
# for i in range(counter):
# features = model.predict_generator(validation_generator,steps=2)
print("features found")
model = Sequential()
model.add(Flatten(input_shape=(3, 3, 1536)))
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(6, activation='softmax'))
model.load_weights(top_model_weights_path)
print("top model loaded")
prediction_proba = model.predict_proba(features)
prediction_classes = model.predict_classes(features)
print(prediction_proba)
print(prediction_classes)
print("original file names")
print(validation_generator.filenames)
问题是如何将不同的预测保存在一个文件中。我已经尝试为文件创建一个 for 循环但不确定它应该如何工作?如果有人可以为定义的目标提供提示,那就太好了。
预测并保存
i = 0
maximumPredictions = ??
for x,y in generator: #if the generator doesn't have y, use only "for x in..."
predictions = model.predict(x)
numpy.save('predictions/prediction' + str(i) +".npy", predictions)
i+=1
if i == maximumPredictions:
break;
正在加载和处理
files = [name for name in os.listdir('predictions')]
for file in files:
prediction = numpy.load('predictions/"+file)
#do what you want with the loaded predictions.
我有一个大的图像数据集,我想在其上 运行 predict_generator。由于内存问题,我无法一次 运行 所有这些。这个想法是
通过遍历图像范围并对其进行预测,将一小组图像迭代地提供给生成器。
将预测保存到文件
稍后循环打开文件以读取所有预测以计算代码中提到的概率。
validation_generator = ImageDataGenerator(rescale=1./255).flow_from_directory(path, target_size=(img_width, img_height),
batch_size=6,shuffle=False)
print("generator built")
print (counter)
#file = open('Failed.py', 'w')
#for x in file:
# for i in range(counter):
# features = model.predict_generator(validation_generator,steps=2)
print("features found")
model = Sequential()
model.add(Flatten(input_shape=(3, 3, 1536)))
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(6, activation='softmax'))
model.load_weights(top_model_weights_path)
print("top model loaded")
prediction_proba = model.predict_proba(features)
prediction_classes = model.predict_classes(features)
print(prediction_proba)
print(prediction_classes)
print("original file names")
print(validation_generator.filenames)
问题是如何将不同的预测保存在一个文件中。我已经尝试为文件创建一个 for 循环但不确定它应该如何工作?如果有人可以为定义的目标提供提示,那就太好了。
预测并保存
i = 0
maximumPredictions = ??
for x,y in generator: #if the generator doesn't have y, use only "for x in..."
predictions = model.predict(x)
numpy.save('predictions/prediction' + str(i) +".npy", predictions)
i+=1
if i == maximumPredictions:
break;
正在加载和处理
files = [name for name in os.listdir('predictions')]
for file in files:
prediction = numpy.load('predictions/"+file)
#do what you want with the loaded predictions.