如何让torch.utils.data.Subset继承自定义torch.utils.data.Dataset的方法?
我已经使用方法 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我通过将该方法变成一个函数来解决这个问题,该函数将子集作为参数
I went around this by making the method into a function which takes the subset as an argument