Hola y bienvenidos a este tubo y a Torro ahora tenemos que definir las cinco variables de esta
función que son las tres convoluciones y las conexiones temporales.
Comencemos con el primero.
Convolutional uno aplica convolución a las imágenes de entrada así que esas son las imágenes originales y ahora vas
a ver cómo todo será tan simple para crear esta convolución.
Bueno, lo que tenemos que hacer es crear un tema de alguna clase específica y
esta clase se toma de y luego las clases pasan a serlo porque estamos trabajando con imágenes en 2D y ahora, como puedes ver,
tenemos que poner varias argumentos.
El primero es en canales.
Vamos a ponerlo en canales.
El segundo es canales de salida.
El tercero es el tamaño de Kerno y el resto de ellos son zancadas y grupos de dilatación.
Y tenemos diferentes valores para todos estos.
Así que no vamos a hacerlo, pero vamos a mantener los valores predeterminados.
Pero lo importante son estos tres argumentos en canales y canales y el tamaño del kernel, así que
supongo a qué corresponden.
Bueno, muy simple en general corresponde a la entrada de la convolución y todos los canales corresponden
a la salida de la conclusión.
Asi que, Que va a ser.
Bueno, muy simple, esa será la cantidad de canales en nuestras imágenes.
Y en realidad vamos a trabajar con imágenes en blanco y negro porque básicamente no tenemos colores para reconocer
a los monstruos.
La IA es totalmente capaz de reconocer a los monstruos en blanco y negro.
Así que no vemos los colores en absoluto solo los reconocemos por su forma.
Por lo tanto, vamos a utilizar un canal, por lo que un canal es cuando tiene imágenes en blanco y negro
y tres canales es cuando ha llamado a las imágenes.
Y, por lo tanto, dado que estamos trabajando con imágenes en blanco y negro
en canales, va a ser igual a uno, entonces nuestros canales para que nuestros canales vayan a ser iguales a las imágenes que desee tener en
el convolucional, que es el resultado de esta constitución. uno.
Y, básicamente, esto equivale a la cantidad de características que desea para el texto de las imágenes
originales, ya que creará una imagen por función que queremos detectar, porque básicamente usted sabe cómo funciona.
imagen de entrada y, por lo tanto, el número de imágenes de salida es la cantidad de características que queremos detectar.
Aplicamos un detector de características a la imagen de entrada para detectar una característica específica en la
Entonces, ahora la pregunta es cuántas características queremos detectar.
Bueno, una práctica común es comenzar con 32 detectores de funciones y eso nos llevará al 32 por ciento de las imágenes en
esta primera capa convolucional, por lo que la entrada es una imagen en blanco y negro una imagen real y
la salida en la primera convolucional hay 32 imágenes procesadas y por procesado quiero decir, por supuesto, que
la conclusión se aplicó a la imagen de entrada para obtener 32 nuevas imágenes con características detectadas.
Y luego tenemos que especificar un tamaño de kernel que no es más que las dimensiones del
cuadrado que atravesará la imagen original.
Y en la práctica común, utilizamos para comprar dos o tres de ancho tres o cinco por cinco.
Y para el primero vamos a usar un detector de cinco por cinco que es un detector de características
que tendrá cinco por cinco 10 motores.
Y luego reduciremos el tamaño de este núcleo para las siguientes capas convolucionales.
Y hablando de eso, esto es exactamente lo que vamos a hacer ahora.
Vamos a copiar esto para definir la segunda circunvolución y, por lo tanto, estoy basando eso aquí y ahora es muy divertido
y muy fácil, es como un dominó.
de entrada de la segunda capa convolucional es el canal de salida de la primera convolucional allí.
El canal
Entonces este número de salida 32 Aquí está el mismo número de entradas 32 aquí.
Y eso es porque tenemos 32 imágenes en la capa convolucional de entrada de la segunda circunvolución.
Y así la segunda convolución se aplica a esta segunda capa convolucional para devolver una tercera capa
convolucional.
Y ahora la pregunta es cuántas imágenes nuevas queremos.
Bueno, lo mismo que crear 32 nuevas imágenes 32 es en realidad un número muy común en las redes
neuronales convolucionales, si miras las arquitecturas encontrarás 32 en muchas de ellas.
Y luego, para el tamaño del kernel, necesitamos reducir el tamaño del kernel, que son las dimensiones de nuestro detector
de características.
Y ahora vamos a pasar de cinco a cuatro o incluso tres y luego vamos a ir aún más pequeño.
Está bien así que nuestra segunda convolución está lista.
Toma como entradas 32 imágenes de proceso.
Cada uno en una primera característica de la imagen de entrada original y crea 32 nuevas imágenes.
Gracias a estas dimensiones reducidas del detector de características.
Y ahora, empujemos esto aún más.
Así que estoy copiando esto y pegándolo aquí para crear una tercera convolución para detectar algunas características.
Y entonces, eso es lo mismo que los canales de entrada.
Aquí está el número de imágenes de entrada a la izquierda de la conexión deconvolución y ese es el número de
imágenes de precesión que fueron a la derecha de las conexiones de convolución previas.
Eso es 32.
Por lo tanto, lamentamos escucharlo.
Eso es perfecto.
Y ahora la pregunta es de nuevo cuántas imágenes nuevas queremos detectar.
Vamos a tomar ahora 64 y, por lo tanto, 64 imágenes de precesión de salida.
Y, por supuesto, ahora tomamos un tamaño de kernel más pequeño y vamos a tomar dos.
Y esa es una arquitectura muy clásica de un convolucional y es muy eficiente tener un alto
nivel de detección de características dentro de las imágenes.
Está bien y ahora que tenemos nuestros tres convolucionales hay tres conexiones de convolución
aquí.
las 64 veces 32 veces 32 imágenes que obtuvimos de todas estas convoluciones, así que aplanamos todos los
píxeles de estas imágenes y podemos un gran vector que se convertirá en la entrada de una nueva red neuronal completamente conectada.
Bueno, ahora es el momento de obtener nuestras conexiones dentadas que me recuerdan que tomaremos este gran
vector que obtenemos después de aplanar todas
Y entonces es cuando tenemos que hacer estas conexiones entre primero este gran vector y una capa oculta y
luego una segunda conexión completa entre la capa oculta y la salida que están compuestos de las neuronas
de salida.
Cada uno corresponde a un valor en cubo de las posibles acciones.
Entonces, hagamos estas dos conexiones.
Tu sabes cómo hacer eso.
Eso es exactamente lo que hicimos para el auto sin conductor.
Así que hagámoslo de nuevo.
Bueno, primero tomamos nuestro Maggio y luego tomamos al Lynnie nuestra clase porque nuevamente la conexión que creamos es un
objeto de la clase dominante.
Y luego entre paréntesis.
Bueno, eso es lo mismo para poner las características de entrada que es el número de ellas y luego las características de salida.
Y así las características de entrada para la primera conexión completa, ¿qué va a ser?
que hay en este enorme cambio de vector después de aplanar todas las imágenes de proceso después de las tres circunvoluciones.
Bueno, eso va a ser igual al número de píxeles
Y entonces, ¿qué significa este número?
Bueno, en realidad hay un truco aquí.
Este número es realmente difícil de conseguir.
De hecho, necesitamos hacer una función para calcular ese número.
No tenemos una variable que nos proporcione este número.
Tenemos que calcularlo y, por lo tanto, lo que vamos a hacer ahora.
la primera vez podrías decir "oye, no lo hago". tener este número de neuronas en el vector Flaten.
Y ahora es muy importante entender la mentalidad de la programación que debemos tener y tratar de traerte
la mentalidad que es lo que debes pensar ahora mismo para superar este obstáculo, porque
Que debería hacer.
Estoy atorado aqui.
Bueno, no, en realidad porque lo que puedes hacer ahora es simplemente ingresar cualquier nombre que represente la cantidad de neuronas tan
poco comunes que numeran el número de neuronas de las neuronas y luego simplemente haremos una función
que retornará y este número de neuronas será variable.
Esta cantidad de píxeles que estamos buscando.
Entonces, podemos hacer totalmente lo que podemos poner totalmente en voz alta, por supuesto recibirá una
advertencia porque todavía no existe, pero luego la crearemos con una función.
Y estamos totalmente autorizados a hacerlo, incluso si la función viene después.
Ese es un pensamiento de programación típico que debes tener cuando obtienes ese tipo de obstáculo.
Bueno, puedes hacer una función para obtener lo que te estás perdiendo.
De acuerdo y luego nuestras características y nuestro futuro.
Esa es la cantidad de neuronas en una capa oculta y que esta vez depende de usted.
Eso depende de la arquitectura de la nueva red que desea crear.
Y entonces un buen número no sería un número pequeño.
Entonces, por ejemplo, 40 neuronas podrían estar bien.
Podemos intentar aumentar eso.
Si el entrenamiento no es demasiado lento, puedes intentar aumentar eso.
Tal vez eso mejorará las predicciones, pero comencemos con 40 quizás lo aumentemos luego.
De acuerdo, eso es todo para la primera conexión completa, luego copiaremos esta pegar aquí para la segunda conexión completa que
es la conexión entre la capa oculta y la capa de salida.
Y así las características aquí se convierten en las características de salida de la capa anterior y eso es 40.
Entonces aquí podemos poner 40.
Esa es, por supuesto, la cantidad de neuronas en una capa.
Y nuestro futuro va a ser igual al número de neuronas de salida que no debería haber una red neuronal.
Y dado que cada neurona de salida corresponde a un nuevo valor y un Cuvee y respuesta
a una acción, mientras que el número de neuronas de salida es el número
de acciones y tenemos una variable para esto, que son acciones numéricas y, por lo tanto, aquí ingresamos acciones numéricas y ahí vamos felicitaciones.
Encontramos la arquitectura de nuestra red neuronal. Nuestra red neuronal está compuesta por tres capas
convolucionales y una capa oculta.
Todo esto en una gran CNN y esta CNN detectará características en el juego para que la IA sepa dónde tiene que
ir a donde tiene que ir y dónde tiene que disparar.
Entonces, vamos por este paso.
Ese es un primer paso muy importante.
Ahora vamos a pasar al siguiente paso que es, por supuesto, obtener este número de neuronas
que aún falta.
Esa es la razón por la que tenemos la advertencia aquí y las neuronas del número de teléfono, pero sin preocupaciones.
este enorme vector y pondremos ese número en una variable que llamará a un número de neuronas.
Ahora haremos una función que devolverá el número de neuronas en
Así que hagámoslo en el siguiente tutorial.
Ese es nuestro siguiente paso.
Y hasta entonces, disfruta de la IA.