Código de Python - Crear modelo con datos CIFAR 10.

Imágen de perfil

Crear modelo con datos CIFAR 10.gráfica de visualizaciones


Python

Publicado el 20 de Enero del 2024 por Hilario (122 códigos)
271 visualizaciones desde el 20 de Enero del 2024
gato
Figure_1

PREGUNTA DEL EJERCICIO.
------------------------------------------
Considerando que tengo que entrenar mi modelo con datos Cifar 10, Guardandolo en esta ruta:'/home/margarito/python/Mi_Modulo_Hilario.h5'.

Necesito crear un test python -basandonos en el modelo:/Mi_Modulo_Hilario.h5, para determinar la clase de esta imagen que esta en esta ruta:/home/margarito/python/gato.jpg.
Para el ejercicio debes de considerar que el archivo de datos Cifar 10, abarca las siguientes clases:


clase 0: airplane
clase 1: automobile
clase 2: bird
clase 3: cat
clase 4: deer
clase 5: dog
clase 6: frog
clase 7: horse
clase 8: ship
clase 9: truck

En el ejercicio se deberá decir de que clase es la imagen del test.
También se deberá de visualizar la imagen_array), en que te basas para hacer dicha predicción.
***************************************************************************************************************
Bien, podríamos plantear una estructura básica del proyecto como sigue:

Como podría ser una estructura del Proyecto:

Proyecto_Mi_CNN/

├── cifar-10/
│ ├── data_batch_2
│ └── ...

├── src/
│ ├── __init__.py
│ ├── train_model.py
│ └── test_model.py

└── Mi_Modulo_Hilario.h5

--------------------------------------------------------------------------

Para descargar los datos de imagenes Cifar 10, podeis utilizar este enlace:
https://www.cs.toronto.edu/~kriz/cifar.html

Se abrirá un pequeño manual explicativo, y desde el mismo se verán todas las opciones de descarga,
así como el tipo de datos para generar modelos que abarca Cifar 10.
*******************************************************************************************************************
Este ejercicio ha sido realizado bajo platadorma Linux.
Ubuntu 20.04.6 LTS.
Editado con sublime Text.
-------------------------------------------------------------------------------------------------------------
Para la ejecución correcta del programa en Python debereis tener cargadas para importar,
estas librerías:

import tensorflow as tf
from tensorflow.keras.preprocessing import image
from tensorflow.keras.models import load_model
import numpy as np
import matplotlib.pyplot as plt

Requerimientos

Este ejercicio ha sido realizado bajo platadorma Linux.
Ubuntu 20.04.6 LTS.
Editado con sublime Text.
-------------------------------------------------------------------------------------------------------------
Para la ejecución correcta del programa en Python debereis tener cargadas para importar,
estas librerías:

import tensorflow as tf
from tensorflow.keras.preprocessing import image
from tensorflow.keras.models import load_model
import numpy as np
import matplotlib.pyplot as plt

V-0.

Publicado el 20 de Enero del 2024gráfica de visualizaciones de la versión: V-0.
272 visualizaciones desde el 20 de Enero del 2024
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
CREACIÓN DEL MODELO.
                                         ------------------------------------
 
 
 
#Ejecución:python3 Aula-28-B_modelo.py
 
 
import tensorflow as tf
from tensorflow.keras import layers, models
 
import numpy as np
import pickle
 
# Montar Google Drive
 
 
# Ruta al archivo data_batch_1
data_directory = '/home/margarito/python/cifar-10/data_batch_2'
 
# Cargar el conjunto de datos CIFAR-10 desde la ubicación en Google Drive
with open(data_directory, 'rb') as file:
    cifar_data = pickle.load(file, encoding='bytes')
 
# Normalizar los valores de píxeles al rango [0, 1]
x_train, x_test = cifar_data[b'data'] / 255.0, cifar_data[b'data'] / 255.0
y_train, y_test = np.array(cifar_data[b'labels']), np.array(cifar_data[b'labels'])  # Convertir a numpy array
 
# Reformatear los datos para que coincidan con las expectativas del modelo
x_train = x_train.reshape((len(x_train), 32, 32, 3))
x_test = x_test.reshape((len(x_test), 32, 32, 3))
 
# Definir el modelo de red convolucional
model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    layers.MaxPooling2D((2, 2)),
    layers.Flatten(),
    layers.Dense(128, activation='relu'),
    layers.Dense(10)
])
 
# Compilar el modelo
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])
 
# Entrenar el modelo
model.fit(x_train, y_train, epochs=10)
 
# Evaluar el modelo en el conjunto de
# Guardar el modelo entrenado
model.save('/home/margarito/python/Mi_Modulo_Hilario.h5')
 
 
 
                                                 CREACIÓN DEL TEST.
                                               ----------------------------------
 
 
#Ejecucion: python3 Aula-28-B_test.py
 
import tensorflow as tf
from tensorflow.keras.preprocessing import image
from tensorflow.keras.models import load_model
import numpy as np
import matplotlib.pyplot as plt
 
# Cargar el modelo previamente entrenado
modelo = load_model('/home/margarito/python/Mi_Modulo_Hilario.h5')
 
# Definir las clases de CIFAR-10
clases_cifar10 = {
    0: 'airplane',
    1: 'automobile',
    2: 'bird',
    3: 'cat',
    4: 'deer',
    5: 'dog',
    6: 'frog',
    7: 'horse',
    8: 'ship',
    9: 'truck'
}
 
# Cargar y preprocesar la imagen de prueba
ruta_imagen = '/home/margarito/python/aeroplano.png'
imagen = image.load_img(ruta_imagen, target_size=(32, 32))
imagen_array = image.img_to_array(imagen)
imagen_array = np.expand_dims(imagen_array, axis=0)
imagen_array /= 255.0  # Normalizar los valores de píxeles al rango [0, 1]
 
# Realizar la predicción
prediccion = modelo.predict(imagen_array)
clase_predicha = np.argmax(prediccion)
 
# Mostrar los píxeles de la imagen
plt.imshow(imagen_array[0])
plt.title(f'Clase Predicha: {clases_cifar10[clase_predicha]}')
plt.show()
 
# Mostrar los valores de los píxeles de la imagen
print("Valores de los píxeles de la imagen:")
print(imagen_array.squeeze())



Comentarios sobre la versión: V-0. (0)


No hay comentarios
 

Comentar la versión: V-0.

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7487