brochero / TFM_DanSer

0 stars 1 forks source link

Run BDTNanoValidation #11

Open DaniloSerna opened 1 year ago

DaniloSerna commented 1 year ago

Running the validation code recently I found the following problems:

image ... image

With another command: image

brochero commented 1 year ago

I do not know what are you trying to do. It is not a matter of command, it is q matter of correct inputs and outputs.

DaniloSerna commented 1 year ago

I am trying to run the validation script, but I have attempted multiple inputs and I get an error. The first was the one that I understood that I must run, but I never had the file requested, so I do not know what file is missing.

I also tried this with another root file as input (the result from the BDTAnalyzer):

image

and I get:

image

brochero commented 1 year ago

On this second try, you have a non-ASCII symbol or something like that.... are you sure you have that input file in that location? If not, come to the office and we discuss it.

DaniloSerna commented 1 year ago

Looking a little bit more I realize that I do not have a file, this file got lost at some point :/ is called "inputs/tree_64.root.hist". I can not even run the previous BDTAnalyzer anymore.

brochero commented 1 year ago
brochero commented 1 year ago

Keras in TMVA

https://root-forum.cern.ch/t/tmva-generated-class-does-not-compile-and-unable-to-read-xml-file-when-using-keras-interface/28457

https://root-forum.cern.ch/t/standalone-c-response-classes-for-pykeras-does-not-work-class-presents-a-series-of-typos/29110

DaniloSerna commented 11 months ago

Hi Javier,

Ya retomando lo pendiente:

image

-> Usé la línea TMVA::PyMethodBase::PyInitialize(); así como mencionan en el foto -> Agregué la librería #include "TMVA/PyMethodBase.h"

Pero al momento de compilar sale este error: image

Intenté instalar ese paquete image

y no sé si pueda instalarlo

según lo que he leído es posible leer los weights de Keras llamando a PyKeras dentro de TMVA con esas líneas de código

PD: disculpa la tardanza, en la escuela de verano no logré tener tiempo (incluso casi no paso el exámen final) y con el regreso a Colombia he tenido muchos retrasos e imprevistos.

brochero commented 11 months ago

Que tal Danilo! No tepreocupes. Estas en Colombia, verdad? Avisame y hablamos, pues los tiempos estan encima.

Aunque Numpy esta deprecated, puedes hacer una instalacion a nivel user:

git clone git://github.com/rootpy/root_numpy.git
cd root_numpy
python setup.py install --user
brochero commented 11 months ago

aunque pensandolo.... no se porque necesitas el numpy....

DaniloSerna commented 11 months ago

Hola! si ya ando en Colombia, si aunque ese es el error que me arroja cuando agrego TMVA/PyMethodBase.h, que es la librería necesaria para leer el archivos de PyKeras

DaniloSerna commented 11 months ago

Ya he intentado de varias formas de instalarlo con lo que me compartiste, pero continúa saliendo el error en esa librería numpy/numpyconfig.h:

image

Aquí encontré en un foro como lo solucionaron, el problema es que usan sudo apt para instalar ese paquete: https://root-forum.cern.ch/t/error-when-compiling-pymethodbase-h-numpy-numpyconfig-h-file-not-found/29177

La otra alternativa, aunque poco elegante, sería entonces tratar de agregar las líneas del archivo .py que dejó Conrado

DaniloSerna commented 11 months ago

Ya realizando el llenado de los histogramas, hay en particular una variable (QGL) que arroja error porque no la encuentra como miembro del Nano Object:

image

Y es que no sé si lo que sucede es que estoy usando una versión muy vieja de root, porque revisando tambén más a fondo las demás distribuciones que hay dentro del cmsenv hay una más nuevas que por ejemplo tienen distinto el llamado de paquetes de PyKeras:

image

yo estoy: /cvmfs/cms.cern.ch/slc7_amd64_gcc820/lcg/root/6.18.04-nmpfii/include/TMVA/PyMethodBase.h quiero estar: /cvmfs/cms.cern.ch/slc7_amd64_gcc820/lcg/root/6.20.06/include/TMVA/PyMethodBase.h

Por defecto ejecuta el primero, pero no sé cómo cambiar entre distribuciones o si esto conlleva a que se dañe algo de lo que ya está

brochero commented 11 months ago

Hola @DaniloSerna! Puedes tratar de seguir el procedimiento de siempre para instalar a CMSSW y descargar tu repo, pero en lugar de usar CMSSW_11_0_0, usa CMSSW_12_0_0 eso al parecer resuelve el problema. Creo que tienes que comentar la linea donde haces TMVA::PyMethodBase::PyInitialize();

Pruebalo lo mas pronto posible a ver si va!

Por cierto, te envie un email con algun PhD al email de UNICAN

DaniloSerna commented 11 months ago

Hola, Entiendo, pero entonces me tocaría volver a ejecutar el código de Keras para generar nuevos pesos dentro del CMSSW_12_0_0 ? o más bien me tocaría volver a ejecutar todas las macros?

