基于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 相关文章推荐
Python3中简单的文件操作及两个简单小实例分享
Jun 18 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 Python
python 字典 按key值大小 倒序取值的实例
Jul 06 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
Dec 15 Python
python常用运维脚本实例小结
Feb 14 Python
Python Selenium安装及环境配置的实现
Mar 17 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
Pyinstaller打包Scrapy项目的实现步骤
Sep 22 Python
使用Python爬虫爬取小红书完完整整的全过程
Jan 19 Python
python 30行代码实现蚂蚁森林自动偷能量
Feb 08 Python
浅析Python OpenCV三种滤镜效果
Apr 11 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
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
javascript 跳转代码集合
2009/12/03 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
AspNet中使用JQuery上传插件Uploadify详解
2015/05/20 Javascript
jQuery.Callbacks()回调函数队列用法详解
2016/06/14 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
json 带斜杠时如何解析的实现
2019/08/12 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
新手该如何学python怎么学好python?
2008/10/07 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
Python双向循环链表实现方法分析
2018/07/30 Python
深入理解python中sort()与sorted()的区别
2018/08/29 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
Python通过len函数返回对象长度
2020/10/22 Python
Python偏函数实现原理及应用
2020/11/20 Python
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
安全教育演讲稿
2014/05/09 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
关于召开会议的通知
2015/04/15 职场文书
Node.js实现断点续传
2021/06/23 Javascript