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 提取文件的小程序
Jul 29 Python
跟老齐学Python之正规地说一句话
Sep 28 Python
Python中关于Sequence切片的下标问题详解
Jun 15 Python
对Python实现简单的API接口实例讲解
Dec 10 Python
python三方库之requests的快速上手
Mar 04 Python
Python在Matplotlib图中显示中文字体的操作方法
Jul 29 Python
关于python导入模块import与常见的模块详解
Aug 28 Python
用Python解数独的方法示例
Oct 24 Python
python带参数打包exe及调用方式
Dec 21 Python
Python如何通过百度翻译API实现翻译功能
Apr 02 Python
python如何导入依赖包
Jul 13 Python
Django对接elasticsearch实现全文检索的示例代码
Aug 02 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读取文件并可支持远程文件的代码分享
2012/10/03 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
javascript Keycode对照表
2009/10/24 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
Node.js 实现抢票小工具 & 短信通知提醒功能
2019/10/22 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
Python排序算法实例代码
2017/08/10 Python
python正则中最短匹配实现代码
2018/01/16 Python
Python实现自动上京东抢手机
2018/02/06 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
使用opencv中匹配点对的坐标提取方式
2020/06/04 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
基层工作经历证明
2015/06/19 职场文书
教育教学工作反思
2016/02/24 职场文书
python tkinter模块的简单使用
2021/04/07 Python