系列文章目录
提示:记录pytorch学习过程中的困惑
第一章 Pytorch add 和 concat的区别
前言
此文章不是官方文档,主要记录学习过程中的困惑
提示:以下是本篇文章正文内容,下面案例可供参考
一、Pytorch的add 和 concat?
在resnet和ShuffleNet的shortcut,有的是用add,有的用concat! 在shuffleNet中stride = 1的用add,stride=2的用concat!
1、Concat:张量拼接,会扩充两个张量的维度,
例如2626256和2626512两个张量拼接,结果是2626768。
2、add:张量相加,张量直接相加,不会扩充维度。
例如104104128和104104128相加,结果还是104104128。add和cfg文件中的shortcut功能一样。
二、很多图片识别为什么将彩色图像灰度化?
可能的答案1:
我们识别物体,最关键的因素是梯度(现在很多的特征提取,SIFT,HOG等等本质都是梯度的统计信息),梯度意味着边缘,这是最本质的部分,而计算梯度,自然就用到灰度图像了。颜色本身,非常容易受到光照等因素的影响,同类的物体颜色有很多变化。所以颜色本身难以提供关键信息。2010PAMI有colorSIFT的一些工作,本质也是不同通道的梯度。
可能的答案2:
彩色图片信息量大,有的时候我们仅仅用灰度图像里的信息就已经够了,为了提高运算速度自然就会采用灰度图,甚至有时灰度图还是过大,采用二值化图像也是有可能的.
包含色彩的话,特征量,计算量成指数倍数增加。比如一个点,灰度的话,就256个维度而已,但是如果算上RGB色彩的话,那就是1600万以上维度。然后再相互组合,或者说找梯度,可以想象看看~~计算量太大,但是好在就算是全色盲也可以分辨物体,于是就x先降维(灰度)来计算。如果是分辨红绿灯的话,你看看有哪个敢直接只用灰度的。