【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 ...
随机推荐
- DC 1-3 靶机渗透
DC-1靶机 端口加内网主机探测,发现192.168.114.146这台主机,并且开放了有22,80,111以及48683这几个端口. 发现是Drupal框架. 进行目录的扫描: 发现admin被禁止 ...
- Oracle 11gR2-Win 64bit
版本:Oracle 11gR2下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.ht ...
- 使用JWT登录生成token
package com.example.demo.util; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTVerifier; import co ...
- Python中list的合并
①差集 方法一: if __name__ == '__main__': a_list = [{'a' : 1}, {'b' : 2}, {'c' : 3}, {'d' : 4}, {'e' : ...
- 系统架构设计:平滑发布和ABTesting
平滑发布的介绍 背景 单位的云办公相关系统没有成熟的平滑发布方案,导致每一次发布都是直接发布,dll文件或配置文件的变更会引起站点的重启. 云办公系统的常驻用户有10000+,即使短短半分多钟,也会收 ...
- 0xctf[No parameters readfile](魔改版[GXYCTF2019]禁止套娃)
阅读本文前建议先阅读本站中的另一篇文章:[GXYCTF2019]禁止套娃 重要参考链接:http://www.heetian.com/info/827 Leon师傅魔改了[GXYCTF2019]禁止套 ...
- 15.深入k8s:Event事件处理及其源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 概述 k8s的Event事件是一种资源对象,用于展示集群内发生的情况 ...
- JavaCV FFmpeg H264编码
上次成功通过FFmpeg采集摄像头的YUV数据,这次针对上一次的程序进行了改造,使用H264编码采集后的数据. (传送门) JavaCV FFmpeg采集摄像头YUV数据 采集摄像头数据是一个解码过程 ...
- Linux就该这么学28期——Day05 vim编辑器与Shell命令脚本 (yum配置 网卡配置)
vim 三种模式: 命令模式 按行操作 dd 剪切.删除 5dd dG 全删 yy 复制光标所在行 p 粘贴 u 撤销操作 / 搜索 /ab n 下一个 N 上一个 输入模式 a 当前光标处 ...
- 2014年 实验四 B2B模拟实验(二)
[实验目的] ⑴.熟悉电子合同签订过程 ⑵.掌握网上招标的流程并体会招标对采购商带来的好处 [实验条件] ⑴.个人计算机一台 ⑵.计算机通过局域网形式接入互联网 ⑶.电子商务模拟实验室软件包. [知识 ...