首页 > 其他分享 >tf.concat()

tf.concat()

时间:2022-11-03 15:48:24浏览次数:98  
标签:维度 shape 拼接 tf concat axis

tf.concat是连接两个矩阵的操作

tf.concat(concat_dim, values, name='concat')

除去name参数用以指定该操作的name,与方法有关的一共两个参数:

 

第一个参数concat_dim:必须是一个数,表明在哪一维上连接

     如果concat_dim是0,那么在某一个shape的第一个维度上连,对应到实际,就是叠放到列上

tensorflow中用来拼接张量的函数tf.concat(),用法:

tf.concat([tensor1, tensor2, tensor3,...], axis)

 给出tf源代码中的解释:

  t1 = [[1, 2, 3], [4, 5, 6]]
  t2 = [[7, 8, 9], [10, 11, 12]]
  tf.concat([t1, t2], 0)  # [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
  tf.concat([t1, t2], 1)  # [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]
 
  # tensor t3 with shape [2, 3]
  # tensor t4 with shape [2, 3]
  tf.shape(tf.concat([t3, t4], 0))  # [4, 3]
  tf.shape(tf.concat([t3, t4], 1))  # [2, 6]

 这里解释了当axis=0和axis=1的情况,怎么理解这个axis呢?其实这和numpy中的np.concatenate()用法是一样的。

axis=0     代表在第0个维度拼接

axis=1     代表在第1个维度拼接

对于一个二维矩阵,第0个维度代表最外层方括号所框下的子集,第1个维度代表内部方括号所框下的子集。维度越高,括号越小。
对于这种情况,我可以再解释清楚一点:

对于[ [ ], [ ]]和[[ ], [ ]],低维拼接等于拿掉最外面括号,高维拼接是拿掉里面的括号(保证其他维度不变)。注意:tf.concat()拼接的张量只会改变一个维度,其他维度是保存不变的。比如两个shape为[2,3]的矩阵拼接,要么通过axis=0变成[4,3],要么通过axis=1变成[2,6]。改变的维度索引对应axis的值。

这样就可以理解多维矩阵的拼接了,可以用axis的设置来从不同维度进行拼接。

对于三维矩阵的拼接,自然axis取值范围是[0, 1, 2]。

对于axis等于负数的情况

负数在数组索引里面表示倒数(countdown)。比如,对于列表ls = [1,2,3]而言,ls[-1] = 3,表示读取倒数第一个索引对应值。

axis=-1表示倒数第一个维度,对于三维矩阵拼接来说,axis=-1等价于axis=2。同理,axis=-2代表倒数第二个维度,对于三维矩阵拼接来说,axis=-2等价于axis=1。

一般在维度非常高的情况下,我们想在最'高'的维度进行拼接,一般就直接用countdown机制,直接axis=-1就搞定了。

大概明白了 后面再细学一下


原文链接:https://blog.csdn.net/leviopku/article/details/82380118

标签:维度,shape,拼接,tf,concat,axis
From: https://www.cnblogs.com/bokeyuanjj/p/16854646.html

相关文章

  • tf.variable_scope()
    tf.variable_scope():可以让变量有相同的命名,包括tf.get_variable得到的变量,还有tf.Variable变量它返回的是一个用于定义创建variable(层)的op的上下文管理器。可变范围......
  • tf.layers.dense()
    tf.layers.dense用于添加一个全连接层。函数如下:tf.layers.dense(inputs, #层的输入units, #该层的输出维度activation=None, #激活函数u......
  • tf.nn.relu()
    线性整流函数(RectifiedLinearUnit, ReLU),又称修正线性单元。其定义如下图,在横坐标的右侧,ReLU函数为线性函数。在横坐标的右侧,ReLU函数为值为0。  因此,tf.nn.relu()......
  • (笔记)ROS2 colcon build报错:ModuleNotFoundError: No module named ‘catkin_pkg‘
     在使用ROS2时,使用colconbuild编译时,报错如下:1Starting>>>fishbot_navigation22---stderr:fishbot_navigation23Traceback(mo......
  • ctf web1信息搜集与爆破
    一般做题顺序(危害递增):读取写入执行常见状态码:200:成功301、302:跳转404:找不到资源403:禁止访问500:服务器错误502:错误网关,无效网关...信息泄露:http信息泄露(......
  • org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.choose
    一、问题背景二、报错截图如下三、我的项目配置如下<!--服务注册/发现--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud......
  • msys中出现configure:error:GStreamer1.0audiorequestedbutnotfoundfo_F_hawk189_新浪
    在windows下使用msys编译spice-gtk源码。出现:checkingforGSTAUDIO...noconfigure:error:GStreamer1.0audiorequestedbutnotfound安装gstreamer后仍......
  • HAL库下使用printf
    1.包含头文件#include"stdio.h"2.重定义串口intfputc(intch,FILE*f){while((USART1->SR&0X40)==0);//循环发送,直到发送完毕USART1->DR=(uint8_t)......
  • shell语法4-printf命令、test命令和判断符号[]、逻辑运算符&&和||
    一、printf命令printf命令用于格式化输出,类似于C/C++中的printf函数。默认不会在字符串末尾添加换行符!!!例如:printf"%10d.\n"123 #占10位,右对齐printf"%-10.2f.\n"......
  • HNCTF-web wp
    HNCTF-webwp[WEEK2]Canyource为期一个月的hnctf我打了一下有几道比较好的题目(或者我之前没有遇到过的)在这里记录一下<?phphighlight_file(__FILE__);if(isset(......