很抱歉,我没有使用一般示例来解释我的问题。我知道这与机器学习无关,但是我试图写一个一般的例子,这更加令人困惑,所以我决定去做:我有两个父类,比方说
class MLP(object):
def __init__(self, mlp_architecture):
...
def forward(self):
...
class CNN(object):
def __init__(self, cnn_architecture):
...
def forward(self):
...
我说一个孩子班
class Classifier(Model):
def __init__(self, num_epochs,
learning_rate,
...
model_architecture):
super(Classifier, self).__init__(model_architecture)
def train(self):
...
def predict(self, x):
...
现在Classifier
的方法可同时用于MLP
和CNN
,并且它们需要一个forward
方法。我希望Classifier
能够从forward
和MLP
两者中继承CNN
,而不必定义这样的两个子类
class ClassifierMLP(MLP):
...
class ClassifierCNN(CNN):
...
相反,我想做这样的事情(我知道我写的是错误的,但我希望你能理解)
clf = Classifier(MLP)(num_epochs=...,
learning_rate=...,
...
model_architecture=...)
clf.train()
执行此操作的正确方法是什么?另外,如果您想知道“为什么要打扰”,Classifier
,MLP
和CNN
实际上有很多方法,并且我还有更多希望从Classifier继承的Parent类,所以我认为,如果我能够做到这一点,我的程序将会简单得多。预先感谢!