Eric2983 commited on
Commit
08f16ab
verified
1 Parent(s): 745c627

Delete copia_de_training_fruit_vegetable.py

Browse files
Files changed (1) hide show
  1. copia_de_training_fruit_vegetable.py +0 -199
copia_de_training_fruit_vegetable.py DELETED
@@ -1,199 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- """Copia de Training_fruit_vegetable.ipynb
3
-
4
- Automatically generated by Colaboratory.
5
-
6
- Original file is located at
7
- https://colab.research.google.com/drive/1h-zNQjkVokq9MDVJb61PPvYb4f1eJcF6
8
-
9
- Montaje del disco
10
- """
11
-
12
- from google.colab import drive
13
- drive.mount('/content/drive')
14
-
15
- """Importar librer铆as"""
16
-
17
- import tensorflow as tf
18
- import matplotlib.pyplot as plt
19
-
20
- """Preprocesamiento de datos"""
21
-
22
- #Preprocesamiento de imagenes del conjunto de entrenamiento
23
- training_set = tf.keras.utils.image_dataset_from_directory(
24
- '/content/drive/MyDrive/TallerIII/FruitTrainingDataset/train',
25
- labels="inferred",
26
- label_mode="categorical",
27
- class_names=None,
28
- color_mode="rgb",
29
- batch_size=32,
30
- image_size=(64, 64),
31
- shuffle=True,
32
- seed=None,
33
- validation_split=None,
34
- subset=None,
35
- interpolation="bilinear",
36
- follow_links=False,
37
- crop_to_aspect_ratio=False
38
- )
39
-
40
- #Preprocesamiento de imagenes del conjunto de validacion
41
- validation_set = tf.keras.utils.image_dataset_from_directory(
42
- '/content/drive/MyDrive/TallerIII/FruitTrainingDataset/validation',
43
- labels="inferred",
44
- label_mode="categorical",
45
- class_names=None,
46
- color_mode="rgb",
47
- batch_size=32,
48
- image_size=(64, 64),
49
- shuffle=True,
50
- seed=None,
51
- validation_split=None,
52
- subset=None,
53
- interpolation="bilinear",
54
- follow_links=False,
55
- crop_to_aspect_ratio=False
56
- )
57
-
58
- """Crear el modelo"""
59
-
60
- model = tf.keras.models.Sequential()
61
-
62
- """Capa de convoluci贸n"""
63
-
64
- model.add(tf.keras.layers.Conv2D(filters=32,kernel_size=3,padding='same',activation='relu',input_shape=[64,64,3]))
65
- model.add(tf.keras.layers.Conv2D(filters=32,kernel_size=3,activation='relu'))
66
- model.add(tf.keras.layers.MaxPool2D(pool_size=2,strides=2))
67
-
68
-
69
- model.add(tf.keras.layers.Dropout(0.25))
70
-
71
-
72
- model.add(tf.keras.layers.Conv2D(filters=64,kernel_size=3,padding='same',activation='relu'))
73
- model.add(tf.keras.layers.Conv2D(filters=64,kernel_size=3,activation='relu'))
74
- model.add(tf.keras.layers.MaxPool2D(pool_size=2,strides=2))
75
-
76
-
77
- model.add(tf.keras.layers.Dropout(0.25))
78
-
79
-
80
- model.add(tf.keras.layers.Flatten())
81
-
82
-
83
- model.add(tf.keras.layers.Dense(units=512,activation='relu'))
84
-
85
-
86
- model.add(tf.keras.layers.Dense(units=256,activation='relu'))
87
-
88
-
89
- model.add(tf.keras.layers.Dropout(0.5)) #To avoid overfitting
90
-
91
-
92
- #Output Layer
93
- model.add(tf.keras.layers.Dense(units=36,activation='softmax'))
94
-
95
- """Capas del modelo"""
96
-
97
- model.summary()
98
-
99
- """Compilaci贸n del modelo"""
100
-
101
- model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy',"mean_absolute_error","Precision","Recall",tf.keras.metrics.AUC()])
102
-
103
- """Configuraci贸n tensorboard"""
104
-
105
- # Commented out IPython magic to ensure Python compatibility.
106
- from tensorflow.keras.callbacks import ModelCheckpoint
107
- import tensorflow as tf
108
- import datetime
109
-
110
- # %load_ext tensorboard
111
- #!rm -rf ./logs/
112
- log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
113
- tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
114
-
115
- """Ruta"""
116
-
117
- ruta_rfv="/content/drive/MyDrive/TallerIII/Reconocimiento_frutas_verduras"
118
-
119
- """Punto de control del modelo y devoluci贸n de llamada"""
120
-
121
- checkpoint_callback = ModelCheckpoint(
122
- filepath=ruta_rfv + '/peso2/weights.{epoch:1d}.h5',
123
- save_weights_only=True,
124
- save_best_only=False,
125
- verbose=1
126
- )
127
-
128
- """Entrenamiento del modelo"""
129
-
130
- epochs = 10
131
- history=model.fit(x=training_set,validation_data=validation_set,epochs=epochs, callbacks=[tensorboard_callback, checkpoint_callback])
132
-
133
- import os
134
- import re
135
-
136
- #Codigo para extraer el numero maximo de epoca almacenado en un directorio
137
- # Ruta del directorio
138
- dir_path = "/content/drive/MyDrive/Taller3/Reconocimiento_frutas_verduras/peso2"
139
-
140
- # Lista para almacenar los n煤meros extra铆dos
141
- num_list = []
142
-
143
- # Recorrer todos los archivos en el directorio
144
- for filename in os.listdir(dir_path):
145
- # Comprobar si el archivo es uno de los archivos de pesos
146
- if filename.startswith("weights.") and filename.endswith(".h5"):
147
- # Extraer el n煤mero del nombre del archivo usando una expresi贸n regular
148
- match = re.search(r'\d+', filename)
149
- if match:
150
- # Convertir el n煤mero a un entero y a帽adirlo a la lista
151
- num = int(match.group())
152
- num_list.append(num)
153
-
154
- # Imprimir la lista de n煤meros
155
- print(num_list)
156
-
157
- # Variable para almacenar el n煤mero m谩ximo
158
- max_num = max(num_list) if num_list else None
159
-
160
- # Imprimir el n煤mero m谩ximo
161
- print(max_num)
162
-
163
- max_num_string = str(max_num)
164
- print(max_num_string)
165
-
166
- #Definir directorio que contiene el archivo de pesos de la ultima epoca
167
- ruta = ruta_rfv + '/peso2/weights.' + max_num_string +'.h5'
168
- print(ruta)
169
-
170
- #Cargar el archivo de pesos de la ultima epoca ejecutada
171
- model.load_weights(ruta)
172
-
173
- #Entrenar el modelo desde la ultima epoca almacenada usando el parametro initial_epoch
174
- history = model.fit(x=training_set,validation_data=validation_set, epochs=epochs, initial_epoch=max_num, callbacks=[tensorboard_callback, checkpoint_callback])
175
-
176
- """Curvas de entrenamiento"""
177
-
178
- # Commented out IPython magic to ensure Python compatibility.
179
- # %tensorboard --logdir logs/fit
180
-
181
- """Evaluar el modelo entrenado"""
182
-
183
- #Precisi贸n del conjunto de entrenamiento
184
- train_loss, train_acc = model.evaluate(training_set)
185
- print('Training accuracy:', train_acc)
186
-
187
- #Precisi贸n del conjunto de validaci贸n
188
- val_loss, val_acc = model.evaluate(validation_set)
189
- print('Validation accuracy:', val_acc)
190
-
191
- """Guardar el modelo"""
192
-
193
- ruta_modelo=ruta_rfv + "/modelo/modeloRFV.h5"
194
- model.save(ruta_modelo)
195
-
196
- """Guardar pesos"""
197
-
198
- ruta_pesos=ruta_rfv + "/modelo/pesosRFV.h5"
199
- model.save_weights(ruta_pesos)