PDF de programación - TensorFlow en Español

Imágen de pdf TensorFlow en Español

TensorFlow en Españolgráfica de visualizaciones

Publicado el 3 de Noviembre del 2018
4.118 visualizaciones desde el 3 de Noviembre del 2018
288,9 KB
20 paginas
Creado hace 2a (31/08/2017)
Tabla de contenido

Introducción
Tutoriales

TensorFlow Mecánica 101

API

Python API

Framework

Comenzando

Uso Básico

1.1
1.2
1.2.1
1.3
1.3.1
1.3.1.1
1.4
1.4.1

1

Comenzando

Comenzando

Vamos a prepararnos para comenzar con TensorFlow!

Pero antes de comenzar, echemos un vistazo a como se ve el código de TensorFlow con la
API de Python, para que tengas una idea hacia adonde vamos.

Aquí tenemos un pequeño programa en Python que representa algunos datos en dos
dimensiones, con los cuales calcularemos la línea con el mejor ajuste.

import tensorflow as tf
import numpy as np

# Crear 100 puntos falsos x, y en NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

# Tratar de encontrar valores para W y b que puedan calcular y_data = W * x_data + b

# (Sabemos que W debe de ser 0.1 y b 0.3, pero Tensorflow intentará descubrirlo por no
sotros.)
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b

# Minimizar los errores de la media cuadrática.

loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# Antes de comenzar, inicializar las variables. 'Corramos' esto primero.

init = tf.initialize_all_variables()

# Lanzamos el grafo
sess = tf.Session()
sess.run(init)

# Ajuste de línea.
for step in xrange(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(W), sess.run(b))

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

2

Comenzando

La primera parte de este código crea un grafo de flujo de datos. TensorFlow no ejecuta
ningún cómputo hasta que se crea la sesión y la función run es llamada.

Para alimentar aún mas nuestro apetito, te sugerimos que revises como luce un problema
clásico de machine learning en TensorFlow. En la tierra de las redes neuronales el problema
clásico más "clásico" es la clasificación de dígitos escritos a mano MNIST. Ofrecemos dos
introducciones aquí, una para los novatos en machine learning, y otra para profesionales. Si
ya has entrenado docenas de modelos MNIST en otros paquetes de software, por favor
toma la píldora roja. Si nunca has escuchado acerca de MNIST, definitivamente toma la
píldora azul. Pero si consideras ser un punto intermedio se sugerimos probar primero la azul
y después la roja.

Si ya estas seguro que deseas aprender e instalar TensorFlow puedes saltarte esto y seguir
adelante. No te preocupes, aún asi tendrás oportunidad de ver MNIST -- también usaremos
MNIST como ejemplo en un tutorial técnico en donde desarrollaremos las características de

3

Comenzando

TensorFlow.

Siguientes pasos recomendados

Descarga e instalación
Uso básico
101 Mecánicas de TensorFlow
Jugar con TensorFlow en tu navegador

4

Tutoriales

Tutoriales

5

TensorFlow Mecánica 101

TensorFlow Mecánica 101

Código: tensorflow / ejemplos / tutoriales / mnist /

El objetivo de este tutorial es mostrar cómo usar TensorFlow para entrenar y evaluar una
sencilla red neuronal de tipo Feedforward que clasifica números escritos de forma manual,
usando la base de datos MNIST. El público objetivo de este tutorial son aquellos que tengan
experciencia en el uso de máquinas de aprendizaje y que esten interesados en utilizar
TensorFlow.

En terminos generales estos tutoriales no pretenden enseñar sobre máquinas de
aprendizaje.

Por favor asegúrese de haber seguido correctamente las instrucciones para instalar
TensorFlow .

Archivos de este tutorial

Este tutorial hace referencia a los siguientes archivos:

Archivo

mnist.py

fully_connected_feed.py

Propósito

El código para desarrollar un modelo MNIST plenamente
conectado (fully-connected MNIST)
El código para entrenar el modelo MNIST con el conjunto
de datos descargados usando un diccionario de
alimentación.

Solo es necesario ejecutar el programa fully_connected_feed.py para comenzar el
entrenamiento:

python fully_connected_feed.py

Preparación de los Datos

MNIST es un problema clásico del aprendizaje de máquina. Consiste en análizar las
imágenes de los números escritos a mano de tamaño 28x28 píxeles y que estan en una
escala de grises para determinar qué dígito representa la imagen, esto incluye todos los
números desdee el cero hasta nueve.

6

TensorFlow Mecánica 101

Para obtener más información, consulte las página ...

Descargas

Al inicio del método run_training(), la función input_data.read_data_sets() se encarga de
que los datos para el entrenamiento hayan sido descargados a su carpeta local y despues
los descomprime para devolver un diccionario de instancias tipo DataSet.

data_sets = input_data.read_data_sets(FLAGS.train_dir, FLAGS.fake_data)

NOTA: El indicador fake_data se utiliza con el fun de realizar pruebas unitarias y puede ser
omitido por el lector.

Datos

data_sets.train

data_sets.validation

data_sets.test

Propósito

55000 imagenes y nombres para el entrenamiento principal
5000 imagenes y nombres para validar periodicamente la
precisión del entrenamiento
10000 imagenes y nombres, para las pruebas finales de cuan
preciso es el entrenamiento

