【问题标题】:Does pytorch Dataset.__getitem__ have to return a dict? [duplicate]pytorch Dataset.__getitem__ 是否必须返回一个字典? [复制]
【发布时间】:2021-07-28 16:08:57
【问题描述】:

编辑:这与一般的 __getitem__ 方法无关,而是在 Pytorch 数据集子类中使用 __getitem__

我正在尝试实现 Pytorchs 数据集类的使用。 指南例如 here 非常好,但我很难弄清楚 Pytorch 对 __getitem__ 的返回值的要求。在Pytorch documentation 我找不到任何关于它应该返回什么的信息;是否有任何可迭代大小为 2 的对象,例如 [sample,target], (sample,target)?在一些指南中,他们返回一个字典,但他们没有指定它是否必须是一个返回的字典。

【问题讨论】:

  • 返回值可以是任何东西(不一定是dict或tuple)。
  • 我已经对问题进行了编辑以澄清
  • 你可以返回任何你想要的,在大多数情况下你只是返回数据和目标,例如return images, targets
  • @CutePoison __getitem__ 在 PyTorch 数据集中一般的 __getitem__ - 它没有什么特别之处。
  • 这不是一个重复的问题,因为 Pytorch 的数据集 __getitem__ 有一些特殊性。应该删除重复的标志。

标签: python pytorch


【解决方案1】:

PyTorch 对 DataSet 的 __getitem__ 方法的返回值没有要求。它可以是任何东西,但您通常会遇到张量、张量元组、字典(例如{'features':..., 'label':...})等。

在二维数据中通常会返回单个张量,其最后一列是目标值,但同样您可能会看到特征和目标的元组/字典明确分离。

请注意,您不要求返回两个值 - 在许多无监督上下文(例如自动编码器)中,只有一组特征,没有不同的目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多