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入门篇之字符串
Oct 17 Python
Python基于PycURL实现POST的方法
Jul 25 Python
Python进阶之尾递归的用法实例
Jan 31 Python
使用apidocJs快速生成在线文档的实例讲解
Feb 07 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
May 05 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
Python中Unittest框架的具体使用
Aug 27 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
基于python 凸包问题的解决
Apr 16 Python
python安装和pycharm环境搭建设置方法
May 27 Python
python实现PolynomialFeatures多项式的方法
Jan 06 Python
python如何实现递归转非递归
Feb 25 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中cookies使用指南
2007/03/16 PHP
php function用法如何递归及return和echo区别
2014/03/07 PHP
phpStorm2020 注册码
2020/09/17 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
Python操作列表的常用方法分享
2014/02/13 Python
Python实现的数据结构与算法之队列详解
2015/04/22 Python
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
详解Django中Request对象的相关用法
2015/07/17 Python
Python实现的下载网页源码功能示例
2017/06/13 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
大一自我鉴定范文
2013/10/04 职场文书
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
师范生自荐信
2013/10/27 职场文书
文明风采获奖感言
2014/02/18 职场文书
《王二小》教学反思
2014/02/27 职场文书
2014年关工委工作总结
2014/11/17 职场文书
实践论读书笔记
2015/06/29 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL
MySQL分区表管理命令汇总
2022/03/21 MySQL