何时何地为 caffe 调用和执行“REGISTER_SOLVER_CLASS(SGD);”?

Posted

技术标签:

【中文标题】何时何地为 caffe 调用和执行“REGISTER_SOLVER_CLASS(SGD);”?【英文标题】:where and when the `REGISTER_SOLVER_CLASS(SGD);` is called and executed for caffe? 【发布时间】:2017-11-25 06:45:48 【问题描述】:

我有兴趣阅读 caffe 源代码。现在我很困惑在训练模型时何时何地调用和执行REGISTER_SOLVER_CLASS(SGD);here? 任何人都可以给一些建议?非常感谢~~

【问题讨论】:

【参考方案1】:

正如您在REGISTER_SOLVER_CLASS 宏定义中所见,在solver_factory.hpp 中,Caffe 为求解器创建静态全局对象。它们在库加载时被初始化。请参阅此question + answers 了解完整的详细信息和 Windows / UNIX 差异。

【讨论】:

@AndrewGong :编译 caffe 会创建一个静态库(Linux 上的 .a,Windows 上的 .lib)和动态库(Linux 上的 .so,Windows 上的 .dll)。没看懂你的评论,能详细点吗? 什么都没有,我已经删除了最新的提交。你的回答很好,谢谢!

以上是关于何时何地为 caffe 调用和执行“REGISTER_SOLVER_CLASS(SGD);”?的主要内容,如果未能解决你的问题,请参考以下文章

何时何地使用 JMS?

何时在声明或初始化时为变量分配内存?

为 Qt 注册自定义类型时,何时、何地以及为何使用命名空间

分裂何时何地发生?

BaseHTTPServer 和 SimpleHTTPServer 有啥区别?何时何地使用它们?

iOS 何时何地为视图控制器获取服务器数据