view():重新定义矩阵的形状
view中一个参数定为-1,代表动态调整这个维度上的元素个数,以保证元素的总数不变。
//:地板除,先除再向下取整
高维矩阵的乘法
(m, k, d)*(m, k, d)=(m, k, d),后两维矩阵相乘,第一维不变
p * z不是高位矩阵的乘法,是Hadamard product积,即对应元素相乘。
index_add_:
Tensor.
index_add_
(dim, index, source, *, alpha=1)
按照index给的索引,将source中的值按照dim加到tensor上
tqdm的使用:
tqdm是 python的一个关于进度条的扩展包,在深度学习进程中可以将训练过程用进度条的形式展现出来,会让训练界面更加的美观。
1.各个参数
- iterable : iterable, optional
- Iterable to decorate with a progressbar. Leave blank to manually manage the updates.
- leave:默认是true,在迭代运行结束后是否继续保留进度条显示
- desc('str'): 传入进度条的前缀
- position(int):设置打印进度条的位置,可以设置多个bar
- disable:是否禁用整个进度条,默认是false
- colour(str):进度条的颜色
- set_postfix : 设置信息
2.tqdm.write()
方法提供了一种在不破坏显示进度条的情况下将消息写入控制台的方法。 因此,这个片段提供了正确的输出:
由于在控制台中显示进度条时直击使用print写入控制台会造成显示混乱,使用tqdm.write()将在不破坏进度条的情况下显示
from tqdm import tqdm
import time
pbar = tqdm(total=200) # 设置总长度
for i in range(100):
time.sleep(0.05)
# 每次更新进度条的长度
pbar.write(f'{i}')
pbar.update(1) # 相当于在当前长度的基础上 +1 的操作
pbar.close()
有一个问题:我发现即使使用了pbar.write,依旧会出现打印混乱的情况,另一个问题,真的有必要使用进度条吗?显示也不好看啊