RandomRotation in PyTorch

Buy Me a Coffee

*Memos:

RandomRotation() can rotate zero or more images as shown below:

*Memos:

  • The 1st argument for initialization is degrees(Required-Type:int, float or tuple/list(int or float)): *Memos:
    • It can do rotation.
    • It’s the range of the degrees [min, max].
    • A single value must be 0 <= x.
    • A single value is converted to [-degrees, +degrees].
    • A tuple or list must be the 1D with 2 elements. *The 1st element must be less than or equal to the 2nd element.
  • The 2nd argument for initialization is interpolation(Optional-Default:InterpolationMode.NEAREST-Type:InterpolationMode).
  • The 3rd argument for initialization is expand(Optional-Default:False-Type:bool).
  • The 4th argument for initialization is center(Optional-Default:None-Type:tuple/list(int or float)). *It must be the 1D with 2 elements.
  • The 5th argument for initialization is fill(Optional-Default:0-Type:int, float or tuple/list(int or float)): *Memos:
    • It can change the background of images. *The background can be seen when rotating images.
    • A tuple/list must be the 1D with 3 elements.
  • The 1st argument is img(Required-Type:PIL Image or tensor(int, float, complex or bool)): *Memos:
    • It must be the 3D or more D tensor of zero or more elements.
    • Don’t use img=.
  • v2 is recommended to use according to V1 or V2? Which one should I use?.
