Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

tf.image.extract_patches

TensorFlow 1 Version Quelltext anzeigen auf GitHub

Extrahieren Sie patches von images .

Diese op sammelt Patches aus dem Eingangsbild, als ob eine Faltung Anwendung. Alle extrahierten Patches werden in der Tiefe (letzte) Dimension des Ausgangs gestapelt.

Genauer gesagt, extrahiert die op Flecke Form sizes , die strides auseinander in dem Eingangsbild. Der Ausgang wird unterabgetastet , um die Verwendung von rates - Argument, in der gleichen Weise wie „Atrous“ oder „erweitert“ Faltungen.

Das Ergebnis ist ein 4D-Tensor, der durch batch, Zeile und Spalte indiziert ist. output[i, x, y] enthält einen Patch von Größe abgeflachte sizes[1], sizes[2] , die aus dem Eingang genommen wird auf Ausgangsbilder images[i, x*strides[1], y*strides[2]] .

Jeder Ausgang Patch kann auf neu geformt werden sizes[1], sizes[2], depth die depth images.shape[3] sizes[1], sizes[2], depth , in der depth ist images.shape[3] .

Die Ausgangselemente werden von dem Eingang in Abständen durch das gegebenen genommen rate Argument, wie in dilatierten Faltungen.

Die padding Argument keinen Einfluss auf die Größe jedes Patch hat, bestimmt er , wie viele Patches extrahiert werden. Wenn VALID , nur Patches , die in dem Eingangsbild vollständig enthalten sind , enthalten. Wenn SAME , alle Patches , deren Ausgangspunkt in der Eingangs enthalten sind, und Bereiche außerhalb des Eingabestandard auf Null.

Beispiel:

   n = 10
  # images is a 1 x 10 x 10 x 1 array that contains the numbers 1 through 100
  images = [[[[x * n + y + 1] for y in range(n)] for x in range(n)]]

  # We generate two outputs as follows:
  # 1. 3x3 patches with stride length 5
  # 2. Same as above, but the rate is increased to 2
  tf.image.extract_patches(images=images,
                           sizes=[1, 3, 3, 1],
                           strides=[1, 5, 5, 1],
                           rates=[1, 1, 1, 1],
                           padding='VALID')

  # Yields:
  [[[[ 1  2  3 11 12 13 21 22 23]
     [ 6  7  8 16 17 18 26 27 28]]
    [[51 52 53 61 62 63 71 72 73]
     [56 57 58 66 67 68 76 77 78]]]]
 

Wenn wir die Pixel in dem Eingangsbild markieren , die für die Ausgabe mit genommen werden * , sehen wir das Muster:

 
   *  *  *  4  5  *  *  *  9 10
   *  *  * 14 15  *  *  * 19 20
   *  *  * 24 25  *  *  * 29 30
  31 32 33 34 35 36 37 38 39 40
  41 42 43 44 45 46 47 48 49 50
   *  *  * 54 55  *  *  * 59 60
   *  *  * 64 65  *  *  * 69 70
   *  *  * 74 75  *  *  * 79 80
  81 82 83 84 85 86 87 88 89 90
  91 92 93 94 95 96 97 98 99 100
 
   tf.image.extract_patches(images=images,
                           sizes=[1, 3, 3, 1],
                           strides=[1, 5, 5, 1],
                           rates=[1, 2, 2, 1],
                           padding='VALID')

  # Yields:
  [[[[  1   3   5  21  23  25  41  43  45]
     [  6   8  10  26  28  30  46  48  50]]

    [[ 51  53  55  71  73  75  91  93  95]
     [ 56  58  60  76  78  80  96  98 100]]]]
 

Wir können wieder den Effekt ziehen, diesmal die Symbole mit * , x , + und o die Patches zu unterscheiden:

 
   *  2  *  4  *  x  7  x  9  x
  11 12 13 14 15 16 17 18 19 20
   * 22  * 24  *  x 27  x 29  x
  31 32 33 34 35 36 37 38 39 40
   * 42  * 44  *  x 47  x 49  x
   + 52  + 54  +  o 57  o 59  o
  61 62 63 64 65 66 67 68 69 70
   + 72  + 74  +  o 77  o 79  o
  81 82 83 84 85 86 87 88 89 90
   + 92  + 94  +  o 97  o 99  o
 

images Ein 4-D Tensor mit Form [batch, in_rows, in_cols, depth] </td> </tr><tr> <td> Größen </td> <td> The size of the extracted patches. Must be [1, size_rows, size_cols, 1]. </td> </tr><tr> <td> Schritte </td> <td> A 1-D Tensor of length 4. How far the centers of two consecutive patches are in the images. Must be: [1, stride_rows, stride_cols, 1] . </td> </tr><tr> <td> Preise </td> <td> A 1-D Tensor of length 4. Must be: [1, rate_rows, rate_cols, 1] . This is the input stride, specifying how far two consecutive patch samples are in the input. Equivalent to extracting patches with die . This is the input stride, specifying how far two consecutive patch samples are in the input. Equivalent to extracting patches with , . This is the input stride, specifying how far two consecutive patch samples are in the input. Equivalent to extracting patches with patch_sizes_eff = patch_sizes + (patch_sizes - 1) * (Preise - 1) , followed by subsampling them spatially by a factor of Raten . This is equivalent to Rate in dilated (aka Atrous) convolutions. </td> </tr><tr> <td> padding </td> <td> The type of padding algorithm to use. </td> </tr><tr> <td> - </td> <td> The type of padding algorithm to use. </td> </tr><tr> <td> name` Ein Name für den Betrieb (optional).

A 4 D-Tensor des gleichen Typs wie die Eingabe.