与Pytorch的scikitlearn功能联盟

2024-05-15 08:44:10 发布

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

假设我有一个用Pytorch编写的神经网络,它充当某种特征提取器,我将它包装在两个稍微不同的Scikit学习变压器中,以便它们可以提取不同的特征。示意图上,代码如下所示:

net = SomePytorchModule()
transformer_1 = Transformer1(net)
transformer_2 = Transformet2(net)

所以基本上,两个变压器共享同一个神经网络,但使用方式不同。现在,我想把它们放到FeatureUnion

union = FeatureUnion([
            ('transformer_1': transformer_1),
            ('transformer_2': transformer_2)])

到目前为止效果还不错。但是假设我想做一个平行的工作,那就是:

union = FeatureUnion([
            ('transformer_1': transformer_1),
            ('transformer_2': transformer_2)],
        n_jobs = 2)

我如何确保这两个进程共享相同的net,这样就不需要复制了,因为神经网络非常大


Tags: 代码net方式神经网络pytorch特征scikitunion