<span>from</span> <span>torchvision.datasets</span> <span>import</span> <span>OxfordIIITPet</span>
<span>from</span> <span>torchvision.transforms.v2</span> <span>import</span> <span>RandomRotation</span>
<span>from</span> <span>torchvision.transforms.functional</span> <span>import</span> <span>InterpolationMode</span>
<span>randomrotation</span> <span>=</span> <span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>90.0</span><span>)</span>
<span>randomrotation</span> <span>=</span> <span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>90.0</span><span>,</span> <span>90.0</span><span>],</span>
<span>interpolation</span><span>=</span><span>InterpolationMode</span><span>.</span><span>NEAREST</span><span>,</span>
<span>expand</span><span>=</span><span>False</span><span>,</span>
<span>center</span><span>=</span><span>None</span><span>,</span>
<span>fill</span><span>=</span><span>0</span><span>)</span>
<span>randomrotation</span>
<span># RandomRotation(degrees=[-90.0, 90.0], # interpolation=InterpolationMode.NEAREST, # expand=False, # fill=0) </span>
<span>randomrotation</span><span>.</span><span>degrees</span>
<span># [-90.0, 90.0] </span>
<span>randomrotation</span><span>.</span><span>interpolation</span>
<span># <InterpolationMode.NEAREST: 'nearest'> </span>
<span>randomrotation</span><span>.</span><span>expand</span>
<span># False </span>
<span>print</span><span>(</span><span>randomrotation</span><span>.</span><span>center</span><span>)</span>
<span># None </span>
<span>randomrotation</span><span>.</span><span>fill</span>
<span># 0 </span>
<span>origin_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>None</span>
<span># transform=RandomRotation(degrees=[0.0, 0.0]) </span><span>)</span>
<span>p90_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `p` is plus. </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>90.0</span><span>)</span>
<span># transform=RandomRotation(degrees=[-90.0, 90.0]) </span><span>)</span>
<span>p90p90_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>90.0</span><span>,</span> <span>90.0</span><span>])</span>
<span>)</span>
<span>m90m90expand_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `m` is minus. </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>90.0</span><span>,</span> <span>-</span><span>90.0</span><span>],</span> <span>expand</span><span>=</span><span>True</span><span>)</span>
<span>)</span>
<span>p180p180offcenter_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>180.0</span><span>,</span> <span>180.0</span><span>],</span> <span>center</span><span>=</span><span>[</span><span>270</span><span>,</span> <span>200</span><span>])</span>
<span>)</span>
<span>m45m45fillgray_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>45.0</span><span>,</span> <span>-</span><span>45.0</span><span>],</span> <span>fill</span><span>=</span><span>150</span><span>)</span>
<span>)</span>
<span>p135p135fillpurple_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>135.0</span><span>,</span> <span>135.0</span><span>],</span> <span>fill</span><span>=</span><span>[</span><span>160</span><span>,</span> <span>32</span><span>,</span> <span>240</span><span>])</span>
<span>)</span>
<span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span>
<span>def</span> <span>show_images1</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>):</span>
<span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>(</span><span>10</span><span>,</span> <span>5</span><span>))</span>
<span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span>
<span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span>
<span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span>
<span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>im</span><span>)</span>
<span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
<span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
<span>plt</span><span>.</span><span>tight_layout</span><span>()</span>
<span>plt</span><span>.</span><span>show</span><span>()</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p90_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p90_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p90p90_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p90p90_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>m90m90expand_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>m90m90expand_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p180p180offcenter_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p180p180offcenter_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>m45m45fillgray_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>m45m45fillgray_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p135p135fillpurple_data</span><span>,</span>
<span>main_title</span><span>=</span><span>"</span><span>p135p135fillpurple_data</span><span>"</span><span>)</span>
<span># ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ </span><span>def</span> <span>show_images2</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>,</span> <span>d</span><span>=</span><span>0</span><span>,</span> <span>e</span><span>=</span><span>False</span><span>,</span> <span>c</span><span>=</span><span>None</span><span>,</span> <span>f</span><span>=</span><span>0</span><span>):</span>
<span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>(</span><span>10</span><span>,</span> <span>5</span><span>))</span>
<span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span>
<span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span>
<span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span>
<span>rr</span> <span>=</span> <span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>d</span><span>,</span> <span>expand</span><span>=</span><span>e</span><span>,</span> <span>center</span><span>=</span><span>c</span><span>,</span> <span>fill</span><span>=</span><span>f</span><span>)</span> <span># Here </span> <span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>rr</span><span>(</span><span>im</span><span>))</span> <span># Here </span> <span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
<span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
<span>plt</span><span>.</span><span>tight_layout</span><span>()</span>
<span>plt</span><span>.</span><span>show</span><span>()</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p90_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>90</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p90p90_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>90</span><span>,</span> <span>90</span><span>])</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>m90m90expand_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>-</span><span>90</span><span>,</span> <span>-</span><span>90</span><span>])</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p180p180offcenter_data</span><span>"</span><span>,</span>
<span>d</span><span>=</span><span>[</span><span>180</span><span>,</span> <span>180</span><span>],</span> <span>c</span><span>=</span><span>[</span><span>270</span><span>,</span> <span>200</span><span>])</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>m45m45fillgray_data</span><span>"</span><span>,</span>
<span>d</span><span>=</span><span>[</span><span>-</span><span>45</span><span>,</span> <span>-</span><span>45</span><span>],</span> <span>f</span><span>=</span><span>150</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p135p135fillpurple_data</span><span>"</span><span>,</span>
<span>d</span><span>=</span><span>[</span><span>135</span><span>,</span> <span>135</span><span>],</span> <span>f</span><span>=</span><span>[</span><span>160</span><span>,</span> <span>32</span><span>,</span> <span>240</span><span>])</span>
<span>from</span> <span>torchvision.datasets</span> <span>import</span> <span>OxfordIIITPet</span>
<span>from</span> <span>torchvision.transforms.v2</span> <span>import</span> <span>RandomRotation</span>
<span>from</span> <span>torchvision.transforms.functional</span> <span>import</span> <span>InterpolationMode</span>

<span>randomrotation</span> <span>=</span> <span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>90.0</span><span>)</span>
<span>randomrotation</span> <span>=</span> <span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>90.0</span><span>,</span> <span>90.0</span><span>],</span> 
                                <span>interpolation</span><span>=</span><span>InterpolationMode</span><span>.</span><span>NEAREST</span><span>,</span>
                                <span>expand</span><span>=</span><span>False</span><span>,</span>
                                <span>center</span><span>=</span><span>None</span><span>,</span>
                                <span>fill</span><span>=</span><span>0</span><span>)</span>
