用于连接两个矩阵:

mn = array_ops.concat([a, d], 1) #  按照第二维度相接,shape1 [m,a] shape2 [m,b] ,concat_done shape : [m,a+b]

tensorflow Rnn,Lstm,Gru,源码中是用以上的函数来链接Xt 和 Ht-1 的,两者的shape 分别是【batch_size, emb_size】【batch_size,Hidden_size】

连接接后为的shape为:【batch_size,embedding_size + Hidden_size】,作为当前时刻的输入;

测试代码:

 import os
import tensorflow as tf
import numpy as np
import sys
from tensorflow.python.ops import array_ops
#array_ops.concat([inputs, state], 1) a = tf.constant([[1,12,8,6], [3,4,6,7]]) # shape [2,4]
b = tf.constant([[10, 20,6,88], [30,40,7,8]]) # shape [2,4]
c = tf.constant([[10, 20,6,88,99], [30,40,7,8,15]]) #shape [2,5]
d = tf.constant([[10,20,6,88], [30,40,7,8],[30,40,7,8]]) # shape [3,4]
nn = tf.concat([a, d],0) # 按照第一维度相接,shape1 [a,m] shape2 [b,m] concat_done:[a+b,m]
nn_1 = tf.concat([a, c],1) # 按照第二维度相接,shape1 [m,a] shape2 [m,b] concat_done:[m,a+b]
mn = array_ops.concat([a, d], 0) # 按照第一维度相接,shape1 [a,m] shape2 [b,m] concat_done:[a+b,m]
mn_1 = array_ops.concat([a, c], 1) # 按照第二维度相接,shape1 [m,a] shape2 [m,b] concat_done:[m,a+b] with tf.Session() as sess:
print (nn)
print (nn.eval())
print (nn_1)
print (nn_1.eval())
print (mn)
print (mn.eval()) # shape [5,4]
print (mn_1)
print (mn_1.eval()) # shape [2,9]

结果输出:

Tensor("concat:0", shape=(, ), dtype=int32)
[[ ]
[ ]
[ ]
[ ]
[ ]]
Tensor("concat_1:0", shape=(, ), dtype=int32)
[[ ]
[ ]]
Tensor("concat_2:0", shape=(, ), dtype=int32)
[[ ]
[ ]
[ ]
[ ]
[ ]]
Tensor("concat_3:0", shape=(, ), dtype=int32)
[[ ]
[ ]]

tensorflow 笔记7:tf.concat 和 ops中的array_ops.concat的更多相关文章

  1. tensorflow笔记:使用tf来实现word2vec

    (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 (四) tensorflow笔 ...

  2. 关于tensorflow里面的tf.contrib.rnn.BasicLSTMCell 中num_units参数问题

    这里的num_units参数并不是指这一层油多少个相互独立的时序lstm,而是lstm单元内部的几个门的参数,这几个门其实内部是一个神经网络,答案来自知乎: class TRNNConfig(obje ...

  3. tensorflow笔记9:nn_ops.bias_add 函数

    完整代码引入:from tensorflow.python.ops import nn_ops tensorflow version:1.9 代码演示: import os import tensor ...

  4. tensorflow笔记3:CRF函数:tf.contrib.crf.crf_log_likelihood()

    在分析训练代码的时候,遇到了,tf.contrib.crf.crf_log_likelihood,这个函数,于是想简单理解下: 函数的目的:使用crf 来计算损失,里面用到的优化方法是:最大似然估计 ...

  5. (四) tensorflow笔记:常用函数说明

    tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 ...

  6. tensorflow笔记:多层LSTM代码分析

    tensorflow笔记:多层LSTM代码分析 标签(空格分隔): tensorflow笔记 tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) ten ...

  7. tensorflow 生成随机数 tf.random_normal 和 tf.random_uniform 和 tf.truncated_normal 和 tf.random_shuffle

    ____tz_zs tf.random_normal 从正态分布中输出随机值. . <span style="font-size:16px;">random_norma ...

  8. tensorflow笔记(一)之基础知识

    tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...

  9. tensorflow笔记(二)之构造一个简单的神经网络

    tensorflow笔记(二)之构造一个简单的神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7425200.html ...

随机推荐

  1. linux下php命令无法使用如何解决

    本文主要和大家分享linux下php命令无法使用如何解决,测试是否添加php环境变量方法: 如下:输入php -v 显示 php 命令没有找到 [root@iz8vbhc4d7zoazstpw7gw8 ...

  2. 基于URL的高层次Java网络编程

    一致资源定位器URL URL(Uniform Resource Locator)是一致资源定位器的简称,它表示Internet上某一资源的地址.通过URL我们可以访问Internet上的各种网络资源, ...

  3. C#:几种数据库的大数据批量插入(转)

    在之前只知道SqlServer支持数据批量插入,殊不知道Oracle.SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解 ...

  4. SQL Server 限定删除一行

    with t as ( )* from testtest where aa='aa' order by bb ) delete from t

  5. spring 注解与配置文件启动配置使用原理

    遇到个问题注解配置文件调用配置文件JSF服务,worker起不来. 待续...

  6. 洛谷.3690.[模板]Link Cut Tree(动态树)

    题目链接 LCT(良心总结) #include <cstdio> #include <cctype> #include <algorithm> #define gc ...

  7. php null

    null 表示一个变量没有值,并且不区分大小写 在下列情况下一个变量被认为是 NULL: 1.被赋值为 NULL. 2.尚未被赋值. 3.被 unset(). 判断是否为null :  is_null ...

  8. FastDFS安装注意事项

    配置中设定的目录必须提前创建,不会自动创建. 先启动所有tracker再启动storage,一个storage必须能连接到所有配置的tracker才会成功启动. Docker中运行fdfs必须使用ho ...

  9. 数据分析系统DIY1/3:CentOS7+MariaDB安装纪实

    打算通过实践.系统学习一下数据分析. 初步计划要完毕的三个任务. 一.用VMware装64位CentOS,数据库服务端用CentOS自带的就好. 二.数据採集与预处理用Dev-C++编程解决. 三.用 ...

  10. shell模板变量替换

    我们经常使用一些模板语言来处理一些变量替换.比如jsp,php,velocity,freemarker,thymeleaf等.那对于shell来说,应该怎样替换变量呢.有一种很简单的办法可以做到. 先 ...