Моя цель - запустить некоторые скрипты Python с pdb
или ipdb
в JupyterLab для захвата моей истории отладки.
Я впервые вставил set_trace()
в свой скрипт Python:
import torch
from IPython.core.debugger import set_trace
def train_batch(model_instance, inputs_source, labels_source, inputs_target, optimizer, args):
inputs = torch.cat((inputs_source, inputs_target), dim=0)
total_loss, train_stats = model_instance.get_loss(inputs, labels_source)
total_loss[args.train_loss].backward()
set_trace() # insert breakpoint
optimizer.step()
return train_stats
Затем я запускаю этот скрипт в моем JupyterLab:
!python ./trainer/train.py \
--base_config ./config/sgd_vannila_0.001.yml \
--dataset Office-Home \
--class_num 50 \
--src_address ./data/office-home/Art.txt \
--tgt_address ./data/office-home/Clipart.txt \
--name transfer.debug.rand_noise \
--train_steps 10000 \
--seed 2 \
--filter_classes=0,50 \
--eval_interval 50
Выполнение останавливается на точке останова, но не предоставляет интерактивного поля для запроса каких-либо инструкций ipdb
.То же самое происходит с pdb
или ноутбуком Jupyter.
Что я пробовал:
- Перезапуск браузера Chrome или моего ноутбука не помогает
- . Добавление точки останова внутри блока кода ноутбука работает (см. скриншот ниже), но я хотел бы иметь возможность отлаживать код, написанный в файле моего модуля python
Информация о версии:
- ipdb-0.12.2
- Python 3.6.9
- JupyterLab 0.35.5