我正在处理一个 DLL 项目并且我正在使用 BOOST 库,我还使用了一个模块定义文件来避免编译器的名称修改,以便可以轻松地从这个 DLL 调用我的函数。但我的问题是很多 BOOST 功能区域也被导出。我正在使用 DLL 查看器查看我的 DLL 公开的函数,令我惊讶的是,那里有很多 BOOST。(我想导出的功能也在那里,所以没有问题)知道为什么会这样吗?(我没有足够的声誉来发布图片,有什么建议我可以这样做吗?pastebin 或其他什么?)
`GetNameOfUsbIf Exported Function
GetNumberOfUsbIfs Exported Function
Initialize Exported Function
int __stdcall SET_SYSTEM_NOTIFY_CALLBACK(void (__cdecl*)(enum SYSTEM_EVENT_MSP)) Exported Function
private: static class boost::archive::detail::extra_detail::map<class boost::archive::binary_iarchive> & __cdecl boost::serialization::singleton<class boost::archive::detail::extra_detail::map<class boost::archive::binary_iarchive> >::get_instance(void) Exported Function
private: static class boost::archive::detail::extra_detail::map<class boost::archive::binary_iarchive> & boost::serialization::singleton<class boost::archive::detail::extra_detail::map<class boost::archive::binary_iarchive> >::instance Exported Function`
Run Code Online (Sandbox Code Playgroud)
我正在使用__declspec(dllexport)我希望导出的函数的前缀,该前缀由编译器标志控制。以上是 dllViewer 文本的复制粘贴 我缺少什么建议?
我neurolab在python中使用创建一个神经网络.我创建了一个newff网络,并使用默认的train_bfgs训练功能.我的问题很多次,训练只是在时期耗尽或甚至达到错误目标之前结束.我环顾四周,发现了一篇关于neurolabs github页面的帖子,他们在那里解释了为什么会发生这种情况.我的问题是,如果我重新运行程序几次它只是捕获并且训练开始然后错误也会下降(可能一些随机起始权重比其他人好很多).我想做的是在训练中加入一种检查,这样如果错误太高而且训练的时期甚至不接近总数,那么重新训练网络(有点像重新运行程序)(可能重置)网络默认权重)
这是我写的,但显然它不起作用
trainingComplete = False
while not trainingComplete:
error = net.train(trainingData, TS, epochs=50, show=10, goal=0.001)
if len(error) < 0.8*epochs:
if len(error) > 0 and min(error) < 0.01:
trainingComplete = True
else:
net.reset()
continue
else:
trainingComplete = True
Run Code Online (Sandbox Code Playgroud)
正在发生的事情是,当它通过第一个条件,即训练时期太少时,它会net.reset()在重新启动之前执行,但接着,没有正在进行的训练,这就变成了无限循环.知道我错过了什么吗?
谢谢