Почему, кажется, ловушка в бесконечном l oop, когда я тренирую свою модель, использую мой созданный клиентский DataSet - PullRequest
0 голосов
/ 06 апреля 2020

Я создаю DataSet после EMNIST. Но когда я тренирую мою модель, кажется, что она застревает в бесконечном количестве l oop, и оперативная память заполняется за короткое время. Вот код Я печатаю свой набор данных и набор данных EMNIST, чтобы провести сравнение (BAL1 - мой DataSet):

 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 Compute Engine» становится занятым. Я долго жду, но ничего не рассчитано, поэтому я должен прервать его.

...