这俩天天天陷入自我怀疑,为啥我写的程序bug频出?

为啥老纸写的 agent 输出的 action 会带有 NaN?
Surprise Motherf***er!!!
就爱情/学业/工作总得有一个顺的吧? F**K!!!


给 np.arccos 输入不在定义域的值,这天经地义的事儿,必须返回 NaN


但是,你在调用的时候,是希望算出角度的,也就是说,你已经有了 cos 值,希望反推出角度θ\thetaθ

正常情况下,你的cos值显然也是,[−1,1][-1, 1][−1,1]这个范围的

但是,总会遇到非正常情况

# 计算向量 self2obj_v 和 self_angle_v 的内积
inner_product = (self2obj_v * self_angle_v).sum()
# 内积除以二者的模长,就是夹角的 cos 值,self_angle_v  是个单位向量
cos = inner_product / np.linalg.norm(self2obj_v)    # <----------------- 问题出在这里
# 反推导 arccos 值就是你的角度
obj_angle = np.arccos(cos)

看下出问题的那行,由于他是个分数,所以可能产生异常值,而我就好巧不巧的得到了:
cos=1.000001cos = 1.000001 cos=1.000001
然后,
np.arccos(cos)=NaNnp.arccos(cos)=NaN np.arccos(cos)=NaN
。。。。。。


我以为是激活函数的,问题,或者是什么梯度爆炸的问题,结果是这里出的错…
就,挺秃然的


所以,以后在输出的 cos 值后(如果你是通过内积计算的cos值),最好 clip 一下:

inner_product = (self2obj_v * self_angle_v).sum()
cos = inner_product / np.linalg.norm(self2obj_v)
cos = np.clip(cos, -1, 1)      # <---------------------- 这里 clip 一下
obj_angle = np.arccos(cos)

好吧,That’s all.


这么个小bug,折腾我好几天,太过分了

单今天一下午调试的log:

关于 np.arccos/arcsin 计算之前需要必须要 np.clip 的那件小事儿相关推荐

  1. python使用numpy中的np.mean函数计算数组的均值、np.var函数计算数据的方差、np.std函数计算数组的标准差

    python使用numpy中的np.mean函数计算数组的均值.np.var函数计算数据的方差.np.std函数计算数组的标准差 目录

  2. 好爸爸陪宝宝必做的50件小事儿

    1.天气好的时候,一起去放风筝,能和孩子动手做风筝那就更棒了. 2.准备彩色笔,和孩子一起画画,画你们梦想中的家是什么样的. 3.下雨天,穿上雨鞋,带孩子玩踩水花的游戏. 4.一起看精彩的动画片,选每 ...

  3. pandas使用np.where函数计算返回dataframe中指定数据列包含缺失值的行索引列表list

    pandas使用np.where函数计算返回dataframe中指定数据列包含缺失值的行索引列表list(index of rows with missing values in dataframe ...

  4. python使用numpy的np.float_power函数计算numpy数组中每个数值的指定幂次(例如平方、立方)、np.power函数默认返回整数格式、np.float_power函数返回浮点数

    python使用numpy的np.float_power函数计算numpy数组中每个数值的指定幂次(例如平方.立方).np.power函数默认返回整数格式.np.float_power函数默认返回浮点 ...

  5. python使用numpy的np.power函数计算numpy数组中每个数值的指定幂次(例如平方、立方)、np.power函数默认返回整数格式、np.float_power函数默认返回浮点数

    python使用numpy的np.power函数计算numpy数组中每个数值的指定幂次(例如平方.立方).np.power函数默认返回整数格式.np.float_power函数默认返回浮点数 目录

  6. python使用numpy的np.fmod函数计算numpy数组除以某一特定数值剩余的余数(remainder)、np.mod函数和np.fmod函数对负值的处理方式有差异

    python使用numpy的np.fmod函数计算numpy数组除以某一特定数值剩余的余数(remainder).np.mod函数和np.fmod函数对负值的处理方式有差异 目录

  7. 【计算理论】计算理论总结 ( P 、NP 、NPC 总结 ) ★★

    文章目录 一.P 类 二.NP 类 三.NPC 类 ( NP 完全 ) 四.P .NP .NPC 三者关系 一.P 类 P\rm PP 类 : ★ 所有 能够被 确定性 单个带子图灵机 , 在 多项式 ...

  8. 【计算理论】计算复杂性 ( NP 类不同表述 | 团问题 | P 对 NP 问题 )

    文章目录 一.NP 类不同表述 二.团问题 三.P 对 NP 问题 ( P vs NP ) 一.NP 类不同表述 NP\rm NPNP 对应的 确定性图灵机 表述 : NP\rm NPNP 类就是有 ...

  9. 【原创】一个计算斗地主谁必赢谁必输的程序

    这个程序的缘由是看到朋友圈里发布了这么一张图: 我是个斗地主菜鸟啊,反正一时半会是没看出来到底谁能赢,但是我对这类问题倒是很有兴趣,真好我那阵也写过几个类似这种动态规划算法的程序,于是我开发了一个小软 ...

  10. 【计算理论】计算复杂性 ( 无向图独立集问题 | 独立集问题是 NP 完全问题证明思路 | 证明独立集问题是 NP 完全问题 )

    文章目录 一.独立集问题 二.独立集问题是 NP 完全问题证明思路 二.证明独立集问题是 NP 完全问题 一.独立集问题 无向图的独立集 , 指的是在无向图中找到点集的子集 , 使得它们两两之间 , ...

最新文章

  1. 一个免费分享绘图代码的网站
  2. BCH网络成功发布第一个商业级别的Token
  3. 表单美化-原生javascript和jQuery下拉列表(兼容IE6)
  4. SQL Server开发者Oracle快速入门
  5. 34、Power Query-中国式排名
  6. JavaScript入门(part7)--流程控制
  7. TensorFlow精进之路(一):Softmax回归模型训练MNIST
  8. JMV监控工具之JConsole
  9. 基于Matlab科技论文绘图:plot、imagesc
  10. 回调函数及其应用案例
  11. 使用SoftEther 上免费校园网(ipv6)
  12. Google浏览器更改默认路径为D盘路径
  13. 无缝拼接文件 copy/b 使用
  14. openshift开源_使用OpenShift Origin降低开源贡献的壁垒
  15. 创业公司股权分配较好方案推荐
  16. 异步协议与同步协议:面向字符的协议BSC协议
  17. 支付宝等第三方支付原理与概述
  18. Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境 配置环境
  19. ssm餐厅线上点菜系统、点餐系统的设计与实现
  20. 【案例】云卷云舒,ArcGIS成就时空交错的新闻播报

热门文章

  1. idea全局搜索没有内容
  2. Spring核心技术
  3. 国际期刊出版趋势及科技论文写作要点
  4. excel二进制移位运算_Excel定位神技能Ctrl+G,10种不可绕开的操作技巧
  5. 为什么使用Python保存的视频特别大!!(数据速率/总比特率)
  6. 【攻略】2014年跨境进口型电商十大模式盘点
  7. ipa逆向分析class-dump的安装和使用
  8. C++三种方法求解两个数最大公因数和最小公倍数
  9. ModBus那些傻傻分不清
  10. 用的上的商学课1-50课学习笔记