![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
文章平均质量分 74
Linky1990
这个作者很懒,什么都没留下…
展开
-
为什么使用 CE + Softmax 作为损失函数
假设假设有三个分类,模型输出值为 output = model(input),得到如下输出向量[o1,o2,o3][o_1,o_2,o_3][o1,o2,o3]表示每个类别的概率值,然后将该向量进行 softmax 操作,得到 [S1,S2,S3][S_1,S_2,S_3][S1,S2,S3],SiS_iSi 的计算公式为:Si=eoi∑eok=eoieo0+eo1+eo2S_i = \frac{e^{o_i}}{\sum e^{o_k}} = \frac{e^{o_i}}{e^原创 2020-08-17 18:56:51 · 945 阅读 · 0 评论 -
torch.nn.CrossEntropyLoss 里面究竟发生了什么
假设假设有三个分类,模型输出值为 output = model(input),得到如下输出向量[o1,o2,o3][o_1,o_2,o_3][o1,o2,o3]假设 target 为 2, one hot 编码后为 [0,0,1][0,0,1][0,0,1]使用 torch.nn.CrossEntropyLoss 对 output 和 target 计算损失的过程如下所示:过程输出值 output 经过 Softmax 后的得到每个类别的预测值[S1,S2,S3][S_1, S_原创 2020-08-03 18:15:41 · 2278 阅读 · 3 评论 -
混淆矩阵中的 精确率 和 召回率 与 置信度 之间有什么关系
假阳性FPFPFP 在 左下角,假阴性FNFNFN 在右上角原创 2020-07-30 21:52:06 · 3216 阅读 · 0 评论 -
如何有效记住 vgg 和 resnet 的网络结构
首先记住基本结构:CBRPC - Conv 层,B - BN 层,R - ReLU 层,P - Pooling 层,MaxPooling 或者 AvgPool 或者 AdaptiveMaxPool使用基本结构 CBR 解析 VGGvgg 的对应层数和结构如下:cfg = [ # vgg11 'A': [64, 'M', 128, 'M', 256, 256, 'M', 512, 512, 'M', 512, 512, 'M'], # vgg13 'B': [64, 64, '原创 2020-07-29 19:15:37 · 2041 阅读 · 0 评论 -
目标检测,已知坐标,如何计算 IoU 值
假设有两个矩形框,其坐标情况如下表所示左上角右下角宽度高度矩形框1(x1,y1)(x_1,y_1)(x1,y1)(x2,y2)(x_2, y_2)(x2,y2)x2−x1x_2-x_1x2−x1y2−y1y_2-y_1y2−y1矩形框2(x1′,y1′)(x_1', y_1')(x1′,y1′)(x2′,y2′)(x_2', y_2')(x2′,y2′)x2′−x1′x_2'-x_1'x2′−x1′y2′−y1′y_2'-y_1原创 2020-07-29 17:32:44 · 990 阅读 · 3 评论 -
损失函数 DiceLoss 的 Pytorch 实现
Pytorch 实现def dice_loss(preds, targets): """ preds: tensor of shape (N, C) targets: tensor of shape (N, C) """ assert preds.shape == targets.shape preds = preds.float() targets = targets.float() numer原创 2020-07-15 09:06:17 · 18053 阅读 · 18 评论 -
Xavier 参数初始化
目标是使得 前向计算 和 反向传播 前后值的 分布(均值 和 方差)相同 。我们将用到以下和方差相关的定理:假设有随机变量 xxx 和 www,它们都服从均值为 0,方差为 σ\sigmaσ 的分布,且相互独立,那么随机变量均值方差xxx0σ\sigmaσwww0σ\sigmaσw⋅xw \cdot xw⋅x0σ2\sigma^2σ2w⋅x+w⋅xw \cdot x + w \cdot xw⋅x+w⋅x02σ22\sigma^22σ2考虑一原创 2020-07-11 17:43:13 · 720 阅读 · 0 评论 -
pytorch 实现 lenet5 并用于 mnist 分类需要注意哪些问题?
首先,结合下面这个图,使用 pytorch 实现 letnet5 模型。计算每一层的 channel、kernel_size、stride 数值,得到如下所示:卷积层in_channelout_channelkernel_sizestridepaddingConv16512MaxPool6622Conv61651MaxPool161622Conv1612051全连接层输入输出bias原创 2020-06-27 17:43:19 · 566 阅读 · 0 评论 -
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 · 1883 阅读 · 0 评论 -
对 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 · 3621 阅读 · 0 评论