如何从Pythorch更改spotlight中的默认优化,例如。torch.optim.SGD?

2024-09-30 14:35:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用spotlighthttps://github.com/maciejkula/spotlight/tree/master/spotlight 在推荐系统中实现矩阵分解。spotlight基于Pythorch,是一个实现RS的集成平台火炬。擎天柱。亚当作为优化器,我想将其更改为torch.optim.SGD. 我试过了

emodel = ExplicitFactorizationModel(n_iter=15,
                                embedding_dim=32, 
                                use_cuda=False,
                                loss='regression',
                                l2=0.00005,
                                optimizer_func=optim.SGD(lr=0.001, momentum=0.9))

但它给出:TypeError:init()缺少1个必需的位置参数:“params” 有什么建议吗?在


Tags: githubmastercomtree系统矩阵平台optim
1条回答
网友
1楼 · 发布于 2024-09-30 14:35:16

您可以使用partialfromfunctools首先设置学习速率和动量,然后将这个类传递给ExplicitFactorizationModel。比如:

from functools import partial
SDG_fix_lr_momentum = partial(torch.optim.SGD, lr=0.001, momentum=0.9)
emodel = ExplicitFactorizationModel(n_iter=15,
                                embedding_dim=32, 
                                use_cuda=False,
                                loss='regression',
                                l2=0.00005,
                                optimizer_func=SDG_fix_lr_momentum)

相关问题 更多 >