美文网首页
tf.shape()与tensor.get_shape()区别:

tf.shape()与tensor.get_shape()区别:

作者: D_Major | 来源:发表于2019-03-28 17:58 被阅读0次

    tf.shape()返回的是表示维度的行向量, 表示为一个1-D integer tensor, 不能直接转为list; tensor.shape属性或者tensor.get_shape()方法返回的是TensorShape列表(可查看每一维有多少元素)
    第四维为batch size, 表示一批图片的数量; 第三维为height, 表示一张图内行向量的数量; 第二维为width, 表示一个行向量内有多少个像素; 第一维为channel, 表示一个像素由多少层叠加而来.
    array_ops.shape()等价于tf.shape(), 同理array_ops.unstack()等价于tf.unstack()

    [In 1]: target_layer
    <tf.Tensor 'evaluation_720x1280/pixel_cls/score_from_conv5_3/BiasAdd:0' shape=(1, 45, 80, 2) dtype=float32>
    [In 2]: tf.shape(target_layer)    # tensor的维度
    <tf.Tensor 'evaluation_720x1280/pixel_cls/Shape:0' shape=(4,) dtype=int32>
    [In 3]: tf.shape(target_layer)[1:-1]    # 取出中间的两个维度
    <tf.Tensor 'evaluation_720x1280/pixel_cls/strided_slice:0' shape=(2,) dtype=int32>
    [In 4]: target_layer.shape    # tensor的形状, dimension表示该维度内元素的数量
    TensorShape([Dimension(1), Dimension(45), Dimension(80), Dimension(2)])
    [In 5]: target_layer.get_shape()
    TensorShape([Dimension(1), Dimension(45), Dimension(80), Dimension(2)])
    

    返回tensor的channel数, 是一个int型常数(as_list()转化为数组再进行切片)

    num_channels = image.get_shape().as_list()[-1]
    

    相关文章

      网友评论

          本文标题:tf.shape()与tensor.get_shape()区别:

          本文链接:https://www.haomeiwen.com/subject/tiycbqtx.html