Open mwoolvett opened 1 year ago
A mí también me pasa lo mismo y no sé cómo arreglarlo
Hola, comentame si esto te funciona.
Al guardar el archivo utiliza:
model.save(os.path.join('agents', 'data', 'NNMouse.h5'), save_format='h5')
Al leer el modelo, cambia la línea por:
self.model = tf.keras.models.load_model(os.path.join(CURRENT_PATH, "data", model_name), compile=True)
En principio debería funcionar ahora. En caso contrario, coméntame qué obtienes al correr
print(os.path.join('agents', 'data', 'NNMouse.h5'))
desde el notebook de entrenamiento del agente
y
print(os.path.join(CURRENT_PATH, "data", model_name))
desde el archivo neural.py
.
Hola, a mí sigue sin funcionarme.
Al correr print(os.path.join('agents', 'data', 'NNMouse.h5'))
desde el notebook obtengo:
agents\data\NNMouse.h5
Al correr print(os.path.join(CURRENT_PATH, "data", model_name))
desde neural.py
obtengo:
C:\Users\benit\Documents\Ingeniería UC\VII Semestre\Inteligencia Artificial\tarea-4-2023-1-benitopalaciosm\agents\data\NNCat.h5
Las rutas se ven bien, quizás tengo algún problema definiendo el modelo, pero no me lanza ningún error y no sé cómo ir debuggeandolo para descubrirlo.
Lo mismo, las rutas parecen estar correctas, pero sigue sin funcionar.
Hola, el problema parece ser en que el path de carga tiene una tilde (o caracteres no decodeables por utf-8). Prueben añadiendo las siguientes líneas al comienzo del código:
import sys
sys.setdefaultencoding('latin1')
Tensorflow usa por defecto UTF-8 para desencodear strings, quizás esto lo arregle.
En caso contario, un pantallazo de todo el mensaje de error en la consola (todo el backlog) sería muy útil.
Un saludo :)
Lo otro es que simplemente utilicen el path local del archivo, cambien os.path.join(CURRENT_PATH, "data", model_name)
por el path del modelo desde la carpeta que tengan abierta (probablemente os.path.join("data", model_name)
).
En principio no debería arrojarles errores de este modo.
Hola. Tengo el mismo problema con el encoding, pero el método setdefaultencoding no existe. Además, tengo otra pregunta. Para cuando entrenamos el modelo, ¿debemos separar en set de entrenamiento y testeo o se puede entrenar con todos los datos?
@amondinellir
Aparentemente, setdefaultencoding
no funciona para Python 3 en adelante, te recomiendo utilizar el path local en vez del global al cargar (mi segundo comentario).
Por otro lado, efectivamente no debes separar el set en entrenamiento/testeo, como sí lo has hecho para tareas pasadas (y se suele hacer en prácticamente todas las tareas de aprendizaje que buscan generalizar). Esto se debe a que particularmente para esta tarea buscamos hacer overfitting (sobreajuste) sobre todos los datos ¿a qué se debe esto?
Reflexiona sobre con qué datos estamos entrenando, ¿deseamos generalizar a datos desconocidos dentro de la tarea?
Un saludo y éxito con tu tarea 😊
He intetado todo lo de esta issue sobre encoding y nada me funciona.
El error que me da es OSError: No file or directory found at data\NNCat.h5
La carpeta data está dentro de agents.
@amondinellir prueba con agents/data/NNCat.h5
en su lugar
Me da el siguiente error:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 40: invalid continuation byte
¿Me podrías enviar el error completo? Alguno de los caracteres en el path desde donde lees el archivo no es legible utilizando urf-8
Traceback (most recent call last):
File "c:/Users/amtat/OneDrive - uc.cl/UC/Año 6/Sem 1/Inteligencia Artificial/tarea-4-2023-1-amondinellir/test.py", line 21, in
Según esta issue el error suele surgir cuando el archivo referenciado no existe. Estás seguro de tener el archivo en agents/data/NNCat.h5
? Nombre del archivo y carpeta
Así es, está dentro de agents/data, y estoy cargando el archivo con tf.keras.models.load_model(os.path.join("agents", "data", model_name)), que también lo intente con compile=True
Sube los archivos a tu repositorio por favor, le echaré un ojo
Ok
ya lo subí
@amondinellir utilizando tu código y la línea
self.model = tf.keras.models.load_model(os.path.join(CURRENT_PATH, "data", model_name), compile = False)
Me cargó el modelo sin problemas, te recomendaría reinstalar tensorflow y si no, imprimir el path desde el que cargas y compartirlo por aquí (el path completo).
Este es path desde el que cargo:
C:\Users\amtat\OneDrive - uc.cl\UC\Año 6\Sem 1\Inteligencia Artificial\tarea-4-2023-1-amondinellir\agents\data\NNCat.h5
@amondinellir intenta con cambiarle el nombre a tu carpeta que dice "Año". A mí me empezó a funcionar cuando le eliminé las tildes a los nombres de mis carpetas
Efectivamente, utf-8 no puede desencodear la ñ, es debido a eso
Ya funcionó. Muchas gracias!!
Como puedo saber cuales son los caracteres no permitidos? Tengo el mismo problema, pero no tengo ninguna "ñ" Esta es mi ruta: C:\Users\Rodrigo\OneDrive - Universidad Católica de Chile\PUC\7°Semestre\IA\Tarea-4>
@rodrigoogalde probablemente sea el "°" o la "ó", me la jugaría más por la "ó" dado que no existe en el alfabeto inglés.
Hola!
Al crear un modelo y guardarlo correctamente, cuando corro el "test.py" me tira error en la línea de "self.model = tf.keras.models.load_model(os.path.join(CURRENT_PATH, "data", model_name))". El error es "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 38: invalid continuation byte". Supongo que tiene que ver con la codificación y decodificación del archivo, pero no quise meter más mano, ya que no hay que modificar más de lo que piden. Las rutas de donde saca el modelo son correctas. No se si tendré un problema mayor o si a alguien más le pasa lo mismo.
De antemano muchas gracias!