在搭建了深度学习环境后,第一件事就是试试行不行,最简单的当然是使用已经训练好的模型拿来预测新样本了。这里我们使用kaggle上面训练好的狗狗品种预测模型进行使用说明。(后面有完整的数据和脚本,下载到本地即可运行。)

1.加载待预测图片

from os.path import join

image_dir = 'train/'

img_paths = [join(image_dir, filename) for filename in

['0246f44bb123ce3f91c939861eb97fb7.jpg',

'84728e78632c0910a69d33f82e62638c.jpg']]

这里选用了2张图片,保存在img_paths的list里面。

2.定义读取和预处理图片的函数

import numpy as np

from tensorflow.python.keras.applications.resnet50 import preprocess_input

from tensorflow.python.keras.preprocessing.image import load_img, img_to_array

image_size = 224

def read_and_prep_images(img_paths, img_height=image_size, img_width=image_size):##定义处理函数

imgs = [load_img(img_path, target_size=(img_height, img_width)) for img_path in img_paths]

img_array = np.array([img_to_array(img) for img in imgs])

return preprocess_input(img_array)

3.导入模型并预测

from tensorflow.python.keras.applications import ResNet50

my_model = ResNet50(weights='../resnet50/resnet50_weights_tf_dim_ordering_tf_kernels.h5')

test_data = read_and_prep_images(img_paths)

preds = my_model.predict(test_data)

4.查看并可视化预测结果

import sys

# Add directory holding utility functions to path to allow importing

sys.path.append('~/utils')

from decode_predictions import decode_predictions

from IPython.display import Image, display

most_likely_labels = decode_predictions(preds, top=3, class_list_path='../resnet50/imagenet_class_index.json')

for i, img_path in enumerate(img_paths):

display(Image(img_path))

print(most_likely_labels[i])

[('n02097209', 'standard_schnauzer', 0.56502265), ('n02097047', 'miniature_schnauzer', 0.31319875), ('n02097130', 'giant_schnauzer', 0.045194548)]

[('n02092339', 'Weimaraner', 0.99767154), ('n02099849', 'Chesapeake_Bay_retriever', 0.001392837), ('n02109047', 'Great_Dane', 0.00032280287)]

可以看到,结果已经跑出来了,而且跟kaggle云端的运行结果一致。由于官方api下载速度非常慢还经常挂掉,而且文件路径等问题需要处理细节挺多。

为方便新手在本地服务器上测试运行,我这里把数据下载好并将自己测试运行的脚本打包到百度网盘了,大家直接下载使用便是。

数据下载地址:

使用方法

1.解压到当前文件夹,运行jupyter notebook

2.打开dog_breed目录

3.加载目录下的run_model.ipynb运行便可

python狗品种识别_kaggle之本地运行识别狗品种相关推荐

  1. 宠物识别api接口全开放:狗脸识别、猫脸识别、鼻纹识别、品种识别、相似度比对、图片质量检测

    依据宠物识别的各类应用场景,悦保科技全面升级宠物AI识别的API接口服务,为用户提供更全面.更具针对性的接口选择,满足宠物身份建档.品种信息鉴别.个体身份比对等需求,推动宠物产业链的智能化升级. 宠物 ...

  2. VScode配置CMD本地运行环境(2.0)

    VScode配置CMD本地运行环境(2.0) 官方Task.json说明 完整的Task.json配置信息 Task.json预定义变量 看了很多网上的教程都说需要下载VScode的python插件, ...

  3. 阿里云OCR通用文字识别和自定义模板OCR识别Python代码及一站式教程

    阿里云OCR 一.通用文字识别 1.开通 2.PY3代码 3.测试结果 二.自定义模板识别 1.开通 2.进行自定义模板 3.代码 三.最后 一.通用文字识别 1.开通 开通链接:https://ma ...

  4. python实现验证码识别_python实现图文验证码识别

    一,验证码类别 以下为网站常见的验证码: 1.图片验证码:常见的为英文.数字.汉字,计算题等类型的验证码. 2.行为式验证码: 常见的有滑动拼图,文字点选,图标点选,推理拼图等类型的验证码. 3.手机 ...

  5. python 百度人脸 sdk,树莓派调用百度人脸识别API实现人脸识别

    前言 树莓派配置OpenCV,配置起来有点繁琐且耗时,但是调用百度智能云的人脸识别API来进行人脸识别是一个快速的解决方案 一.申请AppID.API Key和Secret Key 1.1创建应用 在 ...

  6. Django源码分析2:本地运行runserver分析

    django源码分析 本文环境python3.5.2,django1.10.x系列1.根据上一篇文章分析了,django-admin startproject与startapp的分析流程后,根据dja ...

  7. 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算 ...

  8. python 替换array中的值_利用Python提取视频中的字幕(文字识别)

    我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...

  9. python程序写完后点哪个运行快_让 Python 代码运行更快的最佳方式!

    PyPy与CPython PyPy是Python解释器CPython的直接替代品.CPython将Python编译为中间字节码然后由虚拟机解释,而PyPy使用实时(JIT)编译将Python代码转换为 ...

最新文章

  1. JAVA多线程Thread VS Runnable详解
  2. ASP.NET MVC 生成简单的 xml 权限结构
  3. 导出数据库API接口文档
  4. Only tensors or tuples of tensors can be output from traced functions
  5. HTML按钮中写事件,html 常用button事件
  6. 网络编程学习笔记(tcp_connect函数)
  7. kaptcha配置java_kaptcha 配置
  8. Linux下配置静态IP地址,设置DNS和主机名
  9. LINUX doubango编译中prefix参数无效
  10. 基于 RT-Thread Studio的CPK-RA6M4 开发环境搭建指南
  11. 鼠标钩子WH_MOUSE_LL
  12. RESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY))
  13. 自学编程/如何自学编程//自学C语言/如何自学C语言//自学java/如何自学java?
  14. Copycat CNN: Stealing Knowledge by Persuading Confession with Random Non-Labeled Data阅读心得
  15. 微信公众号支付(二)
  16. Qgis 如何根据范围来裁剪地图,高程图等
  17. TypeError: ufunc ‘isinf‘ not supported for the input types, and the inputs could not be safely...
  18. Error while bringing up minion for multi-master.
  19. MyBatis02:CRUD操作和配置解析
  20. js根据文字(保存大小,字体)计算文字长度,并根据容器显示省略号

热门文章

  1. 分销系统_三级分销_掌上商城推广新渠道-泉州市丰泽区尚创网络科技有限公司
  2. background-attachment 没有效果
  3. c语言中unsigned long,unsigned long 的用法
  4. java编写火车订票系统_毕业设计(论文)-基于JavaWeb技术的火车订票系统.doc
  5. 英语4级词汇量有多少?【原创】
  6. 《离散数学》期末练习题
  7. SQL注入测试平台 SQLol -2.SELECT注入测试
  8. 7的倍数和末尾含7的数
  9. MySQL实现连表查询
  10. 微信被封可私聊收费解封 是真的吗?腾讯官方回应来了