Chainer – Python – 逻辑回归

我使用Python和Chainer创建了一个简单的逻辑回归模型,但对最终结果不太满意。因此,我想寻求一些帮助。有一个限制:我不希望用已有的功能替换已实现的功能。我知道Chainer中有几乎相同的损失函数,但我正在创建一个更复杂的模型,使用自定义的损失函数。代码在这里:

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

我希望模型代码尽可能简洁,但如你所见,call方法是损失方法的前向调用,我怀疑在训练循环中调用损失方法有更简洁的方法。我认为如果call方法输出预测结果,并有一个单独的损失方法来计算损失会更清晰。你对此有何看法?

我对转换函数也不是很确定。有没有更好的方法来实现相同的结果?

你对编写Chainer代码有任何评论或最佳实践吗?

提前感谢!


回答:

首先,你的主要问题是什么?是将损失函数和预测函数分开定义的最佳方式吗?

我看了你的代码,我认为init_scopeLinkChain中的功能是不同的。你不能在Chain中使用它来注册可学习的参数来达到这个目的。(你当前的使用方式适用于Link,而不适用于Chain。)

在你的情况下,我认为你可以直接在LogisticRegressionModel中使用chainer.links.Linear,或者你可以定义自己的Link类,其中包含可学习的参数W,并在LogisticRegressionModel中使用这个自定义的link类。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注