Criando Tensores
Criando Tensores
Esta lição aborda a criação de tensores utilizando o TensorFlow. O TensorFlow oferece diversos métodos para inicializar tensores. Ao final desta lição, você estará apto a gerar tensores para uma ampla variedade de aplicações.
Inicializadores Básicos de Tensor
tf.constant()
: esta é a forma mais simples de criar um tensor. Como o nome sugere, tensores inicializados com este método possuem valores constantes e são imutáveis;
12345import tensorflow as tf # Create a 2x2 constant tensor tensor_const = tf.constant([[1, 2], [3, 4]]) print(tensor_const)
tf.Variable()
: ao contrário detf.constant()
, um tensor definido usandotf.Variable()
é mutável. Isso significa que seu valor pode ser alterado, tornando-o ideal para parâmetros treináveis em modelos;
12345import tensorflow as tf # Create a variable tensor tensor_var = tf.Variable([[1, 2], [3, 4]]) print(tensor_var)
tf.zeros()
: cria um tensor preenchido com zeros;
12345import tensorflow as tf # Zero tensor of shape (3, 3) tensor_zeros = tf.zeros((3, 3)) print(tensor_zeros)
tf.ones()
: por outro lado, cria um tensor preenchido com uns;
12345import tensorflow as tf # Ones tensor of shape (2, 2) tensor_ones = tf.ones((2, 2)) print(tensor_ones)
tf.fill()
: cria um tensor preenchido com um valor específico;
12345import tensorflow as tf # Tensor of shape (2, 2) filled with 6 tensor_fill = tf.fill((2, 2), 6) print(tensor_fill)
tf.linspace()
etf.range()
: excelentes para criar sequências;
123456789import tensorflow as tf # Generate a sequence of numbers starting from 0, ending at 9 tensor_range = tf.range(10) print(tensor_range) # Create 5 equally spaced values between 0 and 10 tensor_linspace = tf.linspace(0, 10, 5) print(tensor_linspace)
tf.random
: gera tensores com valores aleatórios. Diversas distribuições e funções estão disponíveis neste módulo, comotf.random.normal()
para valores de uma distribuição normal etf.random.uniform()
para valores de uma distribuição uniforme.
Também é possível definir uma semente fixa para obter resultados consistentes em cada geração de número aleatório utilizando tf.random.set_seed()
. No entanto, ao fazer isso, você receberá o mesmo número para qualquer geração aleatória dentro do TensorFlow.
Se desejar obter números consistentes apenas para um comando específico, é possível fornecer um argumento seed
para esse comando com o valor de semente desejado.
1234567891011121314import tensorflow as tf # Set random seed tf.random.set_seed(72) # Tensor of shape (2, 2) with random values normally distributed # (by default `mean=0` and `std=1`) tensor_random = tf.random.normal((2, 2), mean=4, stddev=0.5) print(tensor_random) # Tensor of shape (2, 2) with random values uniformly distributed # (by default `min=0` and `max=1`) tensor_random = tf.random.uniform((2, 2), minval=-2, maxval=2) print(tensor_random)
Conversão Entre Estruturas de Dados
Tensores do TensorFlow podem ser convertidos facilmente para e a partir de estruturas de dados familiares do Python.
- A partir de Arrays Numpy: Tensores do TensorFlow e arrays Numpy são bastante interoperáveis. Utilize
tf.convert_to_tensor()
;
12345678910import numpy as np import tensorflow as tf # Create a NumPy array based on a Python list numpy_array = np.array([[1, 2], [3, 4]]) # Convert a NumPy array to a tensor tensor_from_np = tf.convert_to_tensor(numpy_array) print(tensor_from_np)
- A partir de DataFrames do Pandas: para quem utiliza análise de dados com Pandas, converter um DataFrame ou uma Series em um tensor do TensorFlow é simples. Utilize também
tf.convert_to_tensor()
;
12345678910import pandas as pd import tensorflow as tf # Create a DataFrame based on dictionary df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) # Convert a DataFrame to a tensor tensor_from_df = tf.convert_to_tensor(df.values) print(tensor_from_df)
Sempre garanta que os tipos de dados das estruturas originais (arrays Numpy ou DataFrames do Pandas) sejam compatíveis com os tipos de dados dos tensores do TensorFlow. Em caso de incompatibilidade, considere realizar o casting de tipo.
- Convertendo um tensor constante em uma
Variable
: é possível inicializar umaVariable
utilizando diversos métodos de criação de tensores, comotf.ones()
,tf.linspace()
,tf.random
, entre outros. Basta passar a função ou o tensor já existente paratf.Variable()
.
12345678910111213import tensorflow as tf # Create a variable from a tensor tensor = tf.random.normal((2, 3)) variable_1 = tf.Variable(tensor) # Create a variable based on other generator variable_2 = tf.Variable(tf.zeros((2, 2))) # Display tensors print(variable_1) print('-' * 50) print(variable_2)
Para aprimorar a criação de tensores, recomenda-se praticar com diferentes formas e valores. Para mais detalhes sobre comandos específicos, consulte a documentação do TensorFlow. Nela estão disponíveis todas as informações necessárias sobre qualquer comando ou módulo da biblioteca.
Swipe to start coding
Sua tarefa é criar, modificar e converter diversos tensores neste desafio.
Parte 1 — Inicialização de Tensores
- Criar um tensor chamado
tensor_A
com forma(3, 3)
e todos os elementos iguais a 5. - Criar um tensor mutável chamado
tensor_B
com forma(2, 3)
e quaisquer valores de sua escolha. - Criar um tensor chamado
tensor_C
com forma(3, 3)
preenchido com zeros. - Criar um tensor chamado
tensor_D
com forma(4, 4)
preenchido com uns. - Criar um tensor chamado
tensor_E
com 5 valores linearmente espaçados entre 3 e 15. - Criar um tensor chamado
tensor_F
com valores aleatórios e forma(2, 2)
.
Parte 2 — Conversões
- Converter o array NumPy
np_array
em um tensor TensorFlow chamadotensor_from_array
. - Converter o DataFrame
df
em um tensor TensorFlow chamadotensor_from_dataframe
.
Observação
- Utilize as funções mais apropriadas do TensorFlow (por exemplo,
tf.ones()
,tf.zeros()
,tf.fill()
, etc.). - Para conversões, utilize
tf.convert_to_tensor()
. - Para tensores linearmente espaçados, utilize
tf.linspace(start, stop, num)
. - Para tensores aleatórios, utilize
tf.random.normal(shape)
.
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
Awesome!
Completion rate improved to 5.56
Criando Tensores
Deslize para mostrar o menu
Criando Tensores
Esta lição aborda a criação de tensores utilizando o TensorFlow. O TensorFlow oferece diversos métodos para inicializar tensores. Ao final desta lição, você estará apto a gerar tensores para uma ampla variedade de aplicações.
Inicializadores Básicos de Tensor
tf.constant()
: esta é a forma mais simples de criar um tensor. Como o nome sugere, tensores inicializados com este método possuem valores constantes e são imutáveis;
12345import tensorflow as tf # Create a 2x2 constant tensor tensor_const = tf.constant([[1, 2], [3, 4]]) print(tensor_const)
tf.Variable()
: ao contrário detf.constant()
, um tensor definido usandotf.Variable()
é mutável. Isso significa que seu valor pode ser alterado, tornando-o ideal para parâmetros treináveis em modelos;
12345import tensorflow as tf # Create a variable tensor tensor_var = tf.Variable([[1, 2], [3, 4]]) print(tensor_var)
tf.zeros()
: cria um tensor preenchido com zeros;
12345import tensorflow as tf # Zero tensor of shape (3, 3) tensor_zeros = tf.zeros((3, 3)) print(tensor_zeros)
tf.ones()
: por outro lado, cria um tensor preenchido com uns;
12345import tensorflow as tf # Ones tensor of shape (2, 2) tensor_ones = tf.ones((2, 2)) print(tensor_ones)
tf.fill()
: cria um tensor preenchido com um valor específico;
12345import tensorflow as tf # Tensor of shape (2, 2) filled with 6 tensor_fill = tf.fill((2, 2), 6) print(tensor_fill)
tf.linspace()
etf.range()
: excelentes para criar sequências;
123456789import tensorflow as tf # Generate a sequence of numbers starting from 0, ending at 9 tensor_range = tf.range(10) print(tensor_range) # Create 5 equally spaced values between 0 and 10 tensor_linspace = tf.linspace(0, 10, 5) print(tensor_linspace)
tf.random
: gera tensores com valores aleatórios. Diversas distribuições e funções estão disponíveis neste módulo, comotf.random.normal()
para valores de uma distribuição normal etf.random.uniform()
para valores de uma distribuição uniforme.
Também é possível definir uma semente fixa para obter resultados consistentes em cada geração de número aleatório utilizando tf.random.set_seed()
. No entanto, ao fazer isso, você receberá o mesmo número para qualquer geração aleatória dentro do TensorFlow.
Se desejar obter números consistentes apenas para um comando específico, é possível fornecer um argumento seed
para esse comando com o valor de semente desejado.
1234567891011121314import tensorflow as tf # Set random seed tf.random.set_seed(72) # Tensor of shape (2, 2) with random values normally distributed # (by default `mean=0` and `std=1`) tensor_random = tf.random.normal((2, 2), mean=4, stddev=0.5) print(tensor_random) # Tensor of shape (2, 2) with random values uniformly distributed # (by default `min=0` and `max=1`) tensor_random = tf.random.uniform((2, 2), minval=-2, maxval=2) print(tensor_random)
Conversão Entre Estruturas de Dados
Tensores do TensorFlow podem ser convertidos facilmente para e a partir de estruturas de dados familiares do Python.
- A partir de Arrays Numpy: Tensores do TensorFlow e arrays Numpy são bastante interoperáveis. Utilize
tf.convert_to_tensor()
;
12345678910import numpy as np import tensorflow as tf # Create a NumPy array based on a Python list numpy_array = np.array([[1, 2], [3, 4]]) # Convert a NumPy array to a tensor tensor_from_np = tf.convert_to_tensor(numpy_array) print(tensor_from_np)
- A partir de DataFrames do Pandas: para quem utiliza análise de dados com Pandas, converter um DataFrame ou uma Series em um tensor do TensorFlow é simples. Utilize também
tf.convert_to_tensor()
;
12345678910import pandas as pd import tensorflow as tf # Create a DataFrame based on dictionary df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) # Convert a DataFrame to a tensor tensor_from_df = tf.convert_to_tensor(df.values) print(tensor_from_df)
Sempre garanta que os tipos de dados das estruturas originais (arrays Numpy ou DataFrames do Pandas) sejam compatíveis com os tipos de dados dos tensores do TensorFlow. Em caso de incompatibilidade, considere realizar o casting de tipo.
- Convertendo um tensor constante em uma
Variable
: é possível inicializar umaVariable
utilizando diversos métodos de criação de tensores, comotf.ones()
,tf.linspace()
,tf.random
, entre outros. Basta passar a função ou o tensor já existente paratf.Variable()
.
12345678910111213import tensorflow as tf # Create a variable from a tensor tensor = tf.random.normal((2, 3)) variable_1 = tf.Variable(tensor) # Create a variable based on other generator variable_2 = tf.Variable(tf.zeros((2, 2))) # Display tensors print(variable_1) print('-' * 50) print(variable_2)
Para aprimorar a criação de tensores, recomenda-se praticar com diferentes formas e valores. Para mais detalhes sobre comandos específicos, consulte a documentação do TensorFlow. Nela estão disponíveis todas as informações necessárias sobre qualquer comando ou módulo da biblioteca.
Swipe to start coding
Sua tarefa é criar, modificar e converter diversos tensores neste desafio.
Parte 1 — Inicialização de Tensores
- Criar um tensor chamado
tensor_A
com forma(3, 3)
e todos os elementos iguais a 5. - Criar um tensor mutável chamado
tensor_B
com forma(2, 3)
e quaisquer valores de sua escolha. - Criar um tensor chamado
tensor_C
com forma(3, 3)
preenchido com zeros. - Criar um tensor chamado
tensor_D
com forma(4, 4)
preenchido com uns. - Criar um tensor chamado
tensor_E
com 5 valores linearmente espaçados entre 3 e 15. - Criar um tensor chamado
tensor_F
com valores aleatórios e forma(2, 2)
.
Parte 2 — Conversões
- Converter o array NumPy
np_array
em um tensor TensorFlow chamadotensor_from_array
. - Converter o DataFrame
df
em um tensor TensorFlow chamadotensor_from_dataframe
.
Observação
- Utilize as funções mais apropriadas do TensorFlow (por exemplo,
tf.ones()
,tf.zeros()
,tf.fill()
, etc.). - Para conversões, utilize
tf.convert_to_tensor()
. - Para tensores linearmente espaçados, utilize
tf.linspace(start, stop, num)
. - Para tensores aleatórios, utilize
tf.random.normal(shape)
.
Solução
Obrigado pelo seu feedback!
single