Как работает этот случайный выбор данных? - PullRequest
0 голосов
/ 03 февраля 2019

В функции get_batch, как она может гарантировать, что каждый случайный выбор индексов из x и y уникален?Из-за своей случайной природы он получает все данные из x и y в конце итераций get_batch?

Вместо случайной выборки, не должен ли он получать данные последовательно?

x = np.arange(0, 5, 0.1)
y = x**3 - 4*x**2 - 2*x + 2

def get_batch(x, y, batch_size=20):
    idxs = np.random.randint(0, len(x), (batch_size))
    return x[idxs], y[idxs]

Затем получите пакетный вызов:

x_batch, y_batch = get_batch(x, y)

Я провел симуляционный тест:

In [48]: for i in range(3): 
    ...:     print(np.random.randint(0, 5, 10)) 
    ...:                                                                                                                                                      
[3 0 2 0 4 2 2 1 4 3]
[1 2 1 3 0 0 0 4 2 2]
[3 0 0 3 0 2 0 2 1 1]

1 Ответ

0 голосов
/ 03 февраля 2019

Этот подход не может гарантировать, что он получит все данные из x и y в конце get_batch итераций.Лучшим подходом было бы перетасовать данные в начале каждой эпохи, а затем последовательно генерировать пакеты.Конечно, если вы делаете Bootstrapping для подгонки разных моделей к разным выборкам из данных (с заменой), это правильный подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...