Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Creazione di Tensori | Sezione
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Deep Learning con TensorFlow
Sezione 1. Capitolo 6
single

single

bookCreazione di Tensori

Scorri per mostrare il menu

Inizializzatori di Tensori di Base

  • tf.constant(): questo è il modo più semplice per creare un tensore. Come suggerisce il nome, i tensori inizializzati con questo metodo contengono valori costanti e sono immutabili;
12345
import tensorflow as tf # Create a 2x2 constant tensor tensor_const = tf.constant([[1, 2], [3, 4]]) print(tensor_const)
copy
  • tf.Variable(): a differenza di tf.constant(), un tensore definito utilizzando tf.Variable() è mutabile. Questo significa che il suo valore può essere modificato, rendendolo ideale per parametri allenabili nei modelli;
12345
import tensorflow as tf # Create a variable tensor tensor_var = tf.Variable([[1, 2], [3, 4]]) print(tensor_var)
copy
  • tf.zeros(): crea un tensore riempito di zeri;
12345
import tensorflow as tf # Zero tensor of shape (3, 3) tensor_zeros = tf.zeros((3, 3)) print(tensor_zeros)
copy
  • tf.ones(): al contrario, crea un tensore riempito di uno;
12345
import tensorflow as tf # Ones tensor of shape (2, 2) tensor_ones = tf.ones((2, 2)) print(tensor_ones)
copy
  • tf.fill(): crea un tensore riempito con un valore specifico;
12345
import tensorflow as tf # Tensor of shape (2, 2) filled with 6 tensor_fill = tf.fill((2, 2), 6) print(tensor_fill)
copy
  • tf.linspace() e tf.range(): strumenti ideali per creare sequenze;
123456789
import 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)
copy
  • tf.random: genera tensori con valori casuali. Sono disponibili diverse distribuzioni e funzioni all'interno di questo modulo, come tf.random.normal() per valori da una distribuzione normale e tf.random.uniform() per valori da una distribuzione uniforme.
Note
Nota

È possibile impostare anche un seed fisso per ottenere risultati coerenti ad ogni generazione di numeri casuali utilizzando tf.random.set_seed(). Tuttavia, tieni presente che facendo ciò riceverai lo stesso numero per qualsiasi generazione casuale all'interno di TensorFlow.

Se desideri ottenere numeri coerenti solo per un comando specifico, puoi fornire un argomento seed a quel comando con il valore di seed desiderato.

1234567891011121314
import 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)
copy

Conversione tra strutture dati

I tensori di TensorFlow possono essere convertiti facilmente da e verso le strutture dati Python più comuni.

  • Da array Numpy: I tensori di TensorFlow e gli array Numpy sono altamente interoperabili. Utilizzare tf.convert_to_tensor();
12345678910
import 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)
copy
  • Da Pandas DataFrames: per chi utilizza Pandas per l'analisi dei dati, convertire un DataFrame o una Series in un tensore TensorFlow è semplice. Utilizzare anche in questo caso tf.convert_to_tensor();
12345678910
import 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)
copy
Note
Nota

Assicurarsi sempre che i tipi di dati delle strutture originali (array Numpy o DataFrame Pandas) siano compatibili con i tipi di dati dei tensori TensorFlow. In caso di incompatibilità, considerare il casting del tipo.

  • Conversione di un tensore costante in una Variable: è possibile inizializzare una Variable utilizzando vari metodi di creazione di tensori come tf.ones(), tf.linspace(), tf.random e così via. Basta passare la funzione o il tensore preesistente a tf.Variable().
12345678910111213
import 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)
copy

Per migliorare nella creazione di tensori, esercitarsi con forme e valori diversi. Per ulteriori dettagli sui comandi specifici, consultare la documentazione di TensorFlow. Contiene tutte le informazioni necessarie su qualsiasi comando o modulo della libreria.

Compito

Swipe to start coding

Il tuo compito è creare, modificare e convertire vari tensori utilizzando TensorFlow.

Parte 1 — Inizializzazione dei tensori

  1. Creare un tensore chiamato tensor_A con forma (3, 3) e tutti gli elementi uguali a 5.
  2. Creare un tensore mutabile chiamato tensor_B con forma (2, 3) e valori a scelta.
  3. Creare un tensore chiamato tensor_C con forma (3, 3) riempito di zeri.
  4. Creare un tensore chiamato tensor_D con forma (4, 4) riempito di uni.
  5. Creare un tensore chiamato tensor_E con 5 valori equidistanti tra 3 e 15.
  6. Creare un tensore chiamato tensor_F con valori casuali e forma (2, 2).

Parte 2 — Conversioni

  1. Convertire l'array NumPy np_array in un tensore TensorFlow chiamato tensor_from_array.
  2. Convertire il DataFrame df in un tensore TensorFlow chiamato tensor_from_dataframe.

Nota

  • Utilizzare le funzioni TensorFlow più adatte per ciascuna operazione:
  • tf.fill() per tensori con un singolo valore ripetuto;
  • tf.Variable() per tensori mutabili;
  • tf.zeros() / tf.ones() per tensori riempiti di zeri o uni;
  • tf.linspace() per tensori con valori equidistanti;
  • tf.random.normal() per tensori casuali;
  • Utilizzare tf.convert_to_tensor() per conversioni da array NumPy o DataFrame pandas;
  • Evitare di usare tf.constant() — utilizzare invece le funzioni più specifiche elencate sopra.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 6
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

some-alt