Tipos de Dados
Tipos de Dados
Nesta seção, você irá explorar o conceito de tipos de dados no TensorFlow. Assim como as linguagens de programação categorizam números e textos em tipos como inteiros, floats ou strings, os tensores no TensorFlow também possuem tipos específicos.
Tipos de Dados Disponíveis no TensorFlow
O TensorFlow oferece uma variedade de tipos de dados para atender diferentes tipos de dados e operações. Alguns dos tipos mais utilizados são:
-
tf.float16
,tf.float32
,tf.float64
: são números de ponto flutuante, onde os números após o ponto são relevantes. O número em seu nome (como16
emtf.float16
) indica a quantidade de bits utilizada.tf.float32
é frequentemente utilizado por oferecer um bom equilíbrio entre precisão e velocidade de computação; -
tf.int8
,tf.int16
,tf.int32
,tf.int64
: são tipos inteiros, números sem ponto decimal. Podem ser positivos ou negativos; -
tf.uint8
,tf.uint16
,tf.uint32
,tf.uint64
: o 'u' significa 'unsigned' (sem sinal), indicando que esses inteiros são sempre não negativos; -
tf.bool
: representa valores booleanos (True
ouFalse
); -
tf.string
: para dados de texto.
Para tipos inteiros, um número maior no nome apenas indica um intervalo mais amplo de valores que pode ser armazenado. Já para tipos de ponto flutuante, um número maior no nome também indica maior precisão computacional.
Existem mais tipos de dados disponíveis no TensorFlow, mas para iniciantes, é fundamental se familiarizar primeiro com esses tipos principais. Para uma lista abrangente dos tipos de dados suportados pelo TensorFlow, consulte esta página específica na documentação do TensorFlow.
Definição do Tipo de Dado ao Criar um Tensor
Ao inicializar um tensor, é possível especificar seu tipo utilizando o 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)
Muitas funções de criação de tensores adotam essa abordagem. Ela é aplicável em métodos como tf.Variable()
, tf.zeros()
, tf.ones()
, tf.random.normal()
, tf.random.uniform()
e até mesmo em tf.convert_to_tensor()
.
Conversão Entre Tipos de Dados
Mas e se a função que você está utilizando não permitir a especificação direta do tipo de dado? Ou talvez você já possua um tensor de determinado tipo e precise alterá-lo. Nesses casos, é necessário transformar tensores de um tipo de dado para outro. Isso é especialmente relevante, pois certas operações ou camadas de redes neurais frequentemente exigem entradas de um tipo específico, predominantemente números de ponto flutuante.
Você pode utilizar tf.cast()
para realizar essa conversão:
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)
Lembre-se: ao converter de um tipo de ponto flutuante para um tipo inteiro, o TensorFlow realizará a operação de piso, basicamente descartando a parte decimal. Assim, 3.8
se torna 3
e -1.2
se torna -1
.
Tenha cautela ao alterar tipos de dados, especialmente ao migrar para um tipo com menor precisão. Informações podem ser perdidas nesse processo.
Swipe to start coding
Sua tarefa é criar um tensor de um tipo de dado específico e, em seguida, convertê-lo para outro tipo de dado.
- Crie um tensor chamado
initial_tensor
com formato(3, 3)
contendo valores distribuídos normalmente. Certifique-se de que este tensor possua o tipo de dado de ponto flutuante de 64 bits. - Transforme o
initial_tensor
em um tensor chamadoconverted_tensor
com tipo de dado de ponto flutuante de 16 bits.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
What are some practical examples of when I would need to change a tensor's data type?
Can you explain the difference between signed and unsigned integer types in TensorFlow?
How do I check the data type of an existing tensor?
Awesome!
Completion rate improved to 5.56
Tipos de Dados
Deslize para mostrar o menu
Tipos de Dados
Nesta seção, você irá explorar o conceito de tipos de dados no TensorFlow. Assim como as linguagens de programação categorizam números e textos em tipos como inteiros, floats ou strings, os tensores no TensorFlow também possuem tipos específicos.
Tipos de Dados Disponíveis no TensorFlow
O TensorFlow oferece uma variedade de tipos de dados para atender diferentes tipos de dados e operações. Alguns dos tipos mais utilizados são:
-
tf.float16
,tf.float32
,tf.float64
: são números de ponto flutuante, onde os números após o ponto são relevantes. O número em seu nome (como16
emtf.float16
) indica a quantidade de bits utilizada.tf.float32
é frequentemente utilizado por oferecer um bom equilíbrio entre precisão e velocidade de computação; -
tf.int8
,tf.int16
,tf.int32
,tf.int64
: são tipos inteiros, números sem ponto decimal. Podem ser positivos ou negativos; -
tf.uint8
,tf.uint16
,tf.uint32
,tf.uint64
: o 'u' significa 'unsigned' (sem sinal), indicando que esses inteiros são sempre não negativos; -
tf.bool
: representa valores booleanos (True
ouFalse
); -
tf.string
: para dados de texto.
Para tipos inteiros, um número maior no nome apenas indica um intervalo mais amplo de valores que pode ser armazenado. Já para tipos de ponto flutuante, um número maior no nome também indica maior precisão computacional.
Existem mais tipos de dados disponíveis no TensorFlow, mas para iniciantes, é fundamental se familiarizar primeiro com esses tipos principais. Para uma lista abrangente dos tipos de dados suportados pelo TensorFlow, consulte esta página específica na documentação do TensorFlow.
Definição do Tipo de Dado ao Criar um Tensor
Ao inicializar um tensor, é possível especificar seu tipo utilizando o 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)
Muitas funções de criação de tensores adotam essa abordagem. Ela é aplicável em métodos como tf.Variable()
, tf.zeros()
, tf.ones()
, tf.random.normal()
, tf.random.uniform()
e até mesmo em tf.convert_to_tensor()
.
Conversão Entre Tipos de Dados
Mas e se a função que você está utilizando não permitir a especificação direta do tipo de dado? Ou talvez você já possua um tensor de determinado tipo e precise alterá-lo. Nesses casos, é necessário transformar tensores de um tipo de dado para outro. Isso é especialmente relevante, pois certas operações ou camadas de redes neurais frequentemente exigem entradas de um tipo específico, predominantemente números de ponto flutuante.
Você pode utilizar tf.cast()
para realizar essa conversão:
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)
Lembre-se: ao converter de um tipo de ponto flutuante para um tipo inteiro, o TensorFlow realizará a operação de piso, basicamente descartando a parte decimal. Assim, 3.8
se torna 3
e -1.2
se torna -1
.
Tenha cautela ao alterar tipos de dados, especialmente ao migrar para um tipo com menor precisão. Informações podem ser perdidas nesse processo.
Swipe to start coding
Sua tarefa é criar um tensor de um tipo de dado específico e, em seguida, convertê-lo para outro tipo de dado.
- Crie um tensor chamado
initial_tensor
com formato(3, 3)
contendo valores distribuídos normalmente. Certifique-se de que este tensor possua o tipo de dado de ponto flutuante de 64 bits. - Transforme o
initial_tensor
em um tensor chamadoconverted_tensor
com tipo de dado de ponto flutuante de 16 bits.
Solução
Obrigado pelo seu feedback!
single