Tensorflow--矩阵切片与连接
博客转载自:https://blog.csdn.net/davincil/article/details/77893185
函数原型:slice(input_, begin, size, name=None)
参数:
input:待切片的矩阵tensor。
begin:起始位置,表示从哪一个数据开始进行切片。这个起始位置从0开始。若input是一个n维的矩阵,则begin是一个长度为n的tensor。
size:切片的大小(尺寸),表示则起始位置开始获取每一维上的若干数据。是一个长度与begin相同的tensor。若size中第n个的数据为-1,则表示在该维度上,从起始位置开始的所有数据均被返回。
name:该操作的名称,是一个可选参数,默认为None。
对于一个n维的矩阵,需满足如下关系:
0 <= begin[i] <= begin[i] + size[i] <= Di for i in [0, n]
import tensorflow as tf # Tensorflow交互式会话
tf.InteractiveSession() # 定义5x5大小的一个矩阵变量
a = tf.Variable(tf.truncated_normal(shape=[5, 5], dtype=tf.float32)) # 进行切片操作,起始位置为[1,1](从0开始),大小[2,2]
b = tf.slice(a, [1, 1], [2, 2]) # 同上
c = tf.Variable(tf.truncated_normal(shape=[2, 6, 5], dtype=tf.float32)) d = tf.slice(c, [0, 2, 3], [2, 3, 1]) # 全局变量初始化
tf.global_variables_initializer().run() # 输出
print("Example 01") print("the original matrix:\n", a.eval()) print("after being sliced:\n", b.eval()) print("Example 02") print("the original matrix:\n", c.eval()) print("after being sliced:\n", d.eval())
程序运行结果如下:(结果或有不同)
Example 01
the original matrix:
[[ 1.37798977 0.27846026 0.07193759 0.44368556 0.65868556]
[-0.57639289 -0.64335102 -0.62483543 0.38987917 0.29301718]
[ 0.18187736 0.11397317 1.85999572 -0.26037475 0.98114467]
[ 0.69557261 0.01183218 -0.27376401 -1.15162456 1.11336803]
[-0.66582751 -0.04991583 -1.58189285 0.98189503 -1.11317801]]
after being sliced:
[[-0.64335102 -0.62483543]
[ 0.11397317 1.85999572]]
Example 02
the original matrix:
[[[-0.44467756 -1.05340731 -0.32313645 -0.69316941 0.04659459]
[ 0.01275753 -0.11907347 1.70015264 0.60470396 -0.23756829]
[ 0.07424127 1.01376414 -1.15661514 -0.46597373 -1.82189155]
[-0.66635352 -0.34318891 0.49555108 0.13062055 -0.67137426]
[ 0.04240284 0.55397838 -0.09988129 -0.93551743 0.6810317 ]
[ 1.06745911 0.49900523 1.0482769 0.39871195 1.23199737]] [[ 1.22305858 -0.839634 0.63722724 -1.39846325 -0.04114933]
[-1.11448932 0.20783874 0.39737079 1.13769484 -0.09408376]
[-0.66636425 0.37878662 -0.32013494 -0.26526076 1.53422773]
[-0.55344075 0.23021726 0.10251451 0.08433547 1.19850338]
[ 1.73070538 -0.50309545 -0.52816319 -0.41802529 -1.52679396]
[-1.60076332 0.88759929 0.01327948 -0.7242741 -0.70737672]]]
after being sliced:
[[[-0.46597373]
[ 0.13062055]
[-0.93551743]] [[-0.26526076]
[ 0.08433547]
[-0.41802529]]]
2、TensorFlow矩阵链接操作:tf.concat函数
函数原型:concat(values, axis, name=”concat”)
参数:
values:需要链接的矩阵的集合,通常可以是一个list。
axis:需要进行链接的维度,若矩阵是n维的,则axis的取值为0~n-1。
name:名称,是一个可选参数。
import tensorflow as tf # Tensorflow交互式会话
tf.InteractiveSession() # 定义两个矩阵,大小为2x3x4
a = tf.Variable(tf.truncated_normal(shape=[2,3,4], dtype=tf.float32)) b = tf.Variable(tf.truncated_normal(shape=[2,3,4], dtype=tf.float32)) # 按照维度0链接
c1 = tf.concat([a, b], axis=0) # 按照维度1链接
c2 = tf.concat([a, b], axis=1) # 按照维度2链接
c3 = tf.concat([a, b], axis=2) # 初始化变量
tf.global_variables_initializer().run() # 输出
print("") print(c1) print(c1.eval()) print("") print(c2) print(c2.eval()) print("") print(c3) print(c3.eval())
程序运行结果如下:
Tensor("concat:0", shape=(4, 3, 4), dtype=float32)
[[[-0.08826777 1.92810595 -0.79408133 -0.34322619]
[-1.71443737 0.70375884 -0.78194672 -0.41254947]
[ 0.89348751 -0.08941202 0.70108914 0.64701825]]
[[ 1.50688016 0.45680258 -1.08100998 0.24127837]
[ 0.58221173 -1.41846514 -1.63450527 -0.41922286]
[ 0.48436531 -1.20013559 0.95647675 -0.03131635]]
[[-0.03254275 -1.8339541 -0.81978613 -1.25303519]
[-1.55067682 -0.37825376 -0.63578284 -0.83120823]
[ 0.09672505 -0.43550658 -0.31754431 -0.37109831]]
[[ 1.59722102 -0.32856748 -1.33017409 1.43195128]
[-0.58259052 -1.60538054 0.07504115 0.8916716 ]
[-1.23682356 -0.24931362 1.19812703 -0.81907171]]]
02
Tensor("concat_1:0", shape=(2, 6, 4), dtype=float32)
[[[-0.08826777 1.92810595 -0.79408133 -0.34322619]
[-1.71443737 0.70375884 -0.78194672 -0.41254947]
[ 0.89348751 -0.08941202 0.70108914 0.64701825]
[-0.03254275 -1.8339541 -0.81978613 -1.25303519]
[-1.55067682 -0.37825376 -0.63578284 -0.83120823]
[ 0.09672505 -0.43550658 -0.31754431 -0.37109831]]
[[ 1.50688016 0.45680258 -1.08100998 0.24127837]
[ 0.58221173 -1.41846514 -1.63450527 -0.41922286]
[ 0.48436531 -1.20013559 0.95647675 -0.03131635]
[ 1.59722102 -0.32856748 -1.33017409 1.43195128]
[-0.58259052 -1.60538054 0.07504115 0.8916716 ]
[-1.23682356 -0.24931362 1.19812703 -0.81907171]]]
03
Tensor("concat_2:0", shape=(2, 3, 8), dtype=float32)
[[[-0.08826777 1.92810595 -0.79408133 -0.34322619 -0.03254275 -1.8339541
-0.81978613 -1.25303519]
[-1.71443737 0.70375884 -0.78194672 -0.41254947 -1.55067682 -0.37825376
-0.63578284 -0.83120823]
[ 0.89348751 -0.08941202 0.70108914 0.64701825 0.09672505 -0.43550658
-0.31754431 -0.37109831]]
[[ 1.50688016 0.45680258 -1.08100998 0.24127837 1.59722102 -0.32856748
-1.33017409 1.43195128]
[ 0.58221173 -1.41846514 -1.63450527 -0.41922286 -0.58259052 -1.60538054
0.07504115 0.8916716 ]
[ 0.48436531 -1.20013559 0.95647675 -0.03131635 -1.23682356 -0.24931362
1.19812703 -0.81907171]]]
Tensorflow--矩阵切片与连接的更多相关文章
- tensorflow 添加一个全连接层
对于一个全连接层,tensorflow都为我们封装好了. 使用:tf.layers.dense() tf.layers.dense( inputs, units, activation=None, u ...
- Python 列表的切片和连接
一.定义一个list >>> a = [1, 3, 4, 5, 'a', 's'] >>> a [1, 3, 4, 5, 'a', 's'] 二.获取列表中前3个元 ...
- Anaconda下安装 TensorFlow 和 keras 以及连接pycharm
首先在官网下载Anaconda https://www.anaconda.com/download/ 安装时注意 勾选第一个,增加环境变量 安装好后再windows界面打开Anaconda Promp ...
- python 矩阵切片
假设n是一个numpy或者torch.tensor张量,那么 n[a:b,c:d]则代表从a到b行(不含b行),c到d列(不含d列)的切片 当然,ab.cd中的数是可以省略掉,只要abcd中有一个数即 ...
- 远程ubuntu虚拟机Tensorflow搭建 - 1 SSH连接
感谢英才计划,我们每个人收获了一台清华的虚拟机. 4 core CPU 16GB Memory 80GB Disk 配置不错了... 用ssh密钥登录.赠送hadoop-key.pem一把. 先用su ...
- NOI-1.8-17-最好的草-矩阵找最大连接井号-【递归】
17:最好的草 查看 提交 统计 提问 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 奶牛Bessie计划好好享受柔软的春季新草.新草分布在 ...
- TensorFlow实战——个性化推荐
原创文章,转载请注明出处: http://blog.csdn.net/chengcheng1394/article/details/78820529 请安装TensorFlow1.0,Python3. ...
- tensorflow入门 (一)
转载:作者:地球的外星人君链接:https://www.zhihu.com/question/49909565/answer/207609620来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...
- Tensorflow入门-上
前置准备 在阅读本文之前,请确定你已经了解神经网络的基本结构以及前向传播.后向传播的基本原理,如果尚未了解,可以查看下文. 深度学习之神经网络 什么是TensorFlow? TensorFlow是Go ...
随机推荐
- 原生js获取元素非行内样式属性的方法
获取当前对象的样式DOM标准中的全局方法 getComputedStyle(obj).width (获取元素的宽度),但在非标准IE浏览器(IE8)以下有兼容问题IE8以下要这样写 obj.curre ...
- 博弈论入门之nim游戏
更好的阅读体验点这里 nim游戏 nim游戏 有两个顶尖聪明的人在玩游戏,游戏规则是这样的: 有\(n\)堆石子,两个人可以从任意一堆石子中拿任意多个石子(不能不拿),没法拿的人失败.问谁会胜利 ni ...
- 解决No 'Access-Control-Allow-Origin' header is present on the requested resource.跨域问题(后台(java)解决方法)
附:前端常见跨域解决方案(全) 跨域错误 解决方法 在后台写一个过滤器来改写请求头 附上一个前端不知所以然的后台java代码: public class CorsFilter implements F ...
- Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取
区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...
- 解决 winform打开网页 和WebBrowser打开链接360误报拦截的问题
以下方法我已经在自己电脑上验证通过,其他电脑并未测试,请广大读者自行验证并反馈,如果有更好的方法请指教. 在winform中如果使用这种方法弹出网页,例如这样 Process.start(" ...
- C# 第十版
地址: https://files.cnblogs.com/files/blogs2014/%E9%AB%98%E7%BA%A7%E7%BC%96%E7%A8%8B%28%E7%AC%AC11%E7% ...
- c#二进制移位运算符 "<<"及">>","&","|","^"
移位运算符 & :按位与,其实与&&逻辑运算符有一致的地方: | :按位或,同样与||有类似的地方. ~:按位取反 ^:按位异或 <<:左移运算符 >> ...
- Linux电源管理(9)_wakelocks【转】
1. 前言 wakelocks是一个有故事的功能. wakelocks最初出现在Android为linux kernel打的一个补丁集上,该补丁集实现了一个名称为"wakelocks&quo ...
- python——python3.6环境搭建(Windows10,64位)
1.python软件资源下载 1.1 打开python官网地址:https://www.python.org 1.2 根据自己电脑的设置选择下载合适的python3.6.2 1.3 此处选择windo ...
- iOS Accessibility指南
开发者经常会为用户开发一些令人充满惊喜的App.但是,开发者真的为每一个潜在的用户都做适配了么?是否每个人都可以真正使用你的APP呢? 设计APP.产品或者任何类型的服务,都要考虑到所有用户,包括视力 ...