Saltar al contenido

Introducción a la biblioteca de aprendizaje profundo de Python TensorFlow

17 de junio de 2022

Última actualización el 15 de junio de 2022

TensorFlow es una biblioteca de Python para computación numérica rápida creada y lanzada por Google.

Es una biblioteca base que se puede usar para crear modelos de aprendizaje profundo directamente o mediante el uso de bibliotecas contenedoras que simplifican el proceso construido sobre TensorFlow.

En esta publicación, descubrirá la biblioteca TensorFlow para Deep Learning.


Recomendado: ¿Qué es el Big data?.


Actualizaciones:

  • Junio ​​de 2022: actualización a TensorFlow 2.x

Pon en marcha tu proyecto con mi nuevo libro Aprendizaje profundo con Python, que incluye tutoriales paso a paso y el Código fuente de Python archivos para todos los ejemplos.

Empecemos.

Introducción a la biblioteca de aprendizaje profundo de Python TensorFlow
Foto de Nicolas Raymond, algunos derechos reservados.

¿Qué es TensorFlow?

TensorFlow es una biblioteca de código abierto para computación numérica rápida.

Fue creado y mantenido por Google y publicado bajo la licencia de código abierto Apache 2.0. La API es nominalmente para el lenguaje de programación Python, aunque hay acceso a la API de C++ subyacente.

A diferencia de otras bibliotecas numéricas destinadas a uso en aprendizaje profundo como Theano, TensorFlow fue diseñado para su uso tanto en investigación y desarrollo como en sistemas de producción, entre ellos RankBrain en la búsqueda de Google y el divertido proyecto DeepDream.

Puede ejecutarse en sistemas de una sola CPU, GPU, así como en dispositivos móviles y sistemas distribuidos a gran escala de cientos de máquinas.

Cómo instalar TensorFlow

La instalación de TensorFlow es sencilla si ya tiene un entorno Python SciPy.

TensorFlow funciona con Python 3.3+. Puede seguir las instrucciones de descarga y configuración en el sitio web de TensorFlow. La instalación es probablemente más simple a través de PyPI y las instrucciones específicas del comando pip para usar con su plataforma Linux o Mac OS X se encuentran en la página web de Descarga y configuración. En el caso más simple, solo necesita ingresar lo siguiente en su línea de comando:

La excepción sería en la Mac más nueva con CPU Apple Silicon. El nombre del paquete para esta arquitectura específica es tensorflow-macos en cambio:

pepita Instalar en pc tensorflowMac OS

También hay imágenes de virtualenv y docker que puede usar si lo prefiere.

Para hacer uso de la GPU, también debe tener instalado Cuda Toolkit.

Tus primeros ejemplos en TensorFlow

La computación se describe en términos de flujo de datos y operaciones en la estructura de un gráfico dirigido.

  • Nodos: los nodos realizan cálculos y tienen cero o más entradas y salidas. Los datos que se mueven entre los nodos se conocen como tensores, que son matrices multidimensionales de valores reales.
  • Bordes: El gráfico define el flujo de datos, ramificaciones, bucles y actualizaciones de estado. Los bordes especiales se pueden usar para sincronizar el comportamiento dentro del gráfico, por ejemplo, esperar a que se complete el cálculo en una cantidad de entradas.
  • Operación: Una operación es un cálculo abstracto con nombre que puede tomar atributos de entrada y producir atributos de salida. Por ejemplo, podría definir una operación de suma o multiplicación.

Computación con TensorFlow

Este primer ejemplo es una versión modificada del ejemplo en el sitio web de TensorFlow. Muestra cómo puede definir valores como tensores y ejecutar una operación.

importar tensorflow como t.f.

a = t.f..constante(10)

b = t.f..constante(32)

impresión(a+b)

Ejecutar este ejemplo muestra:

tf.Tensor(42, forma=(), dtype=int32)

Regresión lineal con TensorFlow

El siguiente ejemplo proviene de la introducción del tutorial de TensorFlow.

Este ejemplo muestra cómo puede definir variables (p. ej., W y b), así como variables que son el resultado del cálculo (y).

Tenemos una idea de que TensorFlow separa la definición y la declaración del cálculo. En la parte inferior, hay diferenciación automática bajo el capó. Cuando usamos la función mse_loss() para calcular la diferencia entre y y y_datase crea un gráfico que conecta el valor producido por la función con las variables de TensorFlow W y b. TensorFlow usa este gráfico para deducir cómo actualizar las variables dentro del minimize() función.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

17

18

19

20

21

22

23

24

25

26

27

importar tensorflow como t.f.

importar entumecido como notario público

