|
|
Tensor Flow — Exemplos: Tarefas ú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
|
|