Можем ли мы использовать переменную внутри определения метода внутри класса, не определяя ее вне метода и внутри класса apriori? - PullRequest
0 голосов
/ 14 апреля 2020

Я новичок в Pytorch и python, я искал в качестве некоторых примеров кодов и

Мне интересно использование d в следующих кодах:

def train_and_eval(self):
        self.entity_idxs = {d.entities[i]:i for i in range(len(d.entities))}
        self.relation_idxs = {d.relations[i]:i for i in range(len(d.relations))}

в d.entities [i] я нигде не видел код, где определено d.

Так что бы это могло значить? можешь объяснить коды? Я не знаю, ясен ли мой вопрос или нет, пожалуйста, спросите, нужна ли вам дополнительная справка.

Я также могу показать начало кода:

class Experiment:

    def __init__(self, learning_rate=0.0005, ent_vec_dim=200, rel_vec_dim=200, 
                 num_iterations=500, batch_size=128, decay_rate=0., cuda=False, 
                 input_dropout=0.3, hidden_dropout1=0.4, hidden_dropout2=0.5,
                 label_smoothing=0.):
        self.learning_rate = learning_rate
        self.ent_vec_dim = ent_vec_dim
        self.rel_vec_dim = rel_vec_dim
        self.num_iterations = num_iterations
        self.batch_size = batch_size
        self.decay_rate = decay_rate
        self.label_smoothing = label_smoothing
        self.cuda = cuda
        self.kwargs = {"input_dropout": input_dropout, "hidden_dropout1": hidden_dropout1,
                       "hidden_dropout2": hidden_dropout2}

    def get_data_idxs(self, data):
        data_idxs = [(self.entity_idxs[data[i][0]], self.relation_idxs[data[i][1]], \
                      self.entity_idxs[data[i][2]]) for i in range(len(data))]
        return data_idxs

Вы видите, что здесь они использовали self.entity_idxs в первом методе класса, и он нигде не был определен. и это снова было использовано позже в классе, который является первым фрагментом кода, который я предоставил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...