首页 > 其他分享 >2022-10-26-CS231N-课后思考后笔记

2022-10-26-CS231N-课后思考后笔记

时间:2023-02-27 19:48:11浏览次数:33  
标签:10 26 CS231N saliency 笔记 课后 compute model

layout:     post
title:      CS231N-课后思考后笔记
subtitle:   CS231N-课后思考后笔记
description: CS231N-课后思考后笔记
date:       2022-10-26
categories: deeplearning
tags: notes
comments: true

2022-10-26 CS231N-课后思考后笔记

Assigment 1

Assigment 2

Network visualization

1、Saliency Maps

Saliency Maps 即显著图,用于分析图片的哪些pixel对最终结果产生了影响,或者说影响程度
计算方法:
1、计算正确分类的分数
2、然后计算梯度
3、取梯度的绝对值
4、取每个通道的最大值
code :

def compute_saliency_maps(X, y, model):

    """

    Compute a class saliency map using the model for images X and labels y.

  

    Input:

    - X: Input images; Tensor of shape (N, 3, H, W)

    - y: Labels for X; LongTensor of shape (N,)

    - model: A pretrained CNN that will be used to compute the saliency map.

  

    Returns:

    - saliency: A Tensor of shape (N, H, W) giving the saliency maps for the input

    images.

    """

    # Make sure the model is in "test" mode

    model.eval()

  

    # Make input tensor require gradient

    X.requires_grad_()

  

    saliency = None

    ##############################################################################

    # TODO: Implement this function. Perform a forward and backward pass through #

    # the model to compute the gradient of the correct class score with respect  #

    # to each input image. You first want to compute the loss over the correct   #

    # scores (we'll combine losses across a batch by summing), and then compute  #

    # the gradients with a backward pass.                                        #

    ##############################################################################

    # *****START OF YOUR CODE (DO NOT DELETE/MODIFY THIS LINE)*****

    logits = model.forward(X)

    logits = logits.gather(1, y.view(-1, 1)).squeeze() # 得到正确分类

    logits.backward(torch.FloatTensor([1., 1., 1., 1., 1.])) # 只计算正确分类部分的loss

    saliency = abs(X.grad.data) # 返回X的梯度绝对值大小

    saliency, _ = torch.max(saliency, dim=1)

    pass

  

    # *****END OF YOUR CODE (DO NOT DELETE/MODIFY THIS LINE)*****

    ##############################################################################

    #                             END OF YOUR CODE                               #

    ##############################################################################

    return saliency

2、Fooling Images

用一张来自于X的图片、来欺骗模型、使model以为这是Y
实现方法:

\(dX = learning_rate * g / ||g||_2\)

\(X = X+dX\)

3、随机噪声

通过一张随机生成的噪声图片、经过梯度更新、骗过model,认为是某个类别

Assigment 3

Self Supervised Learning

现象:
同样的模型、在通过自监督先学习抽取特征以后,在下游任务上(分类),比train from scratch 的效果要好很多。
思考:
1、模型通过自监督学习、本身已训练了更多的时间、而且是在更大的数据集上做的pretrain,直接比较略有不公
2、重新设置训练的参数、使自监督+fine tune的模型与train from scratch的模型在同样大的数据集上面、使用同样的训练策略、训练同样多的时间

发现自监督 + fine tune比直接训练的效果要好很多,说明前面的对比学习确实使模型学到了更好的特征表达能力

标签:10,26,CS231N,saliency,笔记,课后,compute,model
From: https://www.cnblogs.com/cyinen/p/17161606.html

相关文章

  • pat乙级1014 福尔摩斯的约会
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>intmin(inta,intb);intmin(inta,intb){returna<b?a:b;}intmain(){......
  • 一文搞懂weblogic CVE-2018-2628原理与利用
    参考:http://xxlegend.com/2018/06/20/CVE-2018-2628简单复现和分析/在CVE-2017-3248的利用中,我们用ysoserial生成了一个java.rmi.registry.Registry类型的proxy首先回......
  • Error downloading packages: glibc-2.17-326.el7_9.i686: [Errno 5]
     001、yum安装软件出现如下报错  002、其中的一个原因是python的版本造成的,即将系统默认调用的python有python2改用了python3,而yum命令兼容的python版本是python......
  • 2月27日课后总结
    2/27课后总结函数参数两类#形参#defmy_func(a,b):a和b都是形参定义函数时写在括号内的#实参 #my_func(1,2)1和2都是实参,调用函数时写在括号内的......
  • 26、利用GPU训练模型
    1、使用GPU来训练,找到四个板块的cuda函数,进行调用 1、  只有当cuda可用的时候才把变量引过去,下面调用的时候都一样,但是这样每次都写会很麻烦2、数据集是不能直......
  • TJA1050国产替代DP1050T高速 CAN 总线收发器
    DP1050T是一款应用于CAN协议控制器和物理总线之间的接口芯片,可应用于卡车、公交、小汽车、工业控制等领域,速率可达到1Mbps,具有在总线与CAN协议控制器之间进行差分信......
  • SB410日标容器板、SB410执行标准、SB410化学成分
    一、SB410钢板简介:SB410是日标锅炉压力容器钢板,生产厚度8mm-150mm之间,执行标准JISG3103,探伤需符合国标一级探伤,“SB”表示日标容器板“410”表示:屈服强度数值为420MPa。二......
  • SkeyeRTMPClient拉取RTMP流扩展支持HEVC(H.265)解决方案
    不久前我们已经在RTMP推送端扩展支持了HEVC(H.265后文统称H265)编码格式,但是,由于RTMP官方指定的协议格式已经不再更新,官方的播放器的Flash播放器并不支持H265格式的编码数......
  • SkeyeRTMPPusher推送RTMP扩展支持HEVC(H265)
    不久前刚实现SkeyeRTMPPusher扩展支持h265推送,当时在网上也查找了很多资料,发现都不尽详细,而官方也没有更新对HEVC(H265,后文统称HEVC)tag的支持,反正是走了不少弯路,当然,在广大......
  • 本地虚拟机centos7空间扩展10G记录
    因为要安装oracle11g的docker版本,空间不够,所以增加10G空间进入linux系统df-h发现跟原来一样没有增加,需要进行操作按下面操作,主要是fdisk/dev/sda[root@localhost~]#fdis......