基于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 数据加密代码
Dec 24 Python
python中对list去重的多种方法
Sep 18 Python
快速入手Python字符编码
Aug 03 Python
python的unittest测试类代码实例
Dec 07 Python
python3.4.3下逐行读入txt文本并去重的方法
Apr 29 Python
在Python运行时动态查看进程内部信息的方法
Feb 22 Python
python儿童学游戏编程知识点总结
Jun 03 Python
python list多级排序知识点总结
Oct 23 Python
Pytorch 多块GPU的使用详解
Dec 31 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 Python
python保存大型 .mat 数据文件报错超出 IO 限制的操作
May 10 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读取html并截取字符串的简单代码
2009/11/30 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
两个php日期控制类实例
2014/12/09 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
python计算一个序列的平均值的方法
2015/07/11 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
python输出数学符号实例
2020/05/11 Python
python实现数字炸弹游戏程序
2020/07/17 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
大学生应聘自荐信
2013/10/11 职场文书
会计职业生涯规划书
2014/01/13 职场文书
秋季运动会活动方案
2014/02/05 职场文书
安全责任书怎么写
2014/07/28 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
毕业班工作总结
2015/08/10 职场文书
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python