zoukankan      html  css  js  c++  java
  • Caffe

    https://www.leiphone.com/news/201702/T5e31Y2ZpeG1ZtaN.html

    1. Caffe 的核心概念是 Layer,每一个神经网络的模块都是一个 Layer

    2. Layer 接收输入数据,同时经过内部计算产生输出数据

    3. 设计网络结构时,只需要把各个 Layer 拼接在一起构成完整的网络(通过写 protobuf 配置文件定义)。比如卷积的 Layer,它的输入就是图片的全部像素点,内部进行的操作是各种像素值与 Layer 参数的 convolution 操作,最后输出的是所有卷积核 filter 的结果。每一个 Layer 需要定义两种运算,一种是正向(forward)的运算,即从输入数据计算输出结果,也就是模型的预测过程;另一种是反向(backward)的运算,从输出端的 gradient 求解相对于输入的 gradient,即反向传播算法,这部分也就是模型的训练过程。实现新 Layer 时,需要将正向和反向两种计算过程的函数都实现,这部分计算需要用户自己写 C++或者 CUDA (当需要运行在 GPU 时)代码,对普通用户来说还是非常难上手的。正如它的名字 Convolutional Architecture for Fast Feature Embedding 所描述的,Caffe 最开始设计时的目标只针对于图像,没有考虑文本、语音或者时间序列的数据,因此 Caffe 对卷积神经网络的支持非常好,但对时间序列 RNN、LSTM 等支持得不是特别充分。同时,基于 Layer 的模式也对 RNN 不是非常友好,定义 RNN 结构时比较麻烦。在模型结构非常复杂时,可能需要写非常冗长的配置文件才能设计好网络,而且阅读时也比较费力。

  • 相关阅读:
    Advanced-REST-client安装
    啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
    mysql5.6 的st_distance 实现按照距离远近排序。
    Springboot读取配置文件及自定义配置文件
    mysql distinct
    SOAP XML报文解析
    提交post请求,参数为xml格式
    docker中tomcat日志输出自定义
    Vmware centos 虚拟机 磁盘扩容
    vim开发配置
  • 原文地址:https://www.cnblogs.com/morganh/p/8177978.html
Copyright © 2011-2022 走看看