progressbar 用法和shape的用法

本文介绍了如何在PyTorch中操作张量的shape属性,包括获取维度和元素数量,以及使用progressbar库创建和定制进度条。从一维到二维张量的形状操作演示,以及不同进度条用法实例,适合初学者快速掌握相关技巧。
摘要由CSDN通过智能技术生成
shape的用法
import torch
#原文地址  https://www.pythonheidong.com/blog/article/759610/fbc30ff6fcd949c8de7b/
b = torch.rand(3,4)
print(b)  ##  返回一个3*4的张量

print(b.shape)  ## torch.Size([3, 4])

print(b.shape[0]) ## 这里是来返回第一个维度

b = torch.rand(6)  ## 这里是来随机生成一维的向量的 本质上是对应的6行的是没有列的
print(b)

print(b.shape)
print(b.shape[0])

b = torch.rand(1,6)  ## 这里是来生成二维的向量的
print(b)
print(b.shape)
print(b.shape[0])
print(b.shape[1])  ## 这里输出的是对应的1行6列的。
所用到包
from __future__ import division  ## 这个是必须被定义在文件的开始的处
import time
from tqdm import tqdm
from progressbar import ProgressBar, AnimatedMarker, Percentage
import sys
progressbar 用法
import sys, time

j = '#'
if __name__ == '__main__':  ## 文件是从这里来开始进行执行
    for i in range(1, 61):
        j += '#'    ## 其中j的过程就是在不断的输出#
        ## 输出stdout(标准输出)可以使用sys.stdout.write
        ## 这里是来输出进度条所对应的百分比的信息的,其中r是对应的输出数据以后,光标不换行,从而回到最前面
        sys.stdout.write(str(int((i / 60) * 100)) + '%  ||' + j + '->' + "\r")
        sys.stdout.flush()
        time.sleep(0.01)  ## 控制一次输出是需要多长的时间的。
print(j)

import sys,time
if __name__ == '__main__':
    for i in range(1,61):
        sys.stdout.write('#'+'->'+"\b\b") ## 通过退格字符,退出两格后,在来输出#号
        sys.stdout.flush()
        time.sleep(0.1)
print
import sys, time
from progressbar import *   ##通过造轮子来更新进度条

total = 1000

# 基本用法
progress = ProgressBar()  ## 创建造轮子的对象
for i in progress(range(total)):
    time.sleep(0.01)

pbar = ProgressBar().start()  ## 是对应的进度条的开始的过程的。
for i in range(1, 1000):
    pbar.update(int((i / (total - 1)) * 100))  ## 这是来对应的更新的比列的
    time.sleep(0.01)
pbar.finish()  ## 结束
#高级用法
## 进度条对完成百分比  Bar选择进度条所对应的样式,ETA()是对应的时间所输出的格式
widgets = ['Progress: ', Percentage(), ' ', Bar(marker=RotatingMarker('>-=')),
           ' ', ETA(), ' ', FileTransferSpeed()]
## 然后是进度条就是按照widgets这个方式来进行输出,
pbar = ProgressBar(widgets=widgets, maxval=10000000).start()
for i in range(1000000):
  # do something
  pbar.update(10*i+1)   ## 进度条每次更新10
  time.sleep(0.00001)
pbar.finish()   ## 这里是最后来完成相应的更新的过程的
import sys
import time
from progressbar import AnimatedMarker, Bar, BouncingBar, Counter, ETA, \
    FileTransferSpeed, FormatLabel, Percentage, \
    ProgressBar, ReverseBar, RotatingMarker, \
    SimpleProgress, Timer  ## 然后是全部把这些包进行导入后就,我们在来进行使用的过程的。

## 定义的第一例子

pbar = ProgressBar(widgets=[Percentage(),Bar()], maxval=300).start()
for i in range(300):
    time.sleep(0.01)
    pbar.update(i + 1)
pbar.finish()

## 第二个例子
widgets = ['Test: ', Percentage(), ' ', Bar(marker=RotatingMarker('>-=')),
           ' ', ETA(), ' ', FileTransferSpeed()]
pbar = ProgressBar(widgets=widgets, maxval=10000000).start()
for i in range(1000000):
    # do something
    pbar.update(10 * i + 1)
    time.sleep(0.00001)
pbar.finish()


## 第三个例子
class CrazyFileTransferSpeed(FileTransferSpeed):
    """It's bigger between 45 and 80 percent."""

    def update(self, pbar):
        if 45 < pbar.percentage() < 80:
            return 'Bigger Now ' + FileTransferSpeed.update(self, pbar)
        else:
            return FileTransferSpeed.update(self, pbar)

widgets = [CrazyFileTransferSpeed(), ' <<<', Bar(), '>>> ',
           Percentage(), ' ', ETA()]
pbar = ProgressBar(widgets=widgets, maxval=10000000)
# maybe do something
pbar.start()
for i in range(2000000):
    # do something
    pbar.update(5 * i + 1)   ## 后面是对应的进度条来进行更新的过程的。
pbar.finish()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值