Lo que estaba intentando era ejecutar la siguiente instrucción: source /cvmfs/cms.cern.ch/slc7_amd64_gcc820/lcg/root/6.22.00/bin/thisroot.sh

Con el fin de ejecutarlo dentro de otra versión de root, y así como dijiste me tocó comentar la línea TMVA::PyMethodBase::PyInitialize(). Pero me aparece un error diferente al anterior:

image

Otra cuestión, es que sigue saliendo error al usar el miembro .QGL para los jets

DaniloSerna commented 11 months ago

Y gracias por la oferta de PhD, supongo que esta también debe salir en Inspire? ya que le doy al link para tener más info y me sale es la página de autentificación del CERN

brochero commented 11 months ago

Y gracias por la oferta de PhD, supongo que esta también debe salir en Inspire? ya que le doy al link para tener más info y me sale es la página de autentificación del CERN

Si, debe estar en inspire

brochero commented 11 months ago

Hola, Entiendo, pero entonces me tocaría volver a ejecutar el código de Keras para generar nuevos pesos dentro del CMSSW_12_0_0 ? o más bien me tocaría volver a ejecutar todas las macros?

Lo que estaba intentando era ejecutar la siguiente instrucción: source /cvmfs/cms.cern.ch/slc7_amd64_gcc820/lcg/root/6.22.00/bin/thisroot.sh

Con el fin de ejecutarlo dentro de otra versión de root, y así como dijiste me tocó comentar la línea TMVA::PyMethodBase::PyInitialize(). Pero me aparece un error diferente al anterior:

image

Otra cuestión, es que sigue saliendo error al usar el miembro .QGL para los jets

Con respecto al QGL, comentalo, eso fue una variable que testee y no funciono.

Con respecto al error que te da, me parece bien, pues se queja de un leptonSF, asi que comentalo correctamente y setealo a 1

DaniloSerna commented 11 months ago

Corregí esa parte del leptonSF y puse los pesos en 1, luego lo volví a compilar y despliega el siguiente error:

image

Es como un conflicto entre las librerías y la versión de root que activé con source..., entonces al parecer es mejor empezar desde cero con la distribución CMSSW_12_0_0 ?

brochero commented 11 months ago

Lo que me preocupa de ese error es que no sea del Keras, si no de las otras librerias

Has un push y trato de darle un vistazo mañana

DaniloSerna commented 11 months ago

Mejor realicé lo que me comentaste de iniciar con CMSSW_12_0_0 , entonces hice todo el proceso e incluso inicié otro repo que si logra hacer push. Pero me encontré con algunos problemas al volver a correr las macros, como muestro a continuación:

image

No sé por qué lee esos path, y en el otro que tenía antes si leía los correctos. Lo que hice fue que ya las rutas estan quemadas en las macros, y logra ejecutar.

Con respecto a PyKeras y la BDTNanoValidation obtengo ahora el siguiente error:

image

Estuve buscando y tal vez agregando la librería -lPyMVA el error desaparece, pero no la he podido agregar image

DaniloSerna commented 10 months ago

Hola,

Ya logré instalar esa librería ( -lPyMVA) la agregué en el MakeFile, luego de eso tocaba descomentar las líneas TMVA::PyMethodBase::PyInitialize(). Con lo anterior logra leer los pesos, pero después vuelve y sale otro error...esto parece una cebolla!

image

DaniloSerna commented 10 months ago

Con los nuevos weightsde PyKeras (los comentados en #10 ), el error anterior desaparece y me encuentro ahora con lo siguiente:

image

Como tal es un Warning pero que hace abortar la ejecución, no sé si sabes a qué se puede deber?

DaniloSerna commented 10 months ago

Luego de generar los weights (dataset/weights/TMVAClassification_PyKeras.weights.xml) de PyKeras con https://github.com/brochero/TFM_DanSer/blob/d6613b08d384025048442f51507b6b60e3f0aa1d/ClassificationKeras.py, para leerlos con la macro de BDTValidation (ya actualizada aquí en el repo) hay que ingresar al nodo de grid, con las instrucciones que mencionaste en #6, y allí adentro ejecutar la macro.

La salida te la compartí por correo

DaniloSerna commented 10 months ago

No he podido ejecutar la macro para los pesos completos de PyKeras:

image

En ese caso, se queda esperando recursos, cuando lo ejecuto así:

srun --time=2:00:00 --ntasks=4 --nodes=1 --partition=cloudcms --mem-per-cpu=10G --pty /bin/sh -l

se queda en la siguiente parte, y no avanza de aquí:

image

brochero commented 10 months ago

Aguna combinacion en la que keras funcione? Asi sea que se reduscan los numeros de eventos.

Hoy tienes que enviarme un definitivo para correguirlo.

DaniloSerna commented 10 months ago

Si, eso fue lo que hice, con 100mil eventos se demoró casi 10 horas, lo dejé toda la noche.

De dónde tomos las fracciones para calcular la eficiencia y agregarla al documento para compartírtelo?