el cargador de datos de pytorch no puede iterar

También es muy mágico.En términos generales, ya sea que se trate de una herramienta que define un conjunto de datos o viene con un conjunto de datos, se convierte en un objeto iterable después de cargarse en el DataLoader.

Pero estoy seguro de que el conjunto de datos se puede imprimir y la carga de DataLoader está bien, pero el uso de dataloader falla:

from torch.utils.data import DataLoader
dataloader = DataLoader(dataset, batch_size=123, shuffle=True, num_workers=6, drop_last=True)
for i in dataloader:
    print(123)

Se informará un error y habrá algo similar a este problema: https://github.com/AliaksandrSiarohin/first-order-model/issues/197

Por lo tanto, no puedo encontrar el contenido de mi error, simplemente copie el contenido del enlace anterior:

RuntimeError                              Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/imageio/plugins/ffmpeg.py in _read_frame_data(self)
   620                     raise RuntimeError(
--> 621                         "Frame is %i bytes, but expected %i." % (len(s), framesize)
   622                     )

RuntimeError: Frame is 0 bytes, but expected 12288.

During handling of the above exception, another exception occurred:

CannotReadFrameError                      Traceback (most recent call last)
5 frames
/usr/local/lib/python3.6/dist-packages/imageio/plugins/ffmpeg.py in _read_frame_data(self)
   626                 err2 = self._stderr_catcher.get_text(0.4)
   627                 fmt = "Could not read frame %i:\n%s\n=== stderr ===\n%s"
--> 628                 raise CannotReadFrameError(fmt % (self._pos, err1, err2))
   629             return s, is_new
   630 

CannotReadFrameError: Could not read frame 1178:
Frame is 0 bytes, but expected 12288.
=== stderr ===
ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
 built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
 configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
 libavutil      55. 78.100 / 55. 78.100
 libavcodec     57.107.100 / 57.107.100
 libavformat    57. 83.100 / 57. 83.100
 libavdevice    57. 10.100 / 57. 10.100
 libavfilter     6.107.100 /  6.107.100
 libavresample   3.  7.  0 /  3.  7.  0
 libswscale      4.  8.100 /  4.  8.100
 libswresample   2.  9.100 /  2.  9.100
 libpostproc    54.  7.100 / 54.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/content/gdrive/My Drive/first-order-motion-model/DBnuggest_1.mp4':
 Metadata:
   major_brand     : mp42
   minor_version   : 0
   compatible_brands: mp42mp41
   creation_time   : 2020-07-28T17:25:57.000000Z
 Duration: 00:00:19.71, start: 0.000000, bitrate: 368 kb/s
   Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 64x64, 186 kb/s, 60 fps, 60 tbr, 60k tbn, 120 tbc (default)
   Metadata:
     creation_time   : 2020-07-28T17:25:58.000000Z
     handler_name    : Alias Data Handler
     encoder         : AVC Coding
   Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, mono, fltp, 158 kb/s (default)
   Metadata:
     creation_time   : 2020-07-28T17:25:58.000000Z
     handler_name    : Alias Data Handler

En una palabra, hay un problema con el conjunto de datos.

Al iterar sobre el cargador de datos, se cargará el contenido del conjunto de datos y se producirá una excepción en la parte del conjunto de datos que lee los datos, pero no se lanza. El enlace anterior lo resuelve bien, solo lanza la excepción directamente:

 

En una palabra, si descubre que no puede usar el cargador de datos cuando usa pytorch, puede considerar que el ritmo de carga de datos en el conjunto de datos es anormal y luego desecharlo o resolverlo.

Parece muy simple, pero no esperaba que todavía hubiera tal problema en el cargador de datos. Debe tener más cuidado al definir el conjunto de datos usted mismo.

En el análisis final, hay un problema con la parte de carga de datos del conjunto de datos, y la otra parte está bien. Es por eso que puedo imprimir el contenido de datos del conjunto de datos, pero todavía obtengo un error. De todos modos, si tengo las condiciones, solo lanzo una excepción.

Supongo que te gusta

Origin blog.csdn.net/zhou_438/article/details/114435812
Recomendado
Clasificación