tensorflow中的shape维度理解和reshape取-1的含义
tensorflow
一个面向所有人的开源机器学习框架
项目地址:https://gitcode.com/gh_mirrors/te/tensorflow

·
最近在做练习题的时候看到一个代码:
W_conv1 = weight_variable([5, 5, 1, 32])
这个是CNN中某一层的权重定义,然后就有点懵,所以在网上看了一下相关的帖子
对于shape来说可以定义多维度(二维以上)的张量,所以经常会出现这样的表述
那么这个[5, 5, 1, 32]应该怎么理解呢?
还是从一个简单的例子说起,
import tensorflow as tf
a = tf.constant([[1.,2.,3.],[4.,5.,6.],[7.,8.,9.]],shape = [3,3])
b = tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(b)
print(sess.run(a))
运行结果是
[[ 1. 2. 3.]
[ 4. 5. 6.]
[ 7. 8. 9.]]
我们可以理解为:
shape[3, 3]的第一个“3”表示:“在第一个中括号以内存在3组元素”,
同理,则shape[3, 3]的第二个“3”表示:“在第二个中括号以内存在3组元素”。
由此我们可以知道[5, 5, 1, 32]这个结构首先是一个四维张量
其次在第一个维度中由五个元素组成
tensorflow
一个面向所有人的开源机器学习框架
项目地址:https://gitcode.com/gh_mirrors/te/tensorflow
第三,这五个元素均是由五个子级元素组成
第四,五个子级元素中只有一个次级元素
最后,一个次级元素中包含了32个子元素
但从字面上理解比较抽象,这需要和神经网络的输入层元素个数进行联想,这里的数字都是每一层都是有特定具体含义的
然后说一下reshape中的-1参数
看到的代码如下
x_image = tf.reshape(x, [-1, 28, 28, 1])
其中的-1表示“目前我不确定”,所以在运行的时候程序先考虑后面的28,28和1
最后再看能组成什么样子
Emmmm,就这样!
参考:
https://blog.csdn.net/tkzc_csk/article/details/79332811
https://www.cnblogs.com/wasss/p/5439363.html
推荐内容
阅读全文
AI总结




一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
4f64a3d5
Instead, check for this case in `ResolveUsers` and `ResolveOperand`, by querying whether the `fused_expression_root` is part of the `HloFusionAdaptor`.
This prevents us from stepping into nested fusions.
PiperOrigin-RevId: 724311958
2 个月前
aa7e952e
Fix a bug in handling negative strides, and add a test case that exposes it.
We can have negative strides that are not just -1, e.g. with a combining
reshape.
PiperOrigin-RevId: 724293790
2 个月前
更多推荐
热门开源项目
活动日历
查看更多
直播时间 2025-04-09 14:34:18

樱花限定季|G-Star校园行&华中师范大学专场
直播时间 2025-04-07 14:51:20

樱花限定季|G-Star校园行&华中农业大学专场
直播时间 2025-03-26 14:30:09

开源工业物联实战!
直播时间 2025-03-25 14:30:17

Heygem.ai数字人超4000颗星火燎原!
直播时间 2025-03-13 18:32:35

全栈自研企业级AI平台:Java核心技术×私有化部署实战
所有评论(0)