RuntimeWarning -- 记EM算法踩的坑

探讨Baum-Welch算法在大量数据训练时出现的nan和inf问题及可能的原因,涉及计算溢出和除数为0的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实现Baum_Welch算法过程中,能够训练小数据量参数,但是如果数据量增加时,多次迭代后会出现nan的数据。并且会报以下错误:

RuntimeWarning: invalid value encountered in reduce
RuntimeWarning: overflow encountered in true_divide
RuntimeWarning: invalid value encountered in multiply
RuntimeWarning: invalid value encountered in double_scalars

产生这个原因时因为计算溢出。
初步认为可能是存在除数为0。
调试发现,首先出现了inf,接着出现nan。

在宗成庆老师的NLP课上,提及容易出现小数溢出的问题。

Connected to pydev debugger (build 241.17890.14) D:\anaconda3\envs\pytorch-gpu\lib\site-packages\pandas\core\arraylike.py:399: RuntimeWarning: invalid value encountered in sqrt result = getattr(ufunc, method)(*inputs, **kwargs) D:\anaconda3\envs\pytorch-gpu\lib\site-packages\numpy\core\fromnumeric.py:88: RuntimeWarning: invalid value encountered in reduce return ufunc.reduce(obj, axis, dtype, out, **passkwargs) Traceback (most recent call last): File "D:\anaconda3\envs\pytorch-gpu\lib\contextlib.py", line 137, in __exit__ self.gen.throw(typ, value, traceback) File "D:\anaconda3\envs\pytorch-gpu\lib\site-packages\sklearn\_config.py", line 374, in config_context yield File "D:\anaconda3\envs\pytorch-gpu\lib\site-packages\sklearn\base.py", line 1389, in wrapper return fit_method(estimator, *args, **kwargs) File "D:\anaconda3\envs\pytorch-gpu\lib\site-packages\sklearn\decomposition\_pca.py", line 442, in fit self._fit(X) File "D:\anaconda3\envs\pytorch-gpu\lib\site-packages\sklearn\decomposition\_pca.py", line 505, in _fit X = validate_data( File "D:\anaconda3\envs\pytorch-gpu\lib\site-packages\sklearn\utils\validation.py", line 2944, in validate_data out = check_array(X, input_name="X", **check_params) File "D:\anaconda3\envs\pytorch-gpu\lib\site-packages\sklearn\utils\validation.py", line 1107, in check_array _assert_all_finite( File "D:\anaconda3\envs\pytorch-gpu\lib\site-packages\sklearn\utils\validation.py", line 120, in _assert_all_finite _assert_all_finite_element_wise( File "D:\anaconda3\envs\pytorch-gpu\lib\site-packages\sklearn\utils\validation.py", line 169, in _assert_all_finite_element_wise raise ValueError(msg_err) ValueError: Input X contains NaN. PCA does not accept missing values encoded as NaN natively. For supervised learning, you might want to consider sklearn.ensemble.HistGradientBoostingClassifier and Regressor which accept missing values encoded as NaNs natively. Alternatively, it is possib
04-03
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值