# Crear 100 puntos de datos x, y falsos en NumPy, y = x * 0.1 + 0.3

datos_x = notario público.aleatorio.rand(100).un tipo(notario público.flotar32)

y_datos = x_datos * 0.1 + 0.3

# Trate de encontrar valores para W y b que calculen y_data = W * x_data + b

# (Sabemos que W debería ser 0.1 yb 0.3, pero Tensorflow lo hará

# descúbrelo por nosotros.)

W = t.f..Variable(t.f..aleatorio.normal([1]))

b = t.f..Variable(t.f..ceros([1]))

# Una función para calcular el error cuadrático medio entre y_data y y calculado

definitivamente mse_loss():

y = W * datos_x + b

pérdida = t.f..reducir_media(t.f..cuadrado(y y_datos))

devolver pérdida

# Minimizar los errores cuadráticos medios.

optimizador = t.f..queras.optimizadores.Adán()

por paso en rango(5000):

optimizador.minimizar(mse_loss, lista_var=[W,b])

si paso % 500 == 0:

impresión(paso, W.entumecido(), b.entumecido())

# Aprende que el mejor ajuste es W: [0.1]b: [0.3]

Ejecutar este ejemplo imprime el siguiente resultado:

0 [-0.35913563] [0.001]

500 [-0.04056413] [0.3131764]

1000 [0.01548613] [0.3467598]

1500 [0.03492216] [0.3369852]

2000 [0.05408324] [0.32609695]

2500 [0.07121297] [0.316361]

3000 [0.08443557] [0.30884594]

3500 [0.09302785] [0.3039626]

4000 [0.09754606] [0.3013947]

4500 [0.09936733] [0.3003596]

Puede obtener más información sobre la mecánica de TensorFlow en la guía de uso básico.

Más modelos de aprendizaje profundo

Su instalación de TensorFlow viene con una serie de modelos de aprendizaje profundo que puede usar y experimentar directamente.

En primer lugar, debe averiguar dónde se instaló TensorFlow en su sistema. Por ejemplo, puede usar el siguiente script de Python:

python -c ‘importar sistema operativo; importar inspeccionar; importar flujo de tensor; imprimir(os.path.dirname(inspeccionar.getfile(tensorflow)))’

Por ejemplo, esto podría ser:

/usr/lib/python3.9/site-packages/tensorflow

Cambie a este directorio y tome nota del subdirectorio de modelos. Se incluyen una serie de modelos de aprendizaje profundo con comentarios de tipo tutorial, como:

  • Modelo de skip-gram mini-lote de word2vec de subprocesos múltiples.
  • Modelo de skip-gram sin lotes word2vec de subprocesos múltiples.
  • CNN para la red CIFAR-10.
  • Ejemplo de modelo MNIST convolucional simple, de extremo a extremo, similar a LeNet-5.
  • Modelo de secuencia a secuencia con un mecanismo de atención.

Consulte también el directorio de ejemplos, ya que contiene un ejemplo que utiliza el conjunto de datos MNIST.

También hay una excelente lista de tutoriales en el sitio web principal de TensorFlow. Muestran cómo usar diferentes tipos de redes, diferentes conjuntos de datos y cómo usar el marco de varias maneras diferentes.

Finalmente, está el área de juegos de TensorFlow donde puede experimentar con redes pequeñas directamente en su navegador web.


¿Necesita ayuda con Deep Learning en Python?

Tome mi curso de correo electrónico gratuito de 2 semanas y descubra MLP, CNN y LSTM (con código).

Haga clic para registrarse ahora y también obtenga una versión gratuita de Ebook en PDF del curso.


Recursos de TensorFlow

Más recursos

Resumen

En esta publicación, descubrió la biblioteca TensorFlow Python para el aprendizaje profundo.

Aprendió que es una biblioteca para computación numérica rápida, diseñada específicamente para los tipos de operaciones que se requieren en el desarrollo y evaluación de grandes modelos de aprendizaje profundo.

¿Tienes alguna pregunta sobre TensorFlow o sobre esta publicación? Haga sus preguntas en los comentarios y haré todo lo posible para responderlas.

¡Desarrolle proyectos de aprendizaje profundo con Python!

Aprendizaje profundo con Python

¿Qué pasaría si pudiera desarrollar una red en minutos?

…con solo unas pocas líneas de Python

Descubre cómo en mi nuevo Ebook:
Aprendizaje profundo con Python

Cubre proyectos de punta a punta sobre temas como:
Perceptrones multicapa, Redes convolucionales y Redes neuronales recurrentesy más…

Finalmente lleve el aprendizaje profundo a
Tus propios proyectos

Sáltate los académicos. Solo Resultados.

Ver lo que hay dentro