基于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检测一个对象是否为字符串类的方法
May 21 Python
Python画图学习入门教程
Jul 01 Python
详解python之配置日志的几种方式
May 22 Python
Python数据分析之如何利用pandas查询数据示例代码
Sep 01 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
Dec 24 Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 Python
python列表,字典,元组简单用法示例
Jul 11 Python
Django接收post前端返回的json格式数据代码实现
Jul 31 Python
Python argparse模块应用实例解析
Nov 15 Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 Python
Tensorflow的常用矩阵生成方式
Jan 04 Python
PyQt5的QWebEngineView使用示例
Oct 20 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定时执行计划任务的多种方法小结
2011/12/19 PHP
PHP中数组合并的两种方法及区别介绍
2012/09/14 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
PHP中的session安全吗?
2016/01/22 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
在Django中创建动态视图的教程
2015/07/15 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
深入浅析Python中的迭代器
2019/06/04 Python
使用python绘制二维图形示例
2019/11/22 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
酒店营销策划方案
2014/02/07 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
教师师德演讲稿
2014/05/06 职场文书
充分就业社区汇报材料
2014/05/07 职场文书
建筑工地质量标语
2014/06/12 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
闪闪红星观后感
2015/06/08 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
MySQL 自定义变量的概念及特点
2021/05/13 MySQL