基于tf.shape(tensor)和tensor.shape()的区别说明


Posted in Python onJune 30, 2020

#tf.shape(tensor)和tensor.shape()的区别

a=tf.zeros([4,5,4,5,6])
print(type(a.shape))
print(a.shape.ndims)#多少个维度
print(a.shape.as_list())#返回列表
print(type(tf.shape(a)))
print(type(tf.shape(a)[0]))
b=a.shape.as_list()
c=tf.shape(a)
b[1]=tf.shape(a)[1]
print(b)
sess=tf.Session()
d=sess.run(c)
print(d)
outputs:
<class 'tensorflow.python.framework.tensor_shape.TensorShape'>
5
[4, 5, 4, 5, 6]
<class 'tensorflow.python.framework.ops.Tensor'>
<class 'tensorflow.python.framework.ops.Tensor'>
[4, <tf.Tensor 'strided_slice_1:0' shape=() dtype=int32>, 4, 5, 6]
[4 5 4 5 6]

其中tf.shape(tensor)使用的是动态的,即必须要在session中运行后才能显示出来,但是tensor.shape()是静态的,即通过定义的shape可以惊天的运行出来。

原因:在我们定义的时候,比如进行placeholder的时候我们可能会定义某些维度为None,在静态的时候是看不出来的,只能在运行的时候找到维度。

**使用:**可以在获得某些tensor的维度的时候进行检验,防止维度为None。

补充知识:tensorflow.python.framework.tensor_shape.TensorShape 类

TensorShape 是tensorflow中关于张量shape的类(class).

使用示例如下:

import tensorflow.compat.v1 as tf
from tensorflow.python.framework import tensor_shape
from tensorflow.python.framework import constant_op
 
tensor_test1=[10,10,10]
tensor_test2 = [None,10,10]
 
p1 = tensor_shape.as_shape(tensor_test1) # 得到的是一个类实例,该类实例包含一个属性,是 tensor_test1 的value
const = constant_op.constant(p1.as_list())
 
print("type(p1) = ",type(p1))
print("p1 = ",p1) # 使用p1时会自动调用p1中的value属性
print("p1.is_fully_defined() = ",p1.is_fully_defined())# is_fully_defined 是 TensorShape 类的一个内部函数
print("p1.ndims = ",p1.ndims) # ndims 也是TensorShape的一个属性值
print("p1.as_list() = ",p1.as_list()) # 把TensorShape的value属性转换成python中的list类型
print("const = ",const)

结果如下:

type(p1) = <class 'tensorflow.python.framework.tensor_shape.TensorShape'>
p1 = (10, 10, 10)
p1.is_fully_defined() = True
p1.ndims = 3
p1.as_list() = [10, 10, 10]
const = Tensor("Const:0", shape=(3,), dtype=int32)

以上这篇基于tf.shape(tensor)和tensor.shape()的区别说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 Python
Python命名空间详解
Aug 18 Python
Python中的引用和拷贝浅析
Nov 22 Python
Python编程之微信推送模板消息功能示例
Aug 21 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
python机器学习之神经网络(三)
Dec 20 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
Dec 19 Python
pandas去除重复列的实现方法
Jan 29 Python
10行Python代码计算汽车数量的实现方法
Oct 23 Python
Python随机数函数代码实例解析
Feb 09 Python
Python搭建Keras CNN模型破解网站验证码的实现
Apr 07 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 Python
Tensorflow全局设置可见GPU编号操作
Jun 30 #Python
Python logging模块异步线程写日志实现过程解析
Jun 30 #Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 #Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
Jun 30 #Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
Jun 30 #Python
keras的backend 设置 tensorflow,theano操作
Jun 30 #Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 #Python
You might like
怎样去阅读一份php源代码
2009/08/21 PHP
php 检查电子邮件函数(自写)
2014/01/16 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
vue axios同步请求解决方案
2017/09/29 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
Python判断某个用户对某个文件的权限
2016/10/13 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
python文字转语音的实例代码分析
2019/11/12 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
最新大学职业规划书范文
2013/12/30 职场文书
职务任命书范本
2014/06/05 职场文书
爱护公物标语
2014/06/24 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python