Tensorflow- tensor的列操作
几个point
- [:,i]类似python直接的index 列操作是可行的,
- 注意i不能是variable,如果是使用slice
- slice操作会保持和输入tensor一样的shape 返回 而1对应的列操作会降维
- Slice 使用-1 表示该维度元素全选类似:
import tensorflow as tf
sess = tf.InteractiveSession()
In [12]:
t = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.float32)
In [19]:
tf.expand_dims(t, 1).eval()
Out[19]:
array([[[ 1., 2., 3.]],
[[ 4., 5., 6.]]], dtype=float32)
In [14]:
t.eval().shape
Out[14]:
(2, 3)
In [18]:
tf.expand_dims(t, 1).eval().shape
Out[18]:
(2, 1, 3)
In [17]:
tf.concat(1, [tf.zeros([2,1]), t]).eval()
Out[17]:
array([[ 0., 1., 2., 3.],
[ 0., 4., 5., 6.]], dtype=float32)
In [20]:
t[:,1].eval()
Out[20]:
array([ 2., 5.], dtype=float32)
In [26]:
tf.reshape(t[:,1],[-1, 1]).eval()
Out[26]:
array([[ 2.],
[ 5.]], dtype=float32)
In [25]:
tf.reshape(t[:,1],[-1, 1]).eval().shape
Out[25]:
(2, 1)
In [34]:
tf.expand_dims(t[:,1],1).eval()
Out[34]:
array([[ 2.],
[ 5.]], dtype=float32)
In [28]:
tf.expand_dims(t[:,1],1).eval().shape
Out[28]:
(2, 1)
In [29]:
tf.gather(t, 1).eval()
Out[29]:
array([ 4., 5., 6.], dtype=float32)
In [35]:
tf.slice(t, [0, 1], [-1, 1]).eval()
Out[35]:
array([[ 2., 3.],
[ 5., 6.]], dtype=float32)
建议使用slice,不过有的时候希望自动降维的时候
直接用[:,]操作更方便比如
输入tensor
#[batch_size, num_negs, emb_dim]
neg_comment_feature = tf.reduce_mean(neg_comment_feature,2)
下面希望
#[batch_size, emb_dim] <= [batch_size, num_negs, emb_dim]
可能的几种方式
for i in xrange(num_negs):
neg_comment_feature_i = tf.reshape(tf.slice(neg_comment_feature, [0, i, 0], [-1, 1, emb_dim]), [-1, emb_dim])
neg_comment_feature_i = tf.reshape(tf.slice(neg_comment_feature, [0, i, 0], [-1, 1, -1]), [-1, emb_dim])
neg_comment_feature_i = neg_comment_feature[:,i,:] #直接降维
Tensorflow- tensor的列操作的更多相关文章
- [阿里DIN]从模型源码梳理TensorFlow的形状相关操作
[阿里DIN]从模型源码梳理TensorFlow的形状相关操作 目录 [阿里DIN]从模型源码梳理TensorFlow的形状相关操作 0x00 摘要 0x01 reduce_sum 1.1 reduc ...
- Oracle列操作(增加列,修改列,删除列)
Oracle列操作 增加一列: alter table emp4 add test varchar2(10); 修改一列: alter table emp4 modify test varchar2( ...
- Oracle列操作引起的全表扫描
首先是一种比较明显的情况: select * from table where column + 1 = 2 这里对column进行了列操作,加1以后,与column索引里的内容对不上,导致colum ...
- pandas列操作集锦
列操作 pandas的列操作 数据准备: 增 将两张表合并到一起 pd.concat([page_001,page_002]).reset_index(drop=True) 默认从上到下合,如果想从左 ...
- Notepad++ 列操作
在网上找到一篇关于socket编程的文章,想把其中的代码直接拷贝下来运行测试,但是人家网站做的不够人性化,每行的开头都有行号,直接拷贝就要一行行的删除,甚是麻烦,想到linux下的vi编辑器可以完成列 ...
- python excel操作 练习-#操作单列 #操作A到C列 #操作1到3行 #指定一个范围遍历所有行和列 #获取所有行 #获取所有列
##操作单列#操作A到C列#操作1到3行#指定一个范围遍历所有行和列#获取所有行#获取所有列 #coding=utf-8 from openpyxl import Workbook wb=Workbo ...
- IDEA04 工具窗口管理、各种跳转、高效定位、行操作、列操作、live template、postfix、alt enter、重构、git使用
1 工具窗口管理 所有的窗口都是在view -> tools windows 下面的,这些窗口可以放在IDEA的上下左右各个位置:右键某个窗口后选择move to 即可进行位置调整 2 跳转 2 ...
- iView学习笔记(三):表格搜索,过滤及隐藏列操作
iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...
- HTML表格跨行、跨列操作(rowspan、colspan)
转自:https://blog.csdn.net/u012724595/article/details/79401401 一般使用<td>元素的colspan属性来实现单元格跨列操作,使用 ...
随机推荐
- Casual Note
20170104 冯诺依曼计算机(遵循冯诺依曼结构设计的计算机:存储器.运算器.控制器.输入设备.输出设备)之前也有计算机,不过在那之前的计算机是专用的,不可编程,只能干特定的事情没法干其他事.与之前 ...
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 820-823: ordinal not in range(128)
真是奇怪了,在itermi里 print(data) 就能直接运行,而在sublime里,就非得写成这样 print(data.encode('utf-8'))
- Java并发之CountDownLatch
CountDownLatch是Java concurrent包下的一个同步工具.它可以让一个(或多个)线程等待,直到其他线程中的某些操作完成. 本质上是一个信号量,我们把它比作一个有N个插销的大门,它 ...
- mysql数据库存储路径更改 数据文件位置
使用了VPS一段时间之后发现磁盘空间快满了.本人的VPS在购买的时候买了500gb的磁盘,提供商赠送了20GB的高性能系统磁盘.这样系统就有两个磁盘空间了.在初次安装mysql 的时候将数据库目录安装 ...
- R自动数据收集第一章概述——《List of World Heritage in Danger》
导包 library(stringr) library(XML) library(maps) heritage_parsed <- htmlParse("http://en ...
- AngularJS2.0 教程系列(一)
http://my.oschina.net/u/2275217/blog/482178
- HTML+CSS布局技巧及兼容问题【阅读季】
在IE6和IE7中,行高值必须大于字体的2px以上才能保证字体的完整显示或当作为链接时能显示下划线. IE6 下去掉 input等元素 的边框 border: 0 none; 所有浏览器都可以了 边框 ...
- ios显示一个下载banner
<meta name="apple-itunes-app" content="app-id=432274380" /> 这个标签是告诉iphone的 ...
- UOJ#213——【UNR #1】争夺圣杯
1.题意:给一个序列,枚举长度x,然后在这个序列中所有长度为x的区间,我们求出这些区间的最大值之和并取模,最后将所有的异或起来就好啦 2.分析:听说好多人写的 ,特来写一发 的算法骗访问量 话说这个东 ...
- Java实现比较版本号
涉及到客户端的系统中经常需要用到比较版本号的功能,但是比较版本号又不能完全按照字符串比较的方式去用compareTo之类的方法: 这就需要我们总结版本号的通用规则,设计一个比较算法并封装成通用方法来使 ...