当我的脚本执行可能需要一些时间的任务时,如何使用进度条?
例如,一个需要一些时间才能完成并True在完成时返回的函数.如何在执行功能期间显示进度条?
请注意,我需要实时,所以我无法弄清楚该怎么做.我需要thread这个吗?我不知道.
现在我正在执行函数时不打印任何内容,但是进度条会很好.此外,我更感兴趣的是从代码的角度来看如何做到这一点.
tqdm.notebook我在 Jupyter(版本 3.4.4)中使用进度条时遇到问题。当我启动 for 循环时,我得到以下文本作为输出,而不是进度条:
输入:
from tqdm.notebook import tqdm
for i in tqdm(range(100)):
a = 1
Run Code Online (Sandbox Code Playgroud)
输出:
root:
n: 0
total: 100
elapsed: 0.01399087905883789
ncols: null
nrows: 29
prefix: ""
ascii: false
unit: "it"
unit_scale: false
rate: null
bar_format: null
postfix: null
unit_divisor: 1000
initial: 0
colour: null
Run Code Online (Sandbox Code Playgroud)
在我将 Jupyter 更新到最新版本后,这种情况开始发生。有关 Node.js 和 ipywidgets 的常用解决方案(请参阅此解决方案)无法完成这项工作。
tqdm也是最后一个版本(4.63.0)。
我已经为我的网络功能编写了 PyTorch 代码fit。但是当我tqdm在其中的循环中使用时,它不会从 0% 增加,这是我无法理解的原因。
这是代码:
from tqdm.notebook import tqdm
def fit(model, train_dataset, val_dataset, epochs=1, batch_size=32, warmup_prop=0, lr=5e-5):
device = torch.device('cuda:1')
model.to(device)
train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)
val_loader = DataLoader(val_dataset, batch_size=batch_size, shuffle=False)
optimizer = AdamW(model.parameters(), lr=lr)
num_warmup_steps = int(warmup_prop * epochs * len(train_loader))
num_training_steps = epochs * len(train_loader)
scheduler = get_linear_schedule_with_warmup(optimizer, num_warmup_steps, num_training_steps)
loss_fct = nn.BCEWithLogitsLoss(reduction='mean').to(device)
for epoch in range(epochs):
model.train()
start_time = time.time()
optimizer.zero_grad()
avg_loss = 0
for step, (x, y_batch) in tqdm(enumerate(train_loader), total=len(train_loader)):
y_pred …Run Code Online (Sandbox Code Playgroud) 现在有没有人知道我们如何让 python tqdm 进度条在 Sagemaker Jupyterlab Noteook 上工作?tqdm 进度条从不显示,组件显示为其代码。
例子 :
HBox(children=(FloatProgress(value=0.0, max=5234.0), HTML(value='')))
Run Code Online (Sandbox Code Playgroud)
我知道这里描述的通常修复,但它不起作用,因为尝试执行jupyter lab build将导致这里描述的问题
非常感谢。