IST - Física HowTo - Informática 14:34
2025-12-22
  Bibliotecas
 
     Inteligência artificial
 
        TensorFlow
 
           Exemplos
 
              Tarefas úteis
 
              Imagens
 

Tensor Flow — Exemplos: Tarefas úteis

Sumário
1. Introdução
2. Como fazer o download de um conjunto de dados do "TensorFlow Datasets"
3. Como guardar e ler os resultados de um treino
4. Como ler e alterar as dimensões de uma imagem
5. Como aplicar um modelo treinado a um conjunto de dados
6. Como visualizar um modelo
7.
8.
9. Links úteis
Início

1. Introdução

Início

2. Como fazer o download de um conjunto de dados do "TensorFlow Datasets"

A "TensorFlow Datasets" é uma base de dados disponível "online" de onde se podem extrair todo um conjunto de Datasets. Vejamos, a título de exemplo como extrair o conjunto de dados "tf_flowers" e dividi-los em três Datasets que corresponderão ao treino, à validadção e aos testes:
import tensorflow_datasets as tfds
(train_ds, val_ds, test_ds), metadata = tfds.load(
    'tf_flowers',
    split=['train[:80%]', 'train[80%:90%]', 'train[90%:]'],
    with_info=True,
    as_supervised=True,
)
Início

3. Como guardar e ler os resultados de um treino

Para guardar um modelo, model, usam-se, respectivamente, o método "model.save" (ou a função "save_model (model, filepath, ...)") e a função "load_model":
model.save ('__ficheiro__.keras')
model = keras.models.load_model ('__ficheiro__.keras')
O ficheiro assim criado, é um ficheiro "zip" que contém os seguintes ficheiros:
  • metadata.json
  • config.json
  • model.weights.h5
Para guardar os resultados do treino passo a passo:
  • Guardá-los no final
  • Guardá-los passo a passo
Bibliografia:
Início

4. Como ler e alterar as dimensões de uma imagem

Se os dados são obtidos a partir de outro computador, é necessário, copiá-los para uma pasta local:

data_dir = tf.keras.utils.get_file (origin="__url_do_dataset__", fname="__nome_local__", extract=True)

Se estão numa pasta local basta fazer:
data_dir = "__Path_da_pasta_em_que_estão_as_imagens__"
Se se desejar saber o número total de imagens (ou coisa parecida, de acordo com árvore de pastas):
imgCnt = len(list(data_dir.glob('*/*.png')))
print(imgCnt)
Para vizualizar ou obter dados sobre uma imagem (exemplo, dimensões) na posição "k":
grupo = list(data_dir.glob('__sub_pasta__/*'))
img1 = PIL.Image.open(str(grupo[k]))
img1.show()
img1.size
A conversão das dimensões da imagem é feita ao mesmo tempo que se criam os conjuntos de treino e/ou de validação. Para tal usa-se a função "keras.utils.image_dataset_from_directory". Exemplo:

treino = keras.utils.image_dataset_from_directory (data_dir, seed=123, batch_size=32, validation_split=0.2, subset="training", image_size=(256, 256))

Nota: A "seed", com valor fixo, inicia os aleatórios num dado ponto fixo, o que pode ser útil na fase de testes dos programas.
Início

5. Como aplicar um modelo treinado a um conjunto de dados

Para aplicar um modelo, "model", treinado a um conjunto de dados "dsData", pode usar-se o método "evaluate" que retorna o teste de perdas e teste de precisão:

loss, acc = model.evaluate (dsData)

print("Restored model, accuracy: {:5.2f}%".format(100 * acc))

Início

6. Como visualizar um modelo

Para visualizar um modelo pode usar-se o método "summary":
model.summary ()

keras.utils.plot_model(model, to_file="model.png", show_shapes=True,)

keras.utils.plot_model(model, to_file="model.png", show_shapes=True, show_dtype=True,)

keras.utils.plot_model(model, to_file="model.png", show_shapes=True, show_dtype=True, expand_nested=True, show_layer_activations=True, show_trainable=True)

os.system("shotwell model.png")

Início

7.

Início

8.

Início

9. Links úteis

Início