神经网络关于GPU和CPU计算精度的问题

之前遇到了这个问题,这里记录一下,上一篇我提到了计算误差问题,我以为是随机数的问题,确实,随机数也没设置对,所以我对随机数进行了设置,效果是两个计算精度一样了。但是,当我在此基础上使用了某些计算量大的算法时,计算精度又不行了,随机数这个时候一样的,所以我又开始怀疑计算精度了,并且我觉得这确实是存在的。

说完计算精度了,说一下解决方案:减小模型大小,我是将隐藏层两层1500个神经元的神经网络设置为两层500个神经元的神经网络,这个时候计算精度就回来了,模型计算也快了。

想了想这个问题的原因,应该是模型太大导致的计算误差不断累积,导致最后误差越来越大,以致于结果不理想。减小模型后可能这种情况就大大减小了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在本文中,我们描述了我们在GPU上加快Heston随机波动率模型校准(一种金融应用程序)的工作。 Heston波动率模型在整个资本市场中得到广泛使用,以定价和衡量交易所交易的金融期权的市场风险。 当安装到亚分钟级别的市场中间价格报价时,该模型可能需要每隔几分钟进行频繁校准。 R统计软件包易于使用,并且在金融行业的定量分析人员中很受欢迎。 但是,典型的基于R的Heston模型校准在CPU上的实现不能满足亚分钟级交易(即中高频交易)的性能要求。 Heston模型的校准是在M个选项数据点上执行的,在校准计算过程中,这些选项数据点保持固定。 这种计算的典型组织是调用带有指向ErrorFunction()的指针的优化例程,该指针估计市场观察到的模型期权价格之间的误差。 我们在R中实现了校准计算,并观察到计算时间主要由ErrorFunction()的计算决定。 本文介绍了针对此计算GPU优化内核的实现,该内核可以由执行校准过程的R脚本调用。 对于M = 1024,我们通过在具有Intel Core i5处理器和NVIDIA Tesla K20c(开普勒架构)的系统(由2496个内核组成)上卸载ErrorFunction(),证明了与R顺序实施相比,总校准时间提高了760倍。 请注意,并不是所有的性能提升都归功于GPU –部分原因是由于Heston模型计算中R开销的减少。 为了进行比较,我们还使用C实现了校准代码。我们观察到,基于GPU的实现比C版本的处理速度提高了230倍,这表明3.4倍的改进是由于避免了Heston模型计算的R开销。 但是,使用基于R的优化例程并结合GPU卸载的ErrorFunction()进行的总体校准时间与基于C GPU的校准代码相当。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值