Tensorflow张量的形状表示方法
对输入或输出而言:
一个张量的形状为a x b x c x d,实际写出这个张量时:
最外层括号[…]表示这个是一个张量,无别的意义!
次外层括号有a个,表示这个张量里有a个样本
再往内的括号有b个,表示每个样本的长
再往内的括号有c个,表示每个样本的宽
再往内没有括号,也就是最内层的括号里的数有d个,表示每个样本的深度为d
tf.nn.conv2d(), tf.reshape()等都是这样表示
给一个具体的张量,求这个张量的a,b,c,d值时,首先忽略最外层的括号,再数次外层括号个数(a),再往内(b),再往内(c),最后看最里层的括号内有几个数(d)(各数代表各深度层的值)。
如:
Tensor = tf.constant([[[[1],[2],[ 3]],[[4],[5],[6 ]],[[ 7],[8],[9]]]]) # 也可以不写逗号
# Tensor.shape = (1, 3, 3, 1)
形状为(1, 3, 3, 1)
(看着容易眼花,所以一般竖着写)
Tensor2 = tf.constant([[[[1],[2],[ 3]],[[4],[5],[6 ]],[[ 7],[8],[9]]], [[[1],[2],[ 3]],[[4],[5],[6 ]],[[ 7],[8],[9]]]])
# Tensor2.shape = (2, 3, 3, 1)
形状为(2, 3, 3, 1)
类似的还有tf.ones(), tf.zeros()
注意!!!
对卷积核来说,a,b,c,d对应的括号形式虽然相同,但a,b,c,d代表的含义和输入不一样!!分别代表长,宽,深,个数!!所以书写时要注意括号的形式!!比如我要写一个长宽分别为2,2,深度为1,个数为1的kernel张量,则它的形状应为(2,2,1,1),而不是(1,2,2,1),用类似tf.random.normal的方法来初始化kernel或weights时也是(长,宽,深,个数)
比如:
filter = tf.constant([[[[1]],
[[2]]],
[[[ 3]],
[[4]]]])
我想可能是和矩阵的乘法(左矩阵和右矩阵的位置)有关
池化层的池化窗口大小ksize形状为[1, height, width, 1]
使用tensor.reshape(-1, a, b, c)时,-1代表不指定这一维的大小,因为张量里的元素个数是一定的,其他维的大小确定后,这一维的大小也随之确定,但不能在2各维度上使用-1(可以想象为解一元方程组,有一个未知数时方程有特解,有两个未知数时方程的解不定)
Tensorflow张量的形状表示方法的更多相关文章
- AI - TensorFlow - 张量(Tensor)
张量(Tensor) 在Tensorflow中,变量统一称作张量(Tensor). 张量(Tensor)是任意维度的数组. 0阶张量:纯量或标量 (scalar), 也就是一个数值,例如,\'Howd ...
- TensorFlow模型保存和加载方法
TensorFlow模型保存和加载方法 模型保存 import tensorflow as tf w1 = tf.Variable(tf.constant(2.0, shape=[1]), name= ...
- 连续张量理解和contiguous()方法使用,view和reshape的区别
连续张量理解和contiguous()方法使用,view和reshape的区别 待办 内存共享: 下边的x内存布局是从0开始的,y内存布局,不是从0开始的张量 For example: when yo ...
- TensorFlow指定CPU和GPU方法
TensorFlow指定CPU和GPU方法 TensorFlow 支持 CPU 和 GPU.它也支持分布式计算.可以在一个或多个计算机系统的多个设备上使用 TensorFlow. TensorFlow ...
- tensorflow 张量的阶、形状、数据类型及None在tensor中表示的意思。
x = tf.placeholder(tf.float32, [None, 784]) x isn't a specific value. It's a placeholder, a value th ...
- tensorflow中的参数初始化方法
1. 初始化为常量 tf中使用tf.constant_initializer(value)类生成一个初始值为常量value的tensor对象. constant_initializer类的构造函数定义 ...
- Tensorflow高效读取数据的方法
最新上传的mcnn中有完整的数据读写示例,可以参考. 关于Tensorflow读取数据,官网给出了三种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码 ...
- TensorFlow高效读取数据的方法——TFRecord的学习
关于TensorFlow读取数据,官网给出了三种方法: 供给数据(Feeding):在TensorFlow程序运行的每一步,让python代码来供给数据. 从文件读取数据:在TensorFlow图的起 ...
- tensorflow张量排序
本篇记录一下TensorFlow中张量的排序方法 tf.sort和tf.argsort # 声明tensor a是由1到5打乱顺序组成的 a = tf.random.shuffle(tf.range( ...
随机推荐
- 基于easyui开发Web版Activiti流程定制器详解(三)——页面结构(上)
上一篇介绍了定制器相关的文件,这篇我们来看看整个定制器的界面部分,了解了页面结构有助于更好的理解定制器的实现,那么现在开始吧! 首先,我们来看看整体的结构: 整体结构比较简单,主要包括三个部分: 1. ...
- hihocoder Round #c1(hihoCoder太阁最新面经算法竞赛1 )
Test链接:https://cn.vjudge.net/contest/231849 选自hihoCoder太阁最新面经算法竞赛1 更多Test:传送门 A:区间求差 给一组区间集合A和区间集合B, ...
- 微软YY公开课[《微软中国云计算Azure平台体验与新企业架构设计》 周六晚9点
YY频道是 52545291//@_勤_: YY账号真的是一次一账号啊! 全然记不得之前注冊的//@老徐FrankXuLei: 最火爆的微软免费公开课.第一次顶峰126人.第二次96人.第三次我们又来 ...
- P2278 [HNOI2003]操作系统
题目描述 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自然数表示,数字越大,则优先级越高. 如果一个进程到达的时 ...
- [原创]关于在VS解决方案下使用文件夹管理多个项目层次关系的说明
由于所创建的应用项目或类库项目较多,于是将这些类库放到一个文件夹下.在VS解决方案下确实能看到一个文件夹下多个类库项目这种层次关系.如下图所示: 但打开“我的电脑”,看到的只有类库,并未看到维护层次关 ...
- webStorm常用设置之过滤文件夹
webStorm是一款很好用的前端IDE,但是不能否认的是webStorm很重,没有sublime轻便 尤其是项目cnpm后,加载node_modules时的状态,简直想那块豆腐自杀有莫有,就算你耐心 ...
- TCP建立连接与释放连接
1.建立连接:(三次握手) (1)客户端发送一个SYN包给服务器,然后等待应答. (2)服务器端回应给客户端一个ACK=1.SYN=1的TCP数据段. (3)客户必须再次回应服务器端一个ACK确认数据 ...
- 原型和原型对象(__proto__和prototype)转
看了之后我总算对原型继承有了更深刻的理解,做爱分享的姑娘,原文链接:理解Javascript 原型 我(个人)不喜欢的,就是讲原型时上来就拿类做比较的,所以我不会这样讲.不过我的确讲过构造器函数,在这 ...
- IOS马甲包(诚招大量开发)
马甲包的字面意思给产品穿马甲,但是我认为马甲包更像是产品的一种分身,一种和产品一样拥有灵魂,拥有肉身的一种分身.它能为产品带来同样的功能效果. 一.什么是马甲包通过技术手段,多次上架同一款产品的方法. ...
- mysql/mariadb将选择查询的结果重新生成一张新表格
比如想要生成类似如下的表格 mysql> select student.*,sc.cno,course.cname,sc.grade,course.cpno,course.ccredit fro ...