我创建了一个DataSet
以下 EMNIST。但是当我训练我的模型时,它似乎陷入了无限循环,并且 RAM 很快就会被填满。这是代码。我打印我的数据集和 EMNIST 数据集以进行比较(BAL1
是我的数据集):
print(tf.data.Dataset.from_tensor_slices(
collections.OrderedDict(
(name, ds.value) for name, ds
in sorted(f["examples"][BAL1.client_ids[0]].items())
)))
example_dataset = emnist_train.create_tf_dataset_for_client(
emnist_train.client_ids[0])
print(example_dataset)
结果如下:
<TensorSliceDataset shapes: OrderedDict([(label, ()), (pixels, (28, 28))]), types: OrderedDict([(label, tf.int32), (pixels, tf.float32)])>
<TensorSliceDataset shapes: OrderedDict([(label, ()), (pixels, (28, 28))]), types: OrderedDict([(label, tf.int32), (pixels, tf.float32)])>
这是我BAL1
用来替换 EMNIST 的部分:
sample_clients = BAL1.client_ids[0:NUM_CLIENTS]
federated_train_data = make_federated_data(BAL1, sample_clients)
state, metrics = iterative_process.next(state, federated_train_data)
print('round 1, metrics={}'.format(metrics))
我的模型可以很好地与 EMNIST 配合使用。但是,如果我将 EMNIST 更改为我的数据集,“Python3 Google 计算引擎”就会变得忙碌。即使等了很长时间,也没有任何计算,所以我不得不打断它。