D2L书中的6.3中的相邻采样方法看不太懂

在相邻采样中:
epoch_size = (batch_len - 1) // num_steps

按我的理解,这句代码计算出一个epoch由几个部分组成。但是用(batch_len-1) // num_steps的方法和随机采样中的计算epoch_size = num_examples // batch_size完全不一样,有点理解不了。

求问,这个计算方法真的是正确的么?

相邻采样的batch_len的物理意义是一个未切分的数据的长度,此时原始数据要求第一维的大小为batch_size,然后再将第二维除以num_steps,实际上是原始数据第二维的暴力切分,从而形成满足batch_size要求的多组数据,切成的段数就是epoch_size。而随机采样只能一个样本一个样本搞出来,所以就用样本总数除以batch_size,这一点就比较好懂。