文章目录

  • 1.实现的效果:
  • 2.结果分析:
  • 3.主文件TransorMobileNet.py:

1.实现的效果:


实际图片:

(1)MobileNet预测的第一个结果为:pug(哈巴狗)
(2)MobileNetV2预测的第一个结果为:West_Highland_white_terrier(西部高地白梗犬)

2.结果分析:

(1)虽然两种模型都预测为了狗,可是结果差别也较大,相比于之前的ResNet50,ResNet101,Inception_ResNet_V2差的较多(当然简单的测试说明不了什么问题,但是也能看出差别)。
(2)说明ResNet残差网络对于图像的预测效果比较好,也不能说明更深层的网络提取的特征一定比稍微浅层的好,就像之前ResNet50和ResNet101的比较结果,ResNet50输出的概率值就比ResNet101要好10个百分点左右(当然,一个简单的测试还是说明不了什么问题)

(3)建议读者可以在以后选择图片的预测模型时,可以使用ResNet50,这个模型有50层,计算量也相对较少一些,预测的结果也比较好。
关于ResNet50和ResNet101:
https://mydreamambitious.blog.csdn.net/article/details/123906833
关于VGG16和VGG19:
https://mydreamambitious.blog.csdn.net/article/details/123906643
关于InceptionV3(159层),Xception(126层),Inception_ResNet_V2(572层):
https://mydreamambitious.blog.csdn.net/article/details/123907490
关于DenseNet121(121层),DenseNet169(169层),DenseNet201(201层):
https://mydreamambitious.blog.csdn.net/article/details/123908742
EfficientNetBX
https://mydreamambitious.blog.csdn.net/article/details/123929264

3.主文件TransorMobileNet.py:

import os
import cv2
import tensorflow
import numpy as np
from PIL import Image
from tensorflow import keras
from tensorflow.keras.preprocessing import image
from tensorflow.keras.preprocessing.image import img_to_array
from tensorflow.keras.applications.inception_v3 import preprocess_input,decode_predictionsdef load_MobileNet():#加载InceptionV3并且保留顶层(也就是全连接层)model_MobileNet=tensorflow.keras.applications.mobilenet.MobileNet(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_MobileNet.predict(img_out)#输出前三个结果的可能性print('Predicted: ',decode_predictions(preds,top=3)[0])print('Predicted: ',decode_predictions(preds,top=3))def load_MobileNetV2():# 加载Xception并且保留顶层(也就是全连接层)model_MobileNetV2 =tensorflow.keras.applications.mobilenet_v2.MobileNetV2(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_MobileNetV2.predict(img_out)# 输出前三个结果的可能性print('Predicted: ', decode_predictions(preds, top=3)[0])print('Predicted: ', decode_predictions(preds, top=3))if __name__ == '__main__':print('Pycharm')print('MobileNet: \\n')load_MobileNet()print('MobileNetV2: \\n')load_MobileNetV2()

迁移学习之MobileNet(88层)和MobileNetV2(88层)相关推荐

  1. 迁移学习、载入预训练权重和冻结权重

    迁移学习就是载入别人预训练好的权重,拿别人的训练好的参数作为我们自己模型的初始化参数,再在这个基础上继续优化.比起从头开始一点一点随机初始化,让模型胡乱地找梯度最优的方向,肯定是迁移学习快啦. 目录 ...

  2. 一、迁移学习与fine-tuning有什么区别?

    一.迁移学习 举个例子,假设boss让你做一下目标检测,这个数据集是关于光纤箱喷码字符检测的.问题是,数据集很少(只有1000张数据),里面有多干扰的信息,你发现从零训练开始训练yolo的效果很差,很 ...

  3. 使用迁移学习后使用微调再次提高模型训练的准确率

    使用迁移学习后使用微调再次提高模型训练的准确率 1.微调 所谓微调:冻结模型库的底部的卷积层,共同训练新添加的分类器层和顶部部分卷积层.这允许我们"微调"基础模型中的高阶特征表示, ...

  4. python3下tensorflow练习(八)之迁移学习

    这周帮同学做了一个CNN的分类任务,因为赶时间所以直接用InceptionV3的参数进行迁移学习,只替换最后一层全连接层,然后对自己的数据集进行4分类的训练.在最后这一层全连接层之前的网络层称之为瓶颈 ...

  5. 机器学习工程师 — Udacity 基于CNN和迁移学习创建狗品种分类器

    卷积神经网络(Convolutional Neural Network, CNN) 项目:实现一个狗品种识别算法App 推荐你阅读以下材料来加深对 CNN和Transfer Learning的理解: ...

  6. Deeplearning4j 实战 (10):迁移学习--ImageNet比赛预训练网络VGG16分类花卉图片

    Eclipse Deeplearning4j GitChat课程:https://gitbook.cn/gitchat/column/5bfb6741ae0e5f436e35cd9f Eclipse ...

  7. 迁移学习之InceptionV3(159层),Xception(126层),Inception_ResNet_V2(572层)(图像识别)

    文章目录 1.实现的效果: 2.结果分析: 3.主文件TransorInception.py: 1.实现的效果: 实际图片: (1)从上面的输出效果来看,InceptionV3预测的第一个结果为:ch ...

  8. Tensorflow MobileNet移动端迁移学习指南

    1.介绍 TensorFlow是用于数值计算的开源库,专门用于机器学习应用程序.笔者: csdn -固本培元  交流邮箱: leo_luopy@139.com  微信:leoluopy .  本文机器 ...

  9. 【迁移学习(Transfer L)全面指南】迁移学习中的bottlenecks(瓶颈层)

    在学习How to Retrain an Image Classifier for New Categories的时候,在retrain刚开始的时候会建立一堆的bottlenecks文件,所以这到底是 ...

最新文章

  1. android内存取证实现,[内存取证]Volatility基本用法
  2. 首个ML的生物医药大型数据集,3行代码就能运行丨哈佛MIT斯坦福等出品
  3. ceph学习笔记之七 数据平衡
  4. 数据结构和算法-链表
  5. Java需要掌握的底层知识_java程序员需要知道的底层知识(一)
  6. 开源HTML5应用开发框架 - iio Engine
  7. java的URLConnection
  8. 线上MYSQL同步报错故障处理总结 实现同步不一致进行邮件报警
  9. java 数组或者链表输出
  10. 输出阻抗与带负载能力问题的分析
  11. kafka数据保存时间问题与kafka的性能测试
  12. ASP微信支付之扫码支付
  13. PS进阶篇——如何PS软件给公司单位图片加版权水印(六)
  14. 小米手机 miui 8.x开启开发者模式指导
  15. 如何评价腾讯云与 CODING 共同推出的云端编辑器 Cloud Studio?
  16. 金融机构业务连续性管理
  17. 5大代码规则,守护程序猿世界的爱与和平!
  18. Android蓝牙协议介绍
  19. 如何引导市场和社会力量发展社区托育养老等服务业态?
  20. 【开发工具】史上最全的IDEA快捷键总结 MAC版

热门文章

  1. TCP 客户端程序开发
  2. JSP网页开发安装2019-03 eclipse,详细并且简单教程这里有。
  3. 轻量级语义分割网络:ENet
  4. Pytorch:使用DCGAN实现数据复制
  5. 利用边缘检测计算物体面积(内含源码)
  6. 4个计算机视觉领域用作迁移学习的模型
  7. 第五篇:并发控制-隔离
  8. 问题 A: 第二题(划分一个集合为差值最小的两个子集合)
  9. 用css打印html
  10. 区块链共识机制及其迭代