基于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 pass 语句使用示例
Mar 11 Python
跟老齐学Python之编写类之一创建实例
Oct 11 Python
简单介绍Python中的几种数据类型
Jan 02 Python
Python快速从注释生成文档的方法
Dec 26 Python
python调用Matplotlib绘制分布点并且添加标签
May 31 Python
Python引用计数操作示例
Aug 23 Python
selenium+python截图不成功的解决方法
Jan 30 Python
python实现转圈打印矩阵
Mar 02 Python
python中的逆序遍历实例
Dec 25 Python
python实现百度OCR图片识别过程解析
Jan 17 Python
Python基于numpy模块实现回归预测
May 14 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 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全排列递归算法代码
2012/10/09 PHP
php实现上传图片生成缩略图示例
2014/04/13 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
基于three.js实现的3D粒子动效实例代码
2019/04/09 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
解析Python中的__getitem__专有方法
2016/06/27 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
python微信撤回监测代码
2019/04/29 Python
python之生产者消费者模型实现详解
2019/07/27 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
力学专业求职信
2014/07/23 职场文书
拉贝日记观后感
2015/06/05 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers