__str__(self)
- 该方法中必须有一个return
- 调用该方法的时机是print对象时
- return的内容就是print打印的内容
__repr__(self)
- 该方法与
__str__(self)
方法一样都是打印时调用的
- 其中也必须含有return
- 下面用pytorch官方例子mnist来进行说明:
def __repr__(self):
fmt_str = 'Dataset ' + self.__class__.__name__ + '\n'
fmt_str += ' Number of datapoints: {}\n'.format(self.__len__())
tmp = 'train' if self.train is True else 'test'
fmt_str += ' Split: {}\n'.format(tmp)
fmt_str += ' Root Location: {}\n'.format(self.root)
tmp = ' Transforms (if any): '
fmt_str += '{0}{1}\n'.format(tmp, self.transform.__repr__().replace('\n', '\n' + ' ' * len(tmp)))
tmp = ' Target Transforms (if any): '
fmt_str += '{0}{1}'.format(tmp, self.target_transform.__repr__().replace('\n', '\n' + ' ' * len(tmp)))
return fmt_str
d = datasets.MNIST('../data', train=True, download=True,
transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))]))
print(d)
#输出结果如下:
Dataset MNIST
Number of datapoints: 60000
Split: train
Root Location: ../data
Transforms (if any): Compose(
ToTensor()
Normalize(mean=(0.1307,), std=(0.3081,))
)
Target Transforms (if any): None
__getitem__(self,index)
- 既然说到了
__getitem__(self,index)
,也对其进行讲解。该方法也必须有返回return。
- 该方法的调用方式是对象名后面加上中括号,中括号中填上索引值。
- 下面以代码的方式进行展示:
d = datasets.MNIST('../data', train=True, download=True,
transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))]))
print(d[0])
- 打印的结果如下,里面包含了一张28×28大小的图像,就是MNIST数据集里面每张图像的大小;还有后面一个一维的tensor就是这张图像的标签索引值。
- 从打印结果也能够看出,
__getitem__(self,index)
函数的主要功能就是获取数据和标签,并将其返回。
(tensor([[[-0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242,
-0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242,
-0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242,
-0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242],
[-0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242,
-0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242,
-0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242,
-0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242],
[-0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242,
-0.4242, -0.4242, -0.