基于tf.shape(tensor)和tensor.shape()的区别说明

 更新时间:2020年06月30日 09:43:26   作者:yinheju  
这篇文章主要介绍了基于tf.shape(tensor)和tensor.shape()的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

#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实现机械分词之逆向最大匹配算法代码示例

    这篇文章主要介绍了python实现机械分词之逆向最大匹配算法代码示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 使用Django实现文章与多个标签关联的示例详解

    使用Django实现文章与多个标签关联的示例详解

    在构建一个博客或内容管理系统时,经常需要实现文章与标签的关联,在 Django 中,我们可以利用 ManyToManyField 来实现文章与标签的多对多关系,在本文中,我们将详细探讨如何使用 Django 模型实现文章与多个标签的关联,需要的朋友可以参考下
    2023-11-11
  • Python闭包技巧介绍

    Python闭包技巧介绍

    这篇文章主要介绍了Python闭包,所谓闭包就是用函数代替类,被外层函数包围的内层函数,它能够获取外层函数范围中的变量,感兴趣的小伙伴请和小编一起进入文章学习具体内容吧
    2021-12-12
  • Python利用memory_profiler查看内存占用情况

    Python利用memory_profiler查看内存占用情况

    memory_profiler是第三方模块,用于监视进程的内存消耗以及python程序内存消耗的逐行分析。本文将利用memory_profiler查看代码运行占用内存情况,感兴趣的可以了解一下
    2022-06-06
  • 给Python学习者的文件读写指南(含基础与进阶)

    给Python学习者的文件读写指南(含基础与进阶)

    今天,猫猫跟大家一起,好好学习Python文件读写的内容,这部分内容特别常用,掌握后对工作和实战都大有益处,学习是循序渐进的过程,欲速则不达
    2020-01-01
  • Python实现PS图像明亮度调整效果示例

    Python实现PS图像明亮度调整效果示例

    这篇文章主要介绍了Python实现PS图像明亮度调整效果,结合实例形式分析了Python基于skimage模块调整图片明亮度的原理与具体操作技巧,需要的朋友可以参考下
    2018-01-01
  • 夯实基础Python列表的索引和切片使用示例

    夯实基础Python列表的索引和切片使用示例

    这篇文章主要为大家介绍了Python列表的索引和切片使用示例基础详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Tensorflow环境搭建的方法步骤

    Tensorflow环境搭建的方法步骤

    本篇文章主要介绍了Tensorflow环境搭建的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Django实现微信小程序支付的示例代码

    Django实现微信小程序支付的示例代码

    这篇文章主要介绍了Django实现微信小程序支付的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python趣味编程实现手绘风视频示例

    Python趣味编程实现手绘风视频示例

    本文与计算机视觉相关,使用Python将图片由自然风转化为手绘风,期间未对图片进行任何预处理、后处理;代码中只借助了两个常见库,核心计算由Numpy负责 ,Pillow 负责图片读写
    2021-10-10

最新评论