假设我有一个用Pytorch编写的神经网络作为某种特征提取器,我将它包装在2个稍微不同的Scikit-learn变换器中,以便它们可以提取不同的特征。示意图,代码如下所示:
net = SomePytorchModule()
transformer_1 = Transformer1(net)
transformer_2 = Transformet2(net)
所以基本上,2个变换器共享相同的神经网络,但以不同的方式使用它。现在,我想将它们放入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
,因此不需要复制,因为神经网络非常大