我一直在使用pytorch,并习惯了他们的数据加载器和转换,特别是当涉及到数据扩增,因为他们是非常用户友好和易于理解。但是,我需要从sklearn运行一些ML模型。有没有办法使用pytorch的数据加载器进行sklearn?
niwlg2el1#
是的,你可以。你可以用sklearn的partial_fit方法来做这件事。请阅读这里。6.1.3.渐进式学习最后,对于3.我们在scikit-learn中有许多选项。尽管所有算法都不能增量学习(即,无需一次查看所有示例),实现partial_fit API的所有估计器都是候选估计器。实际上,从小批量示例中增量学习的能力(有时称为“在线学习”)是核外学习的关键,因为它保证在任何给定时间主内存中只有少量的示例。平衡相关性和内存占用量批处理可能涉及一些调优[1]。然而,并不是所有的算法都能做到这一点。然后,可以使用pytorch的dataloader对数据进行预处理,并将其批量提供给partial_fit。
sklearn
partial_fit
pytorch
dataloader
v1l68za42#
我最近偶然发现了skorch库,它可以帮助你。“skorch的目标是让PyTorch和sklearn一起使用成为可能.“来自skorch文档:类skorch.dataset.Dataset(X, y=None, length=None)可与PyTorch DataLoader结合使用的通用数据集 Package 器。我想你可以使用Dataset类来 Package 你的PyTorch DataLoader,并使用sklearn模型。如果你想使用其他的PyTorch特性,比如PyTorchTensor,你也可以这样做。
skorch.dataset.Dataset(X, y=None, length=None)
Dataset
DataLoader
2条答案
按热度按时间niwlg2el1#
是的,你可以。你可以用
sklearn
的partial_fit
方法来做这件事。请阅读这里。6.1.3.渐进式学习
最后,对于3.我们在scikit-learn中有许多选项。尽管所有算法都不能增量学习(即,无需一次查看所有示例),实现partial_fit API的所有估计器都是候选估计器。实际上,从小批量示例中增量学习的能力(有时称为“在线学习”)是核外学习的关键,因为它保证在任何给定时间主内存中只有少量的示例。平衡相关性和内存占用量批处理可能涉及一些调优[1]。
然而,并不是所有的算法都能做到这一点。
然后,可以使用
pytorch
的dataloader
对数据进行预处理,并将其批量提供给partial_fit
。v1l68za42#
我最近偶然发现了skorch库,它可以帮助你。
“skorch的目标是让PyTorch和sklearn一起使用成为可能.“
来自skorch文档:
类
skorch.dataset.Dataset(X, y=None, length=None)
可与PyTorch DataLoader结合使用的通用数据集 Package 器。我想你可以使用
Dataset
类来 Package 你的PyTorchDataLoader
,并使用sklearn模型。如果你想使用其他的PyTorch特性,比如PyTorchTensor,你也可以这样做。