2017-04-07 8 views
2

Je souhaite extraire des patchs d'image de l'image d'entrée dans mon modèle tensorflow. Disons que l'image d'entrée est [batch, in_width, in_height, channels], je veux afficher [no_patches, patch_width, patch_height, channels]. no_patches sont le nombre total de correctifs peut être extrait à partir du input_image. J'ai découvert que tf.extract_image_patches peut faire le travail. Cependant, je ne comprends pas la différence des arguments strides et rates. Est-ce que quelqu'un peut expliquer comment utiliser la fonction ci-dessus pour faire le travail?Comment définir les arguments de tf.extract_image_patches

Répondre

0

strides concerne le mouvement de la fenêtre sur vos données.

rates est à propos de la «répartition» de la fenêtre. Par exemple, si vous utilisez strides = [1,5,5,1], votre fenêtre saute de 5 pixels dans la 1ère et la 2ème dimension. Si vous utilisez rates = [1,1,1,1] votre fenêtre est 'compacte', ce qui signifie que tous les pixels sont contigus. Si vous utilisez rates = [1,1,2,1], puis la fenêtre se répand dans la 2ème dimension et prend un pixel tous les 2.

Exemple avec ksizes = [1,3,2,1] (ignorer des progrès pour l'instant): à gauche que nous utilisons, rates = [1,1,1,1], au milieu que nous utilisons rates = [1,1,2,1], sur la droite, nous utilisons rates = [1,2,2,1]:

* * 3 4 5   * 2 * 4 5   * 2 * 4 5 
* * 8 9 10   * 7 * 9 10   6 7 8 9 10 
* * 13 14 15   * 12 * 14 15   * 12 * 14 15 
16 17 18 19 20   16 17 18 19 20   16 17 18 19 20 
21 22 23 24 25   21 22 23 24 25   * 22 * 24 25