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 相关文章推荐
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
Nov 18 Python
python创建列表并给列表赋初始值的方法
Jul 28 Python
python字典的常用操作方法小结
May 16 Python
Python中类的初始化特殊方法
Dec 01 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
分析python请求数据
Aug 19 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
python 生成图形验证码的方法示例
Nov 11 Python
详解python读取和输出到txt
Mar 29 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 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判断字符串在另一个字符串位置的方法
2014/02/27 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
理解Python中的With语句
2016/03/18 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
使用python实现kNN分类算法
2019/10/16 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
Champion官网:美国冠军运动服装
2017/01/25 全球购物
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
销售顾问岗位职责
2014/02/25 职场文书
中介业务员岗位职责
2014/04/09 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
关于实现中国梦的心得体会
2016/01/05 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS