idea不work时的应对方式

idea不work,对我来说是科研过程中遇到的最大困难。假设到了这一步,一般idea的逻辑已经理清楚了,代码也实现出来了(当然这两步也经常出问题),但代码结果并不像你预想的那样work,这时候,可能的原因就比较多了;这里仅仅整理深度学习情境下(用torch实现),可能的原因

  1. 可能陷入局部最优解(非全局最优)
torch.manual_seed(0)
np.random.seed(0)

可以将上面的随机种子换一换(这里假设只用到了torch和numpy的随机),将0改成其他值就可以

  1. 反向传播不顺利

这里是说,在网络的forward中,可能使用了一些不可导的操作,那么就需要重写,但也不是所有看起来不可导的函数都需要重写,这篇文章提供了几种直接不可导、见解可导的情形

判断是否是可导的,直接对目标变量:

print(x.requires_grad)

但不得不说,如果硬要把本身不可导的变成可导的,需要付出的精力非常多,建议如果遇到这种问题,直接换个解决思路(基于本人是一坨科研垃圾,所以提出此建议)

  1. 方法不合适

这个原因比较宽泛了,是说实现idea的方式不够好,不能算错,但就是离目标差得很远

比如我想通过线性插值来扩张某概率密度函数的分布,但原分布维度是100数量级的,后来的分布维度是10000数量级的,这种情形下,得到的效果一定不好,因为线性插值很少能完成这么大的维度跨越

再比如,我想获得两个自变量的概率密度函数,正常的做法是,对他们进行参数估计或者非参数估计,但是这两种方式在torch中都不可导,所以只好把两个自变量放入fc层,但这种方式得到的概率密度,很难具有分布的一些特性(比如平滑、可微等等)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值