https://zh.d2l.ai/chapter_linear-networks/image-classification-dataset.html
3.5.2 位置 train_iter = tf.data.Dataset.from_tensor_slices(mnist_train).batch(
batch_size).shuffle(len(mnist_train[0]))
这里写错了吧,应该先shuffle再batch,经过测试,如果先batch再shuffle的话,会对batch后得到的batches进行shuffle操作,并且在这种情况下shuffle的参数传len(mnist_train[0])也是没有意义的,按照tensorflow的文档perfect shuffle应该传len(batches)。所以只有调换顺序这里代码的逻辑才说得通。
看这一篇的解释,不过按照官网的解释确实因该先shuffle,在batch,不然shuffle的意义就没了,具体是那一篇得找找,
不过这个是链式调用改起来也容易