加载数据集的时候经常用到def __getitem__(self, index)
这个是python的magic方法。例如对一个对象some_object
some_item = some_object[idx]
等价于
some_item = some_object.__getitem__(idx)
这个方法的参数idx就是你在[]之间给定的idx,相当于切片功能;还有一个例子是
len(some_object)
其实等价于
some_object.__len__()
所以你的dataset定义了这两个方法之后,其实变相是支持了 [idx] 和 len 的切片与取长度的操作。
数据集本质应当是所有数据样本的一个列表,因此每个样本都有对应的索引index。我们取用一个样本最简单的方式就是用该样本的index从数据列表中把它取出来。__getitem__就是做这样一件事。
参考链接:https://www.zhihu.com/question/443036026/answer/1717480194
共有 0 条评论