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算术运算符实例详解
May 31 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
python对Excel按条件进行内容补充(推荐)
Nov 24 Python
pytorch 批次遍历数据集打印数据的例子
Dec 30 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
python 链接sqlserver 写接口实例
Mar 11 Python
python opencv实现简易画图板
Aug 27 Python
django使用多个数据库的方法实例
Mar 04 Python
python识别围棋定位棋盘位置
Jul 26 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
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
url decode problem 解决方法
2011/12/26 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
一秒学会微信小程序制作table表格
2019/02/14 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
python实现斐波那契递归函数的方法
2014/09/08 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
简单了解python反射机制的一些知识
2019/07/13 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
长青弘远的面试题
2012/06/09 面试题
什么时候用assert
2015/05/08 面试题
销售找工作求职信
2013/12/20 职场文书
大专毕业自我鉴定
2014/02/04 职场文书
精神文明建设标语
2014/06/16 职场文书
推普周活动总结
2014/08/28 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server