我有一个简单的功能,可以获取图像URL并使用Keras中的resnet从中提取特征,然后将其传递给从pkl文件加载的Xgboost模型。
def classify(img, resnet_model, loaded_model):
try:
images = io.imread(img.strip())
images = Image.fromarray(images)
test_image = img.resize((224,224))
test_image = image.img_to_array(test_image)
test_image = expand_dims(test_image, axis = 0)
img_data = preprocess_input(test_image)
image_features = resnet_model.predict(img_data)
image_features_array = array(image_features)
predicted_image = loaded_model.predict(xgb.DMatrix(DataFrame(image_features_array)))
except:
predicted_image = 'Broken URL'
return predicted_image`
当前,我只是循环浏览img url列表,它可以正常工作,但是我需要它来更快地执行。代码本身可能不是最高效的,但是我最关心的是多处理。我的尝试挂起或立即导致列表为空。
几年前,这里有一个类似的问题:question,但答案不是很令人满意,涉及在本地保存一批图像文件。我希望只有一个工作人员对图像进行请求,然后预测该图像。