Це відео не доступне.
Перепрошуємо.

Programar Red Neuronal Convolucional (CNN) en Matlab desde cero

Поділитися
Вставка
  • Опубліковано 14 сер 2024
  • Aprende a #programar una Red Neuronal Convolucional (Convolutional Neural Network conocida como #CNN) desde cero utilizando #Matlab.
    Deja tus dudas en la secciones de comentarios.
    Tiempos del video:
    00:00​​ ¿Qué es una Red Neuronal Convolucional (CNN)?
    03:35​​ Cargar los datos de entrenamiento de una CNN en Matlab
    05:26​​ Visualizar base de datos
    06:56​ Tamaño de la base de datos de entrenamiento y de la capa de entrada
    08:18 Separar conjunto de entrenamiento y validación
    09:21 Definir arquitectura de la Red Neuronal Convolucional
    13:49 Especificar opciones de entrenamiento de la CNN
    16:13 Entrenar una red Neuronal Convolucional
    Music KV - Look (Official Audio) | Nostalgic Chill Asian Hip Hop
    Look by KV / kvmusicprod
    Creative Commons - Attribution 4.0 International - CC BY 4.0
    www.creativeco....

КОМЕНТАРІ • 72

  • @Atecnea
    @Atecnea  3 роки тому +19

    Si quieres cargar tu propia base de datos y ya la tienes ordenada en subcarpetas, donde cada subcarpeta representa un label diferente, puedes poner lo siguiente:
    imds = imageDatastore('dirección dónde se encuentra tu carpeta',...
    'FileExtensions',{'.jpg','.tif'},...
    'IncludeSubfolders',true,'LabelSource','foldernames').
    Con esto se carga la base de datos de las imágenes con sus respectiva categorías.
    Si te gustaría que hiciera un video especifico de diferentes formas en las que puedes cargar tus propias bases de datos, déjalo en los comentarios.

    • @jaimeestarellas5206
      @jaimeestarellas5206 3 роки тому

      Por alguna razón, me sale error al poner mi propia base de datos porque las imágenes no son del mismo tamaño, cómo hago para cambiarles el tamaño dentro de Matlab de (por ejemplo) 123x243x1 a 200x200x3?

    • @dianar7282
      @dianar7282 2 роки тому +1

      Video sobre esto por favor

    • @Atecnea
      @Atecnea  2 роки тому +3

      @@dianar7282 lo hare muchas gracias por la recomendacion

  • @telecomfiunam2029
    @telecomfiunam2029 2 роки тому +1

    Muchas gracias por tu aporte a la comunidad de habla hispana interesada en el mundo de la inteligencia artificial.
    Saludos

  • @sutzilandrade3960
    @sutzilandrade3960 2 роки тому

    Este tema siempre ha sido causa de mi curiosidad, tu explicación se me hace de un excelente contenido Edutuber!!!

  • @germanvazquez7452
    @germanvazquez7452 3 роки тому +1

    Hola, me encantó tu explicación, magistral.

    • @Atecnea
      @Atecnea  3 роки тому +1

      Me alegra que te guste

  • @diegovillanueva7530
    @diegovillanueva7530 2 місяці тому

    te amo

  • @antonioortizgomez2668
    @antonioortizgomez2668 3 роки тому

    buen aporte

    • @Atecnea
      @Atecnea  3 роки тому

      Gracias, cualquier duda con el código puedes dejarla en los comentarios.

  • @julioenriquemunozburbano8247
    @julioenriquemunozburbano8247 2 роки тому +1

    Felicitaciones y muchas gracias por tu video. Tengo dos dudas, espero que me pueda colaborar: ¿cómo puedo probar la red? ¿cómo puedo cambiar el número de iteraciones por epoca? Gracias.

    • @Atecnea
      @Atecnea  2 роки тому

      el numero de iteraciones por epocas lo cambias, cambiando el size del minibatch. El modelo se obtenido con la red se queda guardado y ese modelo lo puedes utilizar para nuevas variables. El 26 de octubre estare haciendo un envivio efocado en Matlab para para ML, y estare resolviendo estas dudas, ojala puedas estar, proximamento estare publicando la convocatoria en mis redes sociales.

  • @Atecnea
    @Atecnea  3 роки тому

    Sugerencia: Modificar la resolución del video para ver con mayor nitidez el video. UA-cam suele tener predefino una baja calidad del video

  • @paulaandreamontenegrochauc4420
    @paulaandreamontenegrochauc4420 2 роки тому

    hola, me dio error en el momento de ejecutar la red neuronal para que me aparezca el contenido de layer, al definir la arquitectura de la red Neuronal (minuto 9:21) dice que es inválido el valor para el 'Padding' que se esperaba un valor escalar :/ Alguien me puede ayudar?

    • @Atecnea
      @Atecnea  2 роки тому

      En el minuto 11:36 se corrije el error. Espero te ayude

  • @gerardpereztorres1135
    @gerardpereztorres1135 3 роки тому

    Buenas, al ejecutar la primera parte del código me devuelve error . "No value was given for 'LabelSource","foldernames'. Name-value pair arguments require a name followed by a value."
    Es necesario acceder a alguna librería en particular para cargar la base de datos?

    • @Atecnea
      @Atecnea  3 роки тому

      Esto disponible desde en las versiones de 2017 en adelante, ¿Qué versión tienes de MATLAB?
      Por otro revisa que esté escrito correctamente luego solemos tener pequeños typos y eso nos marca error

  • @carlosmurcia6825
    @carlosmurcia6825 3 роки тому

    ¡Hola! quiero felicitarte muchísimo por este canal. Es muy interesante ver tus videos, se nota el esfuerzo que haces para explicar de la mejor manera posible todo este mundo de la inteligencia artificial. Te quiero hacer una pregunta: ¿como puedo hacer para probar el modelo? Estuve revisando algunos video tuyos, pero no he encontrado uno donde pruebes una red que entrenaste con imágenes diferentes a las del proceso de entrenamiento. Sería muy interesante ver un ejemplo de como pruebas tu modelo; ojalá lo pudieras hacer en MATLAB, como una cuarta entrega del apartado de Redes Neuronales que tienes.
    Nuevamente mil gracias por compartir tus conocimientos. De antemano te agradezco por la explicación, ya que tengo implementada la red neuronal que explicaste, pero no he podido probarla. ¡muchos saludos desde Colombia!

    • @Atecnea
      @Atecnea  3 роки тому +1

      Claro, he estado un poco ausente de UA-cam porque he estado con mucho trabajo pero ya la proxima semana intentare regresar con mas contenido. Saludos

    • @Atecnea
      @Atecnea  2 роки тому +1

      Hola Carlos, he subido recientemente un nuevo video en el que se comprueba el modelo entrenado. Espero te sea de utilidad. Minuto 36:00 del siguiente video ua-cam.com/video/6g1mp0EFEoE/v-deo.html

    • @carlosmurcia6825
      @carlosmurcia6825 2 роки тому

      ¡@@Atecnea muy buenos días! Ya mismo me dirijo a verlo, Muchas gracias por compartirme el link y tomarte el tiempo de respondernos y hacer este contenido de gran calidad.... ¡saludos desde Colombia!. Te estaré escribiendo mucho, porque gracias a ti me he inspirado en hacer mi tesis de grado usando inteligencia artificial, más exactamente redes neuronales =)

    • @Atecnea
      @Atecnea  2 роки тому

      @@carlosmurcia6825 me alegra mucho saber esto. Te deseo mucho éxito en tu proyecto.

  • @jacktherippers124
    @jacktherippers124 3 роки тому

    Excelente video. Una consulta, que opción activaste para realizar autocompleado del código, me dije que matlab te sugería una línea de código a la hora de escribir

    • @Atecnea
      @Atecnea  3 роки тому

      Hola, me alegra que el video te sea de utilidad.
      Respecto a tu consulta, estas funciones están disponibles y predefinidas en el Live Editor, pero actualmente no están disponibles en el editor de scripts tradicionales. Saludos

  • @SimplexV
    @SimplexV 2 роки тому

    Me ayudo bastante el tutorial que realizaste para adentrarme al diseño de una red neuronal convolucional, pero tengo un pequeño detalle en mi aplicacion y es que no entiendo aun como hacer el entrenamiento, ya que tengo una imagen de entrada 480x640x1 y tengo las imagenes de salidas que son dos de 480x640x2 ya que estan concatenadas. Como deberia hacer la configuracion para que al momento de entrenar eliga una imagen especifica y sus respectivas dos imagenes de salida, y asi lo haga con las demas ya que tengo una base de datos de 1000 imagenes. De ante mano gracias.

    • @Atecnea
      @Atecnea  2 роки тому

      Hola, no se si entendi bien la pregunta, lo primero que entiendo es que a la entrada tienes una imagen y a la saliada la concatenacion de dos imagenes, cierto? Si es asi, habria que aclarar que una CNN solo puede tener como salidas etiquetas en el caso de clasificacion o valores en el caso de regresion. Por lo cual tendrias que modificar la forma en que abordas el problema. Es decir a la salida no podria darte dos imagenes concatenadas pero si podria decirte darte una etiqueta y tal vez esa etiqueta representa la concatenacion de dos imagenes, es decir tendrias previamente que codificar tus datos. Otra opcion y usar un autoencoder pero ese tipo de red funciona con una logica diferente. El 26 de octubre estare haciendo un envivio efocado en Matlab para para ML, y estare resolviendo estas dudas, ojala puedas estar, proximamento estare publicando la convocatoria en mis redes sociales.

  • @robertoeduardocalmetmatta1684
    @robertoeduardocalmetmatta1684 2 роки тому

    Hola, una consulta podría emplear como base de datos señales fisiológicas ( vectores característicos) en ves de imágenes en la CNN ?

    • @Atecnea
      @Atecnea  2 роки тому

      Hola, si claro puedes utilizar señales fisiológicas de entrada. Solo tendrías que adaptar la arquitectura de la red al tamaño de tu entrada

  • @marcohernandezluna8219
    @marcohernandezluna8219 2 роки тому +1

    hola como puedo descargar la datastore, creo que no tengo el toolbox de NNET, saludos

    • @Atecnea
      @Atecnea  2 роки тому +1

      Que Versión de MATLAB tienes? Si no me equivoco, creo recordar que el toolbox se puede incluir desde la versión de 2017

    • @marcohernandezluna8219
      @marcohernandezluna8219 2 роки тому

      @@Atecnea hola gracias, al finla lo resolví reinstalando matlab y seleccionando el modulo para deep learning, todo jalo muy bien gracias,

    • @Atecnea
      @Atecnea  2 роки тому

      @@marcohernandezluna8219 ME alegra saberlo. Saludos

  • @julioenriquemunozburbano8247
    @julioenriquemunozburbano8247 2 роки тому

    Buenas tardes, que gusto poder saludarla nuevamente. Queria saber como puedo hacer el proceso de evaluacion de la RNC. Muchas gracias por su atencion y colaboracion.

    • @Atecnea
      @Atecnea  2 роки тому +1

      Hola qué tal te dejo el comando que de debe de usar:
      YPred = clasificar (net, imdsValidation);

    • @julioenriquemunozburbano8247
      @julioenriquemunozburbano8247 2 роки тому

      @@Atecnea Perfecto, muchas gracias. Pero ¿en que parte del codigo lo debo colocar, y q ue porcentaje es recomendado para la validacion cruzada? De verdad muchas gracias y perdon por las molestias.

    • @Atecnea
      @Atecnea  2 роки тому +1

      @@julioenriquemunozburbano8247 está semana voy a hacer un vídeo e inclure esa parte en e la explicación. Te dejo un mensaje aquí cuando lo haya subido. Saludos

    • @Atecnea
      @Atecnea  2 роки тому

      Hola Julio, ya he subido el vídeo está en el minuto 36 del siguiente video: ua-cam.com/video/6g1mp0EFEoE/v-deo.html

  • @jaimeestarellas5206
    @jaimeestarellas5206 3 роки тому

    Muy buen video!! Pero, tengo una duda, cómo sabe usted que el ordenador verdaderamente sabe como es el 1,2,3,etc? Por qué el gráfico del final dice que lo hace con precisión pero cómo lo demuestra? Y se podría hacer con imágenes de personas??

    • @Atecnea
      @Atecnea  3 роки тому

      Hola, después de que la red este entrenada, puedes utilizar el modelo y probar cómo funciona con imágenes completamente nuevas y a la salida te tienen que dar la clasificación correspondiente.
      Y si se puede hacer con imágenes de personas.
      Próximamente estaré subiendo más vídeos, sobre esto.

  • @taniaelizabethsandovalvale8739
    @taniaelizabethsandovalvale8739 2 роки тому +1

    Hola, muy buen video, muchas gracias. Disculpa en la ultima parte cuando quiero entrenar la red me sale este mensaje Error using nnet.internal.cnngpu.isGPUCompatible (line 17)
    GPUs of compute capability 6.0 and above are not supported due to a problem
    with this version of the cuDNN deep learning library. See bug report
    1439741.
    Error in trainNetwork (line 46)
    nnet.internal.cnngpu.isGPUCompatible(true);
    Me puedes ayudar??? por favor
    Tengo una verison pira... de Matlab 2016b

    • @Atecnea
      @Atecnea  2 роки тому

      Tienes instalada correctamente la GPU? Prueba con esto: coder.checkGpuInstall('full')

    • @taniaelizabethsandovalvale8739
      @taniaelizabethsandovalvale8739 2 роки тому

      @@Atecnea Me da este mensaje Error: Unexpected MATLAB expression.

      Undefined variable "coder" or class "coder.checkGpuInstall".

    • @taniaelizabethsandovalvale8739
      @taniaelizabethsandovalvale8739 2 роки тому

      Hola, ya solucione el problema del GPU pero ahora me da este mensaje
      Error using trainNetwork (line 170)
      Invalid training data. The output size (10) of the last layer does not match the number of classes (5).
      Error in Untitled2 (line 73)
      net = trainNetwork(imdsTrain,layers,options);

    • @Atecnea
      @Atecnea  2 роки тому

      @@taniaelizabethsandovalvale8739 significa que el numero de neuronas en la ultima clase debe ser igual al numero de clases que tienes, es decir, si tienes 5 clases la ultima capa debe tener 5 neuronas.
      Saludos

    • @taniaelizabethsandovalvale8739
      @taniaelizabethsandovalvale8739 2 роки тому

      @@Atecnea muchas gracias, ya pude entrenar la red.

  • @luisalbertoquinterolopez7013
    @luisalbertoquinterolopez7013 2 роки тому

    buenas en las especificaciones de entrenamiento cuales son las modificaciones pertinentes que se pueden realizar, esto a cambios futuros y con una base de datos mas pequeña.

    • @Atecnea
      @Atecnea  2 роки тому

      Hola puedes probar cambiar el optimizador, el learning ratio, el size del minibacth.

    • @luisalbertoquinterolopez3497
      @luisalbertoquinterolopez3497 2 роки тому

      @@Atecnea y para pasar a escala de grises una imagenes,pero de forma automatica toda una carpeta llena de ellas.

  • @xavierchirinos5220
    @xavierchirinos5220 2 роки тому

    Buen Video Estimada, una consulta hay alguna forma o comando que nos permita visualizar la matriz de convolución desde la primera capa?

    • @Atecnea
      @Atecnea  2 роки тому

      si, al final podemos guaradar el modeo obtenido y se guaradn los pesos de las matrices de cada capa de convolucion y full conection. Deja preparo un vioe sobre eso. Muchas gracias por la observacion

  • @paulcalerosegura8515
    @paulcalerosegura8515 2 роки тому

    Hola!! buen video , una consulta , como puedo saber de que numeros esta compuesto el filtro 3x3 en la capa convolution2Dlayer? o son aleatorios?

    • @Atecnea
      @Atecnea  2 роки тому +1

      Hola, los pesos del filtro al principio son aletarios pero con forme se va entrenando la red neuronal convolucional va ajustando esos pesos en funcion del algoritmo de back propagation. Al final del entrenamiento, los pesos de los filtros se guardan en una varible del modelo y ahi puedes verlos. No se si respondi correcatmente a tu pregunta. Saludos

  • @ccmusicvallenato6235
    @ccmusicvallenato6235 3 роки тому

    Me gusto mucho tu vídeo, muy bien explicado, pero tengo una duda, después de haber entrenado la RNA como se haría para probarla, por ejemplo que yo ingresé una imagen de entrada y que ella me diga a qué categoría pertenece esa imagen. Gracias

    • @Atecnea
      @Atecnea  3 роки тому +2

      Tienes guardar el modelo y después usarlo para predecir la salida.
      Voy a grabar un vídeo sobre eso próximamente.

    • @Atecnea
      @Atecnea  2 роки тому

      Hola Vallenato, he subido recientemente un video en que se comprueba el modelo entrenado. Espero te sea de utilidad. Minuto 36:00 del siguiente video ua-cam.com/video/6g1mp0EFEoE/v-deo.html

  • @juanej7
    @juanej7 3 роки тому

    Hola, muy agradecido por su tiempo de explicar este tema. Excelente video, me aclaró varias dudas. Tengo una pregunta, cómo le hago si mis imágenes son de diferente tamaño?

    • @Atecnea
      @Atecnea  3 роки тому

      Se tiene que hacer un preproceso, dónde ajuste todas las imágenes a un mismo tamaño.
      MATLAB tiene una línea de código que te ayudará a cambiar el tamaño de una imagen.

    • @juanej7
      @juanej7 3 роки тому

      @@Atecnea Gracias, lo intentaré

    • @juanej7
      @juanej7 3 роки тому

      ​@@Atecnea Hola, espero tenga un buen día, logré solucionar esa parte. Pero me gustaría saber si podría ayudarme en otra duda, lo que pasa es que mis imágenes son de tres canales RGB. Cómo le haría ? Gracias

    • @Atecnea
      @Atecnea  3 роки тому

      @@juanej7 me alegra que lo hayas solucionado.
      Para la siguiente cuestión, en la capa de entrada tienes que especificar que tu entrada es de tres canales es decir cuando defines la arquitectura de la red debes de usar:
      imageInputLayer([X Y 3])
      Donde X Y es el tamaño de la imagen y 3 representanta que tienes 3 canales. ¿No sé si me explico?

    • @juanej7
      @juanej7 3 роки тому

      @@Atecnea Si, lo coloqué así, pero al momento de llegar a "net = trainNetwork(imdsTrain,layer,option)"
      Me aparece el error: Layer6:Input size mismatch. size of input to this layer is different from the expected input size. Inputs to this layer: from layer 5 (output size 64x64x8).
      Mis imágenes son de tamaño 128x128x3. No sé si tenga que ver con la arquitectura, coloqué la misma que el video...
      Disculpe las molestias

  • @neuro4all
    @neuro4all 2 роки тому

    Hola! excelente video enhorabuena. Una vez finalizado el proceso, ¿cómo podemos exportar la red neuronal? Muchas gracias!!

    • @Atecnea
      @Atecnea  2 роки тому

      La red neuronal general un modelo de predicción que se queda guardado en las variables del workspace.
      Se puede utilizar ese modelo ya entrenado, haré un vídeo próxima sobre eso para que quede más claro.

    • @neuro4all
      @neuro4all 2 роки тому +1

      @@Atecnea perfecto muchas gracias!! estaré atento

  • @yojarapaza5724
    @yojarapaza5724 2 роки тому

    Hola que tal, soy estudiante de ingenieria, usted cree que me pueda brindar algunas asesorias de redes neuronales
    ?

    • @Atecnea
      @Atecnea  2 роки тому

      Hola escríbeme por favor en la página de Facebook

  • @branlyletradodelgado5385
    @branlyletradodelgado5385 Рік тому

    No usas una base de datos propia o descargada o creada, usas datos propios de matlab, sería bueno usar imágenes descargadas o creadas

    • @Atecnea
      @Atecnea  Рік тому

      Tendré en cuenta tu recomendación

  • @kevinsalmeron7675
    @kevinsalmeron7675 3 роки тому

    buen aporte solo que no se dice "acurensi" suena mas como akyureci

    • @Atecnea
      @Atecnea  3 роки тому

      Gracias por la observación