zoukankan      html  css  js  c++  java
  • tensorflow四维tensor的形状以及函数tf.argmax( )的笔记

    关于tensorflow里多维数组(主要是四维)的组织形式之前一直没弄懂,最近遇到相关问题,算是搞清楚了一些东西,特别记下来,免得自己又遗忘了。

    三维形式能很简单的脑补出来三维的形状,不再赘述。

    之前一直纠结四维的时候数据是怎样填充的。特别是遇到深度学习的时候输入都是[batch,height,width,channel],这种四维的张量的时候,是怎样个数据的形状。

    先看代码:

    prediction2 = tf.constant([1,2,3,4,5,6,7,8,9,13,14,14,15,1,6,34,23,7],shape=[2,1,3,3])

    生成一个shape为 [2,1,3,3]的tensor,具体生成的时候按照一个维度一个维度填充的,先填充最“里面”的维度,这里指维度3,然后往外依次填充。因此可以将[1,1,3,3]看成是这样形状:

    而[2,1,3,3]则是两个这样的立方体组合而成。生成这样的一个tensor的时候依次填充[0][0][0][0], [0][0][0][1], [0][0][0][2]......

    依次当求这个tensor在相应维度下的最大值坐标就很好理解了,如这句代码:

    result = tf.argmax(prediction2,3)

    将返回在Z轴上最大值的坐标,因此立方体第一列即[0][0][0][0], [0][0][0][1], [0][0][0][2],依次为1,2,3, 最大为2,返回维度为2;同理可推出,函数返回值为:

    [[2,2,2],

     [1,0,0]]

    实际运行结果也相同:

  • 相关阅读:
    boost编译中的细节问题
    geos编译问题
    安装pytorch的细节记录
    Qt学习-模仿Qt实现一个colorbutton
    BOOST内存管理-intrusive_ptr
    GEOS使用记录
    matlab添加永久路径
    关于浮点数的取值范围以及精度的问题
    vs2010中使用命令行参数
    sprintf fprintf EOF scanf 的返回值 深拷贝与浅拷贝
  • 原文地址:https://www.cnblogs.com/hear-nothing/p/8968571.html
Copyright © 2011-2022 走看看