<span>randomrotation</span>
<span># RandomRotation(degrees=[-90.0, 90.0], # interpolation=InterpolationMode.NEAREST, # expand=False, # fill=0) </span>
<span>randomrotation</span><span>.</span><span>degrees</span>
<span># [-90.0, 90.0] </span>
<span>randomrotation</span><span>.</span><span>interpolation</span>
<span># <InterpolationMode.NEAREST: 'nearest'> </span>
<span>randomrotation</span><span>.</span><span>expand</span>
<span># False </span>
<span>print</span><span>(</span><span>randomrotation</span><span>.</span><span>center</span><span>)</span>
<span># None </span>
<span>randomrotation</span><span>.</span><span>fill</span>
<span># 0 </span>
<span>origin_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>None</span>
    <span># transform=RandomRotation(degrees=[0.0, 0.0]) </span><span>)</span>

<span>p90_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `p` is plus. </span>    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>90.0</span><span>)</span>
    <span># transform=RandomRotation(degrees=[-90.0, 90.0]) </span><span>)</span>

<span>p90p90_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>90.0</span><span>,</span> <span>90.0</span><span>])</span>
<span>)</span>

<span>m90m90expand_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `m` is minus. </span>    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>90.0</span><span>,</span> <span>-</span><span>90.0</span><span>],</span> <span>expand</span><span>=</span><span>True</span><span>)</span>
<span>)</span>

<span>p180p180offcenter_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>180.0</span><span>,</span> <span>180.0</span><span>],</span> <span>center</span><span>=</span><span>[</span><span>270</span><span>,</span> <span>200</span><span>])</span>
<span>)</span>

<span>m45m45fillgray_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>45.0</span><span>,</span> <span>-</span><span>45.0</span><span>],</span> <span>fill</span><span>=</span><span>150</span><span>)</span>
<span>)</span>

<span>p135p135fillpurple_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>135.0</span><span>,</span> <span>135.0</span><span>],</span> <span>fill</span><span>=</span><span>[</span><span>160</span><span>,</span> <span>32</span><span>,</span> <span>240</span><span>])</span>
<span>)</span>

<span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span>

<span>def</span> <span>show_images1</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>):</span>
    <span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>(</span><span>10</span><span>,</span> <span>5</span><span>))</span>
    <span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span>
    <span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span>
        <span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span>
        <span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>im</span><span>)</span>
        <span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
        <span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
    <span>plt</span><span>.</span><span>tight_layout</span><span>()</span>
    <span>plt</span><span>.</span><span>show</span><span>()</span>

<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p90_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p90_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p90p90_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p90p90_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>m90m90expand_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>m90m90expand_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p180p180offcenter_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p180p180offcenter_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>m45m45fillgray_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>m45m45fillgray_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p135p135fillpurple_data</span><span>,</span>
             <span>main_title</span><span>=</span><span>"</span><span>p135p135fillpurple_data</span><span>"</span><span>)</span>

<span># ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ </span><span>def</span> <span>show_images2</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>,</span> <span>d</span><span>=</span><span>0</span><span>,</span> <span>e</span><span>=</span><span>False</span><span>,</span> <span>c</span><span>=</span><span>None</span><span>,</span> <span>f</span><span>=</span><span>0</span><span>):</span>
    <span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>(</span><span>10</span><span>,</span> <span>5</span><span>))</span>
    <span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span>
    <span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span>
        <span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span>
        <span>rr</span> <span>=</span> <span>RandomRotation</span><span>(</span><span>degrees</span><span>=</span><span>d</span><span>,</span> <span>expand</span><span>=</span><span>e</span><span>,</span> <span>center</span><span>=</span><span>c</span><span>,</span> <span>fill</span><span>=</span><span>f</span><span>)</span> <span># Here </span>        <span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>rr</span><span>(</span><span>im</span><span>))</span> <span># Here </span>        <span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
        <span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
    <span>plt</span><span>.</span><span>tight_layout</span><span>()</span>
    <span>plt</span><span>.</span><span>show</span><span>()</span>

