tqdm_notebook的描述被截断了

4

我正在使用 tqdm_notebook 来展示进度,并更新描述以跟踪损失函数和迭代次数。如何使得描述不被截断(如下图所示)。

我通过定义 ebar = tqdm_notebook(range(NUM_EPOCHS)) 并使用以下代码来更新描述:

ebar.set_description('c_loss: {:.5f}, r_loss: {:.5f}, v_loss: {:.5F}'.format(av_class_loss,
                                                                             av_recon_loss,
                                                                             av_valid_loss))

enter image description here

1个回答

2
最近我一直在研究这个问题,幸运的是,自从tqdm版本4.28.1以来,它已经被解决了,可以在Pypi上获取。
参考此提交
也就是说,进度条是一个来自ipywidgets的小部件,它有一个专门的进度条小部件,官方不能更改其大小。有关小部件描述的更多信息,请参见此处
现在,看起来你的描述相当长,将描述长度设置为“初始”可能会使您最终得到一个1像素宽的进度条。
如果您需要获得更大的进度条,最简单的方法是将其分成两行显示,并使用标签小部件直接更改其值。
from ipywidgets import HBox, Label, IntProgress
import time
from IPython.display import display
from tqdm import tqdm_notebook as tqdm
a = Label('A too long description')
display(a)
b = tqdm(range(100))
for i in b:
    time.sleep(0.1)
    a.value = 'a too long descriptio' + 'o'*i +'n'

如果你真的需要将所有内容放在一行中,你可以修改tqdm的代码这里,使得tqdm小部件是一个Hbox,包含文本、IntProgress和再次文本。
ptext = HTML()
pdesc = HTML()
container = HBox(children=[pdesc, pbar, ptext])

完成后,您可以按照此处的方式更新描述,但是更新此处的描述。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接