Para obtener más información acerca de los datos, por favor lea el tutorial sobre descargas.

Entradas y marcadores de posición

La función placeholder_inputs() crea dos operaciones tf.placeholder que definen como son
las entradas, incluyendo el tamaño (batch_size), esto es para el resto de la gráfica y es con
la que se poblaran los ejemplos.

images_placeholder = tf.placeholder(tf.float32, shape=(batch_size, mnist.IMAGE_PIXELS)
)
labels_placeholder = tf.placeholder(tf.int32, shape=(batch_size)

7

TensorFlow Mecánica 101

Mas abajo en el cada ciclo del loop de entrenamiento, cada imagen se separa de su
etiqueta para ajustar el batch_size, luego se asocia un marcador de posición y el resultado
se pasa como valor dentro parametro feed_dict en la función sess.run().

Construyendo el gráfico

Despues de haber creado los marcadores de posición de los datos, el gráfico se construye
a partir del programa mnist.py de acuerdo con el siguiente patrón de tres etapas:
inference(), loss(), and training().

1. inference(): construye el gráfico a medida que se vaya requiriendo para ejecutar la red

neuronal (con propagación hacia adelante) y realizar las predicciones.

2. loss(): agrega al gráfico de inferencia las operaciones requeridas para poder generar la

perdida.

3. training(): agrega al gráfico de perdida las operaciones requeridas para calcular y

aplicar los gradientes.

Inferencia

La función de inferencia construye el gráfico a medida que se vaya necesitando para
retornar el tensor que puede contener las predicciones.

8

API

Documentación API

TensorFlow tiene APIs disponibles en varios idiomas, tanto para la construcción como para
la ejecución de un gráfico en TensorFlow. La API de Python es en la actualidad la más
completa y la más fácil de usar, pero la C++ API puede ofrecer algunas ventajas de
rendimiento en ejecución de gráficos, y soporta el despliegue en pequeños dispositivos
como Android.

Con el tiempo, esperamos que la comunidad TensorFlow desarrolle frontends para
lenguages como Go, Java, JavaScript, Lua, R, y tal vez otras opciones.

Con SWIG, es relativamente fácil de desarrollar una interfaz TensorFlow para su lenguaje
preferido.

9

Python API

Python API

Contrucción de Gráficos

add_to_collection
as_dtype
bytes
control_dependencies
convert_to_tensor
convert_to_tensor_or_indexed_slices
device
Dimension
DType
get_collection
get_collection_ref
get_default_graph
get_seed
Graph
GraphKeys
import_graph_def
load_file_system_library
load_op_library
name_scope
NoGradient
op_scope
Operation
register_tensor_conversion_function
RegisterGradient
RegisterShape
reset_default_graph
Tensor
TensorShape

10

Framework

Contrucción de Gráficos

[Menú con vínculos]

Clases y funciones para la construcción de gráficos en TensorFlow.

tf.add_to_collection(name, value)

Contenedor/envoltorio para Graph.add_to_collection() utilizando el gràfico por defecto.

Consulte Graph.add_to_collection() apra más detalles.

Argumentos:

name: La clave para la colección.Por ejemplo, la clase Graph Keys contiene varios
nombres estándares para colecciones.
value: El valor para agregar a la colección.

tf.as_dtype(type_value)

Convierte el type_value dado a un DType

Argumentos:

type_value: Un valor que se puede convertir a un objeto tf.DType. Actualmente esto
puede ser un objeto tf.DType, una enumeración DataType, un nombre tipo cadena, o
un numpy.dtype.

Retorno: Un DType correspondiente a type_value.

Lanzamiento:

TypeError: Si type_value no puede ser convertido a DType.

class tf.bytes

str(object='') -> cadena

Retorna una linda representación de cadena del objeto. Si el argumento es una cadena, el
valor de retorno es el mismo objeto.

tf.control_dependencies(control_inputs)

11

Framework

Contenedor/envoltorio para Graph.control_dependencies() utilizado en el gráfico por
defecto.

Mire Graph.control_dependencies() para más detalles. Argumentos:

control_inputs: una lista de objetos Operation o Tensor los cuales deben ser
ejecutados o computadas antes de la ejecución de las operaciones definidas en el
contexto.Puede además ser None para limpiar el control de dependencias.

tf.convert_to_tensor(value, dtype=None, name=None,
as_ref=False)

Convertir el value dado a un Tensor

Esta función convierte objetos Python de varios tipos a objetos Tensor. Se aceptan objetos
Tensor, matrices numpy, listas Python,escalares Python. Por ejemplo:

import numpy as np

def my_func(arg):
arg = tf.convert_to_tensor(arg, dtype=tf.float32)
return tf.matmul(arg, arg) + arg

# The following calls are equivalent.
value_1 = my_func(tf.constant([[1.0, 2.0], [3.0, 4.0]]))
value_2 = my_func([[1.0, 2.0], [3.0, 4.0]])
value_3 = my_func(np.array([[1.0, 2.0], [3.0, 4.0]], dtype=np.float32))

Esta función puede ser útil al componer una nueva operación en Python (como el caso de
mi_func en el anterior ejemplo). Toda operación constr
  • Links de descarga
http://lwp-l.com/pdf14115

Comentarios de: TensorFlow en Español (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad