tensorflow的tile使用
当你需要按照矩阵维度复制数据时候,可以使用tensorflow的tile函数
a1 = tf.tile(a, [2, 2]) 表示把a的第一个维度复制两次,第二个维度复制2次。
注意使用tf.nn.softmax(r, axis=0),表示对每一列取softmax,一定要注意维度,axis=0表示对列取softmax,不然数据会出错
def tensoflow_test():
# 一个batch有20个样本,每个样本的长度为5,每一个为200维度
lstm_outpus = tf.truncated_normal(shape=[2, 5, 4], mean=0, stddev=1)
# 变形成二维
lstm_o = tf.reshape(lstm_outpus, shape=[-1, 4])
# 经过非线性
M = tf.tanh(lstm_o)
# 初始化权重信息
w = tf.truncated_normal(shape=[4,1], mean=0, stddev=1)
# 权重tf.matmul(M, w)
r = tf.matmul(M, w)
a = tf.nn.softmax(r, axis=0)
alpha = tf.tile(a, (1, 4))
# attention_res = lstm_o * alpha # M = tf.reshape(t, shape=[-1, 200])
# o = tf.Variable(tf.truncated_normal([1, 200]), name='w', dtype=tf.float32)
# a = tf.Variable(tf.truncated_normal([2,3]), dtype=tf.float32)
# b = tf.Variable(tf.truncated_normal([2,3]), dtype=tf.float32)
# a_b = tf.multiply(a,b)
# # a_b = a * b
# w = tf.transpose(o)
# res = tf.matmul(M, w)
# res2 = tf.reshape(res, shape=[-1, 5])
# copy_res = tf.tile(res2, (3,1))
# init_op = tf.global_variables_initializer() with tf.Session() as sess:
# sess.run(init_op)
# print(sess.run(res))
# print(sess.run(res2))
# print(res2)
# print(sess.run(copy_res))
# print(copy_res)
# print(sess.run(lstm_o))
# print(sess.run(lstm_outpus))
# print(sess.run(w))
print(lstm_outpus)
print(lstm_o)
print(alpha)
# print(sess.run(lstm_outpus))
print(sess.run([a, alpha]))
# print(sess.run(alpha))
# print(sess.run(alpha))
# print(sess.run(attention_res))
tensorflow的tile使用的更多相关文章
- TensorFlow学习笔记(一):数据操作指南
扩充 TensorFlow tf.tile 对数据进行扩充操作 import tensorflow as tf temp = tf.tile([1,2,3],[2]) temp2 = tf.tile( ...
- [阿里DIN] 从模型源码梳理TensorFlow的乘法相关概念
[阿里DIN] 从模型源码梳理TensorFlow的乘法相关概念 目录 [阿里DIN] 从模型源码梳理TensorFlow的乘法相关概念 0x00 摘要 0x01 矩阵乘积 1.1 matmul pr ...
- 【学习笔记】tensorflow基础
目录 认识Tensorflow Tensorflow特点 下载以及安装 Tensorflow初体验 Tensorflow进阶 图 op 会话 Feed操作 张量 变量 可视化学习Tensorboard ...
- tensorflow函数/重要功能实现
一.基础函数 1.1 .tf.reduce_sum(input_tensor, axis) Computes the sum of elements across dimensions of a ...
- Tensorflow --BeamSearch
github:https://github.com/zle1992/Seq2Seq-Chatbot 1. 注意在infer阶段,需要需要reuse, 2.If you are using the Be ...
- 第七节,TensorFlow编程基础案例-TensorBoard以及常用函数、共享变量、图操作(下)
这一节主要来介绍TesorFlow的可视化工具TensorBoard,以及TensorFlow基础类型定义.函数操作,后面又介绍到了共享变量和图操作. 一 TesnorBoard可视化操作 Tenso ...
- tensorflow faster rcnn 代码分析一 demo.py
os.environ["CUDA_VISIBLE_DEVICES"]=2 # 设置使用的GPU tfconfig=tf.ConfigProto(allow_soft_placeme ...
- 深度学习原理与框架-递归神经网络-RNN_exmaple(代码) 1.rnn.BasicLSTMCell(构造基本网络) 2.tf.nn.dynamic_rnn(执行rnn网络) 3.tf.expand_dim(增加输入数据的维度) 4.tf.tile(在某个维度上按照倍数进行平铺迭代) 5.tf.squeeze(去除维度上为1的维度)
1. rnn.BasicLSTMCell(num_hidden) # 构造单层的lstm网络结构 参数说明:num_hidden表示隐藏层的个数 2.tf.nn.dynamic_rnn(cell, ...
- Tensorflow基本概念
[本文摘自网络,仅供学习使用] 官网上对TensorFlow的介绍是,一个使用数据流图(data flow graphs)技术来进行数值计算的开源软件库.数据流图中的节点,代表数值运算:节点节点之间的 ...
随机推荐
- 永久关闭selinux
selinux这东西,有时候真让人搞不懂. 临时关闭: setenforce 0 getenforce #查看状态是否是disabled 永久关闭: vim /etc/sysconfig/selinu ...
- 为何float有效位数为7位?
为何float有效位数为7位? 首先我们应该明确一点:C语言中,%f表示保留7位有效数字7位有效数字: 是指 整数部分 和小数部分一共7位 单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^ ...
- A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets(中英双语)
文章标题 A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets 且谈Apache Spark的API三剑客:RDD.Dat ...
- Java线上问题排查思路及Linux常用问题分析命令学习
前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令. 也可以帮助自己在以后的工作中快速的排查线上问 ...
- Features Download Pricing Mind Maps Blog XMind的快捷键
XMind提供很多快捷键.使用XMind时,在操作的过程中结合快捷键,双手同时操作,将给你带来很大的便利.例如下面一些常用的快捷键: 编辑主题:F2 添加标签:F3 创建一个新的空白工作簿:Ctrl+ ...
- SDL获得屏幕属性及实现分析
[时间:2017-05] [状态:Open] [关键词:sdl2,屏幕分辨率,显示区域,多媒体渲染,窗口,sdl2源码分析] 0 引言 本文的主要目标在于使用SDL2获得屏幕相关的属性,比如分辨率.屏 ...
- Java和Scala语法比较
类型推断 挑逗指数: 四星 我们知道,Scala一向以强大的类型推断闻名于世.很多时候,我们无须关心Scala类型推断系统的存在,因为很多时候它推断的结果跟直觉是一致的. Java在2016 年也新增 ...
- cp显示进度条
cp显示进度条 alias cp='rsync -av --progress'
- Java知多少(36)内部类及其实例化
在 Java 中,允许在一个类(或方法.语句块)的内部定义另一个类,称为内部类(Inner Class),有时也称为嵌套类(Nested Class). 内部类和外层封装它的类之间存在逻辑上的所属关系 ...
- Java知多少(79)哈希表及其应用
哈希表也称为散列表,是用来存储群体对象的集合类结构. 什么是哈希表 数组和向量都可以存储对象,但对象的存储位置是随机的,也就是说对象本身与其存储位置之间没有必然的联系.当要查找一个对象时,只能以某种顺 ...