Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
d2l-zh
提交
d41eea0c
D
d2l-zh
项目概览
OpenDocCN
/
d2l-zh
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
d2l-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d41eea0c
编写于
10月 30, 2018
作者:
A
Aston Zhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add conv as matmul example
上级
023d77db
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
0 deletion
+22
-0
chapter_computer-vision/fcn.md
chapter_computer-vision/fcn.md
+22
-0
未找到文件。
chapter_computer-vision/fcn.md
浏览文件 @
d41eea0c
...
...
@@ -20,6 +20,28 @@ import sys
假设$f$是一个卷积层,给定输入$x$,我们可以计算前向输出$y=f(x)$。在反向求导$z=
\f
rac{
\p
artial
\,
y}{
\p
artial
\,
x}$时,我们知道$z$会得到跟$x$一样形状的输出。因为卷积运算的导数是自己本身,我们可以合法定义转置卷积层,记为$g$,为交换了前向和反向求导函数的卷积层。也就是$z=g(y)$。
```
{.python .input}
from mxnet import nd
from mxnet.gluon import nn
from mxnet import init
X = nd.arange(1, 17).reshape((1, 1, 4, 4))
K = nd.arange(1, 10).reshape((1, 1, 3, 3))
conv = nn.Conv2D(channels=1, kernel_size=3)
conv.initialize(init.Constant(K))
conv(X), conv.weight.data()
```
```
{.python .input}
W, k = nd.zeros((4, 16)), nd.zeros(11)
k[:3], k[4:7], k[8:] = K[0,0,0,:], K[0,0,1,:], K[0,0,2,:]
W[0, 0:11], W[1, 1:12], W[2, 4:15], W[3, 5:16] = k, k, k, k
nd.dot(W, X.reshape(16)).reshape((1, 1, 2, 2)), W
```
下面我们构造一个卷积层并打印它的输出形状。
```
{.python .input n=3}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录