tf 矩阵行和列交换_TF-搞不懂的TF矩阵加法

看谷歌的demo mnist,卷积后加偏执量的代码

h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)

h_pool1 = max_pool_2x2(h_conv1)

其中的x_image的维数是[-1, 28, 28, 1],W_conv1的维数是[5, 5, 1, 32], b的维数是[32]

conv2d对x_image和W_conv1进行卷积,结果为[-1, 28, 28, 32],结果就是:

[-1, 28, 28, 32]和[32]的加法。

完全搞不清为什么[-1, 28, 28, 32]和[32]两个完全不同维数可以做加法?而且加出的结果还是[-1, 28, 28, 32]?

于是做了下面的测试:

sess =tf.InteractiveSession()

test1= tf.ones([1,2,2,3],tf.float32)

b1= tf.ones([3])

re1= test1 +b1

print("shap3={},eval=\n{}".format(b1.shape, b1.eval()))

print("shap4={},eval=\n{}".format(test1.shape, test1.eval()))

print("shap5={},eval=\n{}".format(re1.shape, re1.eval()))

test1= tf.ones([1,2,2,3],tf.float32)

b1= tf.ones([1,1,1,1])

re1= test1 +b1

print("shap6={},eval=\n{}".format(b1.shape, b1.eval()))

print("shap7={},eval=\n{}".format(test1.shape, test1.eval()))

print("shap8={},eval=\n{}".format(re1.shape, re1.eval()))

test1= tf.ones([1,2,2,3],tf.float32)

b1= tf.ones([1,1,1,3])

re1= test1 +b1

print("shap9 ={},eval=\n{}".format(b1.shape, b1.eval()))

print("shap10={},eval=\n{}".format(test1.shape, test1.eval()))

print("shap11={},eval=\n{}".format(re1.shape, re1.eval()))

test1= tf.ones([1,2,2,3],tf.float32)

b1= tf.ones([1])

re1= test1 +b1

print("shap12={},eval=\n{}".format(b1.shape, b1.eval()))

print("shap13={},eval=\n{}".format(test1.shape, test1.eval()))

print("shap14={},eval=\n{}".format(re1.shape, re1.eval()))

test1 = tf.ones([1,2,2,3],tf.float32)

alist = [[[[ 1, 1, 1.],

[ 0, 0, 0.]],

[[ 1, 1, 1.],

[ 0, 0, 0.]]]]

b1 = tf.constant(alist)

re1 = test1 + b1

print("shap15={},eval=\n{}".format(b1.shape, b1.eval()))

print("shap16={},eval=\n{}".format(test1.shape, test1.eval()))

print("shap17={},eval=\n{}".format(re1.shape, re1.eval()))

结果为

shap3=(3,),eval=[1. 1. 1.]

shap4=(1, 2, 2, 3),eval=[[[[1. 1. 1.]

[1. 1. 1.]]

[[1. 1. 1.]

[1. 1. 1.]]]]

shap5=(1, 2, 2, 3),eval=[[[[2. 2. 2.]

[2. 2. 2.]]

[[2. 2. 2.]

[2. 2. 2.]]]]

shap6=(1, 1, 1, 1),eval=[[[[1.]]]]

shap7=(1, 2, 2, 3),eval=[[[[1. 1. 1.]

[1. 1. 1.]]

[[1. 1. 1.]

[1. 1. 1.]]]]

shap8=(1, 2, 2, 3),eval=[[[[2. 2. 2.]

[2. 2. 2.]]

[[2. 2. 2.]

[2. 2. 2.]]]]

shap9=(1, 1, 1, 3),eval=[[[[1. 1. 1.]]]]

shap10=(1, 2, 2, 3),eval=[[[[1. 1. 1.]

[1. 1. 1.]]

[[1. 1. 1.]

[1. 1. 1.]]]]

shap11=(1, 2, 2, 3),eval=[[[[2. 2. 2.]

[2. 2. 2.]]

[[2. 2. 2.]

[2. 2. 2.]]]]

shap12=(1,),eval=[1.]

shap13=(1, 2, 2, 3),eval=[[[[1. 1. 1.]

[1. 1. 1.]]

[[1. 1. 1.]

[1. 1. 1.]]]]

shap14=(1, 2, 2, 3),eval=[[[[2. 2. 2.]

[2. 2. 2.]]

[[2. 2. 2.]

[2. 2. 2.]]]]

