我正在训练一个 CNN 来预测手上的关节。问题是我的网络总是收敛到训练集的均值,对于不同的测试图像我只能得到相同的结果。你知道如何防止这种情况吗?
我正在阅读Caffe的源代码,我很好奇为什么caffe使用#define来创建像caffe.cpp这样的函数.
#define RegisterBrewFunction(func) \
namespace { \
class __Registerer_##func { \
public: /* NOLINT */ \
__Registerer_##func() { \
g_brew_map[#func] = &func; \
} \
}; \
__Registerer_##func g_registerer_##func; \
}
Run Code Online (Sandbox Code Playgroud)
他们使用RegisterBrewFunction来注册函数,必须有一些优点.他们可以使用if else来决定调用哪个函数,任何人都可以告诉我为什么以这种方式编写代码.