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的Django框架中获取单个对象数据的简单方法
Jul 17 Python
Python中Django框架利用url来控制登录的方法
Jul 25 Python
Python3中的bytes和str类型详解
May 02 Python
PyQt QCombobox设置行高的方法
Jun 20 Python
python设置环境变量的作用和实例
Jul 09 Python
Python matplotlib以日期为x轴作图代码实例
Nov 22 Python
关于Numpy中的行向量和列向量详解
Nov 30 Python
PyTorch 导数应用的使用教程
Aug 31 Python
Numpy数组的广播机制的实现
Nov 03 Python
python实现图片,视频人脸识别(opencv版)
Nov 18 Python
详解非极大值抑制算法之Python实现
Jun 28 Python
python游戏开发之pygame实现接球小游戏
Apr 22 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
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
浅析php学习的路线图
2013/07/10 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
也说JavaScript中String类的replace函数
2011/09/22 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
WebStorm ES6 语法支持设置&babel使用及自动编译(详解)
2017/09/08 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
python实现电脑自动关机
2018/06/20 Python
Python之修改图片像素值的方法
2019/07/03 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
学生会干部自荐信
2014/02/04 职场文书
高中生的自我评价
2014/03/04 职场文书
迎新晚会主持词
2014/03/24 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
MySQL 如何设计统计数据表
2021/06/15 MySQL