spacy-pytorch-трансформеры: потеря = 0 постоянно во время тренировки - PullRequest
0 голосов
/ 24 сентября 2019

Я использую spacy 2.1.8 и spacy-pytorch-transformers 0.4.0 для обучения классификатора текста.Мой код сильно вдохновлен их примером , но модель ничего не изучает, что, кажется, вызвано потерей, равной 0 все время.Минимальный (не) рабочий пример моего кода выглядит следующим образом:

nlp = spacy.load("en_pytt_xlnetbasecased_lg")
textcategorizer = nlp.create_pipe("pytt_textcat", config={"exclusive_classes": True, "architecture": "softmax_last_hidden"})

for label in labels:
    textcategorizer.add_label(label)
nlp.add_pipe(textcategorizer, last=True)

optimizer = nlp.resume_training()

for epoch in range(num_of_epochs):
    np.random.shuffle(train)
    losses = Counter()

    for step, batch in enumerate(minibatch(train, size=batch_size)):
        optimizer.pytt_lr = 0.005
        texts, cats = zip(*batch)
        _, cats = preprocessed_labels_to_categories_for_training_and_eval(cats)

        nlp.update(texts, cats, sgd=optimizer, losses=losses, drop=0.1)

Я уже дважды и трижды проверял, что соответствующие переменные, такие как cats и texts, содержат действительные и правильные значения.

Есть ли что-то, что мне не хватает?

...