【发布时间】:2020-04-04 08:06:38
【问题描述】:
这是来自https://www.tensorflow.org/federated/tutorials/federated_learning_for_image_classification的代码sn-p
该示例是使用联邦学习的图像分类问题。下面的函数是 emnist 数据的预处理函数(大小为 28*28)。任何人都可以帮助理解为什么数据被重塑为 -1 到 784 吗?据我了解,我们将其从二维数组转换为一维数组,因为它更易于处理。但我不确定为什么包含 -1。 0 o 784 还不够吗?
NUM_CLIENTS = 10
NUM_EPOCHS = 5
BATCH_SIZE = 20
SHUFFLE_BUFFER = 100
PREFETCH_BUFFER=10
def preprocess(dataset):
def batch_format_fn(element):
"""Flatten a batch `pixels` and return the features as an `OrderedDict`."""
return collections.OrderedDict(
x=tf.reshape(element['pixels'], **[-1, 784]**),
y=tf.reshape(element['label'], **[-1, 1]**))
return dataset.repeat(NUM_EPOCHS).shuffle(SHUFFLE_BUFFER).batch(
BATCH_SIZE).map(batch_format_fn).prefetch(PREFETCH_BUFFER)
【问题讨论】:
-
如果用户可以在否决问题之前在评论中添加原因,那将非常有帮助。我不知道这个问题有什么问题,如果我犯了一些错误,没有任何反馈,我将在以后的问题中重复错误。
标签: python machine-learning mnist tensorflow-federated