迁移学习之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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kafka零拷贝原理_kafka常用命令

    kafka零拷贝原理_kafka常用命令Kafka除了具备消息队列MQ的特性和使用场景外,它还有一个重要用途,就是做存储层。用kafka做存储层,为什么呢?一大堆可以做数据存储的MySQL、MongoDB、HDFS……因为kafka数据是持久化磁盘的,还速度快;还可靠、支持分布式……啥!用了磁盘,还速度快!!!没错,kafka就是速度无敌,本文将探究kafka无敌性能背后的秘密。首先要有个概念,kafka高性能的背后,是多方面协同后、最终的结果,kafka从宏观架构、分布式partition存储、ISR数据同步、以及“无孔不

    2022年9月21日
  • git 查看远程所有分支_git同步分支

    git 查看远程所有分支_git同步分支gitremote-v

    2022年8月22日
  • java各种集合类区别

    java各种集合类区别最近面试经常遇到java集合类的问题,上网搜了一下,做个笔记百度的图集合类型主要有3种:set(集)、list(列表)和map(映射)。集合接口分为:Collection和Map,list、set实现了Collection接口List总结:可以重复,通过索引取出加入数据,顺序与插入顺序一致,可以含有null元素ArrayList:底层数据结构使数组结构array,…

    2022年6月9日
  • Spring Boot 拦截器

    Spring Boot 拦截器上一篇对过滤器的定义做了说明,也比较简单。过滤器属于Servlet范畴的API,与Spring没什么关系。Web开发中,我们除了使用Filter来过滤请web求外,还可以使用Spring提供的HandlerInterceptor(拦截器)。HandlerInterceptor的功能跟过滤器类似,但是提供更精细的的控制能力:在request被响应之前、request被响应之后、视图渲染之前

    2022年4月27日
  • Jlink或者stlink用于SWD接口下载程序

    Jlink或者stlink用于SWD接口下载程序最近要使用stm32f103c8t6最小系统板,直接ISP串口下载程序太麻烦,就想着使用swd接口来调试。结果:通过SWD接口下载程序成功,但调试失败,还不知原因,会的的人麻烦交流一下。SWD接口:3.3VDIO(数据)CLK(时钟)GND1.首先声明jlink和stlink都有jtag和swd调试功能。jlink接口如下:如图,我使用的就是VCC…

    2022年4月25日
  • ctrl+c复制,ctrl+v粘贴_C C T V 8

    ctrl+c复制,ctrl+v粘贴_C C T V 8从Windows世界走入Mac世界,最让不习惯的是在Mac中“复制/粘贴”的快捷键是Command+C/V,而且Command键与C/V键靠得太近,只能用大拇指与食指进行操作,也让人不习惯。再加上远程

    2022年8月5日

发表回复

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

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