如何利用Keras的预训练ResNet50模型进行高效图像分类?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4064个文字,预计阅读时间需要17分钟。
Keras提供了基于ImageNet训练的模型,如Xception、VGG16、VGG19、ResNet50、InceptionV3。使用这些模型时,参数include_top决定是否包含模型顶部的全连接层。若包含,则可以直接将图像输入模型进行预测。
Keras提供了一些用ImageNet训练过的模型:Xception,VGG16,VGG19,ResNet50,InceptionV3。在使用这些模型的时候,有一个参数include_top表示是否包含模型顶部的全连接层,如果包含,则可以将图像分为ImageNet中的1000类,如果不包含,则可以利用这些参数来做一些定制的事情。
在运行时自动下载有可能会失败,需要去网站中手动下载,放在“~/.keras/models/”中,使用WinPython则在“settings/.keras/models/”中。
修正:表示当前是训练模式还是测试模式的参数K.learning_phase()文中表述和使用有误,在该函数说明中可以看到:
The learning phase flag is a bool tensor (0 = test, 1 = train),所以0是测试模式,1是训练模式,部分网络结构下两者有差别。
这里使用ResNet50预训练模型,对Caltech101数据集进行图像分类。只有CPU,运行较慢,但是在训练集固定的情况下,较慢的过程只需要运行一次。
该预训练模型的中文文档介绍在keras-cn.readthedocs.io/en/latest/other/application/#resnet50。
本文共计4064个文字,预计阅读时间需要17分钟。
Keras提供了基于ImageNet训练的模型,如Xception、VGG16、VGG19、ResNet50、InceptionV3。使用这些模型时,参数include_top决定是否包含模型顶部的全连接层。若包含,则可以直接将图像输入模型进行预测。
Keras提供了一些用ImageNet训练过的模型:Xception,VGG16,VGG19,ResNet50,InceptionV3。在使用这些模型的时候,有一个参数include_top表示是否包含模型顶部的全连接层,如果包含,则可以将图像分为ImageNet中的1000类,如果不包含,则可以利用这些参数来做一些定制的事情。
在运行时自动下载有可能会失败,需要去网站中手动下载,放在“~/.keras/models/”中,使用WinPython则在“settings/.keras/models/”中。
修正:表示当前是训练模式还是测试模式的参数K.learning_phase()文中表述和使用有误,在该函数说明中可以看到:
The learning phase flag is a bool tensor (0 = test, 1 = train),所以0是测试模式,1是训练模式,部分网络结构下两者有差别。
这里使用ResNet50预训练模型,对Caltech101数据集进行图像分类。只有CPU,运行较慢,但是在训练集固定的情况下,较慢的过程只需要运行一次。
该预训练模型的中文文档介绍在keras-cn.readthedocs.io/en/latest/other/application/#resnet50。

