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实现的百度贴吧网络爬虫实例
Apr 17 Python
python脚本设置系统时间的两种方法
Feb 21 Python
Python实现类的创建与使用方法示例
Jul 25 Python
python利用有道翻译实现"语言翻译器"的功能实例
Nov 14 Python
使用Python读取大文件的方法
Feb 11 Python
python数据封装json格式数据
Mar 04 Python
python实现字符串和字典的转换
Sep 29 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
Dec 24 Python
Django之模型层多表操作的实现
Jan 08 Python
Python实现封装打包自己写的代码,被python import
Jul 12 Python
python爬虫中采集中遇到的问题整理
Nov 27 Python
用 Python 元类的特性实现 ORM 框架
May 19 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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
php页面防重复提交方法总结
2013/11/25 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
关于layui flow loading占位图的实现方法
2019/09/21 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
Django url 路由匹配过程详解
2021/01/22 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
介绍一下sql server的安全性
2014/08/10 面试题
linux面试题参考答案(5)
2016/11/05 面试题
进程的查看和调度分别使用什么命令
2015/03/25 面试题
网络维护管理员的自我评价分享
2013/11/11 职场文书
医学检验专业大学生求职信
2013/11/18 职场文书
聚美优品的广告词
2014/03/14 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
红歌会主持词
2015/07/02 职场文书
三八妇女节主持词
2015/07/04 职场文书
新闻通讯稿模板
2015/07/22 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
Nginx反向代理学习实例教程
2021/10/24 Servers