Выбрать или нарезать тензор с помощью тензорного массива случайных индексов?

Я пытаюсь воспроизвести это в TensorFlow:

mat = np.matrix("1,2,3;4,5,6;7,8,9")
matrix([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])
mat[2]
matrix([[7, 8, 9]])

Я получаю эту ошибку:

X_batch = X_train[batch]

IndexError: допустимыми индексами являются только целые числа, срезы (:), многоточие (...), numpy.newaxis (None) и целые или логические массивы.

X_train равно batch_size x (other dimensions), а batch – одномерному тензору случайных значений.

Я пытаюсь взять случайную партию из тренировочного набора (на самом деле я пытаюсь понять, как тренироваться для нескольких эпох, вопрос здесь) и думал, что случайный тензор индексов - это путь, но это не работает.


person djechlin    schedule 25.02.2018    source источник


Ответы (1)


Я думаю, что нашел ответ на этот похожий вопрос: Tensorflow: использование tf. slice для разделения ввода

Ответ, кажется, tf.gather, который делает именно это.

person djechlin    schedule 25.02.2018