TensorFlow实现打印每一层的输出

 更新时间:2020年01月21日 14:28:40   作者:Kluiverthoo  
今天小编就为大家分享一篇TensorFlow实现打印每一层的输出,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在test.py中可以通过如下代码直接生成带weight的pb文件,也可以通过tf官方的freeze_graph.py将ckpt转为pb文件。

constant_graph = graph_util.convert_variables_to_constants(sess, sess.graph_def,['net_loss/inference/encode/conv_output/conv_output'])
with tf.gfile.FastGFile('net_model.pb', mode='wb') as f:
  f.write(constant_graph.SerializeToString())

tf1.0中通过带weight的pb文件与get_tensor_by_name函数可以获取每一层的输出

import os
import os.path as ops
import argparse
import time
import math
 
import tensorflow as tf
import glob
import numpy as np
import matplotlib.pyplot as plt
import cv2
 
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
 
gragh_path = './model.pb'
image_path = './lvds1901.JPG'
inputtensorname = 'input_tensor:0'
tensorname = 'loss/inference/encode/resize_images/ResizeBilinear'
filepath='./net_output.txt'
HEIGHT=256
WIDTH=256
VGG_MEAN = [103.939, 116.779, 123.68]
 
with tf.Graph().as_default():
  graph_def = tf.GraphDef()
  with tf.gfile.GFile(gragh_path, 'rb') as fid:
    serialized_graph = fid.read()
    graph_def.ParseFromString(serialized_graph)
 
    tf.import_graph_def(graph_def, name='')
 
    image = cv2.imread(image_path)
    image = cv2.resize(image, (WIDTH, HEIGHT), interpolation=cv2.INTER_CUBIC)
    image_np = np.array(image)
    image_np = image_np - VGG_MEAN
    image_np_expanded = np.expand_dims(image_np, axis=0)
 
    with tf.Session() as sess:
      ops = tf.get_default_graph().get_operations()
      tensor_name = tensorname + ':0'
      tensor_dict = tf.get_default_graph().get_tensor_by_name(tensor_name)
      image_tensor = tf.get_default_graph().get_tensor_by_name(inputtensorname)
      output = sess.run(tensor_dict, feed_dict={image_tensor: image_np_expanded})
      
      ftxt = open(filepath,'w')
      transform = output.transpose(0, 3, 1, 2)
      transform = transform.flatten()
      weight_count = 0
      for i in transform:
        if weight_count % 10 == 0 and weight_count != 0:
          ftxt.write('\n')
        ftxt.write(str(i) + ',')
        weight_count += 1
      ftxt.close()

以上这篇TensorFlow实现打印每一层的输出就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python队列原理及实现方法示例

    python队列原理及实现方法示例

    这篇文章主要介绍了python队列原理及实现方法,结合实例形式详细分析了Python队列的概念、原理、定义及基本操作技巧,需要的朋友可以参考下
    2019-11-11
  • 浅谈Python中的函数(def)及参数传递操作

    浅谈Python中的函数(def)及参数传递操作

    这篇文章主要介绍了浅谈Python中的函数(def)及参数传递操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python文件读写及常用文件的打开方式

    Python文件读写及常用文件的打开方式

    这篇文章主要介绍了Python文件读写及常用文件的打开方式,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • python制作罗盘时钟效果

    python制作罗盘时钟效果

    这篇文章主要介绍了python制作罗盘时钟效果,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • Python利用re模块实现简易分词(tokenization)

    Python利用re模块实现简易分词(tokenization)

    分词(tokenization)任务是Python字符串处理中最为常见任务了。本文将利用re模块实现简易tokenizer,文中的示例代码讲解详细,需要的可以参考一下
    2022-04-04
  • OpenCV-Python直方图均衡化实现图像去雾

    OpenCV-Python直方图均衡化实现图像去雾

    直方图均衡化可以达到增强图像显示效果的目的。最常用的比如去雾。本文就来实现直方图均衡化实现图像去雾,感兴趣的可以了解一下
    2021-06-06
  • Python中扩展包的安装方法详解

    Python中扩展包的安装方法详解

    这篇文章主要给大家总结了关于Python中扩展包的安装方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • Python中zip()函数用法及应用场景详解

    Python中zip()函数用法及应用场景详解

    Python的zip()函数用于将多个可迭代对象的元素按位置组合成元组,支持不等长的可迭代对象和多个可迭代对象,这篇文章主要介绍了Python中zip()函数用法及应用场景的相关资料,需要的朋友可以参考下
    2025-04-04
  • Python爬虫使用脚本登录Github并查看信息

    Python爬虫使用脚本登录Github并查看信息

    这篇文章主要介绍了Python爬虫之用脚本登录Github并查看信息,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • python Task在协程调用实例讲解

    python Task在协程调用实例讲解

    在本篇文章里小编给大家整理了一篇关于python Task如何在协程调用的相关内容,有兴趣的朋友们可以参考下。
    2021-04-04

最新评论