【4】TensorFlow光速入门-保存模型及加载模型并使用
本文地址:https://www.cnblogs.com/tujia/p/13862360.html
系列文章:
【1】TensorFlow光速入门-tensorflow开发基本流程
【2】TensorFlow光速入门-数据预处理(得到数据集)
【4】TensorFlow光速入门-保存模型及加载模型并使用
【6】TensorFlow光速入门-python模型转换为tfjs模型并使用
一、保存模型
创建一个目录
!mkdir /tf/saved_model
注:jupyter 代码块前面加一个!号表示,这是shell命令,不是代码;
保存模型
model.save('/tf/saved_model/wnw')
保存模型的其他参数及操作,看这里 https://tensorflow.google.cn/api_docs/python/tf/keras/Model#save
二、加载模型
import tensorflow as tf
from tensorflow import keras
import numpy as np
from IPython import display
import random # 加载模型
model = keras.models.load_model('/tf/saved_model/wnw')
# 看一下模型的结构
model.summary() # 随便找点图片
all_image_paths = []
data_root = pathlib.Path('/tf/datasets/wnw')
for item in data_root.rglob('*.jpg'):
all_image_paths.append(str(item))
print(len(all_image_paths)) # 随机选取一张图片
img_path = random.choice(all_image_paths)
print(img_path) # 把图片处理成需要的tensor
image = tf.io.read_file(img_path)
image = tf.image.decode_image(image, channels=1)
image = tf.image.resize(image, (100, 100))
image /= 255
print(image.shape) # 预测只支持批量操作,我们给单张图片再加一维
images = (np.expand_dims(image, 0))
print(images.shape)
# 预测
predictions = model.predict(images) # 打印结果
label_names = ['other', 'watch']
label = np.argmax(predictions[0])
print(label_names[label]) # 把图片也打印出来,看一下预测效果对不对
display.display(display.Image(img_path, width=200, height=200))
注:
用于预测的图片数据要和训练的图片数据保持一致:
简单来说,训练不一定要100*100的灰图,我可以是80*80的灰图或彩图,都没关系。
重要的是,用使用模型的时候,要先把预测数据转换成训练集数据一样的格式
重点:
model.save https://tensorflow.google.cn/api_docs/python/tf/keras/Model#save
keras.models.load_model https://tensorflow.google.cn/api_docs/python/tf/keras/models/load_model
至此,我们已经可以加载并使用模型了。我们可以用python封装程序成web服务api,以供调用。不过像图片分类这一类,频繁的拍照上传图片调用api也不太好。
这里,我们已经实现了在【序】里说的一个小目标:使用模型!!
在网上下载的第三方开源模型,只要知道它的用途及其输入参数(input_shape)数据格式,我们就可以用 tf.io、tf.image、tf.data.Dataset 等api接口处理数据成所需格式,然后就可以直接评测(使用)了
下一节,我们先整理一下图片分类的完整代码,然后下下节,我们再说一下怎样使用tfjs直接加载模型(不需要调python服务)
【6】TensorFlow光速入门-python模型转换为tfjs模型并使用
本文链接:https://www.cnblogs.com/tujia/p/13862360.html
完。
【4】TensorFlow光速入门-保存模型及加载模型并使用的更多相关文章
- PyTorch保存模型与加载模型+Finetune预训练模型使用
Pytorch 保存模型与加载模型 PyTorch之保存加载模型 参数初始化参 数的初始化其实就是对参数赋值.而我们需要学习的参数其实都是Variable,它其实是对Tensor的封装,同时提供了da ...
- [Pytorch]Pytorch 保存模型与加载模型(转)
转自:知乎 目录: 保存模型与加载模型 冻结一部分参数,训练另一部分参数 采用不同的学习率进行训练 1.保存模型与加载 简单的保存与加载方法: # 保存整个网络 torch.save(net, PAT ...
- 莫烦python教程学习笔记——保存模型、加载模型的两种方法
# View more python tutorials on my Youtube and Youku channel!!! # Youtube video tutorial: https://ww ...
- 【6】TensorFlow光速入门-python模型转换为tfjs模型并使用
本文地址:https://www.cnblogs.com/tujia/p/13862365.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- 【0】TensorFlow光速入门-序
本文地址:https://www.cnblogs.com/tujia/p/13863181.html 序言: 对于我这么一个技术渣渣来说,想学习TensorFlow机器学习,实在是太难了: 百度&qu ...
- 【1】TensorFlow光速入门-tensorflow开发基本流程
本文地址:https://www.cnblogs.com/tujia/p/13862339.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- 【2】TensorFlow光速入门-数据预处理(得到数据集)
本文地址:https://www.cnblogs.com/tujia/p/13862351.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- 【3】TensorFlow光速入门-训练及评估
本文地址:https://www.cnblogs.com/tujia/p/13862357.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- 【5】TensorFlow光速入门-图片分类完整代码
本文地址:https://www.cnblogs.com/tujia/p/13862364.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
随机推荐
- bellman-ford算法求K短路O(n*m),以及判负环O(n*m)
#include<iostream> #include<algorithm> #include<cstring> using namespace std; cons ...
- 【FLASK】钩子函数的使用
from flask import Flask from flask import abort app = Flask(__name__) # 在第一次请求之前调用,可以在此方法内部做一些初始化操作 ...
- SpringBoot整合MongoDB(实现一个简单缓存)
前言 SpringBoot是常用开发框架,而MongoDB也是最近越来越火的非关系型数据库,这里使用SpringBoot+MongoDB实现一个小案例,当然MongoDB实际做缓存的可能不多,但是这里 ...
- 微服务实战系列(八)-网关springcloud gateway自定义规则
1. 场景描述 先说明下项目中使用的网关是:springcloud gateway, 因需要给各个网关服务系统提供自定义配置路由规则,实时生效,不用重启网关(重启风险大),目前已实现:动态加载自定义路 ...
- spring-boot-route(二)读取配置文件的几种方式
Spring Boot提供了两种格式的配置文件,分别是properties 和 yml.Spring Boot最大的特点就是自动化配置,如果我们想修改自动化配置的默认值,就可以通过配置文件来指定自己服 ...
- matlab中imfilter的用法
来源:https://blog.csdn.net/qq_15971883/article/details/78334380 转载自:http://blog.csdn.net/u013066730/ar ...
- Centos下Oracle11gR2安装教程与自动化配置脚本
系统环境准备 开发组件与依赖库安装 安装centos时选择Server with GUI,右面的可以不勾选,后面统一来装 配置本地yum源 以上包如果缺乏可配置本地yum源进行安装 sudo moun ...
- 成理信安协会反序列化01-利用fastcoll实现md5碰撞
虽然是反序列化的题目,但主要考点在利用fastcoll实现md5碰撞. 直接上源码 <?php show_source(__FILE__); class CDUTSEC { public $va ...
- Word云(标签云)生成器控件。net Windows。形式在c#中
下载demo - 37.1 KB 下载source code - 48.7 KB 背景 这种控制方式的灵感来自于一种名为Wordle的基于网络的免费单词云生成器.实际上,这个控件是我的项目http:/ ...
- 通用redis
import lombok.extern.slf4j.Slf4j;import org.apache.poi.ss.formula.functions.T;import org.rcisoft.cor ...