shap15=(1, 2, 2, 3),eval=

[[[[ 1. 1. 1.]

[ 0. 0. 0.]]

[[ 1. 1. 1.]

[ 0. 0. 0.]]]]

shap16=(1, 2, 2, 3),eval=

[[[[ 1. 1. 1.]

[ 1. 1. 1.]]

[[ 1. 1. 1.]

[ 1. 1. 1.]]]]

shap17=(1, 2, 2, 3),eval=

[[[[ 2. 2. 2.]

[ 1. 1. 1.]]

[[ 2. 2. 2.]

[ 1. 1. 1.]]]]

这个结果说明了什么呢?说明张量加法时,维数不等时会自动扩充,用存在的数字填充。

比如下面这个[4, 3, 2, 3]的矩阵A,

我们把A加上[1, 2, 3]结果为

[[[[1 2 3]

[2 3 4]]

[[3 4 5]

[4 5 6]]

[[5 6 7]

[6 7 8]]]

[[[1 2 3]

[2 3 4]]

[[3 4 5]

[4 5 6]]

[[5 6 7]

[6 7 8]]]

[[[1 2 3]

[2 3 4]]

[[3 4 5]

[4 5 6]]

[[5 6 7]

[6 7 8]]]

[[[1 2 3]

[2 3 4]]

[[3 4 5]

[4 5 6]]

[[5 6 7]

[6 7 8]]]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafka数据到flume_大数据摄取:Flume,Kafka和NiFi

kafka数据到flume初赛 在构建大数据管道时,我们需要考虑如何吸收出现在通常是Hadoop生态系统大门口的数据量,多样性和速度。 在决定采用哪种工具来满足我们的要求时,诸如可伸缩性,可靠性,适应性,开发时间成…

python如何打开json文件_如何使用python打开json文件?

工程_请求数据.json公司名称:{ "appKey": "9c9fa7201e90d3d96718bc3f36ce4cfe1781f2e82f4e5792996623b3b474fee2c77699eb5354f2136063e1ff19c378f0f6dd984471a38ca5c393801bffb062d6", "appId": "NMDPTRIAL_AutomotiveTesting_N…

手机热点总是正在连接服务器,手机热点用不了?可以尝试这个方法。

原标题:手机热点用不了?可以尝试这个方法。下班路上,上司突然打来“夺命连环call”,早上的方案需要赶紧改一下。无奈,只能拿出笔记本在地铁上临时办公,关键时候连接手机热点,却发现还是没网络。…

一年月份大小月口诀_大月小月口诀 什么意思 有多少天

大家都知道每年都有分为12个月,月份又被分为大月小月和平月,每种月份的天数都不一样,有许多人记不住哪些是大月,哪些是小月。其实大月小月是有口诀的,接下去就让老黄历带大家详细了解一下大小月的口诀以及天数吧。问&a…

Sublime Text for Mac 最新版安装后,无法搜索到Install Package的解决办法

打开命令面板搜索不到Install Package,说明没有安装Package Control。 如何安装Package Control? 首先打开Package Control中文镜像,打开后如下图所示: 点击「Install Now」后,如下图所示: 我们看到有两…

参数化测试 junit_使用JUnit 5进行更清洁的参数化测试

参数化测试 junit参数化单元测试的总体思路是对不同的数据运行相同的测试方法。 在JUnit 4中创建参数化测试远非完美。 现有体系结构存在许多问题:将参数定义为类字段,并需要使用构造函数来创建它们,参数化和非参数化测试不能混合在一个测试类…

python人工智能方向第三方库_Python进阶-第三方库管理和虚拟环境

本文为《爬着学Python》系列第十三篇文章。Python能在这几年火起来,靠的不是网上一大片的爬虫和服务器后端知识的应用(本专题就是这样的,这么说真的好吗?不过我们总得认清事实是吧。),靠的是Python搭上了大数据和人工智能的风。而…

tomcat应用服务器有哪些,手写一个Tomcat应用服务器

mytomcat项目简介自己实现的简易的TomcatTomca实现说明Tomcat,这只3脚猫,大学的时候就认识了,直到现在工作中,也常会和它打交道。这是一只神奇的猫,我们可以通过实现它来深刻了;了解它的实现原理。考虑自己…

不需要软著的安卓应用市场_哪些安卓应用市场上架应用比较简单啊,不需要软著啊?公司开发的 APP 着急上架...

ENNRIaaa:我看华为、360 、应用宝都需要软著kerb15:酷安?yuluo01:推广到位,网站下载都可以一个很冷门的领域,佛教 Appavalon8:我姐夫,佛教文化爱好者,研究佛教相关资料几…

SublimeText如何让代码的关键字高亮显示

如何设置不同语法的关键字高亮显示 假设你编写java代码,希望代码关键字高亮显示,你可以在菜单栏中选择「查看」-「语法」-「java」,勾选java即可,如下图: 当然,你也可以在页面右下角点击打开语法类型列表…

stringbuffer_StringBuffer的存在的含义

stringbuffer当我处理旧代码并在StringBuffer实例上运行时,通常将它们替换为StringBuilder实例。 尽管可以从此更改中获得性能优势,但我经常在我所知不会对性能产生明显影响的地方进行更改。 我认为,除了可能带来性能收益外,还应出…

python find函数实现原理_非常干货:Python 探针实现原理

△点击上方“Python猫”关注 ,回复“1”领取电子书剧照 | 《棋魂》原文:https://segmentfault.com/a/1190000004889212大家好,我是猫哥。关于 Python 中探针的运用,我之前写过一篇《由浅入深:Python 中如何实现自动导入…

服务器系统js文件报错,js服务器文件

js服务器文件 内容精选换一换登录Windows操作系统的弹性云服务器时,需使用密码方式登录。因此,用户需先根据创建弹性云服务器时使用的密钥文件,获取该弹性云服务器初始安装时系统生成的管理员密码(Administrator帐户或Cloudbase-init设置的帐…

云盘存储 教学反思_wps轻松办公优秀教学设计范文

wps轻松办公优秀教学设计范文[教学目的与要求]1.学会登录“WPS轻办公”2.学会保存、打开“云文档”3.学会把文档以图片的方式分享到“微博”4.通过观察“WPS轻办公”,了解“WPS轻办公”,初步会用“我的圈子”功能。[教…

Adobe PhotoShop(PS) for Mac 快捷键/PS快捷键

文章目录综合类图层视图工具箱综合类 功能说明快捷键打开文件Command O创建文档Command N存储为Web格式Command Option Shift S自由变换Command T切换到最初状态Option Command Z重做Shift Command Z自定义快捷键Option Command Shift K首选项Command K色阶Comman…

spring启动执行_执行器的Spring启动和安全性事件

spring启动执行Spring Boot Actuator提供了审核功能,用于在启用了Spring Security的Spring Boot应用程序中发布和侦听与安全相关的事件。 默认事件是身份验证成功,身份验证失败和访问被拒绝,但是可以使用自定义事件进行扩展。 确保在项目中启…

系统运维包括哪些内容_智能养老系统包括哪些?养老管理系统内容详解

智慧养老成为养老产业新的发展热点,受到了社会各界的关注。智能养老系统利用先进的IT技术手段,开发面向居家养老、社区养老、机构养老的养老系统平台,提供实时、快捷、高效、物联化、智能化的养老服务,并将医疗服务、运营商、服务…

买了服务器之后如何操作系统,买了服务器之后如何操作系统

买了服务器之后如何操作系统 内容精选换一换如果您需要使用毕昇编译器,则需要先在服务端安装毕昇编译器。毕昇编译器基于开源LLVM开发,并进行了优化和改进,同时将flang作为默认的Fortran语言前端编译器,是针对鲲鹏平台的高性能编译…

敏捷中gwt含义_在GWT中序列化/反序列化Json

敏捷中gwt含义JSON和GWT 最近, GWT用户小组中进行了有趣的讨论 ,涉及在客户端对JSON进行序列化/反序列化的最佳实践。 这篇文章旨在突出其重点。 到目前为止,在GWT中有三种将对象转换为JSON并从客户端转换回JSON的方法: gwt-jack…

图片高亮处理编程_GMT语法高亮-智能提示-代码补全插件

GMT(Generic Mappint Tools)是地学界应用非常广泛的一款绘图兼数据处理的开源软件。其开发团队也是非常活跃,此软件还在不断的发展和更新中,变得越来越强大。目前已经有164个模块,而每一个模块又有很多命令参数。因为gmt是命令行软件&#xf…