Збільшення даних в тензорному потоці

I am trying to replicate a network for facial key point detection like in the following link Daniel Nouri's Blog on KFKD. The blog uses Lasagne but i am trying to do using Tensorflow. I am unable to follow the part of performing data augmentation in Tensorflow.

Всі методи, які я бачив, або збільшили до тренування, або застосовували лише значення X, а не Y.

Я хочу знайти заміну класу FlipBatchIterator, який використовується в блозі

from nolearn.lasagne import BatchIterator

class FlipBatchIterator(BatchIterator):
flip_indices = [
    (0, 2), (1, 3),
    (4, 8), (5, 9), (6, 10), (7, 11),
    (12, 16), (13, 17), (14, 18), (15, 19),
    (22, 24), (23, 25),
    ]

def transform(self, Xb, yb):
    Xb, yb = super(FlipBatchIterator, self).transform(Xb, yb)

    # Flip half of the images in this batch at random:
    bs = Xb.shape[0]
    indices = np.random.choice(bs, bs/2, replace=False)
    Xb[indices] = Xb[indices, :, :, ::-1]

    if yb is not None:
        # Horizontal flip of all x coordinates:
        yb[indices, ::2] = yb[indices, ::2] * -1

        # Swap places, e.g. left_eye_center_x -> right_eye_center_x
        for a, b in self.flip_indices:
            yb[indices, a], yb[indices, b] = (
                yb[indices, b], yb[indices, a])

    return Xb, yb



net3 = NeuralNet(
# ...
regression=True,
batch_iterator_train=FlipBatchIterator(batch_size=128),
max_epochs=3000,
verbose=1,
)
3

Відповідей немає

0