я не могу использовать pretrained_model = URLs.WT103 из fastai.text - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь создать модель, которая предсказывает слово как ввод и вывод как абзац.Я получаю сообщение об ошибке при попытке реализовать тот же пример, который приведен на fastai | text , для моего собственного набора данных.Это дает ошибку в следующем шаге.Когда вы просматривали сайт, это не имело значения, пока вы не получили код ниже.Но этот код выдает ошибку.Что может быть причиной этой ошибки?

Код:

from fastai import *
from fastai.text import * 

path = untar_data(URLs.IMDB_SAMPLE)

df = pd.read_csv(path/'texts.csv')

# Language model data
data_lm = TextLMDataBunch.from_csv(path, 'texts.csv')
# Classifier model data
data_clas = TextClasDataBunch.from_csv(path, 'texts.csv', 
vocab=data_lm.train_ds.vocab, bs=32)

data_lm.save()
data_clas.save()

data_lm = TextLMDataBunch.load(path)
data_clas = TextClasDataBunch.load(path, bs=32)

learn = language_model_learner(data_lm, pretrained_model=URLs.WT103, drop_mult=0.5)
learn.fit_one_cycle(1, 1e-2)

Код ошибки:

learn = language_model_learner(data_lm, pretrained_model=URLs.WT103, drop_mult=0.5)

Вывод:

    102     if not ps: return None
    103     if b is None: return ps[0].requires_grad
--> 104     for p in ps: p.requires_grad=b
    105 
    106 def trainable_params(m:nn.Module)->ParamList:

RuntimeError: you can only change requires_grad flags of leaf variables. If you want to use a computed variable in a subgraph that doesn't require differentiation use var_no_grad = var.detach().

1 Ответ

0 голосов
/ 03 декабря 2018

установите значение grad в false с помощью следующей команды: torch.set_grad_enabled (False) (используйте его перед созданием объекта ученика)

и оберните вызов функции (learn.fit cycle ()) с помощью torch.enable_grad ():

...