从python中的一些特殊方法讲到pytorch的官方例子mnist(主要针对pytorch的自定义dataset中的几个特殊函数进行说明)
2018-08-24 17:10
801 查看
__str__(self)
- 该方法中必须有一个return
- 调用该方法的时机是print对象时
- return的内容就是print打印的内容
__repr__(self)
- 该方法与
__str__(self)
方法一样都是打印时调用的 - 其中也必须含有return
- 下面用pytorch官方例子mnist来进行说明:
#每一个自定义的dataset都必须继承类torch.utils.data.Dataset,还必须重写__len__(self)方法和__getitem__(self,index)方法。 #顺便可能会重写__repr__(self)方法,这个不是必须,下面的例子就是自定义dataset类--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
#当用如下代码实例化MNIST类之后,运用print函数就能调用MNIST类的__repr__(self)函数 d = datasets.MNIST('../data', train=True, download=True, transform=transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))])) print(d)#此时就会调用函数__repr__(self)函数
#输出结果如下: 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。 - 该方法的调用方式是对象名后面加上中括号,中括号中填上索引值。
- 下面以代码的方式进行展示:
#跟上面代码一样,我们实例化了自定义dataset,然后用索引来取值: d = datasets.MNIST('../data', train=True, download=True, transform=transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))])) print(d[0])#此时就会调用函数__getitem__(self,index)函数
- 打印的结果如下,里面包含了一张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.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.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.3860, -0.1951, -0.1951, -0.1951, 1.1795, 1.3068, 1.8032, -0.0933, 1.6887, 2.8215, 2.7197, 1.1923, -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.0424, 0.0340, 0.7722, 1.5359, 1.7396, 2.7960, 2.7960, 2.7960, 2.7960, 2.7960, 2.4396, 1.7650, 2.7960, 2.6560, 2.0578, 0.3904, -0.4242, -0.4242, -0.4242, -0.4242], [-0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, -0.4242, 0.1995, 2.6051, 2.7960, 2.7960, 2.7960, 2.7960, 2.7960, 2.7960, 2.7960, 2.7960, 2.7706, 0.7595, 0.6195, 0.6195, 0.2886, 0.0722, -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.1951, 2.3633, 2.7960, 2.7960, 2.7960, 2.7960, 2.7960, 2.0960, 1.8923, 2.7197, 2.6433, -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.5940, 1.5614, 0.9377, 2.7960, 2.7960, 2.1851, -0.2842, -0.4242, 0.1231, 1.5359, -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.2460, -0.4115, 1.5359, 2.7960, 0.7213, -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, 1.3450, 2.7960, 1.9942, -0.3988, -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.2842, 1.9942, 2.7960, 0.4668, -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.0213, 2.6433, 2.4396, 1.6123, 0.9504, -0.4115, -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.6068, 2.6306, 2.7960, 2.7960, 1.0904, -0.1060, -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.1486, 1.9432, 2.7960, 2.7960, 1.4850, -0.0806, -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.2206, 0.7595, 2.7833, 2.7960, 1.9560, -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, 2.7451, 2.7960, 2.7451, 0.3904, -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.1613, 1.2305, 1.9051, 2.7960, 2.7960, 2.2105, -0.3988, -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.0722, 1.4596, 2.4906, 2.7960, 2.7960, 2.7960, 2.7578, 1.8923, -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.1187, 1.0268, 2.3887, 2.7960, 2.7960, 2.7960, 2.7960, 2.1342, 0.5686, -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.1315, 0.4159, 2.2869, 2.7960, 2.7960, 2.7960, 2.7960, 2.0960, 0.6068, -0.3988, -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.1951, 1.7523, 2.3633, 2.7960, 2.7960, 2.7960, 2.7960, 2.0578, 0.5940, -0.3097, -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.2758, 1.7650, 2.4524, 2.7960, 2.7960, 2.7960, 2.7960, 2.6815, 1.2686, -0.2842, -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, 1.3068, 2.7960, 2.7960, 2.7960, 2.2742, 1.2941, 1.2559, -0.2206, -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.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]]]), tensor(5))阅读更多
相关文章推荐
- Python中针对函数处理的特殊方法
- python中一些特殊方法的自定义及作用
- python下的一些特殊属性(几个实例说明)
- Core Python:Python中的针对函数处理的特殊方法
- python时间处理方法datetime(),下面就举几个代码案例进行说明,代码如下:
- python下的一些特殊属性(几个实例说明)
- Python中针对函数处理的特殊方法
- python下的一些特殊属性(几个实例说明)
- 针对fork()函数的深入理解!用事例family家谱来进行说明!
- Oracle分析函数、多维函数和Model函数简要说明,主要针对BI报表统计 推荐
- session.flush方法到底干了一些什么事情,举一个具体的例子说明
- python中类的设计问题(一些高级问题探讨,函数重载,伪私有,工厂模式,类方法等)
- phonegap 开发入门 PhoneGap官方网站上有详细的入门示例教程,这里,我针对使用PhoneGap进行Android移动应用的开发对其官网的Get Started进行一些介绍、补充。 Ste
- arcgis脚本Python调用自定义的函数方法
- 关于VC++中,两种自定义消息的发送与接收的方法实现进行说明
- dojo小例子(15)给dojo on的事件处理函数传递自定义参数的两种方法
- WebService中使用自定义类进行传输的一些方法
- Oracle分析函数、多维函数和Model函数简要说明,主要针对BI报表统计
- 关于VC++中,两种自定义消息的发送与接收的方法实现进行说明。
- 举例说明在android中使用正则表达式去掉字符串中标点符号及其他一些特殊符号的方法