gpt4 book ai didi

python - Keras VGG16 预测速度慢

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:23 26 4
gpt4 key购买 nike

我正在为这个迁移学习个人项目开发一个特征提取器,Kera 的 VGG16 模型的预测功能似乎很慢(4 张图像的批处理需要 31 秒)。我确实预计它会很慢,但不确定预测函数是否比应有的慢。

data = DataGenerator() 
data = data.from_csv(csv_path=csv_file,
img_dir=img_folder,
batch_size=batch)

#####################################################
conv_base = VGG16(include_top=False,
weights='imagenet',
input_shape=(480, 640, 3))

model = Sequential()
model.add(conv_base)
model.add(MaxPooling2D(pool_size=(3, 4)))
model.add(Flatten())
######################################################

for inputs, y in data:
feature_batch = model.predict(inputs)

yield feature_batch, y

所以,我的直觉是它变慢的原因如下:

  • 我的输入数据有点大(加载 (480, 640, 3) 大小的图像)
  • 我的 CPU 性能较差 (M3-6Y30 @ 0.90GHz)
  • 我在特征提取器的末尾进行了展平操作。

我尝试过的事情:

  • 其他 StackOverFlow 帖子建议将最大池化层添加到减小特征尺寸/移除多余的零。我让我考虑一个相当大的最大池窗口(从而减小特征尺寸显着,但我的预测时间增加了。
  • 批处理不会缩短时间,这可能是显而易见的使用我的 M3 CPU)。 1 张图像的批量大小需要 8 秒,a批量大小为 4 需要 32。

关于如何加快预测功能有什么想法吗?我需要通过至少 10,000 张图像来运行它,并且由于项目的性质,我想保留尽可能多的图像在进入模型之前尽可能使用原始数据(将其与其他特征提取模型进行比较)

我所有的图像文件都保存在本地,但我可以尝试设置一台云计算机并将我的代码移到那里以在 GPU 支持下运行。

问题仅仅是我在极小的 CPU 上运行 VGG16 模型吗?

非常感谢指导。

最佳答案

您的模型存在很多问题。主要问题当然是机器非常慢,但由于您无法在此处更改它,所以我将就如何加快计算速度提出一些建议:

  1. VGG16 是比较老的架构。这里的主要问题是所谓的张量体积(特征映射的面积乘以特征数量)减少得非常缓慢。我建议您使用更现代的架构,例如ResNet50Inception v3因为他们有所谓的干,它使内部张量非常快地变小。您的速度应该因此而受益。还有一个非常轻的架构叫做MobileNet这似乎非常适合您的任务。

  2. 缩减图像采样 - 尺寸为 (480, 640) 您的图像比默认 VGG 输入大 6 倍.这使得所有计算速度慢了 6 倍。您可以尝试先对图像进行下采样,然后使用特征提取器。

关于python - Keras VGG16 预测速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46719028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com