这些对象如何相互作用
-
用户希望使用 caffe 进行 CNN 培训和测试。用户决定 CNN 架构设计(例如 - 层数,滤波器数量及其细节等)。在要进行训练的情况下,用户还决定用于训练和学习参数的优化技术。如果操作是普通的香草测试,则由用户指定预先训练的模型。使用所有这些信息,用户实例化一个 Solver 对象,并为 Solver 对象提供一条指令(它决定了诸如训练和测试之类的操作)。
-
解算器 :可以将此对象视为监督 CNN 的训练和测试的实体。实际的承包商在处理器和运行中获得 CNN。它专门用于执行导致 CNN 接受培训的特定优化。
-
Net :Net 可以被认为是一个专家对象,代表实际操作的 CNN。Solver 指示 Net 实际为 CNN 分配内存并实例化它。Net 还负责发出实际导致通过 CNN 进行前向或后向传播的指令。
-
图层 :它是表示 CNN 的特定图层的对象。因此 CNN 由层组成。就 caffe 而言, Net 对象实例化体系结构定义中指定的每个Layer类型,它还将不同的层连接在一起。特定层执行一组特定的操作(例如 - 最大池,最小池,2D 卷积等)
-
Blob :数据在训练和测试期间流经 CNN。除了包含用户数据之外,该数据还包括通过 CNN 执行的若干中间计算。此数据封装在名为 Blob 的对象中。