我理解Dataset API是一种迭代器,它不会将整个数据集加载到内存中,因此无法找到数据集的大小.我正在谈论存储在文本文件或tfRecord文件中的大型数据语料库.通常使用tf.data.TextLineDataset或类似的东西来读取这些文件.找到使用的数据集加载大小是微不足道的tf.data.Dataset.from_tensor_slices.
我问数据集大小的原因如下:假设我的数据集大小为1000个元素.批量大小= 50个元素.然后训练步骤/批次(假设1个纪元)= 20.在这20个步骤中,我想将我的学习率从0.1到0.01指数衰减为
tf.train.exponential_decay(
learning_rate = 0.1,
global_step = global_step,
decay_steps = 20,
decay_rate = 0.1,
staircase=False,
name=None
)
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我有"和"想要设置decay_steps = number of steps/batches per epoch = num_elements/batch_size.仅当预先知道数据集中的元素数量时,才能计算此值.
另一个原因预先知道尺寸是将数据拆分为使用训练集和测试集tf.data.Dataset.take(),tf.data.Dataset.skip()方法.
PS:我不是在寻找蛮力方法,例如迭代整个数据集并更新计数器来计算元素数量或放置非常大的批量大小,然后查找结果数据集的大小等.
当我在Android Studio中单击"结构"侧栏时,它会显示当前类的内容.但是,某些图标和符号用于表示不同的成员,例如,带有字母m的圆圈用于方法等.我在哪里可以获得完整列表以及所有图标和符号的详细信息?(类似于传说/键的解释各种图标和符号就是我正在寻找的)
谢谢!
如果多个 GPU 级别上有不同长度的张量数组,则默认all_gather方法不起作用,因为它要求长度相同。
例如,如果您有:
if gpu == 0:
q = torch.tensor([1.5, 2.3], device=torch.device(gpu))
else:
q = torch.tensor([5.3], device=torch.device(gpu))
Run Code Online (Sandbox Code Playgroud)
如果我需要收集这两个张量数组,如下所示:
all_q = [torch.tensor([1.5, 2.3], torch.tensor[5.3])
默认torch.all_gather不起作用,因为长度2, 1不同。
python ×2
android ×1
distributed ×1
legend ×1
pytorch ×1
sidebar ×1
structure ×1
tensorflow ×1