【深度学习】cs231n 计算机视觉(3)

计算机视觉(斯坦福2017课程)

1. 主流深度学习框架

Caffe,Torch,Theano,Tensorflow,Keras,PyTorch等。

  • 优势:
    (1)框架能够让你轻松的构建和使用一个庞大的计算图
    (2)能够轻松的在计算图中计算梯度
    (3)能够高效的运行在GPU上
Caffe / Caffe2

可以做到不用写代码,只通过改配置就能够训练你的神经网络:
(1)convert data(将数据格式转换成HDF5格式或者LMDB格式,或者图像能够直接转换成caffe的脚本)
(2)define net(定义网络结构,只需要做的是修改一个prototxt的文件,来定义计算图结构)
(3)define solver(设置一些优化器程序,也是在prototxt的文件里)
(4)train(只需要做的是修改一个prototxt的文件)

Theano / TensorFlow

(1)写一些代码来定义计算图
(2)然后可以运行图模型,重复利用它
在这里插入图片描述
训练这个网络:
在这里插入图片描述
如上过程需要将权重不断的在CPU和GPU之间复制,因此一般不使用这种方式,而是将w也放在GPU处理。
代码如下:
在这里插入图片描述
更简化的代码:
在这里插入图片描述
初始化值更完善合理的条件下:

在这里插入图片描述

  • Keras是一个很方便的API,它建立在Tensorflow的基础之上。
    在这里插入图片描述
Torch / PyTorch
  • 内部明确定义了三层抽象:
    (1)Tensor张量对象:最基本的数组,但可以在CPU上运行。numpy+GPU
    (2)变量对象(Variable):就是计算图中的节点,这些节点构成了我们的计算图;储存数据和梯度;
    (3)模对象(Module):它是一个神经网络层,可以通过将它们组合来构成一个大的网络;可能储存状态和学习的权重。

  • 和Tensorflow等价对比:
    在这里插入图片描述

  • 两层神经网络的例子:
    在这里插入图片描述定义自己的类并且使用optimizer之后:
    在这里插入图片描述

总结

在这里插入图片描述

2. 不同的CNN架构

AlexNet,VGG, GoogleNet,ResNet等;

  • AlexNet:
    在这里插入图片描述在这里插入图片描述

  • VGG16
    在这里插入图片描述

  • GoogleNet
    有了局部拓扑的想法,然后堆放大量的局部拓扑结构,构成一个网络。
    在这里插入图片描述

  • ResNet:
    原来的网络是学习输入到输出的映射H(x),而残差网络学习的是F(x)=H(x)−x。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43348528/article/details/104486829