如何让torch.utils.data.Subset继承自定义torch.utils.data.Dataset的方法?

发布于 2025-01-09 06:36:02 字数 425 浏览 0 评论 0原文

我已经使用方法 normalize_features(self) 定义了我的自定义 torch 数据集,该方法只是标准化功能。稍后在代码中,我使用 torch.utils.data.random_split 将数据拆分为训练和测试。但是,这将创建一个 Subset 类类型。

现在,当我调用 train_data.normalize_features() 时,它会抛出错误,因为 Subset 不是从我糟糕的自定义 Dataset 类继承的。另一方面,如果我调用 train_data.dataset.normalize_features() ,它将访问原始数据集,现在我将得到整个数据集标准化,尽管只想要 train_data 标准化。

对于如何使 Subset 继承我的方法有什么建议吗?或者有什么巧妙的技巧可以解决这个问题?

I have defined my custom torch Dataset with a method normalize_features(self), which just normalizes the features. Later in the code, I use torch.utils.data.random_split to split my data into train and test. However, this will create a Subset class types.

Now, when I call train_data.normalize_features(), it will throw an error, since the Subset does not inherit from my poor custom Dataset class. On the other hand, if I call train_data.dataset.normalize_features(), which will access the original dataset, now I will get the whole dataset normalized, despite wanting just the train_data normalized.

Any suggestions how to make the Subset inherit my method? Or any neat hacks to go around this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

濫情▎り 2025-01-16 06:36:02

我通过将该方法变成一个函数来解决这个问题,该函数将子集作为参数

I went around this by making the method into a function which takes the subset as an argument

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文