Transformers: Error started happening today: ImportError: cannot import name 'get_linear_schedule_with_warmup'

Created on 14 Nov 2019  路  11Comments  路  Source: huggingface/transformers

馃悰 Bug

Model I am using (Bert, XLNet....): Bert

Language I am using the model on (English, Chinese....): English

The problem arise when using:

  • [ x] the official example scripts: (give details)

The squad script:
https://github.com/huggingface/transformers/blob/master/examples/run_squad.py

The tasks I am working on is:

  • [X ] an official GLUE/SQUaD task: (give the name)

Squad 2.0 from https://rajpurkar.github.io/SQuAD-explorer/

  • [ ] my own task or dataset: (give details)

To Reproduce

!pip install transformers
import urllib.request

url = 'https://rajpurkar.github.io/SQuAD-explorer/dataset/train-v2.0.json'
urllib.request.urlretrieve(url, 'train-v2.0.json')

url = 'https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v2.0.json'
urllib.request.urlretrieve(url, 'dev-v2.0.json')
!wget 'https://raw.githubusercontent.com/huggingface/transformers/master/examples/run_squad.py'
!wget 'https://raw.githubusercontent.com/huggingface/pytorch-transformers/master/examples/utils_squad.py'
!wget 'https://raw.githubusercontent.com/huggingface/pytorch-transformers/master/examples/utils_squad_evaluate.py'

# $SQUAD_DIR/train-v1.1.json

SQUAD_Train = '/content/train-v2.0.json'
SQUAD_Dev = '/content/dev-v2.0.json'

!python run_squad.py \
  --model_type bert \
  --model_name_or_path bert-base-cased \
  --do_train \
  --do_eval \
  --do_lower_case \
  --train_file '$SQUAD_Train' \
  --predict_file '$SQUAD_Dev' \
  --per_gpu_train_batch_size 12 \
  --learning_rate 3e-5 \
  --num_train_epochs 2.0 \
  --max_seq_length 384 \
  --doc_stride 128 \
  --version_2_with_negative \
  --output_dir /tmp/debug_squad/

Results in

ImportError: cannot import name 'get_linear_schedule_with_warmup'

I ran it yesterday and it worked fine, but today it's not working.

For convenience, here's a colab notebook with the code

https://colab.research.google.com/drive/1tNisXX5siuNnkuEQ-X_XdEdDTtdJ0qeL

Most helpful comment

The version of the lib you use is not in sync with the scripts you run (cc @rlouf, @LysandreJik)

If you run the scripts from master, then you also need to install the lib from master:

pip install git+https://github.com/huggingface/transformers

This is a frequent issue so maybe we should do something about it, @thomwolf

All 11 comments

try edit:
from transformers import AdamW
from transformers import WarmupLinearSchedule as get_linear_schedule_with_warmup

I tried the WarmupLinearSchedule, but I have a problem no key num_warmup_steps and num_training_steps.
scheduler = WarmupLinearSchedule(optimizer, num_warmup_steps=args.warmup_steps,
num_training_steps=t_total)
I think get_linear_schedule_with_warmup and WarmupLinearSchedule are two different scheduler

The version of the lib you use is not in sync with the scripts you run (cc @rlouf, @LysandreJik)

If you run the scripts from master, then you also need to install the lib from master:

pip install git+https://github.com/huggingface/transformers

This is a frequent issue so maybe we should do something about it, @thomwolf

I tried the WarmupLinearSchedule, but I have a problem no key num_warmup_steps and num_training_steps.
scheduler = WarmupLinearSchedule(optimizer, num_warmup_steps=args.warmup_steps,
num_training_steps=t_total)
I think get_linear_schedule_with_warmup and WarmupLinearSchedule are two different scheduler

They are the same schedulers but we introduced breaking changes, and indeed renamed warmup_steps -> num_warmup_steps and t_total -> 藡num_training_steps`.

And yes, to work on the same version of the lib as the examples, go in the root directory and:

makevirtualenv my-project && workon my-project # or anything else you use to create a virtual environnement 
pip install .  # or Julien-c鈥檚 command

@julien-c I asked for advice on this one.

The version of the lib you use is not in sync with the scripts you run (cc @rlouf, @LysandreJik)

If you run the scripts from master, then you also need to install the lib from master:

pip install git+https://github.com/huggingface/transformers

This is a frequent issue so maybe we should do something about it, @thomwolf

Maybe we can indicate clearly on https://github.com/huggingface/transformers/blob/master/README.md#from-source or documentation.

same problem for me too :(

same problem for me too :(
reinstall the package from local:
pip install .

We are documenting this in #1889. It is because you are trying to run bleeding-edge examples with a pip-installed version of the library, which corresponds to the last release. Do as @YuxiangLu says in a new virtual environment.

can be closed because solved in #1889 ?

when breaking changes are introduced the major number should increase to make the users aware.

Indeed @aminHatim ! This is why this was released in version 2.2.0 an hour ago. Breaking changes are bound to happen when installing from source or running bleeding edges examples (which are based on the source).

Was this page helpful?
0 / 5 - 0 ratings

Related issues

adigoryl picture adigoryl  路  3Comments

0x01h picture 0x01h  路  3Comments

hsajjad picture hsajjad  路  3Comments

rsanjaykamath picture rsanjaykamath  路  3Comments

guanlongtianzi picture guanlongtianzi  路  3Comments