У меня есть класс createEmbeds, и я хочу передать ему переменные pretrained_path, ffn_weight_file, bert_ffn_weight_file и embedding_file.
Затем я хочу, чтобы эти переменные передавались при создании новых объектов в этом классе.Я импортировал другие классы, и теперь я хочу создать их экземпляры, передав переменные.
Затем я хочу передать эти объекты другому объекту.
Вот моя попытка
from Scripts.predictor_functions import QAEmbed, FaissTopK, RetreiveQADoc
class createEmbeds:
def __init__(self, pretrained_path = None, ffn_weight_file = None, \
bert_ffn_weight_file = 'models/bertffn_crossentropy/bertffn', embedding_file = 'qa_embeddings/bertffn_crossentropy.csv'):
self.pretrained_path = pretrained_path
self.ffn_weight_file = ffn_weight_file
self.bert_ffn_weight_file = bert_ffn_weight_file
self.embedding_file = embedding_file
def get_qa_embed(self):
qa_embed = QAEmbed(
pretrained_path=self.pretrained_path,
ffn_weight_file=self.ffn_weight_file,
bert_ffn_weight_file=self.bert_ffn_weight_file
)
return qa_embed
def get_faiss_topk(self):
faiss_topk = FaissTopK(self.embedding_file)
return faiss_topk
doc = RetreiveQADoc(get_qa_embed(self), get_faiss_topk(self))
Я получаю
NameError: name 'self' is not defined
Ошибка
Полная ошибка
1 frames
/usr/local/lib/python3.6/dist-packages/Scripts/inference_question_to_topk_functions2.py in createEmbeds()
26 return faiss_topk
27
---> 28 doc = RetreiveQADoc(get_qa_embed(self), get_faiss_topk(self))
29
30 # print(doc.predict('i have a headache.',
NameError: name 'self' is not defined