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 相关文章推荐
Linux下编译安装MySQL-Python教程
Feb 02 Python
从源码解析Python的Flask框架中request对象的用法
Jun 02 Python
python使用tkinter实现简单计算器
Jan 30 Python
Python中创建二维数组
Oct 17 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
python matplotlib库直方图绘制详解
Aug 10 Python
python实现H2O中的随机森林算法介绍及其项目实战
Aug 29 Python
如何为Python终端提供持久性历史记录
Sep 03 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
Python列表list常用内建函数实例小结
Oct 22 Python
基于pycharm实现批量修改变量名
Jun 02 Python
Python爬取某拍短视频
Jun 11 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
基于mysql的论坛(2)
2006/10/09 PHP
PHP 5.0对象模型深度探索之对象复制
2008/03/27 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
2019/05/28 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
easy_install python包安装管理工具介绍
2013/02/10 Python
python查询sqlite数据表的方法
2015/05/08 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
应届医学毕业生求职信分享
2013/12/02 职场文书
十八大闭幕感言
2014/01/22 职场文书
食品销售计划书
2014/04/26 职场文书
企业宣传口号
2014/06/12 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
送达通知书
2015/04/25 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python
MySQL限制查询和数据排序介绍
2022/03/25 MySQL
Go语言测试库testify使用学习
2022/07/23 Golang