本文地址:https://www.cnblogs.com/tujia/p/13862360.html

系列文章:

【0】TensorFlow光速入门-序

【1】TensorFlow光速入门-tensorflow开发基本流程

【2】TensorFlow光速入门-数据预处理(得到数据集)

【3】TensorFlow光速入门-训练及评估

【4】TensorFlow光速入门-保存模型及加载模型并使用

【5】TensorFlow光速入门-图片分类完整代码

【6】TensorFlow光速入门-python模型转换为tfjs模型并使用

【7】TensorFlow光速入门-总结

一、保存模型

创建一个目录

!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服务)

【5】TensorFlow光速入门-图片分类完整代码

【6】TensorFlow光速入门-python模型转换为tfjs模型并使用

本文链接:https://www.cnblogs.com/tujia/p/13862360.html


完。

【4】TensorFlow光速入门-保存模型及加载模型并使用的更多相关文章

  1. PyTorch保存模型与加载模型+Finetune预训练模型使用

    Pytorch 保存模型与加载模型 PyTorch之保存加载模型 参数初始化参 数的初始化其实就是对参数赋值.而我们需要学习的参数其实都是Variable,它其实是对Tensor的封装,同时提供了da ...

  2. [Pytorch]Pytorch 保存模型与加载模型(转)

    转自:知乎 目录: 保存模型与加载模型 冻结一部分参数,训练另一部分参数 采用不同的学习率进行训练 1.保存模型与加载 简单的保存与加载方法: # 保存整个网络 torch.save(net, PAT ...

  3. 莫烦python教程学习笔记——保存模型、加载模型的两种方法

    # View more python tutorials on my Youtube and Youku channel!!! # Youtube video tutorial: https://ww ...

  4. 【6】TensorFlow光速入门-python模型转换为tfjs模型并使用

    本文地址:https://www.cnblogs.com/tujia/p/13862365.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...

  5. 【0】TensorFlow光速入门-序

    本文地址:https://www.cnblogs.com/tujia/p/13863181.html 序言: 对于我这么一个技术渣渣来说,想学习TensorFlow机器学习,实在是太难了: 百度&qu ...

  6. 【1】TensorFlow光速入门-tensorflow开发基本流程

    本文地址:https://www.cnblogs.com/tujia/p/13862339.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...

  7. 【2】TensorFlow光速入门-数据预处理(得到数据集)

    本文地址:https://www.cnblogs.com/tujia/p/13862351.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...

  8. 【3】TensorFlow光速入门-训练及评估

    本文地址:https://www.cnblogs.com/tujia/p/13862357.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...

  9. 【5】TensorFlow光速入门-图片分类完整代码

    本文地址:https://www.cnblogs.com/tujia/p/13862364.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...

随机推荐

  1. 关于window服务器中新建的普通用户无法登录远程桌面

    今天在公司服务器中为客户创建了一个普通用户 user5201351  并设置好了密码, 发给客户后,反映使用我们创建的用户不能通过远程桌面进行登录 查询资料后才知道,在windows中,需要将用户加入 ...

  2. Flutter集成环信IM,发送图片之后渲染conversation.loadMoreMsgFromDB报path为空

    这时会报错,结果如下: 只需在em_message_body下修改如图path为空即可

  3. 深入理解TypeScript——第一章:上手篇

    怎么定义TypeScript呢? TypeScript是一个工具 是一个编译器 编译代码 TypeScript,通过它的能力,默认使用tsc命令,可以根据.ts为后缀名的文件生成一个新的js文件 2. ...

  4. Processing 网格(棋盘格)无限偏移纹理动画

    过火 再度出击!这次我们要玩得更火一点---把静帧变动画.没错,将棋盘格动起来!看一下效果: 这是一个经典的无限偏移动画,在很多2d横版射击游戏中都会采用的技术.如何在Processing中实现,有两 ...

  5. # 初体验之腾讯位置服务彩云天气开发者api

    初体验 最近接触到了boxjs,看到了里面一个比较有意思的彩云天气的脚本,由于自己本身就是彩云天气pro的用户,日常使用过程中感觉到彩云的降雨提醒还是挺方便的,于是就准备开始使用这个天气的脚本. 脚本 ...

  6. Power Designer建模之餐饮在线点评系统——需求模型实例

    总览 一级需求 二级需求 管理门户  会员门户 三级需求 系统管理  企业中心  会员中心  统计分析 四级需求

  7. 基于Huggingface使用BERT进行文本分类的fine-tuning

    随着BERT大火之后,很多BERT的变种,这里借用Huggingface工具来简单实现一个文本分类,从而进一步通过Huggingface来认识BERT的工程上的实现方法. 1.load data tr ...

  8. windows 漏洞列表

    漏洞列表 #Security Bulletin   #KB     #Description    #Operating System CVE-2017-0213 [Windows COM Eleva ...

  9. Matlab中的uigetfile用法

    参考:https://ww2.mathworks.cn/help/matlab/ref/uigetfile.html?searchHighlight=uigetfile&s_tid=doc_s ...

  10. I2C总线的Arduino库函数

    I2C总线的Arduino库函数 I2C即Inter-Integrated Circuit串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线.它以1根串行数据线(SDA)和1根串行时钟线(S ...