- 博客(5)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
原创 pytorch 实现 lenet5 并用于 mnist 分类需要注意哪些问题?
首先,结合下面这个图,使用 pytorch 实现 letnet5 模型。计算每一层的 channel、kernel_size、stride 数值,得到如下所示:卷积层in_channelout_channelkernel_sizestridepaddingConv16512MaxPool6622Conv61651MaxPool161622Conv1612051全连接层输入输出bias
2020-06-27 17:43:19 575
原创 pytorch autograd 非叶子节点的梯度会保留么?
只有叶子节点的梯度得到保留,中间变量的梯度默认不保留叶子节点的值在求梯度前不允许更改,以及修改的方法只有叶子节点的梯度得到保留,中间变量的梯度默认不保留,除非使用 retain_grad() 方法# 叶子节点a = torch.tensor(2.0, requires_grad=True)b = a.exp()b.backward()a.grada 是叶子节点,b 不是叶子节点,当使用 b.backward() 求导时,只有叶子节点 a 的梯度 .grad 得到保留,非叶子节点 b .
2020-06-27 12:37:01 1932
原创 对 torch 中 dim 的总结和理解
pytorch 中,使用到 dim 参数的 api 都是跟集合有关的,比如 max(), min(), mean(), softmax() 等。当指定某个 dim 时,那么表示使用该维度的集合进行集合运算,比如一个 tensor 的 shape 为 (3, 4, 5),分别对应的 dim 如下所示dimshape031425当使用 max(dim=1) 时,表示使用第二个维度中全部四个元素中的每个元素参与求最大值计算,计算后的 shape 变为 (3,5),因为
2020-06-23 11:49:12 3764
原创 损失函数 Loss、梯度 grad、参数 ω 和 学习率 lr 之间的关系
举一个最简单的函数 y=x2y = x^2y=x2,梯度为 g(x)=∂y∂x=2xg(x) = \frac{\partial{y}}{\partial{x}} = 2xg(x)=∂x∂y=2x。设学习率为 lrlrlr,那么更新一次梯度后为:x1=x0−lr∗g(x0)=x0−lr∗2x0=(1−2∗lr)x0x_1 = x_0 - lr * g(x_0) = x_0 - lr * 2x_0 = (1 - 2 * lr)x_0x1=x0−lr∗g(x0)=x0−lr∗2x0=(1−2∗lr
2020-06-17 17:10:38 11077 4
原创 pytorch Conv2d 的宽高公式理解
pytorch 的二维卷积 torch.Conv2d,宽高计算公式如下所示(假设宽高相同,这里只讨论宽的公式,高的公式类似):Wout=Win+2×padding−dilation×(kernelsize−1)−1stride+1W_{out} = \frac{W_{in} + 2 \times \mathrm{padding} - \mathrm{dilation} \times (\mathrm{kernelsize}-1)-1}{\mathrm{stride}} + 1Wout=strideW
2020-06-04 16:35:36 1902
ANDROID AIDL DEMO
2015-02-12
java 方法参数传值问题
2016-06-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人