基于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 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
python插入排序算法的实现代码
Nov 21 Python
python实现360皮肤按钮控件示例
Feb 21 Python
Python3 能振兴 Python的原因分析
Nov 28 Python
详解Django框架中的视图级缓存
Jul 23 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
基于python的Tkinter编写登陆注册界面
Jun 30 Python
简单了解Django模板的使用
Dec 20 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
Feb 18 Python
Python帮你识破双11的套路
Nov 11 Python
基于python使用tibco ems代码实例
Dec 20 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 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
第十三节--对象串行化
2006/11/16 PHP
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
2019/08/29 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
python开发之list操作实例分析
2016/02/22 Python
python多任务及返回值的处理方法
2019/01/22 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
Python 使用多属性来进行排序
2019/09/01 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
2014年体育教师工作总结
2014/12/03 职场文书
安全生产感想
2015/08/07 职场文书
《海上日出》教学反思
2016/02/23 职场文书
Python实现生活常识解答机器人
2021/06/28 Python
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis
python 安全地删除列表元素的方法
2022/03/16 Python
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS