标签: tqdm

如何修复Jupyter中pandas的tqdm progress_apply?

真的不明白它是一个错误或者只是我的局部问题,仍然有一些问题与使用tqdm进度条progress_apply在Jupyter.

第一次尝试:

from tqdm import tqdm
tqdm_notebook.pandas(desc="Example Desc")
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))
Run Code Online (Sandbox Code Playgroud)

输出(没有任何条形):

AttributeError: 'function' object has no attribute 'pandas'
Run Code Online (Sandbox Code Playgroud)

第二次尝试:

from tqdm import tqdm
tqdm_notebook().pandas(desc="Example Desc")
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))
Run Code Online (Sandbox Code Playgroud)

输出: 两个条(需要一个).第一个栏是空的(0:[00:00,?it/s]),第二个是OK.

任何想法如何更改progress_apply描述和显示栏没有空的初始化栏?:)

PS 文档(https://github.com/tqdm/tqdm)说我可以使用tqdm_notebook,但它对我不起作用:)

# Register `pandas.progress_apply` and `pandas.Series.map_apply` with `tqdm`
# (can use `tqdm_gui`, `tqdm_notebook`, optional kwargs, etc.)
tqdm.pandas(desc="my bar!")
Run Code Online (Sandbox Code Playgroud)

pandas ipython-notebook jupyter jupyter-notebook tqdm

10
推荐指数
5
解决办法
7166
查看次数

如何在网页上制作进度栏以进行熊猫操作

我已经搜寻了一段时间,却想不出办法。我有一个简单的Flask应用程序,它需要一个CSV文件,将其读入Pandas数据框,将其转换并输出为新的CSV文件。我已经成功上传并成功使用HTML进行了转换

<div class="container">
  <form method="POST" action="/convert" enctype="multipart/form-data">
    <div class="form-group">
      <br />
      <input type="file" name="file">
      <input type="submit" name="upload"/>
    </div>
  </form>
</div>
Run Code Online (Sandbox Code Playgroud)

单击“提交”后,它将在后台运行转换一段时间,并在完成后自动触发下载。接受result_df并触发下载的代码如下所示

@app.route('/convert', methods=["POST"])
def convert(
  if request.method == 'POST':
    # Read uploaded file to df
    input_csv_f = request.files['file']
    input_df = pd.read_csv(input_csv_f)
    # TODO: Add progress bar for pd_convert
    result_df = pd_convert(input_df)
    if result_df is not None:
      resp = make_response(result_df.to_csv())
      resp.headers["Content-Disposition"] = "attachment; filename=export.csv"
      resp.headers["Content-Type"] = "text/csv"
      return resp
Run Code Online (Sandbox Code Playgroud)

我想添加一个进度条,pd_convert从本质上来说这是一个熊猫应用操作。我发现该方法tqdm现在可用于熊猫,并且它具有progress_apply而不是的方法apply。但是我不确定是否与在网页上制作进度条有关。我猜应该是因为它可以在Jupyter笔记本上使用。如何pd_convert()在此处添加进度栏?

我想要的最终结果是: …

python ajax flask pandas tqdm

10
推荐指数
1
解决办法
553
查看次数

Python tqdm输出的说明。

我在python中有一个使用tqdm输出进度条的程序,如下所示:

  0%|          |   1/782 [00:02<31:00,  2.38s/it, loss=0.763 ]
 17%|??        | 134/782 [00:19<01:21,  7.98it/s, loss=0.375 ]
100%|??????????| 782/782 [03:50<00:00,  2.73it/s, loss=0.0193]
100%|??????????| 779/782 [03:47<00:00,  4.33it/s, loss=0.0175]
100%|??????????| 780/782 [03:48<00:00,  4.08it/s, loss=0.0172]
100%|??????????| 781/782 [03:48<00:00,  3.83it/s, loss=0.0195]
Run Code Online (Sandbox Code Playgroud)

让我们进入第二行:

 17%|??        | 134/782 [00:19<01:21,  7.98it/s, loss=0.375 ]
Run Code Online (Sandbox Code Playgroud)

字段顺序为:

  • 17%:完成百分比。
  • |?? | : 进度条
  • 134/782:迭代的项目数超过了项目总数。
  • [00:19<01:21, 7.98it/s, loss=0.375 ]:让我们分别在下面进行分解。
    • 00:19<01:21<<HERE>>无法解决这个问题。
    • 7.98it/s:每秒迭代
    • loss=0.375:正如标签上所说,这是损失。

我知道它显示进度和统计信息,例如每秒迭代,获得的损失等。但是,我无法准确地说出这种时间格式(00:19<01:21例如)在每一行中代表什么?该<标志表示什么?

python tqdm

9
推荐指数
2
解决办法
1207
查看次数

Jupyter Notebook中的Tqdm 4.28.1“未找到IntProgress。请更新jupyter和ipywidgets。”

我正在尝试在我的Python代码中使用tqdm_notebook,但是我遇到了这个错误

import tqdm

for i in tqdm.tqdm_notebook(range(2, int(total_number)//20):i
Run Code Online (Sandbox Code Playgroud)

错误:

IntProgress not found. Please update jupyter and ipywidgets.
ImportError: IntProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
Run Code Online (Sandbox Code Playgroud)

我正在使用Python 3.7.1和tqdm版本(4.28.1)

python jupyter-notebook tqdm

9
推荐指数
4
解决办法
7169
查看次数

无法在笔记本中使用tqdm_notebook

当我使用tqdm_notebookin迭代时:

from tqdm import tqdm_notebook as tqdm

它仅显示:

HBox(children=(IntProgress(value=1, bar_style='info', max=1), HTML(value='')))
Run Code Online (Sandbox Code Playgroud)

我能怎么做?

python jupyter-notebook tqdm

9
推荐指数
1
解决办法
1609
查看次数

如何在python中通过多进程使用tqdm?

我正试图tqdm通过多个过程来使用.而且行为并不像预期的那样.我认为重点是价值pbar不会通过流程更新.那么如何处理这个问题呢?我也尝试过手动Value更新pbar.n,但仍然失败了.它似乎tqdm不支持更新值并手动渲染.

def test(lock, pbar):
    for i in range(10000):
        sleep(0.1)
        lock.acquire()
        pbar.update()
        lock.release()

pbar = tqdm(total = 10000)
lock = Lock()
for i in range(5):
    Process(target = test, args = (lock, pbar))
Run Code Online (Sandbox Code Playgroud)

python multiprocessing python-3.x tqdm

8
推荐指数
1
解决办法
3063
查看次数

tqdm没有显示栏

我正在使用tqdm库并且它没有给我进度条,而是它给我输出看起来像这样它只是告诉我迭代:

251it [01:44, 2.39it/s]

知道为什么代码会这样做吗?我以为这可能是因为我把它传给了一台发电机但是我曾经使用过去曾经使用过的发电机.我以前从来没有真正搞过tdqm格式.以下是源代码的一部分:

train_iter = zip(train_x, train_y) #train_x and train_y are just lists of elements
....
def train(train_iter, model, criterion, optimizer):
    model.train()
    total_loss = 0
    for x, y in tqdm(train_iter):
        x = x.transpose(0, 1)
        y = y.transpose(0, 1)
        optimizer.zero_grad()
        bloss = model.forward(x, y, criterion)   
        bloss.backward()
        torch.nn.utils.clip_grad_norm(model.parameters(), args.clip)
        optimizer.step()        
        total_loss += bloss.data[0]
    return total_loss
Run Code Online (Sandbox Code Playgroud)

python tqdm

8
推荐指数
2
解决办法
4868
查看次数

进度条使用tqdm和多进程将代码速度降低5倍

我使用tqdm将进度条添加到了2.7 python代码中,但是它大大降低了我的代码速度。如果没有进度条,则需要12秒,而使用进度条则需要57秒。

没有进度条的代码如下所示:

p = mp.Pool()
combs = various combinations
result = p.map(self.parallelize, combs)
p.close()
p.join()
Run Code Online (Sandbox Code Playgroud)

带有进度条的代码如下:

from tqdm import tqdm
p = mp.Pool()
combs = various combinations
result = list(tqdm(p.imap(self.parallelize, combs), total = 5000))
p.close()
p.join()
Run Code Online (Sandbox Code Playgroud)

有没有一种更好的方法不会降低我的代码速度呢?

python parallel-processing multiprocess progress-bar tqdm

8
推荐指数
1
解决办法
911
查看次数

Python:tqdm 不显示进度条

我已经为我的网络功能编写了 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 jupyter-notebook tqdm

8
推荐指数
1
解决办法
2万
查看次数

tqdm 的总参数有什么作用?

两者有什么区别?tqdm 环绕任何可迭代对象。但是我不确定 tqdm 在给定两个参数时如何运行。

# train_ids = list
elements = ('a', 'b', 'c')
for count, ele in tqdm(enumerate(elements)):
    print(count, i)
# two arguments
for count, ele in tqdm(enumerate(elements), total=len(train_ids)):
    print(count, i)
Run Code Online (Sandbox Code Playgroud)

python tqdm

7
推荐指数
1
解决办法
9098
查看次数