‫Bien, genial, ahora tenemos una pequeña función auxiliar que no solo nos devuelve nuestras imágenes en forma de tiempos verbales para que
‫procese las imágenes por nosotros, sino que también devuelve la etiqueta para que podamos recuperarla en forma
‫de tupla.
‫Así que usemos eso para escribir otra función que convertirá nuestros datos, todos nuestros datos, porque
‫esto solo hace una muestra.
‫Necesitamos una forma de convertir todos nuestros datos para que nuestros X e Y, nuestros datos y etiquetas, se conviertan en lotes de tamaño 32.
‫Está bien.
‫Ahora tenemos, escribamos eso.
‫Estamos tratando de comunicarnos a nosotros mismos en nuestros cuadernos una forma de convertir nuestros datos en tuplas de tiempos verbales.
‫Y vamos aquí en forma.
‫Etiqueta de imagen.
‫Hagamos una función para convertir todos nuestros datos.
‫X e Y en lotes.
‫Muy bien, maravilloso.
‫Ahora, de nuevo, si se está preguntando de dónde vino todo esto, un gran lugar para cualquier tipo de carga de
‫datos es leer la documentación.
‫Sé que a veces puede ser un poco aburrido, pero confía en mí, leerlo, incluso si no entiendes la primera
‫vez, yo no entendí la primera vez.
‫Léelo, pruébelo, pruébelo de nuevo y vea cómo va a ser.
‫Un gran perro de función.
‫Oh, eso es apropiado porque estamos trabajando en la visión del perro, pero nos va a ahorrar
‫mucho tiempo más adelante.
‫Hagamoslo.
‫Entonces necesitamos definir el tamaño de bash.
‫Así que 32 es un buen comienzo.
‫Recuerde, tienden a fluir valores predeterminados de 30 a mucho.
‫Entonces, si no lo configura en algún lugar, probablemente estará predeterminado en 32, pero lo definiremos de todos modos.
‫Entonces, creemos una función para convertir datos en lotes.
‫Y ahora vamos a escribir juntos sobre esta función.
‫Y hará algunas pequeñas cosas de manera diferente, dependiendo de si queremos un lote de datos de entrenamiento, un
‫lote de datos de validación o un lote de datos de prueba.
‫Porque recuerde, estos son nuestros tres conjuntos allí, por lo que estos son nuestros tres conjuntos, por lo que tenemos un conjunto de entrenamiento.
‫Vamos a convertirnos en un lote de entrenamiento, un lote de validación y un lote de prueba.
‫Derecha.
‫Así que queremos la muerte, creamos coincidencias de datos, queremos que incluya una X y una Y.
‫Y de hecho, ¿por qué no puede haber ninguno?
‫Ahora quiero que pienses por qué podría haber ninguno.
‫Porque ¿por qué nuestras etiquetas? Esto probablemente tendrá sentido y un poco.
‫Pero piense por qué podríamos querer crear un lote de datos sin etiquetas.
‫Los datos válidos son falsos y los datos de prueba son falsos.
‫Y aquí nos dejamos un poco de doctor.
‫Solía tener un colega llamado Ron y me dijo una técnica llamada patito de goma.
‫Era mucho mejor codificador que yo, y dijo, si tienes problemas.
‫Descubriendo cómo hacer algo en código, escríbalo primero en el lenguaje o dígalo a sí mismo en el lenguaje como
‫si estuviera hablando con un pato de goma.
‫Y los patitos de goma no entienden muy bien el inglés, así que tienes que dejarlo muy claro como un gran consejo de
‫Ron.
‫Gracias, Ron.
‫Entonces, esta función crea lotes de datos a partir de los pares de imagen X y etiqueta Y.
‫Mezcla los datos si se trata de datos de entrenamiento, por lo que mezcla los datos, porque si había algún orden
‫inherente en el archivo de entrenamiento que descargamos, probablemente no porque se vean bastante desordenados.
‫No queremos que nuestro modelo recuerde eso, aunque queremos que sea lo más adaptable posible, sin importar el orden en
‫el que aparezca una imagen.
‫Pero entonces, si se trata de datos de entrenamiento, se barajan pero no se barajan, si se trata de datos de validación.
‫Ahora, quiero que piense por qué no se puede barajar si se trata de datos de validación.
‫No se preocupe, lo cubriremos.
‫Pero piénselo mientras tanto.
‫También acepta datos de prueba como entrada.
‫Ahora, aquí está la razón por la que podríamos ser ninguno.
‫Porque los datos de prueba no tienen etiquetas, por supuesto.
‫Ahora.
‫Lo que queremos hacer es construir una función que haga lo mismo pero que tenga algunas causas si Claus o Iliffe,
‫si son datos válidos o datos de prueba.
‫Entonces sabemos lo que queremos hacer.
‫Y tenemos algunas condiciones aquí que si son datos válidos o de prueba.
‫Así que comencemos con datos de prueba, porque creo que esa es la menor cantidad de cosas.
‫Entonces, si los datos son un conjunto de datos de prueba.
‫Probablemente no lo hagamos.
‫Definitivamente tenía etiquetas o sabemos que no tenemos etiquetas si se trata de un conjunto de datos de prueba, así que
‫vamos a probar los datos.
‫Brent, vamos a darnos un pequeño aviso, me daré un poco de cabeza sobre lo que
‫está pasando, calificando los lotes de datos de prueba, solo para asegurarme de que más adelante, oye, tal vez estemos haciendo
‫algunos lotes de datos y He pasado accidentalmente un parámetro falso para probar datos y termina haciéndolo de manera diferente para los datos
‫de prueba.
‫No queremos eso.
‫Queremos saber que está haciendo lotes de prueba.
‫Entonces, los datos son iguales a los datos.
‫El conjunto de datos.
‫Así que este es el módulo intensivo, datos bajos, estamos haciendo esencialmente un conjunto de datos por lotes y vamos a
‫esto, que es un poco interesante aquí de Tenzer Slices.
‫Por lo tanto, crea un conjunto de datos, solo un conjunto de datos de flujo tensorial cuyos elementos son partes de los tiempos de dar y.
‫Básicamente, lo que dice es pasarme algunos tiempos verbales y crearé un conjunto de datos a partir de eso.
‫Un poco confuso, lo sé, pero así es como se hace, intensivo, como Tefft, constante X.
‫Entonces, básicamente, lo que esto dice es que voy a crear un conjunto de datos de descarga tenso.
‫De los Tensas Slicers.
‫X y debido a que estamos pasando X a la constante TFW, convierte X en un Tenzer.
‫Así que esto es solo partes de archivo sin etiquetas.
‫Bien, y ahora los datos regresan, aquí es donde cambiamos nuestro turno de conjunto de datos, porque ahora mismo esto convertiría
‫todo X en un conjunto de datos.
‫Necesitamos convertirlo en un tamaño de lote de 32.
‫Entonces es igual a mapa de puntos de datos.
‫Necesitamos procesar la imagen.
‫Y tenemos que convertirlo en un tamaño de lote.
‫Vaya, aquí están pasando muchas cosas.
‫Daniel, ¿qué está pasando?
‫Bueno, hemos hablado de la línea anterior, pero lo único que dice es básicamente tomar estos datos, que son un
‫conjunto de datos intensificados hecho de X.
‫Que son solo nombres de archivos en forma de tiempos verbales y luego mapear nuestras funciones de imagen de proceso.
‫Mira, esta es la razón por la que lo hicimos en nuestra función para que podamos llamarlo imagen procesada.
‫Pasará por todos estos pasos aquí en nuestros nombres de archivo.
‫Así que los importará, los convertirá en tiempos verbales normalizados y luego los convertirá en un lote de tamaño de
‫lote.
‫Vayamos aquí.
‫Lote de datos bajos tan intensivo.
‫Este es el flujo de trabajo que utilizo siempre que miro.
‫aFunción, así que si volvemos.
‫Ahí vamos, Bache.
‫Combina elementos consecutivos de este conjunto de datos en lotes.
‫Aquí vamos.
‫Entonces, si le pasamos un rango de ocho y queremos que sea un lote de tres, se dividirá
‫ocho en tres lotes.
‫Así que esa es exactamente la razón por la que esto en una nueva pestaña.
‫Eso es lo que va a hacer aquí, excepto que es del tamaño 30 a.
‫Maravilloso.
‫Eso es un dato de prueba.
‫Ahora queremos hacer si los datos son un conjunto de datos válido, no es necesario que lo mezclemos.
‫Ahora, quiero que lo pienses de nuevo, ¿por qué no tendríamos que barajarlo?
‫Está bien si no está completamente seguro.
‫También me atrapó esto muchas veces, así que aquí hay poca declaración de progreso y luego haremos más o menos lo
‫mismo que esto.
‫Podríamos simplemente copiar eso, pero vamos a practicar cómo escribirlo para tener un conjunto de datos de.
‫Decenas de rebanadas ahora, aquí es donde debido a que el conjunto de validación tiene etiquetas, vamos a postular un par de
‫X y T. F. constante Y.
‫Así que simplemente convirtiendo los nombres de los archivos y las etiquetas en tiempos verbales.
‫Y tenemos aquí rutas de archivo, etiquetas.
‫Así que ahora tenemos una descarga tensa, un conjunto de datos.
‫De las ollas y etiquetas de archivos de imagen, debido a que es un conjunto de datos de validación, el conjunto de
‫datos de validación tiene etiquetas y lo vamos a convertir en una base de datos que equivale al
‫mapa de datos, exactamente igual que el anterior, procesando la imagen y convirtiéndola en un lote de tamaño de lote.
‫OK, feliz gatillo.
‫Maravilloso.
‫Y luego devolver los datos.
‫Y finalmente, queremos que si ninguno de estos funciona bien, si los datos válidos son falsos y los datos de prueba también lo son, obviamente será
‫un lote de entrenamiento.
‫Así que vamos a crear insignias de datos de entrenamiento.
‫Y vamos.
‫Entonces, si se trata de un conjunto de datos de entrenamiento, queremos mezclarlo.
‫Esa es la única diferencia aquí.
‫Así que queremos convertir las rutas de los archivos y las etiquetas en tiempos verbales.
‫Así como hicimos con la validación, podríamos copiar esto ahora.
‫Probablemente sea una forma más eficiente de escribir esta función que hace la misma funcionalidad.
‫Pero he intentado escribirlo de una manera que sea bastante comprensible en cuanto a lo que está sucediendo.
‫Constant y mientras dije eso, podría haber dicho que es bastante comprensible, pero si te
‫encuentras con algo como esto por primera vez, créeme, cuando lo hice, estaba confundido.
‫Pero una vez que lo revisé paso a paso, recuerde nuestra técnica para dividir una función,
‫escríbala línea por línea y luego verifique lo que está haciendo en cada línea.
‫Por eso, queremos mezclar los nombres de las rutas y las etiquetas antes del mapeo.
‫Entraremos en esto en un segundo antes del mapeo.
‫La función del procesador de imágenes es más rápida que la reproducción aleatoria de imágenes.
‫Escribiré el código para que podamos hablar de ello, pero cambiar la fecha.
‫Forsys, suboficinas Stancil, ¿cuántas variables queremos barajar que queremos barajar todo?
‫Bueno, están pasando muchas cosas aquí.
‫Bueno, todo lo que esto está diciendo es, oye, toma estos datos, que son un conjunto de datos de los datos, entonces los nombres
‫de archivo y las etiquetas y luego los mezclamos y queremos mezclar el número de ejemplos.
‫Si solo mezclamos cien, tomaríamos los primeros cien ejemplos de X e Y y los mezclaríamos.
‫Pero no, queremos mezclarlos todos.
‫Y la razón es, podría decirse, que las editoriales se mezclan más tarde después de ejecutar la función
‫de mapa, se convierte en imagen de proceso de mapa de datos.
‫Por lo tanto, si barajó después de haber procesado la imagen, se necesita mucho más tiempo para mezclar una imagen completa
‫que solo un nombre de archivo.
‫Entonces, como dije, recuerde, estamos tratando de minimizar el tiempo entre experimentos, por lo que queremos intentar
‫acelerar para poder hacerlo.
‫Me acabo de dar cuenta de que hemos cometido un pequeño error aquí.
‫En nuestro conjunto de datos de validación, porque tenemos.
‫Imágenes y etiquetas, necesitamos mapear la función, obtener una etiqueta de imagen, que también procesa nuestra imagen, mientras que
‫para nuestro conjunto de datos de prueba, debido a que no tenemos etiquetas, podemos ejecutar directamente la función de imagen
‫procesada.
‫Así que reemplacemos esta etiqueta de imagen, y será la misma.
‫Para nuestro conjunto de datos de entrenamiento, obtenga una etiqueta de imagen maravillosa y podríamos escribir lo que está haciendo con
‫un pequeño comentario.
‫Así que crea la etiqueta de imagen de Tuttle.
‫Esto también convierte la ruta de la imagen en una imagen preprocesada.
‫Así que si puedes.
‫Mezcle sus datos cuando estén en su formato más pequeño, a. k. una. en nuestro caso, nombres
‫de archivos en lugar de imágenes completas, y ahora, finalmente, queremos convertir los datos de entrenamiento en lotes.
‫Entonces, el lote de datos es igual al lote de datos.
‫Ese tamaño, y luego saldremos aquí, regresaremos.
‫Dana Bash.
‫Wolf, esa es una función un poco gigantesca, pero como dije, esto nos va a ahorrar mucho
‫tiempo más adelante y lo verás.
‫Recuerde, este es el tipo de estilo de trabajo de desarrollo en el que quiero que empiece a pensar,
‫¿cómo voy a reutilizar algunas funciones más adelante?
‫Bueno, si lo soy, lo usaré en una función.
‫Y probablemente ya lo sepas porque eres un desarrollador mucho más inteligente que yo.
‫Solía fanfarronear y escribir las cosas línea por línea.
‫Ahora probemos nuestra función creando lotes de datos de validación y entrenamiento.
‫Así que iremos a los datos del tren.
‫Vamos a usar nuestra función de perro grande justo arriba.
‫Vamos a pasar en el tren X para los datos de entrenamiento y entrenamos para los datos de validación y eso es todo lo que
‫necesitamos.
‫Y luego, para los datos válidos, podemos crear lotes de datos, valor X, valor Y.
‫¿Son datos válidos?
‫Igual a verdadero.
‫Y ahora, con los dedos cruzados, deberíamos ver.
‫Nuestros mensajes de progreso de impresión.
‫Oh, sí, eso es asombroso.
‫Bien, ahora echemos un vistazo a los diferentes atributos de nuestras coincidencias de datos.
‫Entonces, si vamos a entrenar datos, ahora están en el formato de un lote de datos, que es decenas de la forma preferida de Flo para
‫procesar las cosas.
‫Aquí vamos.
‫Estos son nuestros datos de entrenamiento, el primero aquí.
‫Que esta diciendo
‫Entonces tienes forma: ninguno, dos, dos, cuatro, dos, dos, cuatro, tres.
‫Esta es nuestra imagen.
‫Ninguno es para el tamaño de lote.
‫Sé que lo hemos dicho a los treinta y dos, pero se mantendrá como ninguno porque el tamaño del lote, recuerda que
‫es flexible.
‫Así que estas son solo nuestras imágenes ahora están en lotes de treinta y dos y tienen una forma de dos a cuatro, dos, dos
‫para tres canales de color de peso de altura de tipo para flotar treinta y dos.
‫Y tenemos un par aquí de nuestro sello.
‫Estos son pares de etiquetas de imagen en forma de tiempos verbales y nuestras etiquetas también tienen una forma de lote de ninguno porque el
‫tamaño de lote es flexible.
‫Y tienen una dimensión de ciento veinte, que es porque si vamos, ¿por qué cero?
‫Hay 120 redadas de perros diferentes, y luego vuelve a ser lo mismo para los datos de validación.
‫Hermosa.
‫Así que fue bastante profundo.
‫Una vez que termine este video, que estará en unos segundos, volveré y leeré lo que
‫está sucediendo en esta función aquí.
‫Si no está completamente seguro, buscaría datos de carga y preprocesamiento, un tutorial de imágenes,
‫leería eso y luego la mejor manera de aprender es simplemente escribir esto, desglosar la función
‫e intentar ejecutar una línea por línea.
‫Así es como analizo las cosas por mí mismo.
‫Pero la forma en que están nuestros datos en este momento, todavía es un poco difícil de entender si es nuevo en el concepto
‫de lotes.
‫Probablemente sea un concepto muy difícil de comprender.
‫Está perfectamente bien no saber qué está pasando en este momento.
‫Entonces, para ayudarnos a comprender, en lugar de simplemente imprimir este galimatías, cuando estemos tratando
‫de verificar qué hay en nuestros lotes de datos, escribamos una función que nos ayudará
‫a visualizar lo que está sucediendo.
‫Entonces eso es lo que haremos en el próximo video.