迁移学习之ResNet50和ResNet101(图像识别)

迁移学习之ResNet50和ResNet101(图像识别)文章目录1.实现的效果:2.主文件TransorResNet.py:1.实现的效果:实际的图片:(1)可以看到ResNet50预测的前三个结果中第一个结果为:whippet(小灵狗)(2)ResNet50预测的前三个结果中第一个结果为:Walker_hound(步行猎犬)(3)**从结果上来看,比之前的VGG16和VGG19预测的效果都要好(这里虽然不知道图片中的够具体是什么狗,但是结果都预测成了“狗”的类别)。**2.主文件TransorResNet.py:importosimpo

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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_predictions

def 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*224
    img=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*224
    img = 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()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185075.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 实时数据库与时序数据库区别_时间序列数据库

    实时数据库与时序数据库区别_时间序列数据库1、概述在工业大数据数据库存储领域,除了传统的关系型数据库和分布式数据库以外,还有一种类型的数据库是非常常用,而且是非常有必要的,就是实时数据库,以及时序数据库。但是,大家可能会有疑问,都是专门处理时序数据的,这是两种数据库吗?他们之间有什么联系?1.1发展历史实时数据库是数据库系统的一个分支,它适用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物。实时数据库最起初是基于先进控制和优化控制而出现的,对数据的实时性要求比较高,因而实时、高效

    2022年10月5日
    2
  • 【转载】互联网架构,如何进行容量设计?

    【转载】互联网架构,如何进行容量设计?

    2021年11月18日
    49
  • 可浮动placeholder,让你的登录不再枯燥

    可浮动placeholder,让你的登录不再枯燥前言在登录twitter的时候发现他的输入框的placeholder是可以浮动的。当输入框获取到焦点的时候,placeholder会跑到上面去。我觉得这样的登录方式的好处是:可以减少一个label,同时往上浮动又可以保证用户在输入的时候知道输入什么内容。pointer-eventspointer-events属性设置HTML元素如何响应鼠标/触摸事件/单击/点击事件以及光标是否可见。虽然pointer-events属性有11个可能的值,但其中8个值都用于SVG。任何HTMl元素的三个

    2022年7月13日
    14
  • Elasticsearch增、删、改、查操作深入详解

    Elasticsearch增、删、改、查操作深入详解引言:对于刚接触ES的童鞋,经常搞不明白ES的各个概念的含义。尤其对“索引”二字更是与关系型数据库混淆的不行。本文通过对比关系型数据库,将ES中常见的增、删、改、查操作进行图文呈现。能加深你对ES的理解。同时,也列举了kibana下的图形化展示。ESRestfulAPIGET、POST、PUT、DELETE、HEAD含义:1)GET:获取请求对象的当前状态。2)POST:改变对象的当前

    2022年4月30日
    46
  • display属性值有哪些_验证控件display属性

    display属性值有哪些_验证控件display属性1、display:flex属性display:flex是一种布局方式。它即可以应用于容器中,也可以应用于行内元素。是W3C提出的一种新的方案,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持。Flex是FlexibleBox的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。设为Flex布局以后,子元素的float、clear和vertic…

    2025年8月6日
    6
  • Java审计之XSS篇

    Java审计之XSS篇0x00前言继续学习一波Java审计的XSS漏洞的产生过程和代码。0x01Java中XSS漏洞代码分析xss原理xss产生过程:后台未对用户输入进行检查或过滤

    2021年12月12日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号