def __init__(self, shuffle=True, utter_start=0):#read data
#shuffle=True意为先打乱再取batch
arithmetic n.算术
就地操作 将结果存储到操作数中的操作称为就地操作。它们由_
后缀表示。例如:x.copy_(y)
, x.t_()
, 将改变x
。就地操作可以节省一些内存,但在计算导数时可能会出现问题,因为会立即丢失历史记录。因此,不鼓励使用它们。
pytorch中两个张量的乘法可以分为两种:
- 两个张量对应元素相乘,在PyTorch中可以通过torch.mul函数(或*运算符)实现;
- 两个张量矩阵相乘,在PyTorch中可以通过torch.matmul函数实现.
sum():将张量的所有值聚合成一个值
如果你有一个单元素张量,你可以使用item()
方法将其转换为 Python 数值:
agg = tensor.sum()
agg_item = agg.item()
print(agg_item, type(agg_item))
输出为:
12.0 <class 'float'>
CPU 和 NumPy Array上的张量可以共享它们的底层内存位置,改变一个就会改变另一个。
iterable n.可迭代的
自定义数据集类必须实现三个函数: __ init __ 、__len__和__getitem__
instantiating v-ing. 实例化
annotation n.注释
__getitem__ 函数从给定索引idx
处的数据集中加载并返回样本。根据索引,它识别图像在磁盘上的位置,使用 将其转换为张量。
数据集shuffle后按batchsize组成batch
Dataset为抽象类,不能实例化,只能由别的类继承。
而Dataloader是可以实例化的。
getitem、len都是magic function
///
遇到TypeError:guvectorize() missing 1 required positional argument: 'signature'
解决方法:将resampy降低版本。
目前用到但github中未写出:resampy、numba、pathlib、pyyaml