1. 准备预训练好的模型

  • TensorFlow 预训练好的模型被保存为以下四个文件
  • data 文件是训练好的参数值,meta 文件是定义的神经网络图,checkpoint 文件是所有模型的保存路径,如下所示,为简单起见只保留了一个模型。
model_checkpoint_path: "/home/senius/python/c_python/test/model-40"
all_model_checkpoint_paths: "/home/senius/python/c_python/test/model-40"
复制代码

2. 导入模型图、参数值和相关变量

import tensorflow as tf
import numpy as npsess = tf.Session()
X = None # input
yhat = None # outputdef load_model():"""Loading the pre-trained model and parameters."""global X, yhatmodelpath = r'/home/senius/python/c_python/test/'saver = tf.train.import_meta_graph(modelpath + 'model-40.meta')saver.restore(sess, tf.train.latest_checkpoint(modelpath))graph = tf.get_default_graph()X = graph.get_tensor_by_name("X:0")yhat = graph.get_tensor_by_name("tanh:0")print('Successfully load the pre-trained model!')复制代码
  • 通过 saver.restore 我们可以得到预训练的所有参数值,然后再通过 graph.get_tensor_by_name 得到模型的输入张量和我们想要的输出张量。

3. 运行前向传播过程得到预测值

def predict(txtdata):"""Convert data to Numpy array which has a shape of (-1, 41, 41, 41 3).Test a single example.Arg:txtdata: Array in C.Returns:Three coordinates of a face normal."""global X, yhatdata = np.array(txtdata)data = data.reshape(-1, 41, 41, 41, 3)output = sess.run(yhat, feed_dict={X: data})  # (-1, 3)output = output.reshape(-1, 1)ret = output.tolist()return ret复制代码
  • 通过 feed_dict 喂入测试数据,然后 run 输出的张量我们就可以得到预测值。

4. 测试

load_model()
testdata = np.fromfile('/home/senius/python/c_python/test/04t30t00.npy', dtype=np.float32)
testdata = testdata.reshape(-1, 41, 41, 41, 3) # (150, 41, 41, 41, 3)
testdata = testdata[0:2, ...] # the first two examples
txtdata = testdata.tolist()
output = predict(txtdata)
print(output)
#  [[-0.13345889747142792], [0.5858198404312134], [-0.7211828231811523],
# [-0.03778800368309021], [0.9978875517845154], [0.06522832065820694]]
复制代码
  • 本例输入是一个三维网格模型处理后的 [41, 41, 41, 3] 的数据,输出一个表面法向量坐标 (x, y, z)。

获取更多精彩,请关注「seniusen」!

TensorFlow 调用预训练好的模型—— Python 实现相关推荐

  1. 在 C/C++ 中使用 TensorFlow 预训练好的模型—— 直接调用 C++ 接口实现

    现在的深度学习框架一般都是基于 Python 来实现,构建.训练.保存和调用模型都可以很容易地在 Python 下完成.但有时候,我们在实际应用这些模型的时候可能需要在其他编程语言下进行,本文将通过直 ...

  2. Tensorflow基于pb模型进行预训练(pb模型转CKPT模型)

    Tensorflow基于pb模型进行预训练(pb模型转CKPT模型) 在网上看到很多教程都是tensorflow基于pb模型进行推理,而不是进行预训练.最近在在做项目的过程中发现之前的大哥只有一个pb ...

  3. tensorflow加载训练好的模型实例

    1. 首先了解下tensorflow的一些基础语法知识 这里不再详细说明其细节,只举例学习. 1.1 tensorflow的tf.transpose()简单使用: tf.reshape(tensor, ...

  4. 基于Keras预训练词向量模型的文本分类方法

    本文语料仍然是上篇所用的搜狗新闻语料,采用中文预训练词向量模型对词进行向量表示.上篇文章将文本分词之后,采用了TF-IDF的特征提取方式对文本进行向量化表示,所产生的文本表示矩阵是一个稀疏矩阵,本篇采 ...

  5. Keras 的预训练权值模型用来进行预测、特征提取和微调(fine-tuning)

    转至:Keras中文文档 https://keras.io/zh/applications/ 应用 Applications Keras 的应用模块(keras.applications)提供了带有预 ...

  6. 【Pytorch】加载torchvision中预训练好的模型并修改默认下载路径(使用models.__dict__[model_name]()读取)

    说明 使用torchvision.model加载预训练好的模型时,发现默认下载路径在系统盘下面的用户目录下(这个你执行的时候就会发现),即C:\用户名\.cache\torch\.checkpoint ...

  7. 如何调用 caffe 训练好的模型对输入图片进行测试

    如何调用 caffe 训练好的模型对输入图片进行测试 该部分包括两篇文章 win10 下 caffe 的第一个测试程序(附带详细讲解) 主要讲解如何利用 caffe 来训练模型. 如何调用 caffe ...

  8. 【深度学习】预训练的卷积模型比Transformer更好?

    引言 这篇文章就是当下很火的用预训练CNN刷爆Transformer的文章,LeCun对这篇文章做出了很有深意的评论:"Hmmm".本文在预训练微调范式下对基于卷积的Seq2Seq ...

  9. MICCAI 2020 | 基于3D监督预训练的全身病灶检测SOTA(预训练代码和模型已公开)...

    关注公众号,发现CV技术之美 ▊ 研究背景介绍 由于深度学习任务往往依赖于大量的标注数据,医疗图像的样本标注又会涉及到较多的专业知识,标注人员需要对病灶的大小.形状.边缘等信息进行准确的判断,甚至需要 ...

最新文章

  1. 【BZOJ】1045: [HAOI2008]糖果传递(中位数)
  2. [C++STL]C++实现queue容器适配器
  3. Element Tree型控件
  4. python 可视化项目_python3项目之数据可视化
  5. python messagebox弹窗退出_python 中messagebox使用 做中断调试不错
  6. 原生js、jq移入移出事件
  7. Eclipse- 使用记录(1)
  8. 富士驱动器ALPHA5手动JOG运行操作
  9. 利用diyUpload做多图片上传及预览
  10. linux 统计文件字节和行数,Linux命令-统计文件中的字节数、字数、行数:wc
  11. 保持简单----纪念丹尼斯里奇(Dennis Ritchie) (zz.is2120.BG57IV3)
  12. Maven-仓库概念,下载与配置
  13. 2022世界杯看球指南
  14. 鹏业BIM三维安装算量软件一次购买还是收年费
  15. css3彩色3D文字上下漂浮动画js特效
  16. 第三方理财平台海银财富上市破发,IPO筹划两年募资规模缩水至3千万美元
  17. 深信服面试常见算法题整理笔记
  18. Windows OpenGL 图像色调
  19. eja智能压力变送器工作原理_HONEYWEL、 EJA 、罗斯蒙特变送器的工作原理
  20. 酷睿 i7 12800H怎么样 相当于什么水平

热门文章

  1. vue compile添加html,咱来聊聊 Vue - compile
  2. 6-堆排序C实现(递增递减的简单转换,可优化(41行提示))
  3. lepus监控oracle数据库_一文看懂lepus天兔数据库监控系统如何搭建
  4. unity人物旋转移动代码_游戏诞生之日02 - 美术篇 快速制作人物动画
  5. java 同步中的线程出现异常会放弃锁吗
  6. linux里查看所有用户和用户组
  7. Weblogic下创建JMS消息服务
  8. pycharm acejumpchar插件
  9. 进入前端开发这个领域 ,请问如何进行系统的学习?
  10. checkedListBox使用例子