single
Tipos de Datos
Desliza para mostrar el menú
Tipos de datos disponibles en TensorFlow
TensorFlow admite una gran variedad de tipos de datos para adaptarse a diferentes tipos de datos y operaciones. Algunos de los tipos más utilizados son:
-
tf.float16,tf.float32,tf.float64: estos son números de punto flotante donde los números después del punto decimal son importantes. El número en su nombre (como el16entf.float16) indica la cantidad de bits utilizados.tf.float32se usa comúnmente porque ofrece un buen equilibrio entre precisión y velocidad de cálculo; -
tf.int8,tf.int16,tf.int32,tf.int64: estos son tipos enteros, números sin punto decimal. Pueden ser tanto positivos como negativos; -
tf.uint8,tf.uint16,tf.uint32,tf.uint64: la 'u' aquí significa 'unsigned' (sin signo), lo que indica que estos enteros siempre son no negativos; -
tf.bool: representa valores booleanos (TrueoFalse); -
tf.string: para datos de texto.
Para los tipos enteros, un número mayor en el nombre solo indica un rango más amplio de valores que puede almacenar. Pero para los tipos de punto flotante, un número mayor en el nombre también indica una mayor precisión computacional.
Existen más tipos de datos disponibles en TensorFlow, pero para principiantes, es fundamental familiarizarse primero con estos tipos principales. Para una lista completa de los tipos de datos compatibles con TensorFlow, considere consultar esta página específica en la documentación de TensorFlow.
Establecimiento del tipo de dato al crear un tensor
Al inicializar un tensor, es posible especificar su tipo utilizando el argumento dtype:
123456789101112import tensorflow as tf # Creating a tensor of type `float16` tensor_float = tf.constant([1.2, 2.3, 3.4], dtype=tf.float16) # Creating a tensor of type `int64` tensor_int = tf.constant([1, 2, 3], dtype=tf.int64) # Display tensors print(tensor_float) print('-' * 50) print(tensor_int)
Muchas funciones de creación de tensores adoptan este enfoque. Es aplicable en métodos como tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() e incluso en tf.convert_to_tensor().
Conversión entre tipos de datos
¿Pero qué sucede si la función que estás utilizando no permite la especificación directa del tipo de dato? O tal vez ya posees un tensor de cierto tipo y necesitas cambiarlo. En estos casos, será necesario transformar tensores de un tipo de dato a otro. Esto es especialmente relevante ya que ciertas operaciones o capas de redes neuronales suelen requerir entradas de un tipo particular, predominantemente números de punto flotante.
Puedes utilizar tf.cast() para lograr esto:
123456789101112import tensorflow as tf # Create a tensor tensor_float = tf.constant([-1.2, 2.3, 3.8]) # Convert our `tensor_float` from `float32` to `int32` tensor_int_converted = tf.cast(tensor_float, dtype=tf.int32) # Display a tensor print(tensor_float) print('-' * 50) print(tensor_int_converted)
Recuerda que, al convertir de un tipo de punto flotante a un tipo entero, TensorFlow realizará una operación de piso, eliminando la parte decimal. Así, 3.8 se convierte en 3 y -1.2 se convierte en -1.
Tener precaución al cambiar los tipos de datos, especialmente al pasar a un tipo con menor precisión. Existe el riesgo de pérdida de información durante el proceso.
Swipe to start coding
Tu tarea es crear un tensor de un tipo de dato específico y luego convertirlo a otro tipo de dato.
- Crear un tensor llamado
initial_tensorde forma(3, 3)con valores distribuidos normalmente. Asegúrate de que este tensor tenga un tipo de dato de valores de punto flotante de 64 bits. - Transforma el
initial_tensoren un tensor llamadoconverted_tensorcon un tipo de dato de valores de punto flotante de 16 bits.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla