0

我使用 Python 和 Chainer 创建了一个简单的逻辑回归模型,但我对最终结果并不完全满意。因此,我想得到一些帮助。一个限制:我不想用已经存在的功能来交换实现的功能。我知道 Chainer 中的损失函数几乎相同,但我正在创建的一个更复杂的模型是使用自定义损失函数。代码可以在这里找到:

https://gist.github.com/kmjjacobs/62fc96ece695b47af8d667b060a64559

我想保持模型代码尽可能干净,但正如您所见,调用方法是对损失方法的转发,我怀疑在训练循环中调用损失方法有一种更简洁的方法。我认为如果调用方法输出预测并且有一个单独的损失方法来计算损失会更干净。您对此有何看法?

我也不确定转换器功能。有没有更好的方法来达到相同的结果?

你对编写 Chainer 代码有什么意见或最佳实践吗?

提前致谢!

4

1 回答 1

1

首先,您的主要问题是什么?分别定义损失函数和预测函数的最佳方法?

我查看了您的代码,我认为 和 之间的功能init_scope不同。为此,您不能使用它在 Chain 中注册可学习参数。(您当前的用法是用于而不是用于。)LinkChainLinkChain

在您的情况下,我认为您可以只使用chainer.links.Linear您的LogisticRegressionModel,或者您可以定义自己的Link具有可学习参数Wlink类并在您的LogisticRegressionModel.

于 2018-02-25T11:41:08.803 回答