<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p90_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>90</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p90p90_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>90</span><span>,</span> <span>90</span><span>])</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>m90m90expand_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>-</span><span>90</span><span>,</span> <span>-</span><span>90</span><span>])</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p180p180offcenter_data</span><span>"</span><span>,</span>
            <span>d</span><span>=</span><span>[</span><span>180</span><span>,</span> <span>180</span><span>],</span> <span>c</span><span>=</span><span>[</span><span>270</span><span>,</span> <span>200</span><span>])</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>m45m45fillgray_data</span><span>"</span><span>,</span>
            <span>d</span><span>=</span><span>[</span><span>-</span><span>45</span><span>,</span> <span>-</span><span>45</span><span>],</span> <span>f</span><span>=</span><span>150</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p135p135fillpurple_data</span><span>"</span><span>,</span>
            <span>d</span><span>=</span><span>[</span><span>135</span><span>,</span> <span>135</span><span>],</span> <span>f</span><span>=</span><span>[</span><span>160</span><span>,</span> <span>32</span><span>,</span> <span>240</span><span>])</span>
from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import RandomRotation from torchvision.transforms.functional import InterpolationMode randomrotation = RandomRotation(degrees=90.0) randomrotation = RandomRotation(degrees=[-90.0, 90.0], interpolation=InterpolationMode.NEAREST, expand=False, center=None, fill=0) randomrotation # RandomRotation(degrees=[-90.0, 90.0], # interpolation=InterpolationMode.NEAREST, # expand=False, # fill=0) randomrotation.degrees # [-90.0, 90.0] randomrotation.interpolation # <InterpolationMode.NEAREST: 'nearest'> randomrotation.expand # False print(randomrotation.center) # None randomrotation.fill # 0 origin_data = OxfordIIITPet( root="data", transform=None # transform=RandomRotation(degrees=[0.0, 0.0]) ) p90_data = OxfordIIITPet( # `p` is plus. root="data", transform=RandomRotation(degrees=90.0) # transform=RandomRotation(degrees=[-90.0, 90.0]) ) p90p90_data = OxfordIIITPet( root="data", transform=RandomRotation(degrees=[90.0, 90.0]) ) m90m90expand_data = OxfordIIITPet( # `m` is minus. root="data", transform=RandomRotation(degrees=[-90.0, -90.0], expand=True) ) p180p180offcenter_data = OxfordIIITPet( root="data", transform=RandomRotation(degrees=[180.0, 180.0], center=[270, 200]) ) m45m45fillgray_data = OxfordIIITPet( root="data", transform=RandomRotation(degrees=[-45.0, -45.0], fill=150) ) p135p135fillpurple_data = OxfordIIITPet( root="data", transform=RandomRotation(degrees=[135.0, 135.0], fill=[160, 32, 240]) ) import matplotlib.pyplot as plt def show_images1(data, main_title=None): plt.figure(figsize=(10, 5)) plt.suptitle(t=main_title, y=0.8, fontsize=14) for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) plt.imshow(X=im) plt.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images1(data=origin_data, main_title="origin_data") show_images1(data=p90_data, main_title="p90_data") show_images1(data=p90p90_data, main_title="p90p90_data") show_images1(data=m90m90expand_data, main_title="m90m90expand_data") show_images1(data=p180p180offcenter_data, main_title="p180p180offcenter_data") show_images1(data=m45m45fillgray_data, main_title="m45m45fillgray_data") show_images1(data=p135p135fillpurple_data, main_title="p135p135fillpurple_data") # ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ def show_images2(data, main_title=None, d=0, e=False, c=None, f=0): plt.figure(figsize=(10, 5)) plt.suptitle(t=main_title, y=0.8, fontsize=14) for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) rr = RandomRotation(degrees=d, expand=e, center=c, fill=f) # Here plt.imshow(X=rr(im)) # Here plt.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images2(data=origin_data, main_title="origin_data") show_images2(data=origin_data, main_title="p90_data", d=90) show_images2(data=origin_data, main_title="p90p90_data", d=[90, 90]) show_images2(data=origin_data, main_title="m90m90expand_data", d=[-90, -90]) show_images2(data=origin_data, main_title="p180p180offcenter_data", d=[180, 180], c=[270, 200]) show_images2(data=origin_data, main_title="m45m45fillgray_data", d=[-45, -45], f=150) show_images2(data=origin_data, main_title="p135p135fillpurple_data", d=[135, 135], f=[160, 32, 240])

Enter fullscreen mode Exit fullscreen mode

原文链接:RandomRotation in PyTorch

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
Happiness will never miss any people, sooner or later it will find you.
幸福不会遗漏任何人,迟早有一天它会找到你
评论 抢沙发

请登录后发表评论

    暂无评论内容