Transcripciones
1. Bienvenido a este curso: Hola, bienvenidos a este
curso sobre TensorFlow. Tensorflow es un
programa que ayuda a
los ingenieros a construir y entrenar modelos de
aprendizaje automático. En este curso,
aprenderás sobre tensores y cómo trabajar con
bailarines usando TensorFlow. Empezaremos por
mirar qué son los tensores. Luego aprenderemos a
construir tensores usando datos. Luego veremos cómo realizar operaciones matemáticas
básicas e intermedias usando TensorFlow. Tensorflow también puede funcionar
con GPU y TPUs, que son tipos
de
factura de chips de computadora para extender capacidades densas
y sueltas. Estos chips hacen que
TensorFlow funcione más rápido, lo cual es útil cuando tienes muchos datos con los que trabajar. Al final del
curso,
comprenderás bien qué es
TensorFlow y cómo
lo usamos para construir modelos de
aprendizaje profundo. También estaremos
construyendo un proyecto de
visión por computador donde
crearemos un modelo sencillo de TensorFlow para reconocer imágenes manuscritas. Este es el curso de
nivel principiante, pero estoy asumiendo
algunos conocimientos básicos de python y machine learning. No tienes que ser un
experto en aprendizaje automático. Pero si entiendes
cómo se
utilizan los datos para entrenar modelos para la predicción, podrás
entender este curso. Si no, por favor encuentre enlaces a un par de videos de introducción
en la descripción del curso. Si estás atascado en algún
momento del curso, envíame un correo electrónico a
admonition shiva.com, y me pondré en contacto
contigo tan pronto como otra vez. Así que comencemos.
2. Tensores y tensorflow: En esta lección,
veremos qué es un tensor, seguido del popular tensorflow de la biblioteca de
aprendizaje profundo. Primero veamos
qué es un tensor. Una explicación simple
sería que un tensor es una matriz
multidimensional. Por ejemplo, tenemos escalares, que es solo un número único. Entonces tenemos un vector
también llamado como una matriz. Entonces tenemos una matriz que será una matriz
bidimensional. Finalmente, tenemos una respuesta que es una matriz n-dimensional, lo
que significa que puede tener
cualquier número de dimensiones. En TensorFlow, todo puede
considerarse un tensor,
incluido un escalar. Un escalar será un tensor
de dimensión cero, un vector de dimensión uno y una matriz de dimensión dos. Ahora bien, esto es útil
porque no nos limitamos a trabajar con conjuntos de
datos complejos en TensorFlow. Tensorflow puede
manejar cualquier tipo de datos y alimentarlos a modelos
de aprendizaje automático. Tensorflow es una biblioteca de software de
código abierto para construir redes
neuronales profundas. El equipo de Google Brain fue quien lo construyó, y ahora es la
biblioteca de aprendizaje profundo más popular del mercado hoy en día. Puede usar TensorFlow
para crear modelos de IA que incluyen reconocimiento de imágenes y
voz, procesamiento de lenguaje
natural
y modelado predictivo. Tensorflow utiliza un gráfico de flujo de datos para representar cálculos. En pocas palabras, TensorFlow
ha facilitado la construcción modelos complejos de
aprendizaje automático y el llamado se
encarga de mucho trabajo detrás
de escena, lo
que lo hace útil a la vez que construye y entrena cualquier tipo de modelo de aprendizaje
profundo. Diencephalon también
gestiona el cómputo, incluyendo la paralelización y optimización en nombre
del usuario. Y Tableau tiene una API de alto
nivel llamada Keras. Get us fue inicialmente un proyecto
independiente que ahora
está disponible dentro de
la biblioteca de TensorFlow. Consíganos hace que sea fácil
definir y entrenar modelos. Si bien TensorFlow proporciona más control sobre
el cálculo, TensorFlow admite una
amplia gama de hardware, incluyendo CPU, GPU y TPUs. Tpus son unidades de procesamiento de tensores construidos específicamente para lo que las capas densas y TensorFlow. También se puede ejecutar TensorFlow
en dispositivos móviles y dispositivos
IoT utilizando el principio
TensorFlow Lite también tiene una gran comunidad de desarrolladores y
se actualiza con nuevas características y le dio a los obesos casi mensualmente. Espero que este video te haya ayudado a entender los tensores y
TensorFlow en detalle. La próxima semana
empezaremos a trabajar con TensorFlow en un portátil de Google
Colab.
3. Trabaja con Tensorflow: Empecemos a escribir algún código. Voy a usar un
cuaderno de Google Colab y puedes encontrar el enlace para ese
cuaderno terminado en la descripción del
curso. Alfas conectan este
portátil con CPU. Esperemos un minuto. Ahora está inicializando y
grid. Está conectado. Si no lo sabes. Google
Colab Notebooks nos ayudan a ejecutar Python y luego
enviar código en la web. Es mucho más fácil
trabajar en lugar de establecer un entorno de
desarrollo local. Ahora comencemos importando TensorFlow e
imprimiendo el Washington. Puede presionar Command Enter o abdomen para ejecutar el bloque de código. Genial, estamos usando
cociente a 0.9, 0.2. Si tienes una
versión diferente, no te preocupes por ello. No van a haber mucha diferencia. Empecemos por crear un
escalar usando tf.constant. tf.Constant es una función que vamos
a utilizar para cargar el curso. Pero en escenarios del mundo real, no lo
usaremos
tanto porque TensorFlow manejará mucha creación de
tracción por usted. Pero por ahora, vamos a
crear un escalar. Podría codificarse como siete. Y vamos a imprimirlo. Se puede ver que
hemos creado un scale-out con el
idioma siete. No tiene forma porque
es sólo un valor único. Y el tipo de datos es entero 32. Ahora vamos a crear un vector de la entrada será una
matriz con dos valores. Y ahora vamos a imprimirlo. Greg, podemos ver
que le hemos creado un vector de forma
cuando estaba en hacer digitalmente. Ahora intentemos crear una matriz. La entrada será una matriz
bidimensional. Entonces tendremos 12, 30. Vamos a imprimirlo. Crearemos la matriz que tiene
forma a gamma2. Es una matriz bidimensional y los vectores de datos enteros 32. Ahora vamos a crear un más denso, llamarlo densa de comprensión. Hornear todo se basará en el lenguaje. Y vamos a imprimirlo. Se puede ver que hemos
creado un tensor real, que también es una matriz
tridimensional, y tiene una forma de
tres por uno por tres. Así es como creamos un real
más denso usando tf.constant. Podemos ver que el
tipo de datos es entero 32. Y si quisiéramos usar
un tipo de datos diferente, digamos float 32s. Podemos usar este tipo de datos como argumento y contraseña
al crear una escaras. Sólo vamos a copiar los
síntomas son devueltos. Yo lo llamaría. Así que uno mismos valores, pero voy a especificar el
tipo de datos es float render. Se puede ver que ahora los
datos en los que se filtraron, esto es algo que
puede cambiar el tipo de datos al trabajar con TensorFlow. En caso de que te encuentres con
problemas cuando estás trabajando con modelos grandes
y principio de ciencia, puede manejarlo
cambiando la base de datos. En escenarios del mundo real,
trataremos con tensores de dimensiones más altas
y formas aún más grandes. En las siguientes
lecciones, también te
mostraré cómo convertir un conjunto de datos del mundo real como un grupo de imágenes en un tensor. Hemos visto tf.constant, que se utiliza para crear
constante y salsa. Esto es lo que vas a usar a
lo largo del curso. Pero si quieres crear
una variable más densa, puedes usar la variable tf dot. La diferencia entre
constantes y variables que podemos cambiar los valores en una variable más densa
pero en una constante. Y así no se puede
cambiar el barniz. Vamos a crear un bailarín variable. Usaré el mismo
pterosaurio y
lo llamaré más denso que usar
la variable de punto F. Ahora lo imprimiré. Se puede ver que hemos creado un tensor variable
con la misma forma. Y son,
ambos en tu W2. Uno de los atributos más
importantes de un tensor es su dimensión. Veamos cuál es
la dimensión de
cada uno de estos barnices o
el pentagrama en el vector. Imprimimos la dimensión
usando la propiedad ending. En ellos. El virulento. Podemos ver que es
adimensional, lo que se espera, y
se puede observar la escalabilidad horizontal. Es dimensionalmente ser cero porque es solo
un valor único. Y para la
herramienta de dimensión matriz AB , ahí vamos. Y para más denso, el
show de diamantes ¿serían tres? Piense en las dimensiones como el
número de columnas, por ejemplo, si está utilizando un conjunto de datos para
calcular los precios de la vivienda, estará ingresando
el cielo,
la alimentación , la ubicación y
tal vez algunas otras entradas. Cada una de estas entradas
se denominará como dimensiones. También se puede
llamar como características. Entonces espero que esta
lección te haya ayudado a entender cómo crear tensores y encontrar atributos básicos
como formas y dimensiones. En la siguiente lección,
veremos cómo generar bailarines y también veremos cómo nos
tiende la carga a partir de matrices NumPy.
4. Genera y carga: Ahora veamos cómo
generar respuestas. En la mayoría de los casos, no estarás creando tensores desde cero. Deberá cargar un conjunto de datos, convertir otros conjuntos de datos
como matrices
NumPy tensores o generar respuestas. Veamos cómo podemos
generar algunos tensores. Primero crearemos un
tensor con valores aleatorios. Hay dos
formas comunes en las que puedes hacer esto. Se puede saltar a la distribución
normal o se
puede generar una
distribución uniforme de los datos. La distribución normal
es una curva en forma de campana. Por lo que esto representa la
distribución de los datos. Esto significa que
la mayoría de los datos estarán cerca del promedio y menos datos
estarán lejos del promedio. Básicamente significa
que la probabilidad de obtener un valor cercano
al promedio es mayor. La
distribución uniforme, sin embargo, es una línea recta
que representa la distribución de datos. Entonces, ¿todos los valores pueden
tener una distribución
uniforme una probabilidad igual de ocurrir dentro
del rango dado? Esa es una cosa más
que debes saber antes de empezar a generar valores
aleatorios. Ese es un concepto llamado semilla. La semilla es solo un valor. Y si usamos un valor semilla, podemos regenerar el mismo
conjunto de datos varias veces. Entonces sabes que vamos a generar valores aleatorios, ¿verdad? Entonces, si usamos una semilla, esos mismos valores aleatorios se
generarán
una y otra vez. Esto es realmente
útil cuando estás trabajando con un modelo de
aprendizaje automático y quieres probar ese modelo con el mismo conjunto de datos. Así que déjame crear la semilla l, llámalo seed db dot random dog. Bien, paloma de semilla. Eso fijará el
valor, digamos 42. Ahora, voy a
crear un conjunto de valores
aleatorios basados en
la distribución normal. O madre termina
es semilla punto normal. Y voy a poner una forma. Digamos p por dos. Se ha creado,
vamos a imprimirlo. Tenemos un tensor con la
forma de tres en dos. Y si trazas
todos estos valores, puedes ver que
deforma una curva de campana. Entonces todos estos pertenecen a
la distribución normal. Ahora vamos a crear
otro tensor aleatorio con la distribución uniforme. Uniforme Tarasoff. Uniforme de punto C. Le voy a dar la misma
forma, tres en dos. Y déjeme imprimirlo. Pero entran en fórmula aguda. Ahora se trata de un tensor uniforme con la forma de tres en dos. Entonces así es como podemos
generar un conjunto de células muertas
aleatorias usando distribuciones normales
y uniformes. Ahora veamos cómo crear
tensores con ceros y unos. Quizás se esté preguntando por qué
necesitamos esto en TensorFlow. Los tensores rellenos de
ceros y unos se suelen utilizar como punto de partida para crear otros bailarines. ejemplo, también se pueden usar como marcadores de posición para entradas
en un gráfico computacional. Entonces, primero vamos a crear un
más denso. Vería esos. Para eso, estaríamos usando
la función df1 ceros. Vamos a llamarlo ceros. Y le vamos a dar forma. Se puede ver que hemos creado un plan de estudios de
fluido tensor de tres por dos. Ahora vamos a crear el
mismo tensor con uno. El punto central una vez, enviar y enviar igual a dos. Vamos a imprimirlo. Aquí vamos. Tenemos un tensor de
forma tres en dos para los enanos que son tipos
más diferentes
de lápices de libertad que puedes crear
usando TensorFlow, pero estos son
los comunes que vas a usar. Ahora veamos cómo convertir una matriz NumPy en un tensor. Si no sabes qué es NumPy,
es una biblioteca Python
para computación numérica. Nos ayuda a manejar
grandes conjuntos de datos y realizar una variedad de
cálculos allí. Y antes de que tuviéramos tensorflow, Numpy era todo lo que teníamos cuando
estábamos trabajando con modelos
de aprendizaje automático. Entonces, primero importemos numpy
y creemos un antibiótico. Voy a crear una matriz NumPy, seguido de
subrayado un impar-impar. Y voy a estar usando
la función range, que le dice a NumPy genere una lista de
valores, digamos 1-25. Y el byte de datos beep
ser adormecido por Bob int. Vamos a imprimir. Ahí vamos. Tenemos una matriz con
24 valores que van de 1-25. Ahora vamos a
convertir esto en un TensorFlow que ha hecho
para soportar NumPy. Así que puedes convertirte fácilmente a un objeto
imparcial en respuesta. Vamos a llamarlos para entonces. Entonces esta constante de punto tf y mi entrada será la
no binaria que acabo de crear. Y la forma será, puedo establecer la
forma personalizada para igual a decir, dos por 34 por tres. Y vamos a imprimirlo. Ahí vamos. Hemos convertido una matriz NumPy
unidimensional en un tensor de dos
por cuatro por tres. Lo harás
a menudo cuando estés trabajando con problemas de aprendizaje
automático del mundo real. Porque muchas veces
habrá otros
algoritmos de aprendizaje automático u otros frameworks
que se utilizarán a las personas. Y obtendrá el
conjunto de datos final en una matriz numpy. Así que es muy importante
entender cómo llegamos a lo que NumPy arrays de objetos. Espero que esta lección te haya
ayudado a entender cómo los
tensores de genotipo y cómo
convertir matrices NumPy
en tensores. Entonces, en la siguiente lección,
veremos cómo realizar algunos cálculos
básicos, agregaciones y
multiplicación matricial usando TensorFlow.
5. Operaciones básicas con Tensorflow: Veamos algunas
operaciones básicas usando tensores. Empezaremos por
ver cómo obtener alguna información de
nuestros tensores existentes. Déjame crear un nuevo 40 más denso. Utilice la función df.columnas
para generar un tensor 4D. Vamos con intentar tensor. Y el bien formado sea dos coma tres colores fulcro
de fuego que está impreso. Así que hemos creado un 40 más denso, pero la forma de dos coma
tres coma cuatro, coma cinco. Ahora vamos a obtener alguna información
sobre este tensor. Primero imprime el
tamaño del tensor. Entonces para eso usamos tf tamaño de punto. Sí, déjame también imprimir la forma para eso llamado
la forma de punto tensor. Entonces vamos a imprimir la
dimensión b o b. visto esto volteado y Sadat y grano.
Veamos qué surge. Ahí vamos. El tamaño de lo tensores 120 porque hay valores de 12d. Tenemos la forma y
tenemos la dimensión. Esto te será útil
cuando estés trabajando con lápices complicados. Y si
quieres equiparte para obtener alguna información sobre la forma, el
tamaño y las dimensiones. Ahora vamos a realizar algunas
operaciones básicas sobre tensores. Entonces déjame definir nuestro simple denso o lo que llamamos
básico más denso. Df, dy, constante, belleza
no creada más densa, digamos rejilla 101112. Probemos adición. Yo solo quería agregar un número a cada
valor en el tensor. Entonces simplemente se puede decir, básicos golpes más densos tallo. Esto sumará diez
a todos los números en el más denso e
imprimimos el resultado. Probemos alguna fracción. También puede incluir
multiplicación y división. Multiplicado por diez,
comparándolo para agregarlo de nuevo hacia abajo,
Vamos a imprimirlo. Pero ahí, ahí vamos. El primero es el Edison. El segundo es la resta. Eso es todos los valores multiplicados por entonces
y el plato lleno, todos los valores
divididos con ellos. La solución es un poco importante porque la estaríamos usando
en nuestro proyecto. Entonces hay un concepto
llamado normalización. Eso va a ser convertidores finos que se están ejecutando en cero a uno. Eso lo explicaré detalladamente
cuando lleguemos a esa lección, pero por favor tenlo en mente. Ahora veamos la multiplicación
matricial. Esto también es algo
que vamos a hacer a menudo cuando estamos trabajando en proyectos
de aprendizaje automático. Déjame
crear rápidamente dos lápices. Nosotros lo llamamos cero no uno, constante, dos coma dos. Olvido o para Ben, voy a crear un nuevo
más denso llamado relleno, quiero decir 234 y adquirido. Antes de entrar en la multiplicación
matricial, ten en cuenta que
las dimensiones internas
del tensor que intentas
multiplicar deben coincidir. Por ej., supongamos que tiene dos tensores de forma
tres por cinco. Esta multiplicación no va a funcionar. Pero si tienes dos decenas nosotros con forma tres por phi
n phi por tres, eso funcionará porque las dimensiones
internas coinciden. El resultado final de
la multiplicación estará fuera de la forma de
las dimensiones externas. Entonces, si tienes dos tensores, cada uno con cinco por 3.3
por phi en las formas, el resultado final
será de cinco por cinco. Intentemos multiplicar
estos dos tensores estará usando el
mal funcionamiento de df.count meet
printed tf dot html. Y así el cero doble
uno, y así 012. Ahí vamos. Tenemos el
producto de estas dos matrices. Veamos las operaciones de la
matriz Domo. Así que remodelar y transponer. A menudo usaremos una forma de V para cambiar la estructura de su matriz. Luego, la limpieza de
redes neuronales, por ejemplo, un píxel de imagen de
Netflix 28 por 28 se
convertirá en una matriz
unidimensional de valores predeterminados de 7 días. Verás esto en
nuestro próximo proyecto y te lo explicaré en detalle. Pero por ahora, entienda que remodelar es un
concepto muy importante en TensorFlow. Y usar la oración o que se creen en los bloques de código
anteriores. Más denso cero doble uno
me dejó con remodelarlo
en cuatro por uno. Para eso voy a estar
usando df dot reshape. Y mi primer argumento
será el tensor real, solo
responderá ese. Y el segundo argumento será la forma que
dicen cuatro por uno. Entonces, si ves esto,
estoy tratando de convertir un tensor de dos por dos en
caída por un tensor. Ahí vamos. Entonces el valor es dos
coma 2.4 coma cuatro se convierten en
un tensor de cuatro por uno. Esto es todo lo que reformamos un tensor. Ahora veamos como el transpose
y luego soft baby usando la función df dot transponer. Y entonces puedes
mantenerlo igual, más
denso que, lo siento, de cero a uno. Recta. Ahí vamos. puede ver que los valores
han sido transpuestos, por ejemplo los valores dos-por-dos y
cuatro-por-cuatro son ahora 24.2 para, si no sabes lo que
transponer una matriz, esto es simplemente convertir en filas y dos columnas y
columna al caballo. Ahora veamos realizar algunas agregaciones
usando densos us. En muchas ocasiones
querría encontrar la suma, la media, mediana y la
desviación estándar de un lápiz. Déjame crear un símbolo
bailarín, DFP, constante. Simplemente haremos una matriz
simple, 1-9, pre banda seis, fijando
una fecha, trabajo. Voy a configurar los pañales de datos para. Ahora. Déjame imprimir algunos valores. Primero, quiero
encontrar el
valor mínimo dentro de este tensor. Para eso, voy a estar usando
la función Min reducida f punto con ella, pero abusar y luego darle la entrada de plomo
más densa sobre tres. Vamos a imprimirlo. Se puede ver que el valor
mínimo es uno. Hagamos algunas
agregaciones más como esta. Reducir. Vamos a copiar esto. Entonces. Ahora para encontrar el sol. Vamos a probarlos en inglés. Por lo que el valor mínimo es uno, el valor máximo es nueve
y el sol fue de 45 cuadrículas. Ahora vamos a abrir un nuevo bloque de código y secar un poco las agregaciones. Me preguntaba entonces la desviación
estándar de este tensor para eso, estaré usando tf dot map,
reduce, STD, y el más denso
por último en negrita ahí. Y quiero imprimir
la varianza, que también está en P de Dartmouth. Probemos esto. Ahí vamos. Tenemos la
desviación estándar y la varianza. Ahora probemos algunas agregaciones
más simples es que nos inclinamos a encontrar este tranquilo es voltio silencioso y el registro de todas las
damas del tensor. Primero a la calabaza gobernado, que es T de SQRT oscuro, más
denso que la intranquilidad se
acaba tf punto cuadrado más denso. Y yo quería imprimir el
registro, que es en matemáticas. Entonces df.net dot log de la
densa, vamos a imprimirlo. Se puede ver que DFS bastante
robusto teléfono intranquilidad o por cada valor del tensor. Y D son ambos cuadrados tranquilos, todos los números en el más denso. Y finalmente, Math.min log encuentra el valor logarítmico de todos los
cuerpos del bailarín. Estas son las operaciones básicas que debes conocer por ahora. En el siguiente video,
veremos un concepto importante
llamado codificación one-hot.
6. Codifica una vez caliente: En esta lección, veremos
un concepto importante con el que te encontrarás en el
aprendizaje profundo, la codificación one-hot. La codificación en caliente es un
proceso que se utiliza para representar un conjunto de valores como datos binarios
basados en categorías. Esta codificación crea
una nueva columna binaria para cada categoría única. cada fila del conjunto de datos
se le asigna un uno o un cero. Entonces, por ejemplo, considere
un conjunto de datos con un color variable que tenga tres categorías únicas,
rojo, verde y azul. Si usamos una codificación en caliente, esta variable se puede representar como tres nuevas columnas binarias. Cada fila del conjunto de datos
tendrá uno en la columna correspondiente
para asignar el color. Por ejemplo, si nos fijamos en la fila uno, que es hilo,
el primer valor es uno y los otros
dos valores son cero. Y en verde, el primero y el último valor es apenas cero y el medio es uno. Y en azul el
último valor es uno. Los algoritmos de aprendizaje profundo,
particularmente las redes neuronales, funcionan con datos numéricos. La codificación en caliente proporciona una manera conveniente
para nosotros de convertir este tipo de variables
categóricas en
representaciones numéricas simples. Entonces, estos pueden
usarse como entradas o incluso salidas para modelos de aprendizaje
profundo. Usando una codificación en caliente, podemos manejar muchos tipos de variables de
categoría. Esto suele ser difícil de manejar para otros modelos de codificación. Y finalmente, la
codificación one-hot proporciona un mapeo claro entre
las categorías y sus correspondientes representaciones
numéricas. Así que esto facilita
que el modelo interprete y
analice los resultados
de los modelos de aprendizaje profundo, por ejemplo, si intentamos construir
un algoritmo para clasificar entre gatos y perros, una
salida codificada en caliente nos será mucho más fácil
convertirla en el resultado final. Espero que esta lección te ayude a entender cómo funciona la
codificación one-hot. En la siguiente lección,
veremos cómo TensorFlow puede funcionar
con GPU y TPUs. No vamos a trabajar con GPU
y TPUs y este proyecto, pero es genial que
entiendas cómo puedes hacer uso de las GPU o TPUs si las
tienes disponibles.
7. Trabaja con GPUs y TPUs: Entonces veamos cómo trabajar
con GPU y TPUs usando TensorFlow no se verá
qué son las GPU y las GPU, pero veamos
con más detalle cómo podemos usarlas. Pero las unidades de procesamiento de TensorFlow, GPU o
gráficos, y las GPU son unidades de
procesamiento de tensores o diseño de hardware
especial para acelerar el proceso de
aprendizaje automático. Tienen muchos objetivos
y pueden procesar datos mucho más rápido que
las CPU tradicionales. Primero comencemos por ver qué dispositivos tenemos disponibles
en este portátil Colab. Para eso, usaremos
la lista de configuración de punto F. Dispositivos físicos. Se puede ver que B, sólo
tenemos una CPU asignada para nosotros. Ahora, usemos nuestro tiempo de ejecución
y asignemos una GPU. Podría cambiar de
vez en cuando y convertirlo en una GPU. No te estaría mostrando
cómo conectarte a un TPU porque la CPU
siempre estará disponible. Entonces, veamos la GPU y cómo
podemos trabajar con eso. Guardarla. Tan importante una vez
que cambie el tiempo de ejecución, asegúrese de que
su computadora portátil Colab esté recopilada y ejecute TensorFlow. Sólo hay que leer
sobre el dólar de importación. No tienes que
preocuparte por el resto. Vamos a alimentarnos de ello. Genial. Ahora veamos a qué dispositivos
tenemos acceso. Ahí vamos. Podemos ver que tenemos
una GPU o por bien para nosotros. En lo que respecta a TensorFlow
, no
tienes que cambiar
entre CPU y GPU porque TensorFlow
se
encarga de ello automáticamente por ti. Si hay TPUs, el código
será ligeramente diferente, pero no usarás
TPUs a menos que estés trabajando con modelos de deep learning extremadamente
grandes. Si quieres especificar un dispositivo que quieras usar
para tu código, lo que puedes hacer es usar la función tf dot device
y darle el nombre del dispositivo. Diría GPU Cielo. Y luego puedes
escribir el resto de tu código en este bloque de código. Entonces todo el oro que hay en este bloque de código se
ejecutará usando la GPU. Entonces espero que esta lección
te ayude a entender qué son las GPU y las GPU y cómo puedes realmente hacer uso de
ellas en tu código. En la siguiente lección,
comenzaremos con nuestro proyecto real, que es una red neuronal de
reconocimiento de escritura usando TensorFlow y obtenernos.
8. Prepara la modelo: Ahora que hemos aprendido
y lo básico lento, comencemos a construir
nuestro proyecto. Utilizaremos el conjunto de datos MNIST de dígitos
escritos
a mano para entrenar nuestro modelo. Mnist es el conjunto de datos de imágenes con 60,000 imágenes de entrenamiento
y 10,000 imágenes de prueba. Por lo que podemos utilizar estas 60,000 imágenes de
entrenamiento para entrenar nuestro modelo. Y podemos usar las
10,000 imágenes de prueba para ver qué tan bien funciona nuestro
modelo. Estos dígitos oscilan entre 0 y 9. Cada imagen es de tamaño 28
por 28 y en escala de grises. Entonces, si nos fijamos en este bloque, el eje x es 28 y
el eje y es 028. Cada píxel tendrá un
valor que va de 0 a 255, por ejemplo
, los bloques vacíos
serán cero y los bloques más oscuros
tendrán el valor de hasta 55. Entonces así es como se
representa cada imagen en este conjunto de datos. Tendremos un total de 784 valores de
píxeles por imagen. Si esto te queda claro,
Empecemos agregando el código. Primero importará el conjunto
de datos MNIST. Voy a crear una variable
llamada MNIST. Y podemos obtener el
conjunto de datos de Geddes, DFL, conseguirnos conjuntos de datos. Ahora voy a
crear cuatro variables. Extreme, tren blanco y prueba
x y prueba de bicicleta. Por lo que el tren x y el
tren y se utilizarán para entrenamiento mientras que la prueba x y el escritorio y se
utilizarán para las pruebas. Y voy a llamar a la función
de carga de datos. Y debemos agregar la fecha descargada en estas variables. Entonces vamos a probarlo. Y un valor de x tren. Ahí vamos. Tenemos un 28 por 28. Y así una amplia gama
sumará el valor de cinco. Entonces x tiene imágenes e Y tiene el
valor real de las firmas. Ese es un
paso importante que tenemos que hacer, que se llama normalización. Entonces cada píxel en esta
imagen enlazará 0-255 y vamos a venir con sus rasgos
a cero a uno. Entonces esto es para hacer que el conjunto de datos simple y fácil de entender para el
modelo. Para normalizar estos, sólo
voy a dividir todos los valores de
la imagen por dos. Entonces x tren y x prueba
se dividirían por división de ancho. Comprobemos esto dos veces. Ahí vamos. Ahora nuestros valores de imagen
van 0-1 y 002, 55. El conjunto de datos de prueba X está listo. Ahora comencemos a
construir nuestro modelo. Construiremos un modelo secuencial usando getters, como vimos antes. Acostúmbranos a ser una biblioteca
individual para construir modelos de
aprendizaje profundo, pero se ha integrado
con TensorFlow. Keras solíamos codificar
todas las capas ella misma. Fue bastante complicado e hizo que el
hub de TensorFlow funcione. Pero con Geddes,
es mucho más fácil para nosotros apilar un
montón de capas juntas y construir una
red de oro es moderno. Voy a llamar al modelo secuencial. Y mi primera capa,
será una capa aplanadora. Entonces Kayla se detuvo. Pero aún así se aplana. La forma de entrada es de 28 por 28. Entonces, lo que
hará esta capa es que tomará nuestro tensor 28 por 28 y convertirlo en una matriz
unidimensional. Entonces nuestra capa de entrada no
será una capa de 28 por 28, será una matriz
unidimensional de 0784 capas. Entonces eso se pasará como
entrada a nuestra red neuronal. Te mostraré una imagen
al final de este modelo, por lo que te quedará mucho
más claro. La siguiente capa
sería una capa densa. Y esto tendrá 128 neuronas con una
función de activación llamada relu. Las funciones de activación nos ayudan a capturar patrones
y relaciones. Y esta activación de ReLu es una función de
activación de uso común. Por lo que tomará la salida de la primera capa y sólo
se les hace un valor positivo. Si la salida es negativa,
devuelve cero. Por lo que esto nos ayuda a evitar valores
negativos y acelerar el
entrenamiento del modelo. La siguiente capa será
una capa de deserción. Y estableceremos la tasa de
entrega de 0.2. Por lo que la capa de deserción
evita el sobreajuste. sobreajuste ocurre
cuando nuestro modelo comienza a apoyarse en una
salida específica, por ejemplo, si entrenamos nuestro
modelo con 10,000 documentadores y mil imágenes, el modelo automáticamente
tendrá un sesgo hacia los perros y clasificaremos más fotos de
gatos de existencias. Entonces esta capa problemática nos
ayuda a reducir eso. Los argumentos 0.2 especifican
que la tasa rápida es del 20%, lo que significa que el 20%
de las neuronas la lista anterior serán
dejadas caer durante el entrenamiento. Finalmente, construiremos otra capa densa que
será nuestra salida. Esto tendrá niños de 10 años ahí y
vamos a imprimirlo. Modelo. Cometió un error de
Messina común. Entonces nuestro modelo está listo. Esto es lo que
hemos construido. Si nos fijamos en este modelo, la primera capa tiene
tantas neuronas diferentes, que será la capa de entrada. Y esta capa aplana
28 por 28 imágenes más densas en un AT de salmón para
una matriz unidimensional. Así que eso se
pasará como entrada. Entonces tenemos la capa de
activación, luego tenemos la capa de deserción, y finalmente, tenemos
la capa de salida. Vamos a necesitar una capa más
adelante en el proyecto, que será una capa softmax. Entonces todos estos resultados serán predicciones y
no serán probabilidades. Entonces habrá puntajes. Y necesitamos una forma de
convertir las puntuaciones en probabilidad
real para que
sepamos lo que el modelo
está tratando de predecir. Así que acabamos de
construir un modelo. Aún no está entrenado, pero
solo le pasaremos algunos datos y
veremos qué tan bien está funcionando. Crea una variable
llamada predicciones, y llamaré al modelo y pasaré un valor de rayos X que haya
pasado el primer valor. La razón por la que estoy usando
este operador de rebanada es porque el
operador de rebanada devuelve una matriz. La entrada tiene que ser una
matriz de tensores. Entonces aunque sea un solo
valor me hace a mí. Pero luego de otra manera, por eso estoy usando el operador slice. Devuelve una matriz de valores. Y permítanme imprimir predicciones. Verás que aquí va
a imprimir un montón de partituras. Entonces hay valores positivos
y negativos. Veamos que se llama softmax funciona. Entonces softmax es
básicamente una capa que convierte un discurso
en abejorros reales. Así que crea una capa llamada softmax y pásalo
las predicciones. Veamos cómo surge. Entonces ahora tenemos probabilidades. Entonces esto quiere decir que el modelo
está tratando de decirnos cuál es la probabilidad de que
la entrada pertenezca a alguna de estas gafas entonces? Entonces el primero significa cero. segundo es uno menos dos, y el último es esta noche. Entonces tenemos probabilidades para
cada número en el conjunto de datos. Entonces hagamos esto
aún más simple y veamos qué se
entrena el modelo para predecir. Para eso, solo convertiremos estas predicciones en
hacer una matriz simple. Yo uso NumPy para hacerlo más sencillo y obtendré
el primer aprendizaje. Porque como puedes ver,
esto está dentro de otro, solo
estoy agarrando
este primer valor y
lo voy a convertir en una lista de Python. Y voy a imprimir
el valor máximo, el índice del valor
máximo para simple array index match
value of sub debajo de él. Entonces ahora podemos ver qué está tratando de predecir el
modelo. Debbie vaya, está
tratando de decir que son siete. Veamos cuál era el valor
real. Así imprimir x tren de uno, así tren blanco de uno. Entonces el pico de valor real, pero nuestro modelo dice que son siete. Eso es porque nuestro
modelo ya está entrenado. Entonces una vez que hayas
entrenado a nuestro modelo, verás cuánto es
el impulso espiritual. Entonces, con el
bloque de código B jamás hecho a
través de una red neuronal profunda de
capa completamente conectada. Entonces, en el siguiente capítulo
estaremos
viendo optimizadores y función de pérdida y veremos por qué
son importantes para nosotros para entrenar nuestro modelo.
9. Función de optimizador y pérdida: En esta lección,
discutiremos el uso de las funciones de pérdida y cómo
ayudan en el entrenamiento de redes
neuronales profundas. También hablaremos de
optimizadores y veremos cómo podemos usarlos para
minimizar la función de pérdida. Terminamos la lección
mirando el popular optimizador Adam, que usaremos
para nuestro proyecto. Perdí la función también se
conoce como función de costo. Es una función matemática que mide la
diferencia entre la salida predicha de un modelo y el valor objetivo
real. Entonces, cuando entrenamos
una red neuronal, pero entradas y salidas, la red neuronal
generará su propia salida. Luego compara
esa salida con la salida real que hemos
dado en el conjunto de entrenamiento. Entonces así es como aprende la red
neuronal. El objetivo del proceso de
entrenamiento es
minimizar el valor de
estas funciones de pérdida. Cuanto más cerca
estén los valores predichos de los valores reales, menor será el valor de la función de
pérdida. En el aprendizaje profundo, las funciones de pérdida nos
ayudan a mejorar la
precisión del modelo. Los parámetros del modelo se ajustan de
tal manera que se minimiza la
función de pérdida, dándonos mejores predicciones. La elección de la
función de pérdida
dependerá del tipo de problema
que te encuentres. Por lo tanto, hay muchas funciones de pérdida como la función de pérdida de
entropía cruzada. O si estás trabajando en
otro problema de colisión, estarás usando algo así como un
error cuadrático medio, función de pérdida. Medias agresivas, predicción de precios
bursátiles, predicción de precios de
vivienda
y otros problemas similares. Puedes encontrar más recursos
sobre la función de pérdida, la descripción del curso,
voy a añadir un enlace para ti. Entonces ahora
hablemos de optimiza. Los optimizadores son algoritmos que nos
ayudan a minimizar
la función de pérdida. Por lo que trabajan actualizando los parámetros
del modelo tal manera que siga bajando el valor
de la función de pérdida. Y como vimos antes, cuanto
menor es la función de pérdida, mejor se entrena el
modelo. Así que hay muchas opciones
óptimas diferentes disponibles, cada una con su propia
fuerza y debilidad. Un optimizador burbujeado se
llama Adam optimizer. Adam optimizer es muy
efectivo en una amplia gama de tareas de aprendizaje
profundo y es una excelente opción para
nosotros para este proyecto. Adam optimizer combina las ventajas del descenso de
gradiente, que es un algoritmo más antiguo. Si has estudiado
en el aprendizaje inicial, habrías escuchado
hablar del descenso de gradiente. Entonces Adam optimizer es un
implemento sobre el descenso de gradiente. Y además es computacionalmente
muy eficiente. Aunque para comprender
la lógica detrás estas funciones de costo y
optimizarla por ahora, TensorFlow se encargará de todo
por usted. Por ahora. Simplemente entienda que
las funciones de pérdida nos ayudarán a reducir las predicciones del endosoma y optimiza ayudar a minimizar
la función de pérdida. Entonces espero que entiendas cómo funcionan los
optimizadores perdidos elegidos. En la siguiente lección,
construiremos una función de pérdida y tú la tienes optimizada y
comenzamos a compilar y
entrenar nuestro modelo.
10. Compila y entrena el modelo: Entonces ahora vamos a crear
la función de pérdida. Voy a usar la función de
entropía cruzada
categórica dispersa , que se usa comúnmente para los modelos de
clasificación. Después ir a la
función de pérdida de gol en Keras. Y voy a salvar
de los logits es cierto. Estoy llamando a los logits porque las predicciones reales
o lógicas de la diosa. Entonces por eso estoy
diciendo que vamos a calcular pérdidas
a partir de logits. Ahora vamos a compilar nuestro modelo. Y voy a
especificar el optimizador, que será Adam. Y mi función de pérdida es suegros
seguro que acabo de crear y voy a imprimir
algunas métricas de precisión. Por ahora. Yo sólo quiero que
vea la exactitud. Entonces esto nos dirá lo bueno está recibiendo
nuestro modelo
durante el entrenamiento. Nosotros tenemos, porque he
cometido un error aquí. Entonces déjame correr esto y
asegurarme de que el trazo esté correctamente. Esa es una palabra, dipolo.
Simplemente ahora no es un seto, tan escaso esparcido por
interreligiosos, esas cosas ahí. Y ahora vamos a compilar
el dinero. Ahí vamos. Parte del módulo Compilado. Ahora comencemos a entrenar. Nuestro modelo se
llamará modelo dot fit, que está ajustando los datos
a la red neuronal. Y voy a pasarle valores
extremos y blancos del tren. También voy a especificar una
caja feeble para pelear. Entonces época significa una iteración. Entonces las épocas le dicen al
modelo cuántas veces este modelo debería
entrenar con este conjunto de datos. Entonces, si especificamos
el e-book como 5k, el modelo de deep learning,
pasamos por este conjunto de datos phi times. Esto es para que el modelo
entienda cualquier patrón que se haya perdido durante la
primera o segunda titulación. Para que puedas mejorar el trading
incrementando la caja. Pero después de cierto
punto de tiempo, la precisión
comenzará a ser constante. Entonces eso significa el
modelo como los pulmones tanto
como pueda
a partir de los datos dados. Entonces comencemos con la pelea de box y
déjame entrenarlos. Se puede ver que el entrenamiento ha comenzado y se está llevando a cabo la primera titulación. Y puedes ver que nuestra
precisión es ahora del 91%. Se va a rentar por ciento alto
en la segunda iteración, y sigue mejorando de lo que se reduce
la función de pérdida. Ahora agregamos la precisión del 97%. Aumentemos la caja a diez para que entiendas
qué es exactamente lo que hace. Y cuando aumento la caja, este modelo ya está entrenado. Entonces puede ser entrenamiento. Entonces, si
lo sigues entrenando desde este punto, así verás que la precisión
inicial oscila. Yo hago el siete por ciento. Sí, tenemos a mi buena persona, pero va un poco abajo. Por lo que se puede ver que la
precisión es ahora todo 98%. No se pone mejor que eso. Entonces este es un buen punto para que nos detengamos con
nuestro conteo de bandeja de entrada. Entonces ese es solo un
cierto número de vibraciones que se puede hacer
con un modelo de aprendizaje automático. Ponlo de nuevo a cinco. Para que veas que
el entrenamiento
ya está completo y nosotros tenemos, estamos al 98% de precisión
en escenarios del mundo real. Incluso si tienes una
precisión superior al 80%, deberías tener un modelo de
aprendizaje profundo decente. Nuestro modelo está capacitado
y listo para predecir. En la siguiente lección,
jugaremos con algunos valores de dígitos de muestra y veremos qué tan bien funciona
nuestro modelo.
11. Predice los dígitos manuscritos: Así que hemos incorporado
entrenado nuestro modelo. Ahora, veamos lo
bueno que es nuestro modelo. Primero, usaremos la función de
evaluación incorporada y pasaremos los datos de prueba y veremos qué tan
bueno funciona el modelo. Vamos a probar eso.
Peso al nacer moderno, prueba x y polvo blanco. Mucha verbosidad para que
sepamos lo que sucede
en el fondo. Por lo que tenemos una precisión
de alrededor del 97%. La pérdida es de 0.7. Genial. Esto quiere decir que
tenemos una hipoteca legal. Necesitamos agregar un paso
más antes de comenzar a mirar
los valores de predicción. Como vimos antes, este modelo imprime los puntajes
para las predicciones. No nos da
las probabilidades. Entonces agregaremos una capa softmax y luego veremos
el problema que es. Ahora voy a crear
otra capa de secuencia. Y los clubes son
modelo existente y una
capa softmax juntos. Hagámoslo. Llamaremos a
esto el modelo de probabilidad. Entonces este modelo es el
mismo que nuestro modelo existente, pero solo vamos a
agregar una capa softmax. Entonces digamos el punto secuencial de
Kayla. Y vamos a
agregar nuestro modelo y una cuadrícula de capa softmax. Ahora nuestro modelo está listo. Entonces tomaremos algunos valores
del conjunto de pruebas, que es x test e y test y veremos si estoy solo obtiene
el valor es correcto. Esto es algo
que hicimos antes, pero nuestro modelo estaba prediciendo todo mal. Ahora
veamos cómo le va. Después de haber entrenado, voy
a agregar otro bloque de código donde primero voy
a imprimir el original. Llámalo original. Y va a ser un
valor de polvo blanco. Paremos en cero. Veamos de qué
manera hace esto. Son siete. Genial. Ahora reventaremos
el valor de x test en la mezcla y se lo
daremos a nuestro modelo y
le pediremos que lo prediga. Entonces, si obtienes el mismo valor, significa
que ese modelo está
funcionando como se esperaba. Entonces digamos que la salida
será modelo de probabilidad. Y voy a Autobus. El valor de la prueba X será cero. Entonces este es el primer valor. Entonces el elemento cero, por
eso estoy diciendo que se llama The one. También se puede decir
cero dorado. Ahora, voy a usar la misma
lógica que hice antes, pero solo para
convertir esto en array entre bytes y obtener el índice de la probabilidad
máxima. Digamos que la salida
es punto de salida no por agarrar el primer elemento
y convertirlo en una lista. Y voy a convertir valor previsto del índice del máximo
válido cuando la tasa de salida. Entonces por lo tanto está imprimiendo el valor original de lo que
estamos pasando el valor x que pertenece a esta salida y lo
estamos configurando o moderno
para preguntarle al modelo qué piensa la entrada dada S. Entonces, si tenemos nuestro igual original
y productivo, eso significa que a nuestro modelo le
va bien. Probemos esta grilla o más. Lo entendiste, ¿verdad? Probemos otro llamado
dual 1200. Haz el mismo trabajo. Ahí vamos. La religión es cinco y el valor
predicho es cinco. Déjame probar uno más. Ir por 50. Melody solía ver el valor. Espectáculo. Ahí vamos. Es 4.4. Puedes jugar con
diferentes entradas y verás que 97 de
cada 100 veces nuestro modelo predecirá los
valores correctamente. Tan gran trabajo. Hemos construido un modelo de aprendizaje
profundo que funciona usando visión por computadora que
predice dígitos escritos a mano. Solo puedes imaginar cómo otros
problemas de clasificación como predicciones de
Datadog
y otros
problemas de clasificación de
imágenes de caballeros funcionan
otros
problemas de clasificación como las predicciones de
Datadog
y otros
problemas de clasificación de
imágenes de caballeros. Y estoy seguro que
tienes algunas preguntas después de pasar por este curso. Así que por favor no
dudes en ponerte en contacto conmigo. Puedes contactarme si estás atascado en algún momento
y el coseno, estaré encantado de ayudarte a levantarte. Entonces hagamos un rápido resumen
de lo que hemos visto hasta ahora.
12. Conclusión: Nuevamente, gran trabajo al
terminar el curso. Has aprendido mucho. Empezamos por
mirar tensores y cómo TensorFlow nos ayuda a construir
y trabajar con tensores. Luego vimos cómo
realizar operaciones en tensores y generalmente
nos tiende usando matrices NumPy. También analizamos las funciones de
pérdida y optimiza y cómo
ayudan a mejorar nuestra red
neuronal. Luego aprendemos a cargar el conjunto de datos MNIST y
construir un modelo usando Keras. Finalmente, compilamos y entrenamos nuestro modelo para predecir dígitos
escritos a mano. Espero que este curso
te ayude a entender cómo trabajar con TensorFlow. Si tienes alguna
duda, no
dudes en ponerte
en contacto con week. Vas a contactarme en help admonition shiva.com. Gracias por
tomar este curso. Me encantaría escuchar
tus comentarios para que el próximo
curso sea aún mejor. Así que gracias de nuevo por
tomar este curso. Nos vemos pronto con un nuevo tema.