迁移学习之ResNet50和ResNet101(图像识别)
文章目录
- 1.实现的效果:
- 2.主文件TransorResNet.py:
1.实现的效果:
实际的图片:
(1)可以看到ResNet50预测的前三个结果中第一个结果为:whippet(小灵狗)
(2)ResNet50预测的前三个结果中第一个结果为:Walker_hound(步行猎犬)
(3)从结果上来看,比之前的VGG16和VGG19预测的效果都要好(这里虽然不知道图片中的够具体是什么狗,但是结果都预测成了“狗”的类别)
关于InceptionV3(159层),Xception(126层),Inception_ResNet_V2(572层):
https://mydreamambitious.blog.csdn.net/article/details/123907490
关于VGG16和VGG19:
https://mydreamambitious.blog.csdn.net/article/details/123906643
关于MobileNet(88层)和MobileNetV2(88层):
https://mydreamambitious.blog.csdn.net/article/details/123907955
关于DenseNet121(121层),DenseNet169(169层),DenseNet201(201层):
https://mydreamambitious.blog.csdn.net/article/details/123908742
EfficientNetBX
https://mydreamambitious.blog.csdn.net/article/details/123929264
2.主文件TransorResNet.py:
import os
import keras
import numpy as np
from PIL import Image
from keras.preprocessing import image
from keras.preprocessing.image import img_to_array
from keras.applications.resnet import preprocess_input,decode_predictionsdef load_ResNet50():#加载ResNet50并且保留顶层(也就是全连接层)model_ResNet50=keras.applications.resnet.ResNet50(weights='imagenet')#图形路径curr_path=os.getcwd()img_path=curr_path+'\\images\\train\\dog\\1.jpg'#将图像转换为网络需要的大小,因为我们这里加载的模型都是固定输入大小224*224img=image.load_img(img_path,target_size=(224,224))#首先需要转换为向量的形式img_out=image.img_to_array(img)#扩充维度img_out=np.expand_dims(img_out,axis=0)#对输入的图像进行处理img_out=preprocess_input(img_out)# decode the results into a list of tuples (class, description, probability)# (one such list for each sample in the batch)#上面这段话的意思是输出包括(类别,图像描述,输出概率)preds=model_ResNet50.predict(img_out)#输出前三个结果的可能性print('Predicted: ',decode_predictions(preds,top=3)[0])print('Predicted: ',decode_predictions(preds,top=3))def load_ResNet101():# 加载ResNet50并且保留顶层(也就是全连接层)model_ResNet50 = keras.applications.resnet.ResNet101(weights='imagenet')# 图形路径img_path = 'images/train/dog/1.jpg'# 将图像转换为网络需要的大小,因为我们这里加载的模型都是固定输入大小224*224img = image.load_img(img_path, target_size=(224, 224))# 首先需要转换为向量的形式img_out = image.img_to_array(img)# 扩充维度img_out = np.expand_dims(img_out, axis=0)# 对输入的图像进行处理img_out = preprocess_input(img_out)# decode the results into a list of tuples (class, description, probability)# (one such list for each sample in the batch)# 上面这段话的意思是输出包括(类别,图像描述,输出概率)preds = model_ResNet50.predict(img_out)# 输出前三个结果的可能性print('Predicted: ', decode_predictions(preds, top=3)[0])print('Predicted: ', decode_predictions(preds, top=3))if __name__ == '__main__':print('Pycharm')print('load_ResNet50:\n')load_ResNet50()print('load_ResNet101:\n')load_ResNet101()
迁移学习之ResNet50和ResNet101(图像识别)相关推荐
- 迁移学习实战 | 快速训练残差网络 ResNet-101,完成图像分类与预测,精度高达 98%!...
作者 | AI 菌 出品 | CSDN博客 头图 | CSDN付费下载自视觉中国 前言 笔者在实现ResNet的过程中,由于电脑性能原因,不得不选择层数较少的ResNet-18进行训练.但是很快发现, ...
- Python 迁移学习实用指南 | iBooker·ApacheCN
原文:Hands-On Transfer Learning with Python 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 不要担心自己的形象,只关心如何实现目标.--<原则& ...
- 手把手带你从0完成医疗行业影像图像检测三大经典模型InceptionV3-RestNet50-VGG16(附python源代码及数据库)——改变世界经典人工智能项目实战(一)手把手教学迁移学习
手把手带你从0完成医疗行业影像图像检测三大经典模型InceptionV3-RestNet50-VGG16 1.迁移学习简介 2.项目简介 3.糖尿病视网膜病变数据集 4.考虑类别不平衡问题 5.定义模 ...
- Python 迁移学习实用指南:6~11
原文:Hands-On Transfer Learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译后编辑(MT ...
- 迁移学习:数据不足时如何深度学习
转自:http://www.sohu.com/a/125849954_470008 使用深度学习技术解决问题的过程中,最常见的障碍在于训练模型过程中所需的海量数据.需要如此多的数据,原因在于机器在学习 ...
- 1、VGG16 2、VGG19 3、ResNet50 4、Inception V3 5、Xception介绍——迁移学习
ResNet, AlexNet, VGG, Inception: 理解各种各样的CNN架构 本文翻译自ResNet, AlexNet, VGG, Inception: Understanding va ...
- resnet50代码_十余行代码完成迁移学习,百度PaddleHub实战解读
机器之心专栏 来源:百度 PaddlePaddle 迁移学习 (Transfer Learning) 是属于深度学习的一个子研究领域,该研究领域的目标在于利用数据.任务.或模型之间的相似性,将在旧领域 ...
- 深度迁移学习在花生叶部病害图像识别中的应用
深度迁移学习在花生叶部病害图像识别中的应用 1.论文思路 首先迁移 Inception-v3 模型在茶叶叶部病害图像数据集上进行微调, 然后将微调所得模型迁移至花生叶部病害图像数据集上继续训练.实验结 ...
- 手动搭建的VGG16网络结构训练数据和使用ResNet50微调(迁移学习)训练数据对比(图像预测+前端页面显示)
文章目录 1.VGG16训练结果: 2.微调ResNet50之后的训练结果: 3.结果分析: 4.实验效果: (1)VGG16模型预测的结果: (2)在ResNet50微调之后预测的效果: 5.相关代 ...
最新文章
- 图像分类再思考DNN似乎遵循一种令人困惑的简单策略来对图像分类
- σ(゚∀゚ ∬オレの性格だ
- java实验7线程2020.5.28
- 误执行了rm -fr /*之后,除了跑路还能怎么办?!
- 关于tr:hover变色的问题
- JDK源码解析之 Java.lang.StringBuilder
- 太极图正确画法_太极图的三种画法你知道吗?
- win10wifi多了数字_win10系统电脑查看wifi密码是多少的方法
- Mybatis trim 标签的 2 个妙用!
- Android内容提供者(Content provider)
- XMPP即时通讯协议使用(前传)——协议详解
- python numpy.linalg.norm函数的用法
- 【历史上的今天】8 月 19 日:大型计算机先驱和小型机之父诞生;中国雅虎邮箱成历史
- 好用的区块链浏览器--BlockScout安装
- 车载网络: CAN (Control Area Network) 控制器局域网络
- php 分数大于80 小于90优,“ 90 分改成 80 分”学生期末成绩须“正态分布”?不必搞一刀切...
- 写推文满一年,分享 5 个小编常用的写作软件
- 常用小波基函数以及多尺度多分辨率的理解
- Ubuntu Server 20.04 安装桌面(图形界面) 以及 远程桌面
- 北京尚学堂退课退课,口碑还不错