tensorflow获取变量维度信息


Posted in Python onMarch 10, 2018

tensorflow版本1.4

获取变量维度是一个使用频繁的操作,在tensorflow中获取变量维度主要用到的操作有以下三种:

  • Tensor.shape
  • Tensor.get_shape()
  • tf.shape(input,name=None,out_type=tf.int32)

对上面三种操作做一下简单分析:(这三种操作先记作A、B、C)

A 和 B 基本一样,只不过前者是Tensor的属性变量,后者是Tensor的函数。
A 和 B 均返回TensorShape类型,而 C 返回一个1D的out_type类型的Tensor。
A 和 B 可以在任意位置使用,而 C 必须在Session中使用。
A 和 B 获取的是静态shape,可以返回不完整的shape; C 获取的是动态的shape,必须是完整的shape。

另外,补充从TenaorShape变量中获取具体维度数值的方法

# 直接获取TensorShape变量的第i个维度值
x.shape[i].value
x.get_shape()[i].value

# 将TensorShape变量转化为list类型,然后直接按照索引取值
x.get_shape().as_list()

下面给出全部的示例程序:

import tensorflow as tf

x1 = tf.constant([[1,2,3],[4,5,6]])
# 占位符创建变量,第一个维度初始化为None,表示暂不指定维度
x2 = tf.placeholder(tf.float32,[None, 2,3])
print('x1.shape:',x1.shape)
print('x2.shape:',x2.shape)
print('x2.shape[1].value:',x2.shape[1].value)
print('tf.shape(x1):',tf.shape(x1))
print('tf.shape(x2):',tf.shape(x2))
print('x1.get_shape():',x1.get_shape())
print('x2.get_shape():',x2.get_shape())
print('x2.get_shape.as_list[1]:',x2.get_shape().as_list()[1])
shapeOP1 = tf.shape(x1)
shapeOP2 = tf.shape(x2)
with tf.Session() as sess:
 print('Within session, tf.shape(x1):',sess.run(shapeOP1))
 # 由于x2未进行完整的变量填充,其维度不完整,因此执行下面的命令将会报错
 # print('Within session, tf.shape(x2):',sess.run(shapeOP2)) # 此命令将会报错

输出结果为:

x1.shape: (2, 3)
x2.shape: (?, 2, 3)
x2.shape[1].value: 2
tf.shape(x1): Tensor("Shape:0", shape=(2,), dtype=int32)
tf.shape(x2): Tensor("Shape_1:0", shape=(3,), dtype=int32)
x1.get_shape(): (2, 3)
x2.get_shape(): (?, 2, 3)
x2.get_shape.as_list[1]: 2
Within session, tf.shape(x1): [2 3]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python模块restful使用方法实例
Dec 10 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
Python标准库之collections包的使用教程
Apr 27 Python
Python读取sqlite数据库文件的方法分析
Aug 07 Python
python调用百度语音REST API
Aug 30 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
Django 响应数据response的返回源码详解
Aug 06 Python
django中使用POST方法获取POST数据
Aug 20 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
Jan 08 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 Python
jupyter lab文件导出/下载方式
Apr 22 Python
python else语句在循环中的运用详解
Jul 06 Python
TensorFlow变量管理详解
Mar 10 #Python
TensorFlow神经网络优化策略学习
Mar 09 #Python
TensorFlow实现AutoEncoder自编码器
Mar 09 #Python
TensorFlow实现MLP多层感知机模型
Mar 09 #Python
TensorFlow实现Softmax回归模型
Mar 09 #Python
用python实现百度翻译的示例代码
Mar 09 #Python
TensorFlow深度学习之卷积神经网络CNN
Mar 09 #Python
You might like
杏林同学录(五)
2006/10/09 PHP
PHP中如何判断AJAX提交的数据
2012/02/05 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
vue中动态添加class类名的方法
2018/09/05 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
[02:29]大剑、皮鞭、女装,这届DOTA2勇士令状里都有
2020/07/17 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
关于Python 3中print函数的换行详解
2017/08/08 Python
Python中的函数作用域
2018/05/07 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
python对execl 处理操作代码
2020/06/22 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
学生会干部自荐信
2014/02/04 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python