为了账号安全,请及时绑定邮箱和手机立即绑定

当我尝试将列表传递给我的类属性时发生错误

当我尝试将列表传递给我的类属性时发生错误

翻阅古今 2023-01-04 16:19:00
我正在尝试使用类方法将列表传递给我的类属性:class BASE_MODEL(object):    def __init__(self, train_data, train_labels, val_data, val_labels):        self.train_data, self.train_labels, self.val_data, self.val_labels = \            train_data, train_labels, val_data, val_labels    @classmethod    def list_to_data(cls, data_list):        train_data, train_labels, val_data, val_labels = data_list        data = cls(train_data, train_labels, val_data, val_labels)        return dataclass Fine_Tune_Model(BASE_MODEL):    def __init__(self, fine_tune_at=None):        super(BASE_MODEL, self).__init__()        self.fine_tune_at = fine_tune_atfine_tune_model = Fine_Tune_Model.list_to_data(data_lsit)这对超类很好用。但是,当我尝试将相同的函数传递给子类时,会发生错误:Traceback (most recent call last):  File "E:/Studium/Thesis/Fine_Tuning.py", line 138, in <module>    main()  File "E:/Studium/Thesis/Fine_Tuning.py", line 133, in main    fine_tune_model = Fine_Tune_Model.list_to_data(create_data.split_data(3000, 200))  File "E:\Studium\Thesis\Train.py", line 32, in list_to_data    data = cls(train_data, train_labels, val_data, val_labels)TypeError: __init__() takes from 1 to 2 positional arguments but 5 were givenProcess finished with exit code 1是因为我的子类中多了一个参数“fine_tune_at”吗?如果是这样,我该如何避免这个问题?
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

我发现问题出在哪里:


class BASE_MODEL(object):

    def __init__(self, train_data, train_labels, val_data, val_labels):

        self.train_data, self.train_labels, self.val_data, self.val_labels = \

            train_data, train_labels, val_data, val_labels


    @classmethod

    def list_to_data(cls, data_list):

        train_data, train_labels, val_data, val_labels = data_list

        data = cls(train_data, train_labels, val_data, val_labels)

        return data


class Fine_Tune_Model(BASE_MODEL):

    def __init__(self, train_data, train_labels, val_data, val_labels):

        super(Fine_Tune_Model, self).__init__(train_data, train_labels, val_data, val_labels)

        self.fine_tune_at = fine_tune_at


fine_tune_model = Fine_Tune_Model.list_to_data(data_lsit)

我没有正确继承超类中的属性。


查看完整回答
反对 回复 2023-01-04
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号