另外大神和他的七个伙伴我还想问一下 有没有那种无删减版本的啊~能也给我推荐一下吗?谢谢了!

首先先说明第一个答案也就是PyTorchΦ卷积层的计算方法,其实这点很多人可能在书上已经看过图了我只是用代码复现一遍

我们把所有变量都明确,首先是输入变量我们設为2 * 2的全1矩阵,如下:
然后初始化一个二维卷积层并输出其weight和bias,如下:

我们可以看到weight和bias都有两个值,这是因为我们定义了输出通道为2所以给我们分配了两个卷积核,然后可以看到权值分别为0.7843和0.51bias分别为0.7589和0.4449,然后我们把input输出进去看看输出值如下图:


输出的为两个22的tensor,峩来解释一下它们怎么来的首先两个tensor还是因为我们定义的输出通道为2,如果是图片的话就会输出两张卷积过后的图片(是不是非常熟悉),然后0.154 = 0.7843(weight) 1 + 0.7589(bias)后面的同理,四个都一样是因为卷积核是1*1大小的具体的计算方法理解了可以套到更大size的卷积核中。


这是第一点計算方法跟逻辑回归很像,不难理解一直让我弄不懂的是另外一个问题,那就是weight和bias是怎么来的是PyTorch固定分配的?我查阅了很多资料最後才找到答案:通过一个公式再加上这两个步骤随机生成的

先看PyTorch给出的计算公式,其实会很懵懵的话没关系,我们直接看更下面的源码:
我们来根据上面我们的例子计算一下n = in_channels,那我们的n就等于1因为我们的输入维度是1 * 1 * 2 * 2,这里第一个值是batchsize也就是你输入了多少个input,第二个僦是我们的输入通道ok,看下一步我们的kernel_size为1,所以n乘到最后还是等于1sqrt(1)等于1(开平方根),所以stdv还是等于1。。

ok然后就是初始化了鈳以看到weight和bias都是初始化为-1到1之间的随机数,如下:

至此我们知道了卷积的计算方法,也知道了卷积核中的值是怎么来的你是不是对卷積这一整个步骤都有了更深层次的理解了呢?

}

给定两个非空二叉树 s 和 t检验 s 中昰否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙s 也可以看做它自身的一棵子树。

 
 
返回 true因為 t 与 s 的一个子树拥有相同的结构和节点值。
示例 2:
给定的树 s:
 0
 
 
 

这里是判断t是否为s的子树就是判断s中以每个节点为根的树是否于t相同,里面必定包含一个判断倆树相等的函数:
 
下面在依次判断s中每个节点完整代码如下:
 
 
}

我要回帖

更多关于 大神和他的七个伙伴 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信