Matlab - Entrenamiento y Validación con mapminmax

 
Vista:

Entrenamiento y Validación con mapminmax

Publicado por xiomara (23 intervenciones) el 28/01/2008 21:55:53
Hola

Estoy realizando una interfaz de un entrenamiento y una validación de una red neuronal, la normalización de los datos la realizo con el comando mapminmax, pero tengo un problema con este comando, y es que en la interfaz el entrenamiento y la validación estan divididas para que realice cada acción aparte, el problema es que al realizar la validación me presenta un problema con una de las variables del mapminmax, a continuación muestro el ejemplo presentado en la ayuda de matlab y el problema que se me presenta.

Aqui se esta normalizando los datos
[pn,ps] = mapminmax(p);
[tn,ts] = mapminmax(t);

Luego se entrena con los datos normalizados
net = train(net,pn,tn);

Se simula la red con los datos normalizados y luego se devuelve a su valor real
an = sim(net,pn);
a = mapminmax(`reverse',an,ts);

En el momento de realizar la validación con nuevos datos, la realizó con otro botón,

pnewn = mapminmax(`apply',pnew,ps);
anewn = sim(net,pnewn);
anew = mapminmax(`reverse',anewn,ts);

Me dice que no reconoce la variable 'ps'

Lo que he realizado es globalizar esta variables desde el entrenamiento hasta la validación pero igual no la reconoce.

Esto sucede cuando se ha guardado la red y se carga solamente para realizar la validación.

Que debo hacer para que me reconozca esta variable??????

Muchas gracias a la ayuda que me puedan brindar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Entrenamiento y Validación con mapminmax

Publicado por Julian (75 intervenciones) el 29/01/2008 03:19:35
Hola, prueba lo siguiente:

1. Al final de la función donde realizas el proceso de normalización escribe el siguiente código:

handles.ps=ps;
guidata(hObject, handles);

La primera línea asigna los datos de la variable 'ps' a otra variable 'ps' de una estructura llamada 'handles', ya que es la que se pasa como argumento de entrada a todas las otras funciones que se encuentran en el archivo .m.

La segunda línea actualiza dicha estructura. En otras palabras, la primera línea crea la variable y la segunda la guarda en la estructura 'handles' para que pueda ser usada en el espacio de trabajo de las demás funciones.

2. En la función donde está el problema, es decir, donde se realiza el proceso de validación, reemplazas la variable 'ps' por 'handles.ps'.

pnewn = mapminmax(`apply',pnew,handles.ps);
anewn = sim(net,pnewn);
anew = mapminmax(`reverse',anewn,ts);

Espero q te sirva... Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar