python之继承

Python继承与模型保存
本文深入探讨了Python中继承的概念,通过具体代码示例展示了如何在自定义类中使用继承来扩展torch.nn.Module的功能,包括模型的保存和加载方法。

  今天大致记录一下自己对于python里面继承的理解,并且以下面的code为列子。

import torch as t
import time

class BasicModule(t.nn.Module):
    '''
    封装了nn.Module,主要是提供了save和load两个方法
    '''

    def __init__(self):
        super(BasicModule,self).__init__()#继承父类的__init__()的方法。
        self.model_name=str(type(self))# 默认名字

    def load(self, path):
        '''
        可加载指定路径的模型
        '''
        self.load_state_dict(t.load(path))

    def save(self, name=None):
        '''
        保存模型,默认使用“模型名字+时间”作为文件名
        '''
        if name is None:
            prefix = 'checkpoints/' + self.model_name + '_'
            name = time.strftime(prefix + '%m%d_%H:%M:%S.pth')
        t.save(self.state_dict(), name)
    
        return name

  这几行代码首先定义了一个类 BasicModule,并且指明其父类是torch.nn.Module,所以在继承super class的时候一定要在括号里指明父类的对象,然后再def __init__()方法的时候,用了一行代码:super(Basic Module,self).__init__( )这行代码指明子类BasicModule继承父类的__init__()的方法。

注意:继承虽然可以继承父类,但是子类任然可以有自己独有的变量,这个变量你需要自己去用self.name=xx,去定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值