From 65ec798f240f8b1faaac3326b35b399d10984d84 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 8 Jun 2018 09:22:42 +0200 Subject: [PATCH 001/437] Update DeepJet_callbacks.py fixed bug introduced at some point --- training/DeepJet_callbacks.py | 1 + 1 file changed, 1 insertion(+) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index eff3070..458aa15 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -140,6 +140,7 @@ def __init__(self, self.callbacks.append(self.modelcheckperiod) self.modelcheck=saveCheckPointDeepJet(outputDir,model) + self.callbacks.append(self.modelcheck) if stop_patience>0: self.stopping = EarlyStopping(monitor='val_loss', From 8b966ec1924be068efcd9371f7be354c5a74118a Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Mon, 11 Jun 2018 13:48:16 +0200 Subject: [PATCH 002/437] Add script that coverts .h5 to .pb format, which is used in CMSSW --- bin/convertToPB.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 bin/convertToPB.py diff --git a/bin/convertToPB.py b/bin/convertToPB.py new file mode 100755 index 0000000..77cdab7 --- /dev/null +++ b/bin/convertToPB.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python + + +#script that takes model in .h5 format as input as spits out the graph format used in CMSSW + +import imp +try: + imp.find_module('setGPU') + import setGPU +except ImportError: + found = False + +import tensorflow as tf + +sess = tf.Session() +from keras.models import load_model +from argparse import ArgumentParser +from keras import backend as K +from Losses import * #needed! +import os + +K.set_session(sess) + +parser = ArgumentParser('') +parser.add_argument('inputModel') +parser.add_argument('outputDir') +args = parser.parse_args() + + +if os.path.isdir(args.outputDir): + raise Exception('output directory must not exists yet') + +model=load_model(args.inputModel, custom_objects=global_loss_list) + +K.set_learning_phase(0) +outputs = [node.op.name for node in model.outputs] +print outputs +constant_graph = tf.graph_util.convert_variables_to_constants(sess, sess.graph.as_graph_def(), outputs) +tfoutpath=args.outputDir+'/tf' +import os +os.system('mkdir -p '+tfoutpath) +tf.train.write_graph(constant_graph, tfoutpath, "constant_graph.pb", as_text=False) + + From 2cbd8e6583828d4398e9d102ecef592c9d0e0ef5 Mon Sep 17 00:00:00 2001 From: SwapneelM Date: Mon, 11 Jun 2018 14:44:54 +0200 Subject: [PATCH 003/437] Generated new environment for deepjet upgraded to Python 3.6 --- environment/deepjetenv.conda | 109 +++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 environment/deepjetenv.conda diff --git a/environment/deepjetenv.conda b/environment/deepjetenv.conda new file mode 100644 index 0000000..6cf4864 --- /dev/null +++ b/environment/deepjetenv.conda @@ -0,0 +1,109 @@ +name: deepjetenv +channels: + - NLeSC + - defaults +dependencies: + - fftw=3.3.4=2 + - gcc=4.8.2=25 + - glibc=2.12.2=3 + - gsl=1.16=2 + - linux-headers=2.6.32=1 + - root=6.05=py3.6_gcc4.8.2 + - root-numpy=4.7.2=root6.05_py3.6 + - blas=1.0=mkl + - blosc=1.14.3=hdbcaa40_0 + - boost=1.65.1=py36_4 + - bzip2=1.0.6=h14c3975_5 + - ca-certificates=2018.03.07=0 + - cairo=1.14.12=h7636065_2 + - certifi=2018.4.16=py36_0 + - cloog=0.18.0=0 + - dbus=1.13.2=h714fa37_1 + - expat=2.2.5=he0dffb1_0 + - fontconfig=2.12.6=h49f89f6_0 + - freetype=2.8=hab7d2ae_1 + - glib=2.56.1=h000015b_0 + - gmp=6.1.2=h6c8ec71_1 + - graphite2=1.3.11=h16798f4_2 + - graphviz=2.40.1=h25d223c_0 + - gst-plugins-base=1.14.0=hbbd80ab_1 + - gstreamer=1.14.0=hb453b48_1 + - harfbuzz=1.7.6=h5f0a787_1 + - hdf5=1.10.2=hba1933b_1 + - icu=58.2=h9c2bf20_1 + - intel-openmp=2018.0.3=0 + - isl=0.12.2=0 + - jbig=2.1=hdba287a_0 + - jpeg=9b=h024ee3a_2 + - libboost=1.65.1=habcd387_4 + - libedit=3.1.20170329=h6b74fdf_2 + - libffi=3.2.1=hd88cf55_4 + - libgcc=7.2.0=h69d50b8_2 + - libgcc-ng=7.2.0=hdf63c60_3 + - libgfortran=3.0.0=1 + - libgfortran-ng=7.2.0=hdf63c60_3 + - libiconv=1.15=h63c8f33_5 + - libpng=1.6.34=hb9fc6fc_0 + - libstdcxx-ng=7.2.0=hdf63c60_3 + - libtiff=4.0.9=he85c1e1_1 + - libtool=2.4.6=h544aabb_3 + - libxcb=1.13=h1bed415_1 + - libxml2=2.9.8=h26e45fe_1 + - lzo=2.10=h49e0be7_2 + - mkl=2018.0.3=1 + - mpc=1.0.3=hec55b23_5 + - mpfr=3.1.5=h11a74b3_2 + - ncurses=6.1=hf484d3e_0 + - numexpr=2.6.5=py36h7bf3b9c_0 + - numpy=1.14.3=py36h28100ab_2 + - numpy-base=1.14.3=py36hdbf6ddf_2 + - openssl=1.0.2o=h20670df_0 + - pango=1.41.0=hd475d92_0 + - pcre=8.42=h439df22_0 + - pip=10.0.1=py36_0 + - pixman=0.34.0=hceecf20_3 + - py-boost=1.65.1=py36hf484d3e_4 + - pytables=3.4.3=py36h02b9ad4_2 + - python=3.6.5=hc3d631a_2 + - qt=5.9.5=h7e424d6_0 + - readline=7.0=ha6073c6_4 + - scikit-learn=0.19.1=py36h7aa7ec6_0 + - scipy=1.1.0=py36hfc37229_0 + - setuptools=39.2.0=py36_0 + - six=1.11.0=py36h372c433_1 + - snappy=1.1.7=hbae5bb6_3 + - sqlite=3.23.1=he433501_0 + - system=5.8=2 + - tk=8.6.7=hc745277_3 + - wheel=0.31.1=py36_0 + - xz=5.2.4=h14c3975_4 + - zlib=1.2.11=ha838bed_2 + - pip: + - absl-py==0.2.2 + - astor==0.6.2 + - bleach==1.5.0 + - cycler==0.10.0 + - funcsigs==1.0.2 + - gast==0.2.0 + - grpcio==1.12.1 + - h5py==2.8.0 + - html5lib==0.9999999 + - keras==2.2.0 + - keras-applications==1.0.2 + - keras-preprocessing==1.0.1 + - kiwisolver==1.0.1 + - markdown==2.6.11 + - matplotlib==2.2.2 + - mock==2.0.0 + - pbr==4.0.4 + - protobuf==3.5.2.post1 + - pyparsing==2.2.0 + - python-dateutil==2.7.3 + - pytz==2018.4 + - pyyaml==3.12 + - tables==3.4.3 + - tensorboard==1.8.0 + - tensorflow==1.8.0 + - termcolor==1.1.0 + - werkzeug==0.14.1 +prefix: /afs/cern.ch/work/s/smehta/miniconda3/envs/deepjetenv From 6e38091b2f4a78b774cfc1cb1906a947d9e0e79d Mon Sep 17 00:00:00 2001 From: Pedro Silva Date: Tue, 12 Jun 2018 16:20:10 +0200 Subject: [PATCH 004/437] revert month and day in datetime --- training/tokenTools.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/training/tokenTools.py b/training/tokenTools.py index ceff503..122ae08 100644 --- a/training/tokenTools.py +++ b/training/tokenTools.py @@ -48,10 +48,10 @@ def checkTokens(cutofftime_hours=48): import datetime thistime=datetime.datetime.now() - tokentime=datetime.datetime(2000+int(kdate.split('/')[2]) , - int(kdate.split('/')[0]), - int(kdate.split('/')[1]), - int(ktime.split(':')[0])) + day,month,year=kdate.split('/') + hour,minu,sec=ktime.split(':') + tokentime=datetime.datetime(2000+int(year),int(month),int(day),int(hour)) + diff=tokentime-thistime diff=diff.total_seconds() From 7c8e6192dd52b1a5451cff4a96aa05fb101eafad Mon Sep 17 00:00:00 2001 From: Swapneel Mehta Date: Wed, 13 Jun 2018 10:51:30 +0200 Subject: [PATCH 005/437] Added OSX-specific files to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3b41cc9..3ff8339 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,5 @@ __pycache__ *.csv *.root *.json +.DS_Store #*.*# From fa3e5f4c76ad447784d7fc5022b61639de5cadae Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 13 Jun 2018 17:06:25 +0200 Subject: [PATCH 006/437] Adding the possibility of having a prediction functor to add variables to the predict tree + fixing a swap in the parsing of klist --- evaluation/evaluation.py | 8 ++++++++ training/tokenTools.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index a526e95..d151585 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -118,6 +118,14 @@ def makePrediction(self, model, testdatacollection, outputDir, else: all_write = prediction + #if a prediction functor was set, it's output is also added to the final predictions + if hasattr(td, 'predictionFunctor') and hasattr(td,'predictionFunctorClasses'): + print('Extending the output with the configured prediction functor output') + formatstring.extend( getattr(td,'predictionFunctorClasses') ) + all_write = np.concatenate([all_write, + [getattr(td,'predictionFunctor')(p) for p in prediction]], + axis=1) + if all_write.ndim == 2: all_write = np.concatenate([all_write, weights], axis=1) formatstring.append('weight') diff --git a/training/tokenTools.py b/training/tokenTools.py index 122ae08..cc5fd76 100644 --- a/training/tokenTools.py +++ b/training/tokenTools.py @@ -48,7 +48,7 @@ def checkTokens(cutofftime_hours=48): import datetime thistime=datetime.datetime.now() - day,month,year=kdate.split('/') + month,day,year=kdate.split('/') hour,minu,sec=ktime.split(':') tokentime=datetime.datetime(2000+int(year),int(month),int(day),int(hour)) From 096822a99c79ae4593d92a579a4d171cdb5861a6 Mon Sep 17 00:00:00 2001 From: jkiesele Date: Thu, 14 Jun 2018 11:10:18 +0200 Subject: [PATCH 007/437] better checkpointing. --- training/DeepJet_callbacks.py | 4 +++- training/training_base.py | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 458aa15..36066b7 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -109,6 +109,7 @@ def __init__(self, outputDir='', minTokenLifetime=5, checkperiod=10, + checkperiodoffset=0, plotLossEachEpoch=True): @@ -136,7 +137,8 @@ def __init__(self, self.callbacks.append(self.modelbestcheck) if checkperiod>0: - self.modelcheckperiod=ModelCheckpoint(outputDir+"/KERAS_check_model_epoch{epoch:02d}.h5", verbose=1,period=checkperiod, save_weights_only=False) + self.modelcheckperiod=ModelCheckpoint(outputDir+"/KERAS_check_model_block_"+str(checkperiodoffset)+"_epoch_{epoch:02d}.h5", + verbose=1,period=checkperiod, save_weights_only=False) self.callbacks.append(self.modelcheckperiod) self.modelcheck=saveCheckPointDeepJet(outputDir,model) diff --git a/training/training_base.py b/training/training_base.py index db36be8..d4616a5 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -52,6 +52,9 @@ def __init__( parser=None ): + import sys + scriptname=sys.argv[0] + if parser is None: parser = ArgumentParser('Run the training') parser.add_argument('inputDataCollection') parser.add_argument('outputDir') @@ -127,12 +130,8 @@ def __init__( self.outputDir+='/' #copy configuration to output dir - # move this part to the individual subpackage - #if isNewTraining: - # djsource= os.environ['DEEPJET'] - # shutil.copytree(djsource+'/modules/models', self.outputDir+'models') - # shutil.copyfile(sys.argv[0],self.outputDir+sys.argv[0]) - + shutil.copyfile(scriptname,self.outputDir+os.path.basename(scriptname)) + self.train_data = collection_class() @@ -140,7 +139,7 @@ def __init__( self.train_data.useweights=useweights if testrun: - self.train_data.split(0.002) + self.train_data.split(0.05) self.val_data=self.train_data.split(splittrainandtest) @@ -307,18 +306,19 @@ def trainModel(self, lr_cooldown=lr_cooldown, lr_minimum=lr_minimum, outputDir=self.outputDir, - checkperiod=checkperiod) - nepochs=nepochs-self.trainedepoches + checkperiod=checkperiod, + checkperiodoffset=self.trainedepoches) + print('starting training') self.keras_model.fit_generator(self.train_data.generator() , steps_per_epoch=self.train_data.getNBatchesPerEpoch(), - epochs=nepochs, + epochs=nepochs-self.trainedepoches, callbacks=callbacks.callbacks, validation_data=self.val_data.generator(), validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, max_q_size=maxqsize,**trainargs) - + self.trainedepoches=nepochs self.saveModel("KERAS_model.h5") import copy From 0f1765c63fde9e04583166d396e77caabd5b44bd Mon Sep 17 00:00:00 2001 From: Pedro Silva Date: Fri, 15 Jun 2018 16:21:47 +0200 Subject: [PATCH 008/437] Update tokenTools.py --- training/tokenTools.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/training/tokenTools.py b/training/tokenTools.py index cc5fd76..cfae31e 100644 --- a/training/tokenTools.py +++ b/training/tokenTools.py @@ -50,7 +50,11 @@ def checkTokens(cutofftime_hours=48): thistime=datetime.datetime.now() month,day,year=kdate.split('/') hour,minu,sec=ktime.split(':') - tokentime=datetime.datetime(2000+int(year),int(month),int(day),int(hour)) + try: + tokentime=datetime.datetime(2000+int(year),int(month),int(day),int(hour)) + except: + print 'Failed to set token time with mm/dd/yy, attempting dd/mm/yy permutation' + tokentime=datetime.datetime(2000+int(year),int(day),int(month),int(hour)) diff=tokentime-thistime diff=diff.total_seconds() From 2ffc546e10ed3047c8528cb6e5d0e8d7effe1888 Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 20 Jun 2018 13:57:41 +0200 Subject: [PATCH 009/437] adapting makefile to override with CMSSW-based setup --- compiled/Makefile | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/compiled/Makefile b/compiled/Makefile index 2365cd5..bd92c03 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -1,14 +1,22 @@ # location of the Python header files - + PYTHON_VERSION = 2.7 -PYTHON_INCLUDE = ${CONDA_PREFIX}/include/python2.7 - # location of the Boost Python include files and library - +PYTHON_INCLUDE = ${CONDA_PREFIX}/include/python2.7 +PYTHON_LIB=${CONDA_PREFIX}/lib/python$(PYTHON_VERSION)/config # also works on gpu in compiled version # this is just luck, ... BOOST_INC = ${CONDA_PREFIX}/include BOOST_LIB = ${CONDA_PREFIX}/lib +ifdef CMSSW_BASE + PYTHON_BASE=$(shell scram tool info python | grep BASE | cut -d "=" -f 2) + PYTHON_INCLUDE=${PYTHON_BASE}/include/python${PYTHON_VERSION}/ + PYTHON_LIB=${PYTHON_BASE}/lib/python${PYTHON_VERSION}/config + BOOST_BASE=$(shell scram tool info boost | grep BASE | cut -d "=" -f 2) + BOOST_INC = ${BOOST_BASE}/include + BOOST_LIB = ${BOOST_BASE}/lib +endif + LINUXADD=-Wl,--export-dynamic ROOTSTUFF=`root-config --cflags --libs --glibs` -g CFLAGS= @@ -34,14 +42,13 @@ libquicklz.so: obj/%.o: src/%.cpp g++ $(CFLAGS) $(ROOTSTUFF) -I./interface -O2 -fPIC -c -o $@ $< - + #pack helpers in lib libdeepjetcorehelpers.so: $(OBJ_FILES) g++ -shared $(LINUXADD) $(ROOTSTUFF) obj/*.o -o $@ - %.so: %.o libdeepjetcorehelpers.so libquicklz.so - g++ -shared $(LINUXADD) $(ROOTSTUFF) -lquicklz -L./ -ldeepjetcorehelpers -L$(BOOST_LIB) -lboost_python -L${CONDA_PREFIX}/lib/python$(PYTHON_VERSION)/config -lpython2.7 $< -o $(@) + g++ -shared $(LINUXADD) $(ROOTSTUFF) -lquicklz -L./ -ldeepjetcorehelpers -L$(BOOST_LIB) -lboost_python -L$(PYTHON_LIB) -lpython2.7 $< -o $(@) %.o: src/%.C @@ -49,7 +56,4 @@ libdeepjetcorehelpers.so: $(OBJ_FILES) clean: - rm -f $(OBJ_FILES) $(SHARED_LIBS) $(MODULES_SHARED_LIBS) $(MODULES_OBJ_FILES) libdeepjetcorehelpers.so libquicklz.so - - - + rm -f $(OBJ_FILES) $(SHARED_LIBS) $(MODULES_SHARED_LIBS) $(MODULES_OBJ_FILES) libdeepjetcorehelpers.so libquicklz.so \ No newline at end of file From 03f1c025283d6812cd63e0d6981d22d6ec6dd5e2 Mon Sep 17 00:00:00 2001 From: jkiesele Date: Thu, 12 Jul 2018 16:26:17 +0200 Subject: [PATCH 010/437] several fixes and improvements --- bin/batch_conversion.py | 21 +++++---- bin/convertFromRoot.py | 2 + compiled/interface/rocCurveCollection.h | 3 +- compiled/src/c_makePlots.C | 5 +- compiled/src/c_makeROCs.C | 12 +++-- compiled/src/rocCurveCollection.cpp | 62 +++++++++++++------------ evaluation/evaluation.py | 8 +++- modeltools.py | 4 ++ training/DeepJet_callbacks.py | 49 +++++++++++++++++-- training/training_base.py | 29 ++++++++---- 10 files changed, 137 insertions(+), 58 deletions(-) diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index d5ffdce..a09aecb 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -12,13 +12,18 @@ parser.add_argument("batch_dir", help="batch directory") parser.add_argument("-c", help="output class") parser.add_argument("--testdatafor", default='') +parser.add_argument("--nforweighter", default='500000', help='set number of samples to be used for weight and mean calculation') parser.add_argument("--nomeans", action='store_true', help='where to get means/std, in case already computed') args = parser.parse_args() -deep_jet_base = [i for i in os.environ['PYTHONPATH'].split(':') if 'DeepJet' in i] -if len(deep_jet_base) != 1: - raise RuntimeError('I cannot find the project root directory') -deep_jet_base = os.path.realpath(deep_jet_base[0].split('environment')[0]) +deep_jet_base = os.environ['DEEPJETCORE_SUBPACKAGE'] +if len(deep_jet_base) < 1: + raise RuntimeError('I cannot find the project root directory. DEEPJETCORE_SUBPACKAGE needs to be defined') + +cmssw = os.environ['CMSSW_BASE'] +if len(cmssw) < 1: + raise RuntimeError('I cannot find the CMSSW root directory. Batch conversion on SL6 machines requires CMSSW (for now)') + proc = subprocess.Popen( 'voms-proxy-info', @@ -38,10 +43,11 @@ if not (args.nomeans or args.testdatafor): #Run a fisrt round of root conversion to get the means/std and weights cmd = [ - './convertFromRoot.py', + 'convertFromRoot.py', '-i', args.infile, '-c', args.c, '-o', args.out, + '--nforweighter', args.nforweighter, '--means' ] proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) @@ -76,10 +82,9 @@ def chunkify(l, n): sleep $(shuf -i1-600 -n1) #sleep a random amount of time between 1s and 10' to avoid bottlenecks in reaching afs echo "JOBSUB::RUN job running" trap "echo JOBSUB::FAIL job killed" SIGTERM -cd {DJ}/environment/ +cd {DJ} source lxplus_env.sh -cd {DJ}/convertFromRoot/ -./convertFromRoot.py "$@" +convertFromRoot.py "$@" exitstatus=$? if [ $exitstatus != 0 ] then diff --git a/bin/convertFromRoot.py b/bin/convertFromRoot.py index 17f840d..7a5f523 100755 --- a/bin/convertFromRoot.py +++ b/bin/convertFromRoot.py @@ -49,6 +49,7 @@ parser.add_argument("--usemeansfrom", default='') parser.add_argument("--nothreads", action='store_true') parser.add_argument("--means", action='store_true', help='compute only means') +parser.add_argument("--nforweighter", default='500000', help='set number of samples to be used for weight and mean calculation') parser.add_argument("--batch", help='Provide a batch ID to be used') parser.add_argument("-v", action='store_true', help='verbose') parser.add_argument("-q", action='store_true', help='quiet') @@ -83,6 +84,7 @@ # MAIN BODY # dc = DataCollection(nprocs = (1 if args.nothreads else -1), useRelativePaths=True if not args.noRelativePaths else False) +dc.meansnormslimit = int(args.nforweighter) if len(nchilds): dc.nprocs=int(nchilds) diff --git a/compiled/interface/rocCurveCollection.h b/compiled/interface/rocCurveCollection.h index 8c7dd78..66c0667 100644 --- a/compiled/interface/rocCurveCollection.h +++ b/compiled/interface/rocCurveCollection.h @@ -58,7 +58,8 @@ class rocCurveCollection{ void addText(TLatex *l){additionaltext_.push_back(l);} void printRocs(TChain* c, const TString& outpdf,const TString&outfile="",TCanvas* cv=0, TFile * f=0, - std::vector* chainvec=0,double xmin_in=-1); + std::vector* chainvec=0,double xmin_in=-1, + TString experimentlabel="",TString lumilabel="",TString prelimlabel=""); private: TLegend * leg_; diff --git a/compiled/src/c_makePlots.C b/compiled/src/c_makePlots.C index 7c942fe..13a9e9f 100644 --- a/compiled/src/c_makePlots.C +++ b/compiled/src/c_makePlots.C @@ -200,7 +200,10 @@ void makePlots( allhistos.at(0)->Draw("AXIS"); for(size_t i=0;iDraw("same,hist"); + if(makeWidthProfile) + allhistos.at(i)->Draw("same,e2"); + else + allhistos.at(i)->Draw("same,hist"); } leg->Draw("same"); diff --git a/compiled/src/c_makeROCs.C b/compiled/src/c_makeROCs.C index 5462f20..9d71c2c 100644 --- a/compiled/src/c_makeROCs.C +++ b/compiled/src/c_makeROCs.C @@ -1,4 +1,4 @@ -#define BOOST_PYTHON_MAX_ARITY 20 +#define BOOST_PYTHON_MAX_ARITY 40 #include #include "boost/python/extract.hpp" #include "boost/python/numeric.hpp" @@ -37,7 +37,9 @@ void makeROCs( bool individual, std::string xaxis, int nbins, - std::string treename + std::string treename, + double xmin, + std::string experimentlabel,std::string lumilabel,std::string prelimlabel ) { std::vector s_intextfiles=toSTLVector(intextfiles); @@ -129,10 +131,12 @@ void makeROCs( rocs.addExtraLegendEntry(s); if(individual){ - rocs.printRocs(0,(TString)outfile,"",0,0,&chains); + rocs.printRocs(0,(TString)outfile,"",0,0,&chains,xmin, + experimentlabel,lumilabel,prelimlabel); } else{ - rocs.printRocs(injector.getChain(),(TString)outfile); + rocs.printRocs(injector.getChain(),(TString)outfile,"",0,0,0,xmin, + experimentlabel,lumilabel,prelimlabel); } } diff --git a/compiled/src/rocCurveCollection.cpp b/compiled/src/rocCurveCollection.cpp index 678e98e..e4e1c4c 100644 --- a/compiled/src/rocCurveCollection.cpp +++ b/compiled/src/rocCurveCollection.cpp @@ -44,7 +44,8 @@ void rocCurveCollection::addROC(const TString& name, const TString& probability, void rocCurveCollection::printRocs(TChain* c, const TString& outpdf, - const TString&outfile, TCanvas* cv, TFile * f, std::vector* chainvec,double xmin_in){ + const TString&outfile, TCanvas* cv, TFile * f, std::vector* chainvec,const double xmin_in, + TString experimentlabel,TString lumilabel,TString prelimlabel){ gROOT->SetBatch(); @@ -184,35 +185,38 @@ void rocCurveCollection::printRocs(TChain* c, const TString& outpdf, haxis.GetXaxis()->SetRangeUser(xmin,1); if(cmsstyle_){ + if(experimentlabel.Length()<1)experimentlabel="CMS Simulation"; + if(prelimlabel.Length()<1)prelimlabel="#it{Preliminary}"; + if(lumilabel.Length()<1)lumilabel="#sqrt{s}=13 TeV, Phase 1"; + } + + + //add CMS labels + TLatex *tex = new TLatex(0.18,0.855,experimentlabel); + tex->SetNDC(true); + tex->SetTextFont(61); + tex->SetTextSize(0.08); + tex->SetLineWidth(2); + tex->Draw(); + + + tex = new TLatex(0.57,0.865,prelimlabel); + tex->SetNDC(true); + tex->SetTextFont(42); + tex->SetTextSize(0.05); + tex->SetLineWidth(2); + tex->Draw(); + + + tex = new TLatex(.97,0.955,lumilabel); + tex->SetNDC(true); + tex->SetTextAlign(31); + tex->SetTextFont(42); + tex->SetTextSize(0.05); + tex->SetLineWidth(2); + tex->Draw(); - //add CMS labels - TLatex *tex = new TLatex(0.18,0.865,"CMS Simulation"); - tex->SetNDC(true); - tex->SetTextFont(61); - tex->SetTextSize(0.08); - tex->SetLineWidth(2); - tex->Draw(); - - tex = new TLatex(0.57,0.865,"#it{Preliminary}"); - tex->SetNDC(true); - tex->SetTextFont(42); - tex->SetTextSize(0.05); - tex->SetLineWidth(2); - tex->Draw(); - - tex = new TLatex(.97,0.955,"#sqrt{s}=13 TeV, Phase 1"); - tex->SetNDC(true); - tex->SetTextAlign(31); - tex->SetTextFont(42); - tex->SetTextSize(0.05); - tex->SetLineWidth(2); - tex->Draw(); - - //haxis.GetXaxis()->SetTitle("b-jet efficiency"); - - haxis.GetXaxis()->SetRangeUser(0,1); - } leg_->Draw("same"); /////// if(extralegendtries_.size()){ @@ -238,7 +242,7 @@ void rocCurveCollection::printRocs(TChain* c, const TString& outpdf, for(auto& t:additionaltext_) t->Draw(); //comment lines - TLatex *tex = new TLatex(0.18,0.805,comment0_); + tex = new TLatex(0.18,0.805,comment0_); tex->SetNDC(true); tex->SetTextFont(42); tex->SetTextSize(0.05); diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index d151585..e01bc65 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -226,7 +226,10 @@ def makeROCs_async(intextfile, name_list, probabilities_list, truths_list, vetos individual=False, xaxis="", nbins=200, - treename='deepntuplizer/tree'):#['solid?udsg','hatched?c']): + treename='deepntuplizer/tree', + xmin=-1, + experimentlabel="",lumilabel="",prelimlabel="", + npoints=500):#['solid?udsg','hatched?c']): import copy @@ -276,7 +279,8 @@ def worker(): outpdffile,allcuts,cmsstyle, firstcomment,secondcomment, invalidlist,extralegcopy,logY, - individual,xaxis,nbins,treename) + individual,xaxis,nbins,treename,xmin, + experimentlabel,lumilabel,prelimlabel) except Exception as e: print('error for these inputs:') diff --git a/modeltools.py b/modeltools.py index 40226e2..1b827dd 100644 --- a/modeltools.py +++ b/modeltools.py @@ -46,6 +46,10 @@ def set_trainable(m, patterns, value): m.get_layer(index=layidx).trainable = value return m +def setAllTrainable(m): + for layidx in range(len(m.layers)): + m.get_layer(index=layidx).trainable = True + return m def loadModelAndFixLayers(filename,fixOnlyContaining): #import keras diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 36066b7..a2fff43 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -14,6 +14,40 @@ from pdb import set_trace import json from keras import backend as K +import matplotlib +import os +matplotlib.use('Agg') + + +class plot_loss_or_metric(Callback): + def __init__(self,outputDir,metrics): + self.metrics=metrics + self.outputDir=outputDir + + def on_epoch_end(self,epoch, epoch_logs={}): + lossfile=os.path.join( self.outputDir, 'full_info.log') + allinfo_history=None + with open(lossfile, 'r') as infile: + allinfo_history=json.load(infile) + + nepochs=len(allinfo_history) + allnumbers=[[] for i in range(len(self.metrics))] + epochs=[] + for i in range(nepochs): + epochs.append(i) + for j in range(len(self.metrics)): + allnumbers[j].append(allinfo_history[i][self.metrics[j]]) + + import matplotlib.pyplot as plt + for j in range(len(self.metrics)): + f = plt.figure() + plt.plot(epochs,allnumbers[j],'r',label=self.metrics[j]) + plt.ylabel(self.metrics[j]) + plt.xlabel('epoch') + #plt.legend() + f.savefig(self.outputDir+'/'+self.metrics[j]+'.pdf') + plt.close() + class newline_callbacks_begin(Callback): @@ -40,11 +74,16 @@ def on_epoch_end(self,epoch, epoch_logs={}): with open(learnfile, 'a') as f: f.write(str(float(K.get_value(self.model.optimizer.lr)))+'\n') + lossfile=os.path.join( self.outputDir, 'full_info.log') + if os.path.isfile(lossfile): + with open(lossfile, 'r') as infile: + self.full_logs=json.load(infile) + normed = {} for vv in epoch_logs: normed[vv] = float(epoch_logs[vv]) self.full_logs.append(normed) - lossfile=os.path.join( self.outputDir, 'full_info.log') + with open(lossfile, 'w') as out: out.write(json.dumps(self.full_logs)) @@ -110,7 +149,8 @@ def __init__(self, minTokenLifetime=5, checkperiod=10, checkperiodoffset=0, - plotLossEachEpoch=True): + plotLossEachEpoch=True, + additional_plots=None): @@ -150,7 +190,10 @@ def __init__(self, verbose=1, mode='min') self.callbacks.append(self.stopping) - + if additional_plots: + self.additionalplots = plot_loss_or_metric(outputDir,additional_plots) + self.callbacks.append(self.additionalplots) + self.history=History() self.timer = Losstimer() diff --git a/training/training_base.py b/training/training_base.py index d4616a5..33577e4 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -109,6 +109,7 @@ def __init__( self.compiled=False self.checkpointcounter=0 self.renewtokens=renewtokens + self.callbacks=None self.inputData = os.path.abspath(args.inputDataCollection) \ @@ -139,9 +140,10 @@ def __init__( self.train_data.useweights=useweights if testrun: - self.train_data.split(0.05) - - self.val_data=self.train_data.split(splittrainandtest) + self.train_data.split(0.02) + self.val_data=self.train_data + else: + self.val_data=self.train_data.split(splittrainandtest) @@ -204,13 +206,17 @@ def loadModel(self,filename): def compileModel(self, learningrate, + clipnorm=None, **compileargs): if not self.keras_model: raise Exception('set model first') from keras.optimizers import Adam self.startlearningrate=learningrate - self.optimizer = Adam(lr=self.startlearningrate) + if clipnorm: + self.optimizer = Adam(lr=self.startlearningrate,clipnorm=clipnorm) + else: + self.optimizer = Adam(lr=self.startlearningrate) self.keras_model.compile(optimizer=self.optimizer,**compileargs) self.compiled=True @@ -250,8 +256,9 @@ def trainModel(self, lr_epsilon=0.003, lr_cooldown=6, lr_minimum=0.000001, - maxqsize=20, + maxqsize=5, checkperiod=10, + additional_plots=None, **trainargs): @@ -289,7 +296,7 @@ def trainModel(self, print('total sample size: '+str(self.train_data.nsamples)) #exit() - if self.train_data.maxFilesOpen<0: + if self.train_data.maxFilesOpen<0 or True: self.train_data.maxFilesOpen=nfilespre self.val_data.maxFilesOpen=min(int(nfilespre/2),1) @@ -298,7 +305,7 @@ def trainModel(self, from .DeepJet_callbacks import DeepJet_callbacks - callbacks=DeepJet_callbacks(self.keras_model, + self.callbacks=DeepJet_callbacks(self.keras_model, stop_patience=stop_patience, lr_factor=lr_factor, lr_patience=lr_patience, @@ -307,13 +314,15 @@ def trainModel(self, lr_minimum=lr_minimum, outputDir=self.outputDir, checkperiod=checkperiod, - checkperiodoffset=self.trainedepoches) + checkperiodoffset=self.trainedepoches, + additional_plots=additional_plots) + print('starting training') self.keras_model.fit_generator(self.train_data.generator() , steps_per_epoch=self.train_data.getNBatchesPerEpoch(), epochs=nepochs-self.trainedepoches, - callbacks=callbacks.callbacks, + callbacks=self.callbacks.callbacks, validation_data=self.val_data.generator(), validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, max_q_size=maxqsize,**trainargs) @@ -327,7 +336,7 @@ def trainModel(self, del self.train_data self.train_data=tmpdc - return self.keras_model, callbacks.history + return self.keras_model, self.callbacks.history From 39f64cca9b1403630fef46e4743f186782cd6abb Mon Sep 17 00:00:00 2001 From: mauro verzetti Date: Tue, 24 Jul 2018 12:34:37 +0200 Subject: [PATCH 011/437] added script to ease the CMSSW deployment and AOT compilation --- bin/prepare_for_deployment.py | 84 +++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100755 bin/prepare_for_deployment.py diff --git a/bin/prepare_for_deployment.py b/bin/prepare_for_deployment.py new file mode 100755 index 0000000..5c896a1 --- /dev/null +++ b/bin/prepare_for_deployment.py @@ -0,0 +1,84 @@ +#! /bin/env python + +from argparse import ArgumentParser + +parser = ArgumentParser() +parser.add_argument('model') +parser.add_argument('output', help='output files name') +#parser.add_argument("", action='store_true') +parser.add_argument("--batch", type=int, default=1, help='batch size to be embedded in deployment') +args = parser.parse_args() + + +from keras.models import load_model +from keras import backend as K +from tensorflow.python.tools import optimize_for_inference_lib + +import tensorflow as tf +sess = tf.Session() +K.set_session(sess) + + +import imp +try: + imp.find_module('Losses') + from Losses import * +except ImportError: + print 'No Losses module found, ignoring at your own risk' + global_loss_list = {} + +try: + imp.find_module('Layers') + from Layers import * +except ImportError: + print 'No Layers module found, ignoring at your own risk' + global_layers_list = {} + +try: + imp.find_module('Metrics') + from Metrics import * +except ImportError: + print 'No metrics module found, ignoring at your own risk' + global_metrics_list = {} + +def format_name(name): + if ':' not in name: return name + else: + return name.split(':')[0] + +custom_objs = {} +custom_objs.update(global_loss_list) +custom_objs.update(global_layers_list) +custom_objs.update(global_metrics_list) + +K.set_learning_phase(False) #FUNDAMENTAL! this MUST be before loading the model! +model=load_model(args.model, custom_objects=custom_objs) + +output_names = [format_name(i.name) for i in model.outputs] +constant_graph = tf.graph_util.convert_variables_to_constants(sess, sess.graph.as_graph_def(), output_names) + +tf.train.write_graph( + constant_graph, "", + args.output if args.output.endswith('.pb') else '%s.pb' % args.output, + as_text=False + ) + +txt_config = args.output.replace('.pb', '.config.pbtxt') \ + if args.output.endswith('.pb') else '%s.config.pbtxt' % args.output +with open(txt_config, 'w') as config: + for feed in model.inputs: + #the first element is always the batch size (None in the graph, needs to be defined here) + shape = [args.batch] + [int(i) for i in feed.shape[1:]] + shape = [' dim { size : %s }' % i for i in shape] + shape = '\n'.join(shape) + config.write('''feed { + id { node_name: "%s" } + shape { +%s + } +} +''' % (format_name(feed.name), shape)) + + config.write('\n') + for fetch in output_names: + config.write('fetch {\n id { node_name: "%s" }\n}\n' % fetch) From 355d50190fc3020102115461ac668329820e9962 Mon Sep 17 00:00:00 2001 From: Swapneel Mehta Date: Mon, 30 Jul 2018 14:11:08 +0200 Subject: [PATCH 012/437] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 50c9ae7..b2b0e9f 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Setup python packages (CERN) ========== It is essential to perform all these steps on lxplus7. Simple ssh to 'lxplus7' instead of 'lxplus' -Pre-Installtion: Anaconda setup (only once) +Pre-Installation: Anaconda setup (only once) Download miniconda3 ``` cd From 6a03ce7adb0a376e53214727e73ec4d7f36adf60 Mon Sep 17 00:00:00 2001 From: jkiesele Date: Tue, 31 Jul 2018 13:20:06 +0200 Subject: [PATCH 013/437] validation methods and subpackage creation --- DataCollection.py | 40 ++++++++- bin/batch_conversion.py | 109 ++++++++++++++++++----- bin/check_conversion.py | 43 ++++++++-- bin/createSubpackage.py | 186 ++++++++++++++++++++++++++++++++++++++++ bin/validateData.py | 22 +++++ modeltools.py | 33 +++++++ 6 files changed, 401 insertions(+), 32 deletions(-) create mode 100755 bin/createSubpackage.py create mode 100755 bin/validateData.py diff --git a/DataCollection.py b/DataCollection.py index e0098d6..7a3df99 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -224,6 +224,42 @@ def getNBatchesPerEpoch(self): while (count+1)*self.__batchsize <= self.nsamples: count+=1 return count + + def validate(self, remove=True): + ''' + checks if all samples in the collection can be read properly. + removes the invalid samples from the sample list. + Also removes the original link to the root file, so recover cannot be run + (this might be changed in future implementations) + ''' + for i in range(len(self.samples)): + td=copy.deepcopy(self.dataclass) + fullpath=self.getSamplePath(self.samples[i]) + print('reading '+fullpath, str(self.sampleentries[i])) + try: + td.readIn(fullpath) + print(td.nsamples, td.x[0].shape[0], td.y[0].shape[0]) + if td.nsamples != td.x[0].shape[0] or td.nsamples != td.y[0].shape[0]: + print("not right length") + raise Exception("not right length") + del td + continue + except Exception as e: + del self.samples[i] + del self.originRoots[i] + self.nsamples -= self.sampleentries[i] + del self.sampleentries[i] + + def removeEntry(self,relative_path_to_entry): + for i in range(len(self.samples)): + if relative_path_to_entry==self.samples[i]: + print('removing '+self.samples[i]+" - "+str(self.sampleentries[i])) + del self.samples[i] + del self.originRoots[i] + self.nsamples -= self.sampleentries[i] + del self.sampleentries[i] + break + def writeToFile(self,filename): import pickle @@ -531,7 +567,9 @@ def removefile(): try: fileTimeOut(sample,120) #once available copy to ram - os.system('cp '+sample+' '+ramdisksample) + os_ret=os.system('cp '+sample+' '+ramdisksample) + if os_ret: + raise Exception("copy to ramdisk not successful for "+sample) td.readFromRootFile(ramdisksample,self.means, self.weighter) #wrlck.acquire() td.writeOut(newpath) diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index a09aecb..a5b6cb8 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -1,4 +1,4 @@ -#! /bin/env python +#!/bin/env python from argparse import ArgumentParser from pdb import set_trace @@ -10,35 +10,86 @@ parser.add_argument("nchunks", type=int, help="number of jobs to be submitted") parser.add_argument("out", help="output path") parser.add_argument("batch_dir", help="batch directory") -parser.add_argument("-c", help="output class") +parser.add_argument("-c", help="output class", default="") parser.add_argument("--testdatafor", default='') parser.add_argument("--nforweighter", default='500000', help='set number of samples to be used for weight and mean calculation') parser.add_argument("--nomeans", action='store_true', help='where to get means/std, in case already computed') args = parser.parse_args() +args.infile = os.path.abspath(args.infile) +args.out = os.path.abspath(args.out) +args.batch_dir = os.path.abspath(args.batch_dir) + +if len(args.c)<1: + print("please specify and output class") + exit(-1) + +cmssw_version='CMSSW_10_0_0' + deep_jet_base = os.environ['DEEPJETCORE_SUBPACKAGE'] if len(deep_jet_base) < 1: raise RuntimeError('I cannot find the project root directory. DEEPJETCORE_SUBPACKAGE needs to be defined') -cmssw = os.environ['CMSSW_BASE'] -if len(cmssw) < 1: - raise RuntimeError('I cannot find the CMSSW root directory. Batch conversion on SL6 machines requires CMSSW (for now)') +deep_jet_base_name = os.path.basename(deep_jet_base) +deep_jet_core = os.path.abspath((os.environ['DEEPJETCORE'])) -proc = subprocess.Popen( - 'voms-proxy-info', - stdout=subprocess.PIPE, - stderr=subprocess.PIPE -) -if proc.wait() <> 0: - print "You should have a valid grid proxy to run this!" - exit() - -if not os.path.isdir(args.batch_dir): - os.mkdir(args.batch_dir) + +print('creating CMSSW based installation of DeepJetCore to run on sl6 nodes') + +fullcommand=''' +source deactivate ; +cd {batchdir} ; +export SCRAM_ARCH=slc6_amd64_gcc630 ; +scramv1 project CMSSW {cmssw_version} ; +cd {cmssw_version}/src ; +echo setting up cmssw env ; +eval `scram runtime -sh` ; +cp -rL {djc} . ; +mkdir {DJ_base_name} ; +cp -rL {DJ}/modules {DJ_base_name}/ ; +cp {DJ}/* {DJ_base_name}/ ; +cd {batchdir}/{cmssw_version}/src/DeepJetCore/compiled ; +pwd ; +make clean; +make -j4; +cd {batchdir}/{cmssw_version}/src/{DJ_base_name} ; +echo sourcing {batchdir}/{cmssw_version}/src/DeepJetCore ; + +cd {batchdir}/{cmssw_version}/src/DeepJetCore +export DEEPJETCORE=`pwd` +export PYTHONPATH=`pwd`/../:$PYTHONPATH +export LD_LIBRARY_PATH=`pwd`/compiled:$LD_LIBRARY_PATH +export PATH=`pwd`/bin:$PATH + +echo compiling {DJ_base_name} ; +echo {batchdir}/{cmssw_version}/src/{DJ_base_name}/modules +cd {batchdir}/{cmssw_version}/src/{DJ_base_name}/modules ; +make clean; +make -j4 ; +'''.format(DJ=deep_jet_base,DJ_base_name=deep_jet_base_name, djc=deep_jet_core, batchdir=args.batch_dir,cmssw_version=cmssw_version) + +#print(fullcommand) +#exit() + +if os.path.isdir(args.out): + print ("output dir must not exists") + exit(-2) + +if os.path.isdir(args.batch_dir): + print ("batch dir must not exists") +os.mkdir(args.batch_dir) if not os.path.isdir('%s/batch' % args.batch_dir): - os.mkdir('%s/batch' % args.batch_dir) + os.mkdir('%s/batch' % args.batch_dir) + + + +os.system(fullcommand) + + +djc_cmssw=args.batch_dir+'/'+cmssw_version +'/src/DeepJetCore' + if not (args.nomeans or args.testdatafor): #Run a fisrt round of root conversion to get the means/std and weights @@ -56,6 +107,8 @@ if code != 0: raise RuntimeError('The first round of root conversion failed with message: \n\n%s' % err) + else: + print('Means/norms produced successfully') inputs = [i for i in open(args.infile)] @@ -78,12 +131,20 @@ def chunkify(l, n): cfile.write(''.join(chunk)) nchunks = idx + batch_template = '''#!/bin/bash -sleep $(shuf -i1-600 -n1) #sleep a random amount of time between 1s and 10' to avoid bottlenecks in reaching afs +sleep $(shuf -i1-300 -n1) #sleep a random amount of time between 1s and 10' to avoid bottlenecks in reaching afs echo "JOBSUB::RUN job running" trap "echo JOBSUB::FAIL job killed" SIGTERM -cd {DJ} -source lxplus_env.sh +BASEDIR=`pwd` +cd {djc_cmssw} +eval `scram runtime -sh` #get glibc libraries +export PATH={djc_cmssw}/bin:$PATH +export LD_LIBRARY_PATH={djc_cmssw}/compiled:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH={djc_cmssw}/../{DJ}/modules:$LD_LIBRARY_PATH +export PYTHONPATH={djc_cmssw}/../:$PYTHONPATH +export PYTHONPATH={djc_cmssw}/../{DJ}/modules:$PYTHONPATH +cd $BASEDIR convertFromRoot.py "$@" exitstatus=$? if [ $exitstatus != 0 ] @@ -92,7 +153,7 @@ def chunkify(l, n): else echo JOBSUB::SUCC job ended sucessfully fi -'''.format(DJ=deep_jet_base) +'''.format(DJ=deep_jet_base_name,djc_cmssw=djc_cmssw) batch_script = '%s/batch.sh' % args.batch_dir with open(batch_script, 'w') as bb: bb.write(batch_template) @@ -106,13 +167,13 @@ def chunkify(l, n): output = batch/con_out.$(ProcId).out error = batch/con_out.$(ProcId).err log = batch/con_out.$(ProcId).log -send_credential = True ++MaxRuntime = 86399 getenv = True use_x509userproxy = True queue {NJOBS} '''.format( EXE = os.path.realpath(batch_script), - NJOBS = nchunks, + NJOBS = nchunks+1, INFILE = txt_template % '$(ProcId)', CLASS = args.c, OUT = os.path.realpath(args.out), @@ -120,3 +181,5 @@ def chunkify(l, n): MEANS = means_file, ) ) + +print('condor submit file can be found in '+ args.batch_dir+'\nuse check_conversion.py ' + args.batch_dir + ' to to check jobs') diff --git a/bin/check_conversion.py b/bin/check_conversion.py index 93ce4fb..4f404d2 100755 --- a/bin/check_conversion.py +++ b/bin/check_conversion.py @@ -13,7 +13,7 @@ def grep(fname, pattern): return True return False -parser = ArgumentParser('program to convert root tuples to traindata format') +parser = ArgumentParser('program to check batch conversion of root tuples to traindata format') parser.add_argument("indir", help="input dir of the batch task", metavar="FILE") args = parser.parse_args() @@ -31,24 +31,51 @@ def grep(fname, pattern): proc_lines = ''.join(proc_lines) outputs = glob.glob('%s/batch/con_out.*.out' % args.indir) +if len(outputs)<1: + print('no jobs submitted, please check') + exit(-1) + failed = [i for i in outputs if not grep(i, 'JOBSUB::SUCC')] +successful=[ i.split(".")[-2] for i in outputs if grep(i, 'JOBSUB::SUCC')] -if len(failed) == 0: - print 'All jobs successfully completed, merging...' - from DataCollection import DataCollection - from glob import glob +def get_output_dir(): batch_args = [i for i in open('%s/submit.sub' % args.indir) if 'arguments' in i][0] batch_args = batch_args.split('=')[1].split('-') output_dir = [i for i in batch_args if i.startswith('o ')][0].split(' ')[1] - merged = sum(DataCollection(i) for i in glob('%s/conversion.*.dc' % output_dir)) + return output_dir + + + +def merge_successful(): + output_dir=get_output_dir() + from DeepJetCore.DataCollection import DataCollection + alldc=[] + for s in successful: + in_path=output_dir+'/conversion.'+str(s)+'.dc' + alldc.append(DataCollection(in_path)) + print("merging DataCollections") + merged = sum(alldc) + print("saving merged DataCollection") + merged.writeToFile('%s/dataCollection.dc' % output_dir) + print('successfully merged to %s/dataCollection.dc' % output_dir) + return merged + + +if len(failed) == 0: + print 'All jobs successfully completed, merging...' + merged=merge_successful() dname = os.path.dirname(merged.originRoots[0]) infiles = glob('%s/*.root' % dname) if len(infiles) != len(merged.originRoots): print '\n\n\nThere are missing files that were not converted, maybe something went wrong!\n\n\n' - merged.writeToFile('%s/dataCollection.dc' % output_dir) + else: keep_going = raw_input('%d/%d jobs have failed, should I recover them? [yY/nN] ' % (len(failed), len(outputs))) - if keep_going.lower() == 'n': exit(0) + if keep_going.lower() == 'n': + merge_anyways = raw_input('Should I merge the sucessfully converted files (%d)? [yY/nN] ' % len(successful)) + if merge_anyways.lower() == 'n': exit(0) + merge_successful() + exit(0) idxs = [os.path.basename(i).split('.')[1] for i in failed] with open('%s/rescue.sub' % args.indir, 'w') as jdl: diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py new file mode 100755 index 0000000..30e0ca9 --- /dev/null +++ b/bin/createSubpackage.py @@ -0,0 +1,186 @@ +#!/usr/bin/env python +# encoding: utf-8 + + +import sys +import os +from argparse import ArgumentParser + +parser = ArgumentParser('script to create a DeepJetCore subpackage') + +parser.add_argument("subpackage_name", help="name of the subpackage") +parser.add_argument("subpackage_parent_dir", help="parent directory of the subpackage (must be same as DeepJetCore)") +args=parser.parse_args() + +deepjetcore = os.getenv('DEEPJETCORE') + +subpackage_dir=args.subpackage_parent_dir+'/'+args.subpackage_name + +### templates #### + +environment_file=''' +#! /bin/bash +THISDIR=`pwd` +export {subpackage}=$( cd "$( dirname "${BASH_SOURCE}" )" && pwd -P) +cd {deepjetcore} +if command -v nvidia-smi > /dev/null +then + source gpu_env.sh +else + source lxplus_env.sh +fi +export PYTHONPATH=`pwd`/modules:$PYTHONPATH +export PYTHONPATH=`pwd`/modules/datastructures:$PYTHONPATH +cd $THISDIR +'''.format(deepjetcore=deepjetcore, + subpackage=args.subpackage_name.upper(), + subpackage_dir=os.path.abspath(subpackage_dir), + BASH_SOURCE="{BASH_SOURCE[0]}") + +create_dir_structure_script=''' +#! /bin/bash +mkdir -p {subpackage_dir} +mkdir -p {subpackage_dir}/modules +mkdir -p {subpackage_dir}/modules/datastructures +mkdir -p {subpackage_dir}/scripts +mkdir -p {subpackage_dir}/Train +'''.format(subpackage_dir=subpackage_dir) + +datastructure_template=''' +from DeepJetCore.TrainData import TrainData +import numpy as np + +class TrainData_template(TrainData): + def __init__(self): + TrainData.__init__(self) + + self.treename="tree" #input root tree name + + self.truthclasses=[] #truth classes for classification + + self.weightbranchX='branchx' #needs to be specified + self.weightbranchY='branchy' #needs to be specified + + self.referenceclass='flatten' + self.weight_binX = numpy.array([0,-40000,40000],dtype=float) + self.weight_binY = numpy.array([-40000,40000],dtype=float) + + + self.registerBranches(['']) #list of branches to be used + + self.registerBranches(self.truthclasses) + + + #call this at the end + self.reduceTruth(None) + + + def readFromRootFile(self,filename,TupleMeanStd, weighter): + + # this function defines how to convert the root ntuple to the training format + # options are not yet described here + + + # user code + feature_array = function_to_create_the_array(filename) + + notremoves=weighter.createNotRemoveIndices(Tuple) + + # this removes parts of the dataset for weighting the events + feature_array = feature_array[notremoves > 0] + + # call this in the end + + self.nsamples=len(feature_array) + + self.x=[] # list of feature numpy arrays + self.y=[] # list of target numpy arrays (truth) + self.w=[] # list of weight arrays. One for each truth target + +''' + + +training_template=''' +from DeepJetCore.training.training_base import training_base +import keras +from keras.models import Model +from keras.layers import Dense #etc + +def my_model(Inputs,nclasses,nregressions,otheroption): + + input_a = Inputs[0] #this is the self.x list from the TrainData data structure + x = Dense(2)(input_a) + predictions = [x] + return Model(inputs=Inputs, outputs=predictions) + + +train=training_base(testrun=False,resumeSilently=False,renewtokens=True) + + +if not train.modelSet(): # allows to resume a stopped/killed training. Only sets the model if it cannot be loaded from previous snapshot + + train.setModel(my_model,otheroption=1) + + train.compileModel(learningrate=0.01, + loss='mean_squared_error') + + +model,history = train.trainModel(nepochs=10, + batchsize=100, + checkperiod=1, # saves a checkpoint model every N epochs + verbose=1) + +''' + +layers_template=''' +# Define custom layers here and add them to the global_layers_list dict (important!) +global_layers_list = {} +''' +losses_template=''' +# Define custom losses here and add them to the global_loss_list dict (important!) +global_loss_list = {} +''' + +metrics_template=''' +# Define custom metrics here and add them to the global_metrics_list dict (important!) +global_metrics_list = {} +''' + + +######## create the structure ######## + + +os.system(create_dir_structure_script) +with open(subpackage_dir+'/env.sh','w') as envfile: + envfile.write(environment_file) + +with open(subpackage_dir+'/modules/datastructures/TrainData_template.py','w') as lfile: + lfile.write(datastructure_template) + +with open(subpackage_dir+'/Train/training_template.py','w') as lfile: + lfile.write(training_template) + +with open(subpackage_dir+'/modules/Layers.py','w') as lfile: + lfile.write(layers_template) +with open(subpackage_dir+'/modules/Losses.py','w') as lfile: + lfile.write(losses_template) +with open(subpackage_dir+'/modules/Metrics.py','w') as lfile: + lfile.write(metrics_template) + + + + + + + + + + + + + + + + + + diff --git a/bin/validateData.py b/bin/validateData.py new file mode 100755 index 0000000..27cc3eb --- /dev/null +++ b/bin/validateData.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python + + + +from argparse import ArgumentParser +parser = ArgumentParser('Check if all files in a dataset (datacollection) are ok or remove a specific entry\n') +parser.add_argument('inputDataCollection') +parser.add_argument('--remove',default="") +args=parser.parse_args() + +from DeepJetCore.DataCollection import DataCollection + +dc=DataCollection(args.inputDataCollection) +dc.writeToFile(args.inputDataCollection+".backup") +print('total size before: '+str(dc.nsamples)) +if not len(args.remove): + dc.validate(remove=True) +else: + dc.removeEntry(args.remove) + print('total size after: '+str(dc.nsamples)) + +dc.writeToFile(args.inputDataCollection) \ No newline at end of file diff --git a/modeltools.py b/modeltools.py index 1b827dd..c6d9626 100644 --- a/modeltools.py +++ b/modeltools.py @@ -1,4 +1,24 @@ +import imp +try: + imp.find_module('Losses') + from Losses import * +except ImportError: + print 'No Losses module found, ignoring at your own risk' + global_loss_list = {} +try: + imp.find_module('Layers') + from Layers import * +except ImportError: + print 'No Layers module found, ignoring at your own risk' + global_layers_list = {} + +try: + imp.find_module('Metrics') + from Metrics import * +except ImportError: + print 'No metrics module found, ignoring at your own risk' + global_metrics_list = {} def getLayer(model, name): for layer in model.layers: @@ -60,3 +80,16 @@ def loadModelAndFixLayers(filename,fixOnlyContaining): fixLayersContaining(m, fixOnlyContaining) return m + +def load_model(filename): + from keras.models import load_model + + + custom_objs = {} + custom_objs.update(global_loss_list) + custom_objs.update(global_layers_list) + custom_objs.update(global_metrics_list) + model=load_model(filename, custom_objects=custom_objs) + + return model + From 0b3eedbaa4c4e770462c1e061c85a30acfa63287 Mon Sep 17 00:00:00 2001 From: jkiesele Date: Fri, 3 Aug 2018 14:24:58 +0200 Subject: [PATCH 014/437] better validation checks, more tools for it --- DataCollection.py | 20 ++++++++++----- TrainData.py | 44 ++++++++++++++++++++++---------- bin/batch_conversion.py | 26 ++++++++++++++----- bin/check_conversion.py | 9 ++++++- bin/createSubpackage.py | 9 ++++--- bin/validateData.py | 3 ++- compiled/src/c_readArrThreaded.C | 15 ++++++++--- 7 files changed, 90 insertions(+), 36 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 7a3df99..38d7989 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -225,7 +225,7 @@ def getNBatchesPerEpoch(self): count+=1 return count - def validate(self, remove=True): + def validate(self, remove=True, skip_first=0): ''' checks if all samples in the collection can be read properly. removes the invalid samples from the sample list. @@ -233,18 +233,25 @@ def validate(self, remove=True): (this might be changed in future implementations) ''' for i in range(len(self.samples)): + if i < skip_first: continue td=copy.deepcopy(self.dataclass) fullpath=self.getSamplePath(self.samples[i]) - print('reading '+fullpath, str(self.sampleentries[i])) + print('reading '+fullpath, str(self.sampleentries[i]), str(i), '/', str(len(self.samples))) try: td.readIn(fullpath) - print(td.nsamples, td.x[0].shape[0], td.y[0].shape[0]) - if td.nsamples != td.x[0].shape[0] or td.nsamples != td.y[0].shape[0]: - print("not right length") - raise Exception("not right length") + for x in td.x: + if td.nsamples != x.shape[0]: + print("not right length") + raise Exception("not right length") + for y in td.y: + if td.nsamples != y.shape[0]: + print("not right length") + raise Exception("not right length") + del td continue except Exception as e: + print('problem with file, removing ', fullpath) del self.samples[i] del self.originRoots[i] self.nsamples -= self.sampleentries[i] @@ -465,6 +472,7 @@ def createDataFromRoot( self.originRoots ) self.weighter.printHistos(outputDir) + if redo_meansandweights: logging.info('producing means and norms') diff --git a/TrainData.py b/TrainData.py index 934b66c..20c8462 100644 --- a/TrainData.py +++ b/TrainData.py @@ -398,16 +398,19 @@ def _readListInfo_(idstr): for i in range(len(self.w_list)): self.readthreadids.append(startReading(self.w_list[i].ctypes.data, filebase+'w.'+str(i), + fileprefix, list(self.w_list[i].shape), isRamDisk)) for i in range(len(self.x_list)): self.readthreadids.append(startReading(self.x_list[i].ctypes.data, filebase+'x.'+str(i), + fileprefix, list(self.x_list[i].shape), isRamDisk)) for i in range(len(self.y_list)): self.readthreadids.append(startReading(self.y_list[i].ctypes.data, filebase+'y.'+str(i), + fileprefix, list(self.y_list[i].shape), isRamDisk)) @@ -429,16 +432,19 @@ def _readListInfo_(idstr): for i in range(len(self.w_list)): (readBlocking(self.w_list[i].ctypes.data, filebase+'w.'+str(i), + fileprefix, list(self.w_list[i].shape), isRamDisk)) for i in range(len(self.x_list)): (readBlocking(self.x_list[i].ctypes.data, filebase+'x.'+str(i), + fileprefix, list(self.x_list[i].shape), isRamDisk)) for i in range(len(self.y_list)): (readBlocking(self.y_list[i].ctypes.data, filebase+'y.'+str(i), + fileprefix, list(self.y_list[i].shape), isRamDisk)) @@ -673,9 +679,10 @@ def produceBinWeighter(self,filenames): counter=0 if self.remove or self.weight: for fname in filenames: + fileTimeOut(fname, 120) nparray = self.readTreeFromRootToTuple(fname, branches=branches) weighter.addDistributions(nparray) - del nparray + #del nparray showprog.show(counter) counter=counter+1 weighter.createRemoveProbabilitiesAndWeights(self.referenceclass) @@ -684,24 +691,33 @@ def produceBinWeighter(self,filenames): - def _normalize_input_(self, weighter, npy_array): + def _normalize_input_(self, weighter, npy_array, oversample=1): weights = None if self.weight: weights=weighter.getJetWeights(npy_array) self.w = [weights for _ in self.y] elif self.remove: - notremoves=weighter.createNotRemoveIndices(npy_array) - if self.undefTruth: - undef=npy_array[self.undefTruth].sum(axis=1) - notremoves-=undef - print(' to created remove indices') - weights=notremoves - - print('remove') - self.x = [x[notremoves > 0] for x in self.x] - self.y = [y[notremoves > 0] for y in self.y] - weights=weights[notremoves > 0] - self.w = [weights for _ in self.y] + x_in=self.x + y_in=self.y + for i in range(oversample): + notremoves=weighter.createNotRemoveIndices(npy_array) + if self.undefTruth: + undef=npy_array[self.undefTruth].sum(axis=1) + notremoves-=undef + print(' to created remove indices', i) + weights=notremoves + + print('remove', i) + if not i: + self.x = [x[notremoves > 0] for x in x_in] + self.y = [y[notremoves > 0] for y in y_in] + else: + self.x = [self.x[i].concatenate(x_in[i][notremoves > 0]) for i in range(len(self.x))] + self.y = [self.y[i].concatenate(y_in[i][notremoves > 0]) for i in range(len(self.y))] + + self.w = [numpy.zeros(self.x[0].shape)+1 for _ in self.y] + + newnsamp=self.x[0].shape[0] print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') self.nsamples = newnsamp diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index a5b6cb8..07aef6e 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -13,7 +13,8 @@ parser.add_argument("-c", help="output class", default="") parser.add_argument("--testdatafor", default='') parser.add_argument("--nforweighter", default='500000', help='set number of samples to be used for weight and mean calculation') -parser.add_argument("--nomeans", action='store_true', help='where to get means/std, in case already computed') +parser.add_argument("--meansfrom", default="", help='where to get means/std, in case already computed') +parser.add_argument("--useexistingsplit", default=False, help='use an existing file split (potentially dangerous)') args = parser.parse_args() args.infile = os.path.abspath(args.infile) @@ -46,11 +47,12 @@ echo setting up cmssw env ; eval `scram runtime -sh` ; cp -rL {djc} . ; -mkdir {DJ_base_name} ; +mkdir -p {DJ_base_name} ; cp -rL {DJ}/modules {DJ_base_name}/ ; cp {DJ}/* {DJ_base_name}/ ; cd {batchdir}/{cmssw_version}/src/DeepJetCore/compiled ; pwd ; +echo compiling DeepJetCore ; make clean; make -j4; cd {batchdir}/{cmssw_version}/src/{DJ_base_name} ; @@ -62,7 +64,7 @@ export LD_LIBRARY_PATH=`pwd`/compiled:$LD_LIBRARY_PATH export PATH=`pwd`/bin:$PATH -echo compiling {DJ_base_name} ; +echo "compiling {DJ_base_name} (if needed)"; echo {batchdir}/{cmssw_version}/src/{DJ_base_name}/modules cd {batchdir}/{cmssw_version}/src/{DJ_base_name}/modules ; make clean; @@ -91,8 +93,9 @@ djc_cmssw=args.batch_dir+'/'+cmssw_version +'/src/DeepJetCore' -if not (args.nomeans or args.testdatafor): +if not (len(args.meansfrom) or args.testdatafor): #Run a fisrt round of root conversion to get the means/std and weights + print('creating a dummy datacollection for means/norms and weighter (can take a while)...') cmd = [ 'convertFromRoot.py', '-i', args.infile, @@ -108,8 +111,14 @@ if code != 0: raise RuntimeError('The first round of root conversion failed with message: \n\n%s' % err) else: - print('Means/norms produced successfully') + print('means/norms/weighter produced successfully') +elif args.meansfrom: + if not os.path.exists(args.meansfrom): + raise Exception("The file "+args.meansfrom+" does not exist") + print('using means/weighter from '+args.meansfrom) + os.mkdir(args.out) + os.system('cp '+args.meansfrom+' '+args.out+'/batch_template.dc') inputs = [i for i in open(args.infile)] @@ -121,14 +130,17 @@ def chunkify(l, n): if not args.infile.endswith('.txt'): raise ValueError('The code assumes that the input files has .txt extension') + +print('splitting input file...') txt_template = args.infile.replace('.txt', '.%s.txt') batch_txts = [] nchunks = 0 for idx, chunk in enumerate(chunkify(inputs, len(inputs)/args.nchunks)): name = txt_template % idx batch_txts.append(name) - with open(name, 'w') as cfile: - cfile.write(''.join(chunk)) + if not args.useexistingsplit: + with open(name, 'w') as cfile: + cfile.write(''.join(chunk)) nchunks = idx diff --git a/bin/check_conversion.py b/bin/check_conversion.py index 4f404d2..0b7356e 100755 --- a/bin/check_conversion.py +++ b/bin/check_conversion.py @@ -52,7 +52,14 @@ def merge_successful(): alldc=[] for s in successful: in_path=output_dir+'/conversion.'+str(s)+'.dc' - alldc.append(DataCollection(in_path)) + dc=None + try: + dc=DataCollection(in_path) + except Exception as e: + print('problems adding '+in_path+" will continue nevertheless... (error see below)") + print(e) + if dc: + alldc.append(DataCollection(in_path)) print("merging DataCollections") merged = sum(alldc) print("saving merged DataCollection") diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 30e0ca9..17de577 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -22,6 +22,7 @@ #! /bin/bash THISDIR=`pwd` export {subpackage}=$( cd "$( dirname "${BASH_SOURCE}" )" && pwd -P) +export DEEPJETCORE_SUBPACKAGE=${subpackage} cd {deepjetcore} if command -v nvidia-smi > /dev/null then @@ -29,9 +30,9 @@ else source lxplus_env.sh fi -export PYTHONPATH=`pwd`/modules:$PYTHONPATH -export PYTHONPATH=`pwd`/modules/datastructures:$PYTHONPATH -cd $THISDIR +cd ${subpackage} +export PYTHONPATH=${subpackage}/modules:$PYTHONPATH +export PYTHONPATH=${subpackage}/modules/datastructures:$PYTHONPATH '''.format(deepjetcore=deepjetcore, subpackage=args.subpackage_name.upper(), subpackage_dir=os.path.abspath(subpackage_dir), @@ -48,7 +49,7 @@ datastructure_template=''' from DeepJetCore.TrainData import TrainData -import numpy as np +import numpy class TrainData_template(TrainData): def __init__(self): diff --git a/bin/validateData.py b/bin/validateData.py index 27cc3eb..65ad05f 100755 --- a/bin/validateData.py +++ b/bin/validateData.py @@ -6,6 +6,7 @@ parser = ArgumentParser('Check if all files in a dataset (datacollection) are ok or remove a specific entry\n') parser.add_argument('inputDataCollection') parser.add_argument('--remove',default="") +parser.add_argument('--skip_first',default=0) args=parser.parse_args() from DeepJetCore.DataCollection import DataCollection @@ -14,7 +15,7 @@ dc.writeToFile(args.inputDataCollection+".backup") print('total size before: '+str(dc.nsamples)) if not len(args.remove): - dc.validate(remove=True) + dc.validate(remove=True, skip_first=int(args.skip_first)) else: dc.removeEntry(args.remove) print('total size after: '+str(dc.nsamples)) diff --git a/compiled/src/c_readArrThreaded.C b/compiled/src/c_readArrThreaded.C index 8435fed..7c569d3 100644 --- a/compiled/src/c_readArrThreaded.C +++ b/compiled/src/c_readArrThreaded.C @@ -29,10 +29,12 @@ class readThread{ public: readThread(long arrpointer, const std::string& filenamein, + const std::string& orig_filenamein, long size,bool rmwhendone){ arrbuf=(float*)(void*)arrpointer; infile=filenamein; + orig_infile=orig_filenamein; length=size; length*=sizeof(float); pthread=new pthread_t(); @@ -84,6 +86,7 @@ private: int id; bool removewhendone; qlz_state_decompress *state_decompress; + std::string orig_infile; }; @@ -151,7 +154,11 @@ void * readThread::readArrThread( void *ptr ){ if(allread!=thisthread->length){ fclose(ifile); - throw std::runtime_error("readArrThread:target array size does not match "); + std::string moreinfo="\nexpected: "; + moreinfo+=std::to_string(thisthread->length); + moreinfo+=" got: "; + moreinfo+=std::to_string(allread); + throw std::runtime_error("readArrThread:target array size does not match "+thisthread->orig_infile+moreinfo); } fclose(ifile); thisthread->done=1;//atomic @@ -175,6 +182,7 @@ size_t acounter=0; bool readBlocking(long arrpointer, std::string filenamein, + std::string orig_filenamein, const boost::python::list shape, bool rmwhendone){ @@ -183,7 +191,7 @@ bool readBlocking(long arrpointer, for(const auto& s:sshape) length*=s; - readThread * t=new readThread(arrpointer,filenamein,length,rmwhendone); + readThread * t=new readThread(arrpointer,filenamein,orig_filenamein,length,rmwhendone); t->readBlocking(); bool succ=t->isDone(); delete t; @@ -192,6 +200,7 @@ bool readBlocking(long arrpointer, int startReading(long arrpointer, std::string filenamein, + std::string orig_filenamein, const boost::python::list shape, bool rmwhendone){ @@ -200,7 +209,7 @@ int startReading(long arrpointer, for(const auto& s:sshape) length*=s; - readThread * t=new readThread(arrpointer,filenamein,length,rmwhendone); + readThread * t=new readThread(arrpointer,filenamein,orig_filenamein,length,rmwhendone); t->start(); if(allreads.at(acounter) && !allreads.at(acounter)->isDone()) throw std::out_of_range("c_readArrThreaded::startReading: overflow. Increase number of maximum threads (setMax)"); From 1836c56e775f539584f3b920aba9671336fa778e Mon Sep 17 00:00:00 2001 From: Swapneel Mehta Date: Thu, 23 Aug 2018 22:28:35 +0200 Subject: [PATCH 015/437] Adding link to bleeding edge release --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2b0e9f..9711282 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - +***For the bleeding-edge version of DeepJetCore check out the [python-package branch](https://github.com/SwapneelM/DeepJetCore/blob/python-package/PYPKG.md)*** DeepJetCore: Package for training and evaluation of deep neural networks for HEP =============================================================================== From d932b8c0376c3ef0ab522d549793ec95edd60493 Mon Sep 17 00:00:00 2001 From: Swapneel Mehta Date: Thu, 23 Aug 2018 22:28:57 +0200 Subject: [PATCH 016/437] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9711282..8a6c98f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -***For the bleeding-edge version of DeepJetCore check out the [python-package branch](https://github.com/SwapneelM/DeepJetCore/blob/python-package/PYPKG.md)*** +***For the bleeding-edge version of DeepJetCore check out the [python-package](https://github.com/SwapneelM/DeepJetCore/blob/python-package/PYPKG.md) branch*** DeepJetCore: Package for training and evaluation of deep neural networks for HEP =============================================================================== From a66b95fc627cc6fca0d643e72f4f9f52c650a998 Mon Sep 17 00:00:00 2001 From: Pedro Silva Date: Wed, 26 Sep 2018 16:30:53 +0200 Subject: [PATCH 017/437] Delegate event loop to functor If it doesn't disrupt anyone i would like to delegate the event loop to the functor to be run at the end. A reason to do that is that in N-nested trainings the prediction is an array of N arrays and the way it is coded right now would lead to call the functor N-times. --- evaluation/evaluation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index d151585..2373e7e 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -123,7 +123,7 @@ def makePrediction(self, model, testdatacollection, outputDir, print('Extending the output with the configured prediction functor output') formatstring.extend( getattr(td,'predictionFunctorClasses') ) all_write = np.concatenate([all_write, - [getattr(td,'predictionFunctor')(p) for p in prediction]], + getattr(td,'predictionFunctor')(prediction)], axis=1) if all_write.ndim == 2: From 85057f3597faf3661b325224290afe2caf808c0c Mon Sep 17 00:00:00 2001 From: Pedro Silva Date: Thu, 27 Sep 2018 10:26:55 +0200 Subject: [PATCH 018/437] Update evaluation.py Adding more details on how to use the predictionFunctor --- evaluation/evaluation.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index 2373e7e..2d31772 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -118,7 +118,13 @@ def makePrediction(self, model, testdatacollection, outputDir, else: all_write = prediction - #if a prediction functor was set, it's output is also added to the final predictions + #if a prediction functor was set and the corresponding predictionFunctorClasses + #its output is also added to the final predictions + #predictionFunctorClasses: an array of strings labelling extra variables to add to the tree + #predictionFunctor: receives the numpy array with the predictions for N events + # returns MxN numpy array + # where M=len(predictionFunctorClasses) + # and N=no. events if hasattr(td, 'predictionFunctor') and hasattr(td,'predictionFunctorClasses'): print('Extending the output with the configured prediction functor output') formatstring.extend( getattr(td,'predictionFunctorClasses') ) From 5cb32b69418a610fb6366e566a81afad3e4f11c4 Mon Sep 17 00:00:00 2001 From: Pedro Date: Fri, 28 Sep 2018 10:17:28 +0200 Subject: [PATCH 019/437] adding possibility to override DataCollection.py at test/predict step (example to run a functor over the predictions) --- DataCollection.py | 6 +++++- bin/convertFromRoot.py | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 38d7989..7d24a0f 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -404,11 +404,15 @@ def split(self,ratio): def createTestDataForDataCollection( self, collectionfile, inputfile, outputDir, outname = 'dataCollection.dc', - batch_mode = False): + batch_mode = False, + traind=None): import copy self.readFromFile(collectionfile) self.dataclass.remove=False self.dataclass.weight=True #False + if traind: + print('[createTestDataForDataCollection] dataclass is overriden by user request') + self.dataclass=traind self.readRootListFromFile(inputfile) self.createDataFromRoot( self.dataclass, outputDir, False, diff --git a/bin/convertFromRoot.py b/bin/convertFromRoot.py index 7a5f523..fade5ab 100755 --- a/bin/convertFromRoot.py +++ b/bin/convertFromRoot.py @@ -88,6 +88,7 @@ if len(nchilds): dc.nprocs=int(nchilds) +traind=None if class_name in class_options: traind = class_options[class_name] elif not recover and not testdatafor: @@ -100,7 +101,8 @@ dc.createTestDataForDataCollection( testdatafor, infile, outPath, outname = args.batch if args.batch else 'dataCollection.dc', - batch_mode = bool(args.batch) + batch_mode = bool(args.batch), + traind=traind(class_args) if traind else None ) elif recover: dc.recoverCreateDataFromRootFromSnapshot(recover) From 3379205f3a54c5a12d6628ff60f09637a9972abc Mon Sep 17 00:00:00 2001 From: Swapneel Mehta Date: Sun, 7 Oct 2018 13:22:46 +0200 Subject: [PATCH 020/437] Adding reference to presentation materials --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a6c98f..54c34e2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -***For the bleeding-edge version of DeepJetCore check out the [python-package](https://github.com/SwapneelM/DeepJetCore/blob/python-package/PYPKG.md) branch*** +**For the bleeding-edge version of DeepJetCore check out the [updated installation](https://github.com/SwapneelM/DeepJetCore/blob/python-package/PYPKG.md)** + +*For details, refer to the [presentations for DeepJet](https://drive.google.com/drive/folders/1l8Hu34hMYNc-YdgpCoAuqMzQ-qa5eCSJ?usp=sharing)* DeepJetCore: Package for training and evaluation of deep neural networks for HEP =============================================================================== From 618678181c78c239c705afdf877ccb981c8fb16a Mon Sep 17 00:00:00 2001 From: Swapneel Mehta Date: Tue, 16 Oct 2018 15:56:29 +0200 Subject: [PATCH 021/437] Adding link to Wiki --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 50c9ae7..e8ff31d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ +*Check out the [DeepJetCore wiki](https://github.com/DL4Jets/DeepJetCore/wiki) for an overview of the package.* DeepJetCore: Package for training and evaluation of deep neural networks for HEP =============================================================================== From 1fbbf488eee695f28538c65365693829a4b1400b Mon Sep 17 00:00:00 2001 From: Swapneel Mehta Date: Tue, 16 Oct 2018 15:59:30 +0200 Subject: [PATCH 022/437] Fixing grammar --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e8ff31d..b7a2c8c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -*Check out the [DeepJetCore wiki](https://github.com/DL4Jets/DeepJetCore/wiki) for an overview of the package.* +*Check out the [DeepJetCore wiki](https://github.com/DL4Jets/DeepJetCore/wiki) for an introduction to the package.* DeepJetCore: Package for training and evaluation of deep neural networks for HEP =============================================================================== From 08f9a747d2e6b7a0306c1336abb81f0bc82e4ea3 Mon Sep 17 00:00:00 2001 From: SwapneelM Date: Mon, 4 Mar 2019 09:34:08 +0100 Subject: [PATCH 023/437] Update conda activate command --- lxplus_env.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxplus_env.sh b/lxplus_env.sh index a427d23..8d589e8 100644 --- a/lxplus_env.sh +++ b/lxplus_env.sh @@ -1,6 +1,6 @@ -source activate deepjetLinux3 +conda activate deepjetLinux3 export DEEPJETCORE=`pwd` From 55a5b2b4496b880f507598d827c39325c0c601e8 Mon Sep 17 00:00:00 2001 From: SwapneelM Date: Mon, 4 Mar 2019 10:13:39 +0100 Subject: [PATCH 024/437] Update gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 3ff8339..b9172fd 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,5 @@ __pycache__ *.json .DS_Store #*.*# +build/ +*.egg From 68a4806b75c7843a95ab9b0faf84bc4610189df5 Mon Sep 17 00:00:00 2001 From: SwapneelM Date: Tue, 5 Mar 2019 10:08:32 +0100 Subject: [PATCH 025/437] Ignore egg files --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b9172fd..ef11b78 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,4 @@ __pycache__ .DS_Store #*.*# build/ -*.egg +*.egg-info/ From 377d46113a801452497df84637d9383b95407c09 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 8 Mar 2019 14:23:39 +0100 Subject: [PATCH 026/437] Update DataCollection.py added file list shuffle for training --- DataCollection.py | 1 + 1 file changed, 1 insertion(+) diff --git a/DataCollection.py b/DataCollection.py index 7d24a0f..3294bb0 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -839,6 +839,7 @@ def __increment(self,counter,maxval): counter+=1 if counter>=maxval: counter=0 + self.filelist = shuffle(self.filelist) return counter def __del__(self): From bcf004fe06ea22b89f21b20ec8704d1d7a0332da Mon Sep 17 00:00:00 2001 From: mauro verzetti Date: Thu, 21 Mar 2019 14:50:06 +0100 Subject: [PATCH 027/437] do not source the environment if some is already there --- gpu_env.sh | 7 +++++-- lxplus_env.sh | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gpu_env.sh b/gpu_env.sh index 37fdeb8..3dcda88 100644 --- a/gpu_env.sh +++ b/gpu_env.sh @@ -1,6 +1,9 @@ - -source activate deepjetLinux3_gpu +#activate deepjetLinux3_gpu if no other conda env is already active +if [ -z "$CONDA_PREFIX" ] +then + source activate deepjetLinux3_gpu +fi export DEEPJETCORE=`pwd` diff --git a/lxplus_env.sh b/lxplus_env.sh index a427d23..d050c00 100644 --- a/lxplus_env.sh +++ b/lxplus_env.sh @@ -1,6 +1,9 @@ - -source activate deepjetLinux3 +#activate deepjetLinux3_gpu if no other conda env is already active +if [ -z "$CONDA_PREFIX" ] +then + source activate deepjetLinux3 +fi export DEEPJETCORE=`pwd` From 4823c4f725d24ec2e375550b2676bf06b4bfcd1d Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 26 Apr 2019 14:03:30 +0200 Subject: [PATCH 028/437] fix for new conda version - stil using source instead of conda --- lxplus_env.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lxplus_env.sh b/lxplus_env.sh index fc98010..edd51d7 100644 --- a/lxplus_env.sh +++ b/lxplus_env.sh @@ -1,7 +1,8 @@ #activate deepjetLinux3_gpu if no other conda env is already active if [ -z "$CONDA_PREFIX" ] then - source activate deepjetLinux3 + source deactivate + source activate deepjetLinux3 fi export DEEPJETCORE=`pwd` From 9c582e62ae8bdf076f33cf9d2aa7fb9b63568d20 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 26 Apr 2019 14:04:26 +0200 Subject: [PATCH 029/437] fixing the fix --- lxplus_env.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lxplus_env.sh b/lxplus_env.sh index edd51d7..3ae4dd3 100644 --- a/lxplus_env.sh +++ b/lxplus_env.sh @@ -1,9 +1,8 @@ -#activate deepjetLinux3_gpu if no other conda env is already active -if [ -z "$CONDA_PREFIX" ] -then + + + source deactivate source activate deepjetLinux3 -fi export DEEPJETCORE=`pwd` From aa86b3e1289524b60707361ec9a291d0252e525e Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 26 Apr 2019 15:09:31 +0200 Subject: [PATCH 030/437] updated also gpu one --- bin/createSubpackage.py | 3 ++- gpu_env.sh | 4 ---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 17de577..76401d5 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -45,6 +45,7 @@ mkdir -p {subpackage_dir}/modules/datastructures mkdir -p {subpackage_dir}/scripts mkdir -p {subpackage_dir}/Train +mkdir -p {subpackage_dir}/example_data '''.format(subpackage_dir=subpackage_dir) datastructure_template=''' @@ -57,7 +58,7 @@ def __init__(self): self.treename="tree" #input root tree name - self.truthclasses=[] #truth classes for classification + self.truthclasses=[''] #truth classes for classification self.weightbranchX='branchx' #needs to be specified self.weightbranchY='branchy' #needs to be specified diff --git a/gpu_env.sh b/gpu_env.sh index 3dcda88..9195e33 100644 --- a/gpu_env.sh +++ b/gpu_env.sh @@ -1,9 +1,5 @@ -#activate deepjetLinux3_gpu if no other conda env is already active -if [ -z "$CONDA_PREFIX" ] -then source activate deepjetLinux3_gpu -fi export DEEPJETCORE=`pwd` From e72ce370004eb56ad2e0ead9de751e4ffe280a10 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Tue, 30 Apr 2019 17:15:24 +0200 Subject: [PATCH 031/437] example subpackage generic 2d/3d arrays readers --- README.md | 9 +- TrainData.py | 10 + bin/.gitignore | 1 + bin/createSubpackage.py | 109 ++++++++--- compiled/.gitignore | 4 + compiled/Makefile | 22 ++- compiled/interface/helper.h | 5 + compiled/src/LinkDef.h | 19 ++ compiled/src/c_arrayReads.C | 127 +++++++++++++ compiled/src/helper.cpp | 16 ++ compiled/to_bin/make_example_data.cpp | 251 ++++++++++++++++++++++++++ environment/djcenv.conda | 57 ++++++ environment/djcenv.pip | 15 ++ preprocessing/preprocessing.py | 23 ++- 14 files changed, 639 insertions(+), 29 deletions(-) create mode 100644 bin/.gitignore create mode 100644 compiled/src/LinkDef.h create mode 100644 compiled/src/c_arrayReads.C create mode 100644 compiled/to_bin/make_example_data.cpp create mode 100644 environment/djcenv.conda create mode 100644 environment/djcenv.pip diff --git a/README.md b/README.md index fb25d69..f96402c 100644 --- a/README.md +++ b/README.md @@ -63,4 +63,11 @@ The environment is set up. Usage ========== -For a practical example application of the DeepJetCore package, please refer to https://github.com/DL4Jets/DeepJet +DeepJetCore is only a set of tools and wrappers and does not provide ready-to-use training code. +However, an example package containing more specific code examples (referred to as 'subpackage' in the following) can be created once everything is compiled using the script ``createSubpackage.py``. +This subpackage will include an example dataset which gets generated on the fly (size about 150 MB). +More instructions are printed by the script creating the subpackage. +This subpackage can serve as a reference for own projects. + + + diff --git a/TrainData.py b/TrainData.py index 20c8462..4aff0b0 100644 --- a/TrainData.py +++ b/TrainData.py @@ -645,6 +645,16 @@ def readTreeFromRootToTuple(self, filenames, limit=None, branches=None): nparray = tree2array(tree, stop=limit, branches=usebranches) return nparray + def read_truthclasses(self,filename): + npy_array = self.readTreeFromRootToTuple(filename) + arl=[] + for c in self.truthclasses: + a = numpy.asarray(npy_array[c]) + a = a.reshape((a.shape[0],1)) + arl.append(a) + + return numpy.concatenate(arl,axis=-1) + def make_means(self, nparray): from preprocessing import meanNormProd return meanNormProd(nparray) diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..3fc465f --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +make_example_data diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 76401d5..84f6eeb 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -10,6 +10,8 @@ parser.add_argument("subpackage_name", help="name of the subpackage") parser.add_argument("subpackage_parent_dir", help="parent directory of the subpackage (must be same as DeepJetCore)") +parser.add_argument("--nodata", help="do NOT create example data", default=False, action="store_true") + args=parser.parse_args() deepjetcore = os.getenv('DEEPJETCORE') @@ -49,23 +51,25 @@ '''.format(subpackage_dir=subpackage_dir) datastructure_template=''' -from DeepJetCore.TrainData import TrainData + +from DeepJetCore.TrainData import TrainData, fileTimeOut import numpy -class TrainData_template(TrainData): +class TrainData_example(TrainData): def __init__(self): TrainData.__init__(self) self.treename="tree" #input root tree name - self.truthclasses=[''] #truth classes for classification + self.truthclasses=['isA','isB','isC'] #truth classes for classification - self.weightbranchX='branchx' #needs to be specified - self.weightbranchY='branchy' #needs to be specified + self.weightbranchX='isA' #needs to be specified + self.weightbranchY='isB' #needs to be specified + #does not do anything in this configuration self.referenceclass='flatten' - self.weight_binX = numpy.array([0,-40000,40000],dtype=float) - self.weight_binY = numpy.array([-40000,40000],dtype=float) + self.weight_binX = numpy.array([0,40000],dtype=float) + self.weight_binY = numpy.array([0,40000],dtype=float) self.registerBranches(['']) #list of branches to be used @@ -82,36 +86,56 @@ def readFromRootFile(self,filename,TupleMeanStd, weighter): # this function defines how to convert the root ntuple to the training format # options are not yet described here + import ROOT + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get("tree") + self.nsamples=tree.GetEntries() + + + # user code, example works with the example 2D images in root format generated by make_example_data + from DeepJetCore.preprocessing import read2DArray + print(filename) + feature_array = read2DArray(filename,"tree","image2d",self.nsamples,32,32) + - # user code - feature_array = function_to_create_the_array(filename) + truth = self.read_truthclasses(filename) - notremoves=weighter.createNotRemoveIndices(Tuple) + #notremoves=weighter.createNotRemoveIndices(Tuple) # this removes parts of the dataset for weighting the events - feature_array = feature_array[notremoves > 0] + #feature_array = feature_array[notremoves > 0] # call this in the end self.nsamples=len(feature_array) - self.x=[] # list of feature numpy arrays - self.y=[] # list of target numpy arrays (truth) - self.w=[] # list of weight arrays. One for each truth target + self.x=[feature_array] # list of feature numpy arrays + self.y=[truth] # list of target numpy arrays (truth) + self.w=[] # list of weight arrays. One for each truth target, not used + ''' training_template=''' + from DeepJetCore.training.training_base import training_base import keras from keras.models import Model -from keras.layers import Dense #etc +from keras.layers import Dense, Conv2D, Flatten #etc def my_model(Inputs,nclasses,nregressions,otheroption): - input_a = Inputs[0] #this is the self.x list from the TrainData data structure - x = Dense(2)(input_a) + x = Inputs[0] #this is the self.x list from the TrainData data structure + x = Conv2D(8,(4,4),activation='relu', padding='same')(x) + x = Conv2D(8,(4,4),activation='relu', padding='same')(x) + x = Conv2D(8,(4,4),activation='relu', padding='same')(x) + x = Conv2D(8,(4,4),strides=(2,2),activation='relu', padding='valid')(x) + x = Conv2D(4,(4,4),strides=(2,2),activation='relu', padding='valid')(x) + x = Flatten()(x) + x = Dense(32)(x) + x = Dense(nclasses)(x) predictions = [x] return Model(inputs=Inputs, outputs=predictions) @@ -123,15 +147,43 @@ def my_model(Inputs,nclasses,nregressions,otheroption): train.setModel(my_model,otheroption=1) - train.compileModel(learningrate=0.01, - loss='mean_squared_error') + train.compileModel(learningrate=0.003, + loss='categorical_crossentropy') +print(train.keras_model.summary()) + model,history = train.trainModel(nepochs=10, - batchsize=100, + batchsize=500, checkperiod=1, # saves a checkpoint model every N epochs verbose=1) + + +''' + +datastructures_init = ''' +#Make it look like a package +from glob import glob +from os import environ +from os.path import basename, dirname +from pdb import set_trace + +#gather all the files here +modules = [basename(i.replace('.py','')) for i in glob('%s/[A-Za-z]*.py' % dirname(__file__))] +__all__ = [] +structure_list=[] +for module_name in modules: + module = __import__(module_name, globals(), locals(), [module_name]) + for model_name in [i for i in dir(module) if 'TrainData' in i]: + + + model = getattr(module, model_name) + globals()[model_name] = model + locals( )[model_name] = model + __all__.append(model_name) + structure_list.append(model_name) + ''' layers_template=''' @@ -156,10 +208,13 @@ def my_model(Inputs,nclasses,nregressions,otheroption): with open(subpackage_dir+'/env.sh','w') as envfile: envfile.write(environment_file) -with open(subpackage_dir+'/modules/datastructures/TrainData_template.py','w') as lfile: +with open(subpackage_dir+'/modules/datastructures/TrainData_example.py','w') as lfile: lfile.write(datastructure_template) -with open(subpackage_dir+'/Train/training_template.py','w') as lfile: +with open(subpackage_dir+'/modules/datastructures/__init__.py','w') as lfile: + lfile.write(datastructures_init) + +with open(subpackage_dir+'/Train/training_example.py','w') as lfile: lfile.write(training_template) with open(subpackage_dir+'/modules/Layers.py','w') as lfile: @@ -168,7 +223,17 @@ def my_model(Inputs,nclasses,nregressions,otheroption): lfile.write(losses_template) with open(subpackage_dir+'/modules/Metrics.py','w') as lfile: lfile.write(metrics_template) + +if args.nodata: + exit() +print('creating example data...') +os.system('cd '+subpackage_dir+'/example_data; make_example_data') + +print('example data can be found in '+subpackage_dir+'/example_data.') +print('Before using the subpackage, please log out, log in again and then source the "env.sh" file in the subpackage directory (not in DeepJetCore).') +print('to convert to example TrainData format use:') +print('convertFromRoot.py -i '+subpackage_dir+'/example_data/files.txt -o -c TrainData_example') diff --git a/compiled/.gitignore b/compiled/.gitignore index ced634c..3f9f8af 100644 --- a/compiled/.gitignore +++ b/compiled/.gitignore @@ -1,3 +1,7 @@ *.so *.o obj/*.o +classdict.cxx +classdict.rootmap +classdict_rdict.pcm + diff --git a/compiled/Makefile b/compiled/Makefile index bd92c03..becb74f 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -24,6 +24,8 @@ CFLAGS= CPP_FILES := $(wildcard src/*.cpp) OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) +BINS := $(patsubst bin/%.cpp, %, $(wildcard bin/*.cpp)) + MODULES := $(wildcard src/*.C) MODULES_OBJ_FILES := $(addprefix ./,$(notdir $(MODULES:.C=.o))) MODULES_SHARED_LIBS := $(addprefix ./,$(notdir $(MODULES:.C=.so))) @@ -34,8 +36,19 @@ ifeq ($(UNAME_S),Darwin) LINUXADD="" endif -all: $(MODULES_SHARED_LIBS) +all: $(MODULES_SHARED_LIBS) make_example_data classdict.so + +classdict.cxx: src/LinkDef.h + rootcling -v4 -f $@ -rmf classdict.rootmap -rml classdict.so $^ + +classdict.so: + g++ -std=c++11 -fPIC -shared -o classdict.so classdict.cxx + +make_example_data: to_bin/make_example_data.cpp libdeepjetcorehelpers.so classdict.cxx + g++ $(CFLAGS) $(LINUXADD) $(ROOTSTUFF) -I./interface $< -o $@ + mv make_example_data ../bin/ + #helpers libquicklz.so: gcc -shared -O2 -fPIC src/quicklz.c -o libquicklz.so @@ -44,8 +57,8 @@ obj/%.o: src/%.cpp g++ $(CFLAGS) $(ROOTSTUFF) -I./interface -O2 -fPIC -c -o $@ $< #pack helpers in lib -libdeepjetcorehelpers.so: $(OBJ_FILES) - g++ -shared $(LINUXADD) $(ROOTSTUFF) obj/*.o -o $@ +libdeepjetcorehelpers.so: $(OBJ_FILES) + g++ -shared $(LINUXADD) -fPIC $(ROOTSTUFF) obj/*.o -o $@ %.so: %.o libdeepjetcorehelpers.so libquicklz.so g++ -shared $(LINUXADD) $(ROOTSTUFF) -lquicklz -L./ -ldeepjetcorehelpers -L$(BOOST_LIB) -lboost_python -L$(PYTHON_LIB) -lpython2.7 $< -o $(@) @@ -55,5 +68,6 @@ libdeepjetcorehelpers.so: $(OBJ_FILES) g++ $(ROOTSTUFF) -O2 -I./interface -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -fPIC -c -o $(@) $< + clean: - rm -f $(OBJ_FILES) $(SHARED_LIBS) $(MODULES_SHARED_LIBS) $(MODULES_OBJ_FILES) libdeepjetcorehelpers.so libquicklz.so \ No newline at end of file + rm -f $(OBJ_FILES) $(SHARED_LIBS) $(MODULES_SHARED_LIBS) $(MODULES_OBJ_FILES) libdeepjetcorehelpers.so libquicklz.so classdict.so \ No newline at end of file diff --git a/compiled/interface/helper.h b/compiled/interface/helper.h index 4175d9c..fb2d29b 100644 --- a/compiled/interface/helper.h +++ b/compiled/interface/helper.h @@ -12,6 +12,8 @@ #include #include #include "TString.h" +#include "TObject.h" +#include "TString.h" TString prependXRootD(const TString& path); @@ -19,4 +21,7 @@ bool isApprox(const float& a , const float& b, float eps=0.001); float deltaPhi(const float& phi1, const float& phi2); +void checkTObject(const TObject * o, TString msg); + + #endif /* DEEPJET_MODULES_INTERFACE_HELPER_H_ */ diff --git a/compiled/src/LinkDef.h b/compiled/src/LinkDef.h new file mode 100644 index 0000000..98fd97f --- /dev/null +++ b/compiled/src/LinkDef.h @@ -0,0 +1,19 @@ +/* + * classes.h + * + * Created on: 30 Apr 2019 + * Author: jkiesele + */ + +#ifndef BIN_LINKDEF_H_ +#define BIN_LINKDEF_H_ + +#ifdef __ROOTCLING__ +#include + +#pragma link C++ class std::vector +; +#pragma link C++ class std::vector > +; + +#endif + +#endif /* BIN_LINKDEF_H_ */ diff --git a/compiled/src/c_arrayReads.C b/compiled/src/c_arrayReads.C new file mode 100644 index 0000000..ecf6a88 --- /dev/null +++ b/compiled/src/c_arrayReads.C @@ -0,0 +1,127 @@ + +#define BOOST_PYTHON_MAX_ARITY 20 +#include +#include "boost/python/extract.hpp" +#include "boost/python/numeric.hpp" +#include "boost/python/list.hpp" +#include "boost/python/str.hpp" +//#include "boost/filesystem.hpp" +#include +#include +#include "TString.h" +#include +#include +#include "TFile.h" +#include "TTree.h" +#include +#include +#include "TStopwatch.h" +#include "../interface/indata.h" +#include "../interface/pythonToSTL.h" +#include "../interface/helper.h" +#include + + +using namespace boost::python; //for some reason.... + + + +void read2DArray(boost::python::numeric::array numpyarray, + std::string filename_std, + std::string treename_std, + std::string branchname_std) { + + + TFile * tfile = new TFile(filename_std.data(),"READ"); + checkTObject(tfile,"read2DArray: input file problem"); + + TTree* tree=(TTree*)tfile->Get(treename_std.data()); + checkTObject(tree,"read2DArray: input tree problem"); + + + int nentries = (int) boost::python::len(numpyarray); + int nx=0; + if(nentries) + nx = (int) boost::python::len(numpyarray[0]); + int ny=0; + if(nx) + ny = (int) boost::python::len(numpyarray[0][0]); + + if(!nentries || nentries != tree->GetEntries()) + throw std::runtime_error("read2DArray: tree/array entries don't match"); + + + std::vector > *inarr = 0; + tree->SetBranchAddress(branchname_std.data(),&inarr); + + tree->GetEntry(0); + + if(nx!=(int)inarr->size() || ny!=(int)inarr->at(0).size()) + throw std::runtime_error("read2DArray: tree/array dimensions don't match"); + + for(int e=0;eGetEntry(e); + for(size_t x=0;xsize();x++) + for(size_t y=0;yat(x).size();y++) + numpyarray[e][x][y][0] = inarr->at(x)[y]; + } + tfile->Close(); + delete tfile; +} + + +void read3DArray(boost::python::numeric::array numpyarray, + std::string filename_std, + std::string treename_std, + std::string branchname_std) { + + + TFile * tfile = new TFile(filename_std.data(),"READ"); + checkTObject(tfile,"read2DArray: input file problem"); + + TTree* tree=(TTree*)tfile->Get(treename_std.data()); + checkTObject(tree,"read2DArray: input tree problem"); + + + int nentries = (int) boost::python::len(numpyarray); + int nx=0; + if(nentries) + nx = (int) boost::python::len(numpyarray[0]); + int ny=0; + if(nx) + ny = (int) boost::python::len(numpyarray[0][0]); + int nz=0; + if(ny) + nz = (int) boost::python::len(numpyarray[0][0][0]); + + if(!nentries || nentries != tree->GetEntries()) + throw std::runtime_error("read3DArray: tree/array entries don't match"); + + + std::vector > > * inarr = 0; + tree->SetBranchAddress(branchname_std.data(),&inarr); + + tree->GetEntry(0); + + if(nx!=(int)inarr->size() || ny!=(int)inarr->at(0).size()) + throw std::runtime_error("read3DArray: tree/array dimensions don't match"); + + for(int e=0;eGetEntry(e); + for(size_t x=0;xsize();x++) + for(size_t y=0;yat(x).size();y++) + for(size_t z=0;zat(x)[y].size();z++) + numpyarray[e][x][y][z][0] = inarr->at(x)[y][z]; + } + tfile->Close(); + delete tfile; +} + + +// Expose classes and methods to Python +BOOST_PYTHON_MODULE(c_arrayReads) { + boost::python::numeric::array::set_module_and_type("numpy", "ndarray"); + def("read2DArray", &read2DArray); + def("read3DArray", &read3DArray); +} + diff --git a/compiled/src/helper.cpp b/compiled/src/helper.cpp index d394096..8d99d23 100644 --- a/compiled/src/helper.cpp +++ b/compiled/src/helper.cpp @@ -7,6 +7,7 @@ #include "../interface/helper.h" +#include TString prependXRootD(const TString& path){ @@ -32,3 +33,18 @@ float deltaPhi(const float& a, const float& b){ while (delta < -pi) delta+= 2* pi; return delta; } + + + +void checkTObject(const TObject* o, TString msg){ + TString mesg = msg; + mesg += ": " ; + const char * name = o->GetName(); + mesg += (TString)name; + if(!o || o->IsZombie()){ + throw std::runtime_error(mesg.Data()); + } + + + +} diff --git a/compiled/to_bin/make_example_data.cpp b/compiled/to_bin/make_example_data.cpp new file mode 100644 index 0000000..32a3553 --- /dev/null +++ b/compiled/to_bin/make_example_data.cpp @@ -0,0 +1,251 @@ +/* + * make_example_data.cpp + * + * Created on: 30 Apr 2019 + * Author: jkiesele + */ + +#include "TRandom3.h" +#include "TFile.h" +#include +#include "TTree.h" +#include "math.h" +#include +#include + + + +class dataGenerator{ +public: + + + dataGenerator():size_(32),type_(0),rand_(new TRandom3(123)){setSize(size_);} + ~dataGenerator(){delete rand_;} + + void gen(); + + void setSize(int s){ + size_=s; + image_.resize(size_,std::vector(size_)); + + xcoords_.clear(); + ycoords_.clear(); + for(float x=0;x<(float)size_;x++){ + for(float y=0;y<(float)size_;y++){ + ycoords_.push_back(y); + xcoords_.push_back(x); + } + } + + } + int getSize()const{return size_;} + + void setType(int t){ + type_=t; + } + + const std::vector& getXCoords()const{return xcoords_;} + const std::vector& getYCoords()const{return ycoords_;} + + const std::vector > & getImage()const{return image_;} + + std::vector getImageSeq()const; + //not protected + std::vector > addImage(const std::vector >&, const std::vector >&); + + std::vector addImage(const std::vector&, const std::vector&); + + +private: + + std::vector > makeImage(float xc, float yc, float xw, float yw)const; + + + std::vector > image_; + std::vector xcoords_,ycoords_; + int size_; + int type_; + TRandom3 * rand_; + +}; + + +int main(){ + + dataGenerator gen; + + std::ofstream outtxtfile("files.txt"); + + + for(int i=0;i<10;i++){ + TString fname="out_"; + fname+=i; + fname+=".root"; + + outtxtfile << fname << std::endl; + + TFile f(fname,"RECREATE"); + TTree * t = new TTree("tree","tree"); + + std::vector imagetot; + std::vector * imagetotp = &imagetot; + t->Branch("image",&imagetotp); + std::vector > imagetot2d; + std::vector > * imagetot2dp = &imagetot2d; + t->Branch("image2d",&imagetot2dp); + std::vector xcoords; + std::vector * xcoordsp = &xcoords; + t->Branch("xcoords",&xcoordsp); + std::vector ycoords; + std::vector * ycoordsp = &ycoords; + t->Branch("ycoords",&ycoords); + int size; + t->Branch("size",&size); + int isA,isB,isC; + t->Branch("isA",&isA); + t->Branch("isB",&isB); + t->Branch("isC",&isC); + size = gen.getSize(); + + xcoords = gen.getXCoords(); + ycoords = gen.getYCoords(); + + + int type=0; + + for(size_t e=0;e<2000;e++){ + gen.setType(type); + if(type==0){ + isA=1;isB=0;isC=0; + } + else if(type==1){ + isA=0;isB=1;isC=0; + } + else if(type==2){ + isA=0;isB=0;isC=1; + } + + type++; + if(type>2) + type=0; + + + gen.gen(); + auto s = gen.getImageSeq(); + auto s2d = gen.getImage(); + gen.setType(3); + gen.gen(); + auto bg = gen.getImageSeq(); + auto bg2d = gen.getImage(); + + imagetot = gen.addImage(s,bg); + + imagetot2d = gen.addImage(s2d,bg2d); + + t ->Fill(); + } + t->Write(); + f.Close(); + //delete t; + } + + outtxtfile.close(); +} + + + + + +void dataGenerator::gen(){ + + float xlow=0.45; + float xhi = 0.55; + float ylow = 0.45; + float yhi = 0.55; + float xw = 0.25*rand_->Uniform(0.95,1.05); + float yw = 0.25*rand_->Uniform(0.95,1.05); + //class 0 + + if(type_==1){ //class 1 + xw = rand_->Uniform(0.1,0.2); + yw = 0.5*xw*rand_->Uniform(0.95,1.05); + + } + else if(type_==2){ //class 1 + yw = rand_->Uniform(0.1,0.3); + xw = 1.8*yw*rand_->Uniform(0.95,1.05); + + } + else if(type_>2){ + xlow=-5; + xhi = 5; + ylow = -5; + yhi = 5; + xw = rand_->Uniform(3,10); + yw = rand_->Uniform(2,15); + } + + float xc = rand_->Uniform(xlow,xhi); + float yc = rand_->Uniform(ylow,yhi); + + + image_ = makeImage(xc,yc,xw,yw); + +} + + +std::vector > dataGenerator::makeImage(float xc, float yc, float xw, float yw)const{ + + //to 'size' coordinates + xc = (float)size_ * xc; + yc = (float)size_ * yc; + xw = (float)size_ * xw; + yw = (float)size_ * yw; + + std::vector > out=image_; + + for(size_t x=0;x > dataGenerator::addImage(const std::vector >& a, const std::vector >& b){ + auto out = a; + + for(size_t i=0;i dataGenerator::addImage(const std::vector& a, const std::vector & b){ + auto out = a; + + for(size_t i=0;i dataGenerator::getImageSeq()const{ + std::vector out; + for(const auto& x:image_) + for(const auto& y:x) + out.push_back(y); + return out; +} + + + + + + diff --git a/environment/djcenv.conda b/environment/djcenv.conda new file mode 100644 index 0000000..260dfd7 --- /dev/null +++ b/environment/djcenv.conda @@ -0,0 +1,57 @@ +# This file may be used to create an environment using: +# $ conda create --name --file +# platform: linux-64 +@EXPLICIT +https://repo.continuum.io/pkgs/free/linux-64/boost-1.61.0-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/cloog-0.18.0-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/dbus-1.10.10-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/expat-2.1.0-0.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/fftw-3.3.4-2.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/fontconfig-2.12.1-3.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/freetype-2.5.5-2.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/gcc-4.8.2-25.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/glib-2.43.0-1.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/glibc-2.12.2-3.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/gmp-5.1.2-3.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/graphviz-2.38.0-4.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/gsl-1.16-2.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/gst-plugins-base-1.8.0-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/gstreamer-1.8.0-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/hdf5-1.8.17-1.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/icu-54.1-0.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/isl-0.12.2-2.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/jbig-2.1-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/jpeg-9b-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libffi-3.2.1-1.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libgcc-5.2.0-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libgfortran-3.0.0-1.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libiconv-1.14-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libpng-1.6.27-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libtiff-4.0.6-3.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libxcb-1.12-1.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libxml2-2.9.4-0.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/linux-headers-2.6.32-1.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/mkl-2017.0.1-0.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/mpc-1.0.1-2.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/mpfr-3.1.2-2.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/numexpr-2.6.2-np113py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/numpy-1.13.1-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/openssl-1.0.1k-1.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/pcre-8.37-5.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/pip-9.0.1-py27_1.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/pytables-3.3.0-np113py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/python-2.7.5-3.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/qt-5.6.2-3.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/readline-6.2-2.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/root-6.04-py2.7_gcc4.8.2.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/root-numpy-4.4.0-root6.04_py2.7.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/scikit-learn-0.18.2-np113py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/scipy-0.19.1-np113py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/setuptools-27.2.0-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/six-1.10.0-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/sqlite-3.13.0-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/system-5.8-2.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/tk-8.5.18-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/wheel-0.29.0-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/xz-5.2.2-1.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/zlib-1.2.8-3.tar.bz2 diff --git a/environment/djcenv.pip b/environment/djcenv.pip new file mode 100644 index 0000000..3aa84a2 --- /dev/null +++ b/environment/djcenv.pip @@ -0,0 +1,15 @@ +cycler==0.10.0 +funcsigs==1.0.2 +functools32==3.2.3.post2 +h5py==2.6.0 +tensorflow==1.0.1 +Keras==2.0.0 +matplotlib==2.0.0 +mock==2.0.0 +pbr==2.0.0 +protobuf==3.2.0 +pyparsing==2.2.0 +python-dateutil==2.6.0 +pytz==2016.10 +PyYAML==3.12 +subprocess32==3.2.7 diff --git a/preprocessing/preprocessing.py b/preprocessing/preprocessing.py index 56fc0de..d111fa7 100644 --- a/preprocessing/preprocessing.py +++ b/preprocessing/preprocessing.py @@ -541,5 +541,24 @@ def MeanNormZeroPad(Filename_in,MeanNormTuple,inbranches_listlist,nMaxslist,neve #print(array) return array - - +def read2DArray(filename, treename, branchname, nevents, xsize, ysize): + from DeepJetCore.compiled import c_arrayReads + + array = numpy.zeros((nevents,xsize, ysize,1) , dtype='float32') + + c_arrayReads.read2DArray(array,filename, treename, branchname) + + return array + + + + +def read3DArray(filename, treename, branchname, nevents, xsize, ysize, zsize): + from DeepJetCore.compiled import c_arrayReads + + array = numpy.zeros((nevents,xsize, ysize,zsize,1) , dtype='float32') + + c_arrayReads.read3DArray(array,filename, treename, branchname) + + return array + From a5482c58570839a97ce4389f03852e3774fde13d Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 1 May 2019 08:49:04 +0200 Subject: [PATCH 032/437] dev snapshot --- bin/createSubpackage.py | 23 ++++++----- compiled/to_bin/make_example_data.cpp | 57 +++++++++++++++++++++++---- 2 files changed, 61 insertions(+), 19 deletions(-) diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 84f6eeb..689d42a 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -63,9 +63,11 @@ def __init__(self): self.truthclasses=['isA','isB','isC'] #truth classes for classification - self.weightbranchX='isA' #needs to be specified - self.weightbranchY='isB' #needs to be specified + self.weightbranchX='isA' #needs to be specified if weighter is used + self.weightbranchY='isB' #needs to be specified if weighter is used + #there is no need to resample/reweight + self.weight=False #does not do anything in this configuration self.referenceclass='flatten' self.weight_binX = numpy.array([0,40000],dtype=float) @@ -226,21 +228,18 @@ def my_model(Inputs,nclasses,nregressions,otheroption): if args.nodata: exit() -print('creating example data...') -os.system('cd '+subpackage_dir+'/example_data; make_example_data') +print('creating example data... (10 training files, 1 test file, 1000 events each)') +os.system('cd '+subpackage_dir+'/example_data; make_example_data 1000 10 1') print('example data can be found in '+subpackage_dir+'/example_data.') print('Before using the subpackage, please log out, log in again and then source the "env.sh" file in the subpackage directory (not in DeepJetCore).') print('to convert to example TrainData format use:') -print('convertFromRoot.py -i '+subpackage_dir+'/example_data/files.txt -o -c TrainData_example') - - - - - - - +print('convertFromRoot.py -i '+subpackage_dir+'/example_data/train_files.txt -o -c TrainData_example') +print('to convert the test data use:') +print('convertFromRoot.py -i '+subpackage_dir+'/example_data/test_files.txt -o --testdatafor /dataCollection.dc ') +print('\nAn example to run the training can be found in '+subpackage_dir+'/Train/training_example.py') +print('It can be run with: \npython '+subpackage_dir+'/Train/training_example.py /dataCollection.dc ') diff --git a/compiled/to_bin/make_example_data.cpp b/compiled/to_bin/make_example_data.cpp index 32a3553..fc5e84e 100644 --- a/compiled/to_bin/make_example_data.cpp +++ b/compiled/to_bin/make_example_data.cpp @@ -53,6 +53,8 @@ class dataGenerator{ //not protected std::vector > addImage(const std::vector >&, const std::vector >&); + std::vector > divideImage(const std::vector >&, const std::vector >&); + std::vector addImage(const std::vector&, const std::vector&); @@ -70,19 +72,34 @@ class dataGenerator{ }; -int main(){ +int main(int argc, char* argv[]){ + int nevents=500; + int nfiles=10; + int ntest=1; + + if(argc>1) + nevents=atoi(argv[1]); + if(argc>2) + nfiles=atoi(argv[2]); + if(argc>3) + ntest=atoi(argv[3]); + dataGenerator gen; - std::ofstream outtxtfile("files.txt"); + std::ofstream outtxtfile("train_files.txt"); + std::ofstream testouttxtfile("test_files.txt"); - for(int i=0;i<10;i++){ + for(int i=0;i imagetot; std::vector * imagetotp = &imagetot; t->Branch("image",&imagetotp); + std::vector > imagetot2d; std::vector > * imagetot2dp = &imagetot2d; t->Branch("image2d",&imagetot2dp); + + std::vector > sigfrac2d; + std::vector > * sigfrac2dp = &sigfrac2d; + t->Branch("sigfrac2d",&sigfrac2dp); + std::vector xcoords; std::vector * xcoordsp = &xcoords; t->Branch("xcoords",&xcoordsp); + std::vector ycoords; std::vector * ycoordsp = &ycoords; t->Branch("ycoords",&ycoords); + + float sigsum=0; + t->Branch("sigsum",&sigsum); + int size; t->Branch("size",&size); int isA,isB,isC; @@ -113,7 +141,7 @@ int main(){ int type=0; - for(size_t e=0;e<2000;e++){ + for(size_t e=0;e<(size_t)nevents;e++){ gen.setType(type); if(type==0){ isA=1;isB=0;isC=0; @@ -132,6 +160,10 @@ int main(){ gen.gen(); auto s = gen.getImageSeq(); + sigsum=0; + for(const auto& sc:s) + sigsum+=sc; + auto s2d = gen.getImage(); gen.setType(3); gen.gen(); @@ -142,6 +174,8 @@ int main(){ imagetot2d = gen.addImage(s2d,bg2d); + sigfrac2d = gen.divideImage(s2d,imagetot2d); + t ->Fill(); } t->Write(); @@ -181,8 +215,8 @@ void dataGenerator::gen(){ xhi = 5; ylow = -5; yhi = 5; - xw = rand_->Uniform(3,10); - yw = rand_->Uniform(2,15); + xw = rand_->Uniform(3,4); + yw = rand_->Uniform(2,4); } float xc = rand_->Uniform(xlow,xhi); @@ -235,6 +269,15 @@ std::vector dataGenerator::addImage(const std::vector& a, const s } +std::vector > dataGenerator::divideImage(const std::vector >& a, const std::vector >& b){ + auto out = a; + for(size_t i=0;i dataGenerator::getImageSeq()const{ std::vector out; From c973e66d2eb16876dc4c210e8bf2c93a9b100885 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 1 May 2019 16:17:16 +0200 Subject: [PATCH 033/437] more helpers. also list read --- bin/createSubpackage.py | 93 +++++++++++++++++++++++++++++++++- compiled/Makefile | 4 +- preprocessing/preprocessing.py | 12 +++-- training/training_base.py | 4 +- 4 files changed, 106 insertions(+), 7 deletions(-) diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 689d42a..56ddff4 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -52,6 +52,8 @@ datastructure_template=''' + + from DeepJetCore.TrainData import TrainData, fileTimeOut import numpy @@ -68,6 +70,7 @@ def __init__(self): #there is no need to resample/reweight self.weight=False + self.remove=False #does not do anything in this configuration self.referenceclass='flatten' self.weight_binX = numpy.array([0,40000],dtype=float) @@ -117,11 +120,76 @@ def readFromRootFile(self,filename,TupleMeanStd, weighter): self.w=[] # list of weight arrays. One for each truth target, not used + +class TrainData_example_reg(TrainData): + def __init__(self): + TrainData.__init__(self) + + self.treename="tree" #input root tree name + + self.truthclasses=['isA','isB','isC'] #truth classes for classification + + self.weightbranchX='isA' #needs to be specified if weighter is used + self.weightbranchY='isB' #needs to be specified if weighter is used + + #there is no need to resample/reweight + self.weight=False + self.remove=False + #does not do anything in this configuration + self.referenceclass='flatten' + self.weight_binX = numpy.array([0,40000],dtype=float) + self.weight_binY = numpy.array([0,40000],dtype=float) + + + self.registerBranches(['']) #list of branches to be used + + self.registerBranches(self.truthclasses) + + + #call this at the end + self.reduceTruth(None) + + + def readFromRootFile(self,filename,TupleMeanStd, weighter): + + # this function defines how to convert the root ntuple to the training format + # options are not yet described here + + import ROOT + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get("tree") + self.nsamples=tree.GetEntries() + + + # user code, example works with the example 2D images in root format generated by make_example_data + from DeepJetCore.preprocessing import read2DArray + print(filename) + feature_array = read2DArray(filename,"tree","image2d",self.nsamples,32,32) + + npy_array = self.readTreeFromRootToTuple(filename) + reg_truth = npy_array['sigsum'] + + #notremoves=weighter.createNotRemoveIndices(Tuple) + + # this removes parts of the dataset for weighting the events + #feature_array = feature_array[notremoves > 0] + + # call this in the end + + self.nsamples=len(feature_array) + + self.x=[feature_array] # list of feature numpy arrays + self.y=[reg_truth] # list of target numpy arrays (truth) + self.w=[] # list of weight arrays. One for each truth target, not used + + ''' training_template=''' + from DeepJetCore.training.training_base import training_base import keras from keras.models import Model @@ -136,19 +204,40 @@ def my_model(Inputs,nclasses,nregressions,otheroption): x = Conv2D(8,(4,4),strides=(2,2),activation='relu', padding='valid')(x) x = Conv2D(4,(4,4),strides=(2,2),activation='relu', padding='valid')(x) x = Flatten()(x) - x = Dense(32)(x) + x = Dense(32, activation='relu')(x) + x = Dense(nclasses)(x) + + predictions = [x] + return Model(inputs=Inputs, outputs=predictions) + +def my_regression_model(Inputs,nclasses,nregressions,otheroption): + + x = Inputs[0] #this is the self.x list from the TrainData data structure + x = Conv2D(8,(4,4),activation='relu', padding='same')(x) + x = Conv2D(8,(4,4),activation='relu', padding='same')(x) + x = Conv2D(8,(4,4),activation='relu', padding='same')(x) + x = Conv2D(8,(4,4),strides=(2,2),activation='relu', padding='valid')(x) + x = Conv2D(4,(4,4),strides=(2,2),activation='relu', padding='valid')(x) + x = Flatten()(x) + x = Dense(32, activation='relu')(x) + + x = Dense(nregressions, activaton='None')(x) + predictions = [x] return Model(inputs=Inputs, outputs=predictions) + train=training_base(testrun=False,resumeSilently=False,renewtokens=True) if not train.modelSet(): # allows to resume a stopped/killed training. Only sets the model if it cannot be loaded from previous snapshot + #for regression use the regression model train.setModel(my_model,otheroption=1) + #for regression use a different loss, e.g. mean_squared_error train.compileModel(learningrate=0.003, loss='categorical_crossentropy') @@ -162,6 +251,8 @@ def my_model(Inputs,nclasses,nregressions,otheroption): + + ''' datastructures_init = ''' diff --git a/compiled/Makefile b/compiled/Makefile index becb74f..b62823f 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -42,7 +42,7 @@ all: $(MODULES_SHARED_LIBS) make_example_data classdict.so classdict.cxx: src/LinkDef.h rootcling -v4 -f $@ -rmf classdict.rootmap -rml classdict.so $^ -classdict.so: +classdict.so: classdict.cxx g++ -std=c++11 -fPIC -shared -o classdict.so classdict.cxx make_example_data: to_bin/make_example_data.cpp libdeepjetcorehelpers.so classdict.cxx @@ -70,4 +70,4 @@ libdeepjetcorehelpers.so: $(OBJ_FILES) clean: - rm -f $(OBJ_FILES) $(SHARED_LIBS) $(MODULES_SHARED_LIBS) $(MODULES_OBJ_FILES) libdeepjetcorehelpers.so libquicklz.so classdict.so \ No newline at end of file + rm -f $(OBJ_FILES) $(SHARED_LIBS) $(MODULES_SHARED_LIBS) $(MODULES_OBJ_FILES) libdeepjetcorehelpers.so libquicklz.so classdict.so classdict.cxx classdict.rootmap classdict_rdict.pcm \ No newline at end of file diff --git a/preprocessing/preprocessing.py b/preprocessing/preprocessing.py index d111fa7..07654fa 100644 --- a/preprocessing/preprocessing.py +++ b/preprocessing/preprocessing.py @@ -1,9 +1,7 @@ import numpy #import scipy #from scipy.sparse import csc_matrix -""" -author Markus stoye, A collection of tools for data pre-processing in ML for DeepJet. The basic assumption is that Tuple is a recarray where the fiels are the features. -""" + from array import array import logging @@ -550,8 +548,16 @@ def read2DArray(filename, treename, branchname, nevents, xsize, ysize): return array +def readListArray(filename, treename, branchname, nevents, list_size, n_feat_per_element): + from DeepJetCore.compiled import c_arrayReads + array = numpy.zeros((nevents,xsize, ysize,1) , dtype='float32') + c_arrayReads.read2DArray(array,filename, treename, branchname) + + array = numpy.squeeze(array, axis=-1) + + return array def read3DArray(filename, treename, branchname, nevents, xsize, ysize, zsize): from DeepJetCore.compiled import c_arrayReads diff --git a/training/training_base.py b/training/training_base.py index 33577e4..2324ac4 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -340,7 +340,9 @@ def trainModel(self, - + def change_learning_rate(self, new_lr): + import keras.backend as K + K.set_value(self.keras_model.optimizer.lr, new_lr) From 0c21214edba29d6bbae50d64a21fc062bf47408b Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 1 May 2019 17:06:27 +0200 Subject: [PATCH 034/437] new env files, to be validated --- environment/djcenv.conda | 6 ++++++ environment/djcenv.pip | 29 ++++++++++++++++++++++++++--- environment/djcenv_gpu.pip | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 environment/djcenv_gpu.pip diff --git a/environment/djcenv.conda b/environment/djcenv.conda index 260dfd7..82abafd 100644 --- a/environment/djcenv.conda +++ b/environment/djcenv.conda @@ -3,6 +3,8 @@ # platform: linux-64 @EXPLICIT https://repo.continuum.io/pkgs/free/linux-64/boost-1.61.0-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/main/linux-64/ca-certificates-2019.1.23-0.tar.bz2 +https://repo.continuum.io/pkgs/main/linux-64/certifi-2019.3.9-py27_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/cloog-0.18.0-0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/dbus-1.10.10-0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/expat-2.1.0-0.tar.bz2 @@ -22,11 +24,14 @@ https://repo.continuum.io/pkgs/free/linux-64/icu-54.1-0.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/isl-0.12.2-2.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/jbig-2.1-0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/jpeg-9b-0.tar.bz2 +https://repo.continuum.io/pkgs/main/linux-64/libedit-3.1-heed3624_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libffi-3.2.1-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libgcc-5.2.0-0.tar.bz2 +https://repo.continuum.io/pkgs/main/linux-64/libgcc-ng-8.2.0-hdf63c60_1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libgfortran-3.0.0-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libiconv-1.14-0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libpng-1.6.27-0.tar.bz2 +https://repo.continuum.io/pkgs/main/linux-64/libstdcxx-ng-8.2.0-hdf63c60_1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libtiff-4.0.6-3.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libxcb-1.12-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libxml2-2.9.4-0.tar.bz2 @@ -34,6 +39,7 @@ https://conda.anaconda.org/NLeSC/linux-64/linux-headers-2.6.32-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/mkl-2017.0.1-0.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/mpc-1.0.1-2.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/mpfr-3.1.2-2.tar.bz2 +https://repo.continuum.io/pkgs/main/linux-64/ncurses-6.0-h9df7e31_2.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/numexpr-2.6.2-np113py27_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/numpy-1.13.1-py27_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/openssl-1.0.1k-1.tar.bz2 diff --git a/environment/djcenv.pip b/environment/djcenv.pip index 3aa84a2..ff514bb 100644 --- a/environment/djcenv.pip +++ b/environment/djcenv.pip @@ -1,15 +1,38 @@ +absl-py==0.7.1 +astor==0.7.1 +backports.weakref==1.0.post1 +bleach==1.5.0 +certifi==2019.3.9 cycler==0.10.0 +enum34==1.1.6 funcsigs==1.0.2 functools32==3.2.3.post2 +futures==3.2.0 +gast==0.2.2 +grpcio==1.20.1 h5py==2.6.0 -tensorflow==1.0.1 -Keras==2.0.0 +html5lib==0.9999999 +Keras==2.2.4 +Keras-Applications==1.0.7 +Keras-Preprocessing==1.0.9 +Markdown==3.1 matplotlib==2.0.0 mock==2.0.0 +numexpr==2.6.2 +numpy==1.16.3 pbr==2.0.0 -protobuf==3.2.0 +protobuf==3.7.1 pyparsing==2.2.0 python-dateutil==2.6.0 pytz==2016.10 PyYAML==3.12 +root-numpy==4.4.0.dev0 +scikit-learn==0.18.2 +scipy==0.19.1 +six==1.10.0 subprocess32==3.2.7 +tables==3.3.0 +tensorboard==1.8.0 +tensorflow==1.8.0 +termcolor==1.1.0 +Werkzeug==0.15.2 diff --git a/environment/djcenv_gpu.pip b/environment/djcenv_gpu.pip new file mode 100644 index 0000000..068a5e8 --- /dev/null +++ b/environment/djcenv_gpu.pip @@ -0,0 +1,38 @@ +absl-py==0.7.1 +astor==0.7.1 +backports.weakref==1.0.post1 +bleach==1.5.0 +certifi==2019.3.9 +cycler==0.10.0 +enum34==1.1.6 +funcsigs==1.0.2 +functools32==3.2.3.post2 +futures==3.2.0 +gast==0.2.2 +grpcio==1.20.1 +h5py==2.6.0 +html5lib==0.9999999 +Keras==2.2.4 +Keras-Applications==1.0.7 +Keras-Preprocessing==1.0.9 +Markdown==3.1 +matplotlib==2.0.0 +mock==2.0.0 +numexpr==2.6.2 +numpy==1.16.3 +pbr==2.0.0 +protobuf==3.7.1 +pyparsing==2.2.0 +python-dateutil==2.6.0 +pytz==2016.10 +PyYAML==3.12 +root-numpy==4.4.0.dev0 +scikit-learn==0.18.2 +scipy==0.19.1 +six==1.10.0 +subprocess32==3.2.7 +tables==3.3.0 +tensorboard==1.8.0 +tensorflow-gpu==1.8.0 +termcolor==1.1.0 +Werkzeug==0.15.2 From 9ee002940829602049d0eb82b9afec0760f4fe6e Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 1 May 2019 17:23:55 +0200 Subject: [PATCH 035/437] new env --- environment/setup_djcenv.sh | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 environment/setup_djcenv.sh diff --git a/environment/setup_djcenv.sh b/environment/setup_djcenv.sh new file mode 100755 index 0000000..8d7583f --- /dev/null +++ b/environment/setup_djcenv.sh @@ -0,0 +1,42 @@ +#!/bin/bash +if [ ! `which conda` ] +then +echo Please install the anaconda package manager +exit 1 +fi + + +addstring="" + +if [[ $1 == "gpu" ]] +then + echo "setting up for gpu usage" + addstring="_${1}" +fi + + + +envfile=djcenv.conda +envname="${envfile%.*}${addstring}" +pipfile="${envfile%.*}.pip" +pipfile_gpu="${envfile%.*}_gpu.pip" + +conda create --copy --name $envname python=2.7.13 +conda install --name $envname --file $envfile + + +source activate $envname +if [ $addstring ] +then + pip install -r $pipfile_gpu + pip install setGPU +else + pip install -r $pipfile +fi + + +cp activateROOT.sh $CONDA_PREFIX/etc/conda/activate.d/activateROOT.sh + + +echo "environment set up. Please activate it with \"source activate ${envname}\"" + From acfa6397d3f93b725dff1cd87738dc104649d16c Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 1 May 2019 18:52:18 +0200 Subject: [PATCH 036/437] fix --- preprocessing/preprocessing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/preprocessing/preprocessing.py b/preprocessing/preprocessing.py index 07654fa..f513076 100644 --- a/preprocessing/preprocessing.py +++ b/preprocessing/preprocessing.py @@ -551,7 +551,7 @@ def read2DArray(filename, treename, branchname, nevents, xsize, ysize): def readListArray(filename, treename, branchname, nevents, list_size, n_feat_per_element): from DeepJetCore.compiled import c_arrayReads - array = numpy.zeros((nevents,xsize, ysize,1) , dtype='float32') + array = numpy.zeros((nevents,list_size, n_feat_per_element,1) , dtype='float32') c_arrayReads.read2DArray(array,filename, treename, branchname) From c76ce2ab2ae4b5e189e80d3bcc653a050f1760ef Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 1 May 2019 20:57:40 +0200 Subject: [PATCH 037/437] massive package update --- environment/djcenv.conda | 66 ++++++++++++++++++------------------- environment/djcenv_gpu.pip | 2 +- environment/setup_djcenv.sh | 7 ++-- 3 files changed, 38 insertions(+), 37 deletions(-) diff --git a/environment/djcenv.conda b/environment/djcenv.conda index 82abafd..24f9951 100644 --- a/environment/djcenv.conda +++ b/environment/djcenv.conda @@ -2,62 +2,62 @@ # $ conda create --name --file # platform: linux-64 @EXPLICIT -https://repo.continuum.io/pkgs/free/linux-64/boost-1.61.0-py27_0.tar.bz2 https://repo.continuum.io/pkgs/main/linux-64/ca-certificates-2019.1.23-0.tar.bz2 -https://repo.continuum.io/pkgs/main/linux-64/certifi-2019.3.9-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/cloog-0.18.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/dbus-1.10.10-0.tar.bz2 +https://repo.continuum.io/pkgs/main/linux-64/libstdcxx-ng-8.2.0-hdf63c60_1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/expat-2.1.0-0.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/fftw-3.3.4-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/fontconfig-2.12.1-3.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/freetype-2.5.5-2.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/gcc-4.8.2-25.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/glib-2.43.0-1.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/glibc-2.12.2-3.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/gmp-5.1.2-3.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/graphviz-2.38.0-4.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/gsl-1.16-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/gst-plugins-base-1.8.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/gstreamer-1.8.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/hdf5-1.8.17-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/icu-54.1-0.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/isl-0.12.2-2.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/jbig-2.1-0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/jpeg-9b-0.tar.bz2 -https://repo.continuum.io/pkgs/main/linux-64/libedit-3.1-heed3624_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libffi-3.2.1-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libgcc-5.2.0-0.tar.bz2 https://repo.continuum.io/pkgs/main/linux-64/libgcc-ng-8.2.0-hdf63c60_1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libgfortran-3.0.0-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libiconv-1.14-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libpng-1.6.27-0.tar.bz2 -https://repo.continuum.io/pkgs/main/linux-64/libstdcxx-ng-8.2.0-hdf63c60_1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libtiff-4.0.6-3.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libxcb-1.12-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libxml2-2.9.4-0.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/linux-headers-2.6.32-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/mkl-2017.0.1-0.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/mpc-1.0.1-2.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/mpfr-3.1.2-2.tar.bz2 https://repo.continuum.io/pkgs/main/linux-64/ncurses-6.0-h9df7e31_2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/numexpr-2.6.2-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/numpy-1.13.1-py27_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/openssl-1.0.1k-1.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/pcre-8.37-5.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/pip-9.0.1-py27_1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/pytables-3.3.0-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/python-2.7.5-3.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/qt-5.6.2-3.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/readline-6.2-2.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/root-6.04-py2.7_gcc4.8.2.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/root-numpy-4.4.0-root6.04_py2.7.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/scikit-learn-0.18.2-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/scipy-0.19.1-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/setuptools-27.2.0-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/six-1.10.0-py27_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/sqlite-3.13.0-0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/system-5.8-2.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/tk-8.5.18-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/wheel-0.29.0-py27_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/xz-5.2.2-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/zlib-1.2.8-3.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/dbus-1.10.10-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/glib-2.43.0-1.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/hdf5-1.8.17-1.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/isl-0.12.2-2.tar.bz2 +https://repo.continuum.io/pkgs/main/linux-64/libedit-3.1-heed3624_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libpng-1.6.27-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libtiff-4.0.6-3.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libxml2-2.9.4-0.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/mpfr-3.1.2-2.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/python-2.7.5-3.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/boost-1.61.0-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/main/linux-64/certifi-2019.3.9-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/cloog-0.18.0-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/freetype-2.5.5-2.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/gstreamer-1.8.0-0.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/mpc-1.0.1-2.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/numpy-1.13.1-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/six-1.10.0-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/wheel-0.29.0-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/fontconfig-2.12.1-3.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/gcc-4.8.2-25.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/graphviz-2.38.0-4.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/gst-plugins-base-1.8.0-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/numexpr-2.6.2-np113py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/scipy-0.19.1-np113py27_0.tar.bz2 +https://repo.continuum.io/pkgs/main/linux-64/setuptools-41.0.1-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/pip-9.0.1-py27_1.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/pytables-3.3.0-np113py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/qt-5.6.2-3.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/scikit-learn-0.18.2-np113py27_0.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/root-6.04-py2.7_gcc4.8.2.tar.bz2 +https://conda.anaconda.org/NLeSC/linux-64/root-numpy-4.4.0-root6.04_py2.7.tar.bz2 diff --git a/environment/djcenv_gpu.pip b/environment/djcenv_gpu.pip index 068a5e8..57845bb 100644 --- a/environment/djcenv_gpu.pip +++ b/environment/djcenv_gpu.pip @@ -1,3 +1,4 @@ +tensorflow-gpu==1.8.0 absl-py==0.7.1 astor==0.7.1 backports.weakref==1.0.post1 @@ -33,6 +34,5 @@ six==1.10.0 subprocess32==3.2.7 tables==3.3.0 tensorboard==1.8.0 -tensorflow-gpu==1.8.0 termcolor==1.1.0 Werkzeug==0.15.2 diff --git a/environment/setup_djcenv.sh b/environment/setup_djcenv.sh index 8d7583f..ec8d67d 100755 --- a/environment/setup_djcenv.sh +++ b/environment/setup_djcenv.sh @@ -19,16 +19,17 @@ fi envfile=djcenv.conda envname="${envfile%.*}${addstring}" pipfile="${envfile%.*}.pip" -pipfile_gpu="${envfile%.*}_gpu.pip" +pipfilegpu="${envfile%.*}_gpu.pip" + conda create --copy --name $envname python=2.7.13 conda install --name $envname --file $envfile - source activate $envname + if [ $addstring ] then - pip install -r $pipfile_gpu + pip install -r $pipfilegpu pip install setGPU else pip install -r $pipfile From 1c66a1ac7527bc66932363fc9f9ef95a4733df82 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 1 May 2019 21:14:13 +0200 Subject: [PATCH 038/437] new env sourcing. needs to be switched by hand for old subpackges --- bin/createSubpackage.py | 11 ++++------- env.sh | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 env.sh diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 56ddff4..f04e2ec 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -23,15 +23,12 @@ environment_file=''' #! /bin/bash THISDIR=`pwd` +cd {deepjetcore} +source env.sh +cd $THISDIR export {subpackage}=$( cd "$( dirname "${BASH_SOURCE}" )" && pwd -P) export DEEPJETCORE_SUBPACKAGE=${subpackage} -cd {deepjetcore} -if command -v nvidia-smi > /dev/null -then - source gpu_env.sh -else - source lxplus_env.sh -fi + cd ${subpackage} export PYTHONPATH=${subpackage}/modules:$PYTHONPATH export PYTHONPATH=${subpackage}/modules/datastructures:$PYTHONPATH diff --git a/env.sh b/env.sh new file mode 100644 index 0000000..990f2dd --- /dev/null +++ b/env.sh @@ -0,0 +1,16 @@ + + +if command -v nvidia-smi > /dev/null +then + source activate djcenv_gpu +else + source activate djcenv +fi + +export DEEPJETCORE=`pwd` + +export PYTHONPATH=`pwd`/../:$PYTHONPATH +export LD_LIBRARY_PATH=`pwd`/compiled:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/patatrack/cuda-9.1/targets/x86_64-linux/lib/:/data/patatrack/cuda-9.0/targets/x86_64-linux/lib/ +export PATH=`pwd`/bin:$PATH +export LD_PRELOAD=$CONDA_PREFIX/lib/libmkl_core.so:$CONDA_PREFIX/lib/libmkl_sequential.so From 846229430262138e8b030b2c006cdf89b5fb321e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 1 May 2019 21:16:45 +0200 Subject: [PATCH 039/437] Delete README.md --- environment/README.md | 83 ------------------------------------------- 1 file changed, 83 deletions(-) delete mode 100644 environment/README.md diff --git a/environment/README.md b/environment/README.md deleted file mode 100644 index 78a58c6..0000000 --- a/environment/README.md +++ /dev/null @@ -1,83 +0,0 @@ -Help to setup the environment on your machine -============================================= - -On the gpu, only do: - -``` -source gpu_env.sh -``` -If you have installed miniconda on lxplus, you need to remove its directory from your PATH environment! - - -On Lxplus/Mac, you need to install miniconda in your workspace see [1]. - -After that it is sufficient to run (zsh, bash, sh): - -``` -source env.sh (Mac) -source lxplus_env.sh (Lxplus) -``` - -In addition, the compiled modules need to be compiled. -This cannot be done directly on the GPU machines. please compile on lxplus and use the compiled libraries on the GPU -After sourcing the environment scripts, run 'make' in the 'modules' directory. - - - -[1] -The code is tested and run using package management with anaconda or miniconda: -https://www.continuum.io/anaconda-overview -On lxplus, miniconda is recommended, since it needs less disk space! -Please make sure, conda is added to your path (you will be prompted). Answer with "yes" or take care yourself -that the command 'which conda' returns the path of your conda installation before you use the package. - -If you installed anaconda/miniconda, you can use the .conda file to install the version we used. -The setupEnv.sh is a small macro that does the installation and environment definition. -Please call: - - ./setupEnv.sh deepjetLinux3.conda - -if you have GPU access also do: - - ./setupEnv.sh deepjetLinux3.conda gpu - -Each time before running, the environment should be activated and the PYTHONPATH needs to be adapted. -This can be easily done for zsh/bash/sh shells with - -``` -source lxplus_env (lxplus) -source gpu_env (GPU) -``` - -The script needs to be called from this directory - -The first time this package is checked out or if compiled modules changed, please run -``` -make -``` -in the ```modules``` directory on lxplus7 - -If the lxplus installation fails -================================ -(the following should not be necessary anymore, but it is left for reference) - -For unknown reasons the lxplus environment installation may fail with the following error: - -```text -Traceback (most recent call last): - File "/afs/cern.ch/work/m/mverzett/miniconda3/envs/deepjetLinux/bin/pip", line 4, in - import pip -ImportError: No module named 'pip' -``` - -To overcome this you can try to adapt and run the following commands, **they have only been tested to work on lxplus7**: -``` -#remove the env that was created -rm -rf /afs/cern.ch/work//$USER/miniconda3/envs/deepjetLinux3 -conda create --name deepjetLinux3 -source activate deepjetLinux3 -conda install pip -source deactivate deepjetLinux3 -conda install --name deepjetLinux --file deepjetLinux3.conda -pip install -r deepjetLinux3.pip -``` From 27f18883f19d2698eee3a8a3556d3b0d3c49ff50 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 1 May 2019 21:18:32 +0200 Subject: [PATCH 040/437] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f96402c..8402408 100644 --- a/README.md +++ b/README.md @@ -39,9 +39,9 @@ mkdir cd git clone https://github.com/DL4Jets/DeepJetCore cd DeepJetCore/environment -./setupEnv.sh deepjetLinux3.conda +./setup_djcenv.sh #opt: gpu ``` -For enabling gpu support add 'gpu' as an additional option to the last command. +For enabling gpu support add 'gpu' (without quotes) as an additional option to the last command. This will take a while. Please log out and in again once the installation is finised. Compiling DeepJetCore @@ -51,7 +51,7 @@ When the installation was successful, the DeepJetCore tools need to be compiled. ``` cd cd DeepJetCore -source lxplus_env.sh / gpu_env.sh +source env.sh cd compiled make -j4 ``` From 4b424a13a262e5e522cb210a62ce01126cf178e6 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Thu, 2 May 2019 13:14:11 +0200 Subject: [PATCH 041/437] rebinning and checks in --- compiled/src/LinkDef.h | 2 + compiled/src/c_arrayReads.C | 108 +++++++++++++++++++++++++++++---- preprocessing/preprocessing.py | 22 +++++-- 3 files changed, 116 insertions(+), 16 deletions(-) diff --git a/compiled/src/LinkDef.h b/compiled/src/LinkDef.h index 98fd97f..db472e4 100644 --- a/compiled/src/LinkDef.h +++ b/compiled/src/LinkDef.h @@ -13,6 +13,8 @@ #pragma link C++ class std::vector +; #pragma link C++ class std::vector > +; +#pragma link C++ class std::vector > > +; +#pragma link C++ class std::vector > > > +; #endif diff --git a/compiled/src/c_arrayReads.C b/compiled/src/c_arrayReads.C index ecf6a88..e728f78 100644 --- a/compiled/src/c_arrayReads.C +++ b/compiled/src/c_arrayReads.C @@ -29,7 +29,10 @@ using namespace boost::python; //for some reason.... void read2DArray(boost::python::numeric::array numpyarray, std::string filename_std, std::string treename_std, - std::string branchname_std) { + std::string branchname_std, + int rebinx=1, + int rebiny=1 + ) { TFile * tfile = new TFile(filename_std.data(),"READ"); @@ -56,14 +59,18 @@ void read2DArray(boost::python::numeric::array numpyarray, tree->GetEntry(0); - if(nx!=(int)inarr->size() || ny!=(int)inarr->at(0).size()) + if(nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size()) throw std::runtime_error("read2DArray: tree/array dimensions don't match"); for(int e=0;eGetEntry(e); - for(size_t x=0;xsize();x++) - for(size_t y=0;yat(x).size();y++) - numpyarray[e][x][y][0] = inarr->at(x)[y]; + for(size_t x=0;xsize();x++){ + int npx = (int)x/rebinx; + for(size_t y=0;yat(x).size();y++){ + int npy = (int)y/rebiny; + numpyarray[e][npx][npy][0] += inarr->at(x)[y]; + } + } } tfile->Close(); delete tfile; @@ -73,7 +80,10 @@ void read2DArray(boost::python::numeric::array numpyarray, void read3DArray(boost::python::numeric::array numpyarray, std::string filename_std, std::string treename_std, - std::string branchname_std) { + std::string branchname_std, + int rebinx=1, + int rebiny=1, + int rebinz=1) { TFile * tfile = new TFile(filename_std.data(),"READ"); @@ -103,15 +113,90 @@ void read3DArray(boost::python::numeric::array numpyarray, tree->GetEntry(0); - if(nx!=(int)inarr->size() || ny!=(int)inarr->at(0).size()) + if(nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size() || nz*rebinz!=(int)inarr->at(0).at(0).size()) + throw std::runtime_error("read3DArray: tree/array dimensions don't match"); + + + for(int e=0;eGetEntry(e); + for(size_t x=0;xsize();x++){ + int npx = (int)x/rebinx; + for(size_t y=0;yat(x).size();y++){ + int npy = (int)y/rebiny; + for(size_t z=0;zat(x)[y].size();z++){ + int npz = (int)z/rebinz; + numpyarray[e][npx][npy][npz][0] += inarr->at(x)[y][z]; + } + } + } + } + tfile->Close(); + delete tfile; +} + + +void read4DArray(boost::python::numeric::array numpyarray, + std::string filename_std, + std::string treename_std, + std::string branchname_std, + int rebinx=1, + int rebiny=1, + int rebinz=1, + int rebinf=1) { + + + TFile * tfile = new TFile(filename_std.data(),"READ"); + checkTObject(tfile,"read2DArray: input file problem"); + + TTree* tree=(TTree*)tfile->Get(treename_std.data()); + checkTObject(tree,"read2DArray: input tree problem"); + + + int nentries = (int) boost::python::len(numpyarray); + int nx=0; + if(nentries) + nx = (int) boost::python::len(numpyarray[0]); + int ny=0; + if(nx) + ny = (int) boost::python::len(numpyarray[0][0]); + int nz=0; + if(ny) + nz = (int) boost::python::len(numpyarray[0][0][0]); + int nf=0; + if(nz) + nf = (int) boost::python::len(numpyarray[0][0][0][0]); + + if(!nentries || nentries != tree->GetEntries()) + throw std::runtime_error("read4DArray: tree/array entries don't match"); + + if(nx%rebinx || ny%rebiny || nz%rebinz || nf%rebinf) + throw std::runtime_error("read4DArray: rebinning factor does not match bins"); + + + std::vector > > > * inarr = 0; + tree->SetBranchAddress(branchname_std.data(),&inarr); + + tree->GetEntry(0); + + if(nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size() || nz*rebinz!=(int)inarr->at(0).at(0).size() + || nf*rebinf!=(int)inarr->at(0).at(0).at(0).size()) throw std::runtime_error("read3DArray: tree/array dimensions don't match"); for(int e=0;eGetEntry(e); - for(size_t x=0;xsize();x++) - for(size_t y=0;yat(x).size();y++) - for(size_t z=0;zat(x)[y].size();z++) - numpyarray[e][x][y][z][0] = inarr->at(x)[y][z]; + for(size_t x=0;xsize();x++){ + int npx = (int)x/rebinx; + for(size_t y=0;yat(x).size();y++){ + int npy = (int)y/rebiny; + for(size_t z=0;zat(x)[y].size();z++){ + int npz = (int)z/rebinz; + for(size_t f=0;fat(x)[y][z].size();f++){ + int npf = (int)f/rebinf; + numpyarray[e][npx][npy][npz][npf][0] += inarr->at(x)[y][z][f]; + } + } + } + } } tfile->Close(); delete tfile; @@ -123,5 +208,6 @@ BOOST_PYTHON_MODULE(c_arrayReads) { boost::python::numeric::array::set_module_and_type("numpy", "ndarray"); def("read2DArray", &read2DArray); def("read3DArray", &read3DArray); + def("read4DArray", &read4DArray); } diff --git a/preprocessing/preprocessing.py b/preprocessing/preprocessing.py index f513076..15803f2 100644 --- a/preprocessing/preprocessing.py +++ b/preprocessing/preprocessing.py @@ -539,12 +539,13 @@ def MeanNormZeroPad(Filename_in,MeanNormTuple,inbranches_listlist,nMaxslist,neve #print(array) return array -def read2DArray(filename, treename, branchname, nevents, xsize, ysize): +def read2DArray(filename, treename, branchname, nevents, xsize, ysize, + rebinx=1,rebiny=1): from DeepJetCore.compiled import c_arrayReads array = numpy.zeros((nevents,xsize, ysize,1) , dtype='float32') - c_arrayReads.read2DArray(array,filename, treename, branchname) + c_arrayReads.read2DArray(array,filename, treename, branchname,rebinx,rebiny) return array @@ -553,18 +554,29 @@ def readListArray(filename, treename, branchname, nevents, list_size, n_feat_per array = numpy.zeros((nevents,list_size, n_feat_per_element,1) , dtype='float32') - c_arrayReads.read2DArray(array,filename, treename, branchname) + c_arrayReads.read2DArray(array,filename, treename, branchname,1,1) array = numpy.squeeze(array, axis=-1) return array -def read3DArray(filename, treename, branchname, nevents, xsize, ysize, zsize): +def read3DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, + rebinx=1,rebiny=1,rebinz=1): from DeepJetCore.compiled import c_arrayReads array = numpy.zeros((nevents,xsize, ysize,zsize,1) , dtype='float32') - c_arrayReads.read3DArray(array,filename, treename, branchname) + c_arrayReads.read3DArray(array,filename, treename, branchname,rebinx,rebiny,rebinz) + + return array + +def read4DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, fsize, + rebinx=1,rebiny=1,rebinz=1,rebinf=1): + from DeepJetCore.compiled import c_arrayReads + + array = numpy.zeros((nevents,xsize, ysize,zsize,fsize,1) , dtype='float32') + + c_arrayReads.read4DArray(array,filename, treename, branchname,rebinx,rebiny,rebinz,rebinf) return array From 74e51e254cfef5ac822e5a134f7876f209b11007 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Thu, 2 May 2019 13:31:37 +0200 Subject: [PATCH 042/437] more useful error messages --- compiled/src/c_arrayReads.C | 25 +++++++++++++++---------- preprocessing/preprocessing.py | 14 ++++++++++++++ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/compiled/src/c_arrayReads.C b/compiled/src/c_arrayReads.C index e728f78..fc35ac2 100644 --- a/compiled/src/c_arrayReads.C +++ b/compiled/src/c_arrayReads.C @@ -50,8 +50,10 @@ void read2DArray(boost::python::numeric::array numpyarray, if(nx) ny = (int) boost::python::len(numpyarray[0][0]); - if(!nentries || nentries != tree->GetEntries()) + if(!nentries || nentries != tree->GetEntries()){ + std::cerr << "read2DArray: tree/array entries don't match" << std::endl; throw std::runtime_error("read2DArray: tree/array entries don't match"); + } std::vector > *inarr = 0; @@ -59,8 +61,10 @@ void read2DArray(boost::python::numeric::array numpyarray, tree->GetEntry(0); - if(nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size()) + if(nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size()){ + std::cerr << "read2DArray: tree/array dimensions don't match" << std::endl; throw std::runtime_error("read2DArray: tree/array dimensions don't match"); + } for(int e=0;eGetEntry(e); @@ -104,8 +108,10 @@ void read3DArray(boost::python::numeric::array numpyarray, if(ny) nz = (int) boost::python::len(numpyarray[0][0][0]); - if(!nentries || nentries != tree->GetEntries()) + if(!nentries || nentries != tree->GetEntries()){ + std::cerr << "read3DArray: tree/array entries don't match" << std::endl; throw std::runtime_error("read3DArray: tree/array entries don't match"); + } std::vector > > * inarr = 0; @@ -113,9 +119,10 @@ void read3DArray(boost::python::numeric::array numpyarray, tree->GetEntry(0); - if(nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size() || nz*rebinz!=(int)inarr->at(0).at(0).size()) + if(nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size() || nz*rebinz!=(int)inarr->at(0).at(0).size()){ + std::cerr << "read3DArray: tree/array dimensions don't match" << std::endl; throw std::runtime_error("read3DArray: tree/array dimensions don't match"); - + } for(int e=0;eGetEntry(e); @@ -166,12 +173,10 @@ void read4DArray(boost::python::numeric::array numpyarray, if(nz) nf = (int) boost::python::len(numpyarray[0][0][0][0]); - if(!nentries || nentries != tree->GetEntries()) + if(!nentries || nentries != tree->GetEntries()){ + std::cerr << "read4DArray: tree/array entries don't match" << std::endl; throw std::runtime_error("read4DArray: tree/array entries don't match"); - - if(nx%rebinx || ny%rebiny || nz%rebinz || nf%rebinf) - throw std::runtime_error("read4DArray: rebinning factor does not match bins"); - + } std::vector > > > * inarr = 0; tree->SetBranchAddress(branchname_std.data(),&inarr); diff --git a/preprocessing/preprocessing.py b/preprocessing/preprocessing.py index 15803f2..da36b5d 100644 --- a/preprocessing/preprocessing.py +++ b/preprocessing/preprocessing.py @@ -541,6 +541,10 @@ def MeanNormZeroPad(Filename_in,MeanNormTuple,inbranches_listlist,nMaxslist,neve def read2DArray(filename, treename, branchname, nevents, xsize, ysize, rebinx=1,rebiny=1): + + if xsize%rebinx or ysize%rebiny: + raise Exception("rebinning factors don't not match the bin counts") + from DeepJetCore.compiled import c_arrayReads array = numpy.zeros((nevents,xsize, ysize,1) , dtype='float32') @@ -550,6 +554,8 @@ def read2DArray(filename, treename, branchname, nevents, xsize, ysize, return array def readListArray(filename, treename, branchname, nevents, list_size, n_feat_per_element): + + from DeepJetCore.compiled import c_arrayReads array = numpy.zeros((nevents,list_size, n_feat_per_element,1) , dtype='float32') @@ -562,6 +568,10 @@ def readListArray(filename, treename, branchname, nevents, list_size, n_feat_per def read3DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, rebinx=1,rebiny=1,rebinz=1): + + if xsize%rebinx or ysize%rebiny or zsize%rebinz: + raise Exception("rebinning factors don't not match the bin counts") + from DeepJetCore.compiled import c_arrayReads array = numpy.zeros((nevents,xsize, ysize,zsize,1) , dtype='float32') @@ -572,6 +582,10 @@ def read3DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, def read4DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, fsize, rebinx=1,rebiny=1,rebinz=1,rebinf=1): + + if xsize%rebinx or ysize%rebiny or zsize%rebinz or fsize%rebinf: + raise Exception("rebinning factors don't not match the bin counts") + from DeepJetCore.compiled import c_arrayReads array = numpy.zeros((nevents,xsize, ysize,zsize,fsize,1) , dtype='float32') From b70ff9e440f552c1db8ed36bdb82971f73b9b7ba Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Thu, 9 May 2019 15:56:06 +0200 Subject: [PATCH 043/437] some fixes --- TrainData.py | 8 +++- bin/createSubpackage.py | 60 +++++++++++++++++++++++++ compiled/interface/friendTreeInjector.h | 3 +- compiled/src/c_arrayReads.C | 1 + compiled/to_bin/make_example_data.cpp | 22 +++++++-- 5 files changed, 88 insertions(+), 6 deletions(-) diff --git a/TrainData.py b/TrainData.py index 4aff0b0..3942799 100644 --- a/TrainData.py +++ b/TrainData.py @@ -612,6 +612,9 @@ def readTreeFromRootToTuple(self, filenames, limit=None, branches=None): if branches==None: branches=self.allbranchestoberead + if branches is None or len(branches) == 0: + return numpy.array([],dtype='float32') + #print(branches) #remove duplicates usebranches=list(set(branches)) @@ -662,7 +665,10 @@ def make_means(self, nparray): def produceMeansFromRootFile(self,filename, limit=500000): from preprocessing import meanNormProd nparray = self.readTreeFromRootToTuple(filename, limit=limit) - means = self.make_means(nparray) + means = numpy.array([],dtype='float32') + if len(nparray): + means = self.make_means(nparray) + del nparray return means diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index f04e2ec..39069c4 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -45,6 +45,9 @@ mkdir -p {subpackage_dir}/scripts mkdir -p {subpackage_dir}/Train mkdir -p {subpackage_dir}/example_data +mkdir -p {subpackage_dir}/cpp_analysis/src +mkdir -p {subpackage_dir}/cpp_analysis/interface +mkdir -p {subpackage_dir}/cpp_analysis/bin '''.format(subpackage_dir=subpackage_dir) datastructure_template=''' @@ -290,6 +293,57 @@ def my_regression_model(Inputs,nclasses,nregressions,otheroption): global_metrics_list = {} ''' +makefile_template=''' +CPP_FILES := $(wildcard src/*.cpp) +OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) +LD_FLAGS := `root-config --cflags --glibs` -lMathMore -L${DEEPJETCORE}/compiled -ldeepjetcorehelpers +CC_FLAGS := -fPIC -g -Wall `root-config --cflags` +CC_FLAGS += -I./interface -I${DEEPJETCORE}/compiled/interface +#CC_FLAGS += -MMD + + +all: $(patsubst bin/%.cpp, %, $(wildcard bin/*.cpp)) + +#compile the module helpers if necessary +../modules/libdeepjethelpers.so: + cd ../modules; make; cd - + +%: bin/%.cpp $(OBJ_FILES) ${DEEPJETCORE}/compiled/libdeepjetcorehelpers.so + g++ $(CC_FLAGS) $(LD_FLAGS) $(OBJ_FILES) $< -o $@ + + +obj/%.o: src/%.cpp + g++ $(CC_FLAGS) -c -o $@ $< + + +clean: + rm -f obj/*.o obj/*.d + rm -f % +''' + +bin_template=''' + +#include "TString.h" +#include "friendTreeInjector.h" +#include + +int main(int argc, char* argv[]){ + if(argc<2) return -1; + + TString infile = argv[1]; + + friendTreeInjector intree; + intree.addFromFile(infile); + intree.setSourceTreeName("tree"); + + intree.createChain(); + + auto c = intree.getChain(); + + std::cout << c->GetEntries() < +#include "../interface/NDBranchReader.h" using namespace boost::python; //for some reason.... diff --git a/compiled/to_bin/make_example_data.cpp b/compiled/to_bin/make_example_data.cpp index fc5e84e..4e89bc6 100644 --- a/compiled/to_bin/make_example_data.cpp +++ b/compiled/to_bin/make_example_data.cpp @@ -54,13 +54,14 @@ class dataGenerator{ std::vector > addImage(const std::vector >&, const std::vector >&); std::vector > divideImage(const std::vector >&, const std::vector >&); + std::vector divideImage(const std::vector &, const std::vector &); std::vector addImage(const std::vector&, const std::vector&); private: - std::vector > makeImage(float xc, float yc, float xw, float yw)const; + std::vector > makeImage(float xc, float yc, float xw, float yw, float scale)const; std::vector > image_; @@ -112,6 +113,10 @@ int main(int argc, char* argv[]){ std::vector > * imagetot2dp = &imagetot2d; t->Branch("image2d",&imagetot2dp); + std::vector sigfrac; + std::vector * sigfracp = &sigfrac; + t->Branch("sigfrac",&sigfracp); + std::vector > sigfrac2d; std::vector > * sigfrac2dp = &sigfrac2d; t->Branch("sigfrac2d",&sigfrac2dp); @@ -176,6 +181,8 @@ int main(int argc, char* argv[]){ sigfrac2d = gen.divideImage(s2d,imagetot2d); + sigfrac = gen.divideImage(s,imagetot); + t ->Fill(); } t->Write(); @@ -222,13 +229,14 @@ void dataGenerator::gen(){ float xc = rand_->Uniform(xlow,xhi); float yc = rand_->Uniform(ylow,yhi); + float scale = rand_->Uniform(0.1,3.); - image_ = makeImage(xc,yc,xw,yw); + image_ = makeImage(xc,yc,xw,yw,scale); } -std::vector > dataGenerator::makeImage(float xc, float yc, float xw, float yw)const{ +std::vector > dataGenerator::makeImage(float xc, float yc, float xw, float yw, float scale)const{ //to 'size' coordinates xc = (float)size_ * xc; @@ -243,7 +251,7 @@ std::vector > dataGenerator::makeImage(float xc, float yc, fl double xcontr = exp(-dx*dx/(2.*xw*xw)); for(size_t y=0;y > dataGenerator::divideImage(const std::vector dataGenerator::divideImage(const std::vector &a, const std::vector &b){ + auto out = a; + for(size_t i=0;i dataGenerator::getImageSeq()const{ From 1b5708a0003361b96bad08c8b80e85829e22d148 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 10 May 2019 16:34:57 +0200 Subject: [PATCH 044/437] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8402408..e25fb94 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Usage ========== DeepJetCore is only a set of tools and wrappers and does not provide ready-to-use training code. -However, an example package containing more specific code examples (referred to as 'subpackage' in the following) can be created once everything is compiled using the script ``createSubpackage.py``. +However, an example package containing more specific code examples (referred to as 'subpackage' in the following) can be created once everything is compiled and the environment is sourced (important!) using the script ``createSubpackage.py``. This subpackage will include an example dataset which gets generated on the fly (size about 150 MB). More instructions are printed by the script creating the subpackage. This subpackage can serve as a reference for own projects. From ed5e2ab3f64fe6c7569c900741d1a5487d73ba99 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Mon, 13 May 2019 11:33:35 +0200 Subject: [PATCH 045/437] fix and more generic makefile --- compiled/Makefile | 13 +- compiled/src/c_arrayReads.C | 1 - compiled/src/c_storeTensor.C | 207 ++++++++++-- compiled/to_bin/make_example_data.cpp | 21 +- compiled/to_bin/make_example_data_overlap.cpp | 319 ++++++++++++++++++ 5 files changed, 527 insertions(+), 34 deletions(-) create mode 100644 compiled/to_bin/make_example_data_overlap.cpp diff --git a/compiled/Makefile b/compiled/Makefile index b62823f..8c5e346 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -37,7 +37,7 @@ ifeq ($(UNAME_S),Darwin) endif -all: $(MODULES_SHARED_LIBS) make_example_data classdict.so +all: $(MODULES_SHARED_LIBS) $(patsubst to_bin/%.cpp, %, $(wildcard to_bin/*.cpp)) classdict.so classdict.cxx: src/LinkDef.h rootcling -v4 -f $@ -rmf classdict.rootmap -rml classdict.so $^ @@ -45,9 +45,14 @@ classdict.cxx: src/LinkDef.h classdict.so: classdict.cxx g++ -std=c++11 -fPIC -shared -o classdict.so classdict.cxx -make_example_data: to_bin/make_example_data.cpp libdeepjetcorehelpers.so classdict.cxx - g++ $(CFLAGS) $(LINUXADD) $(ROOTSTUFF) -I./interface $< -o $@ - mv make_example_data ../bin/ +#make_example_data: to_bin/make_example_data.cpp libdeepjetcorehelpers.so classdict.cxx +# g++ $(CFLAGS) $(LINUXADD) $(ROOTSTUFF) -I./interface $< -o $@ +# mv make_example_data ../bin/ + + +%: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx + g++ $(CFLAGS) $(LINUXADD) $(ROOTSTUFF) -I./interface $< -o $@ + mv $@ ../bin/ #helpers libquicklz.so: diff --git a/compiled/src/c_arrayReads.C b/compiled/src/c_arrayReads.C index 8cf232a..fc35ac2 100644 --- a/compiled/src/c_arrayReads.C +++ b/compiled/src/c_arrayReads.C @@ -20,7 +20,6 @@ #include "../interface/pythonToSTL.h" #include "../interface/helper.h" #include -#include "../interface/NDBranchReader.h" using namespace boost::python; //for some reason.... diff --git a/compiled/src/c_storeTensor.C b/compiled/src/c_storeTensor.C index 4570ccd..709dd22 100644 --- a/compiled/src/c_storeTensor.C +++ b/compiled/src/c_storeTensor.C @@ -28,52 +28,211 @@ #include #include #include +#include + +#define Vec std::vector +float * create0DBranchVector(std::vector shape){//returns pointer to first element + return new float[1]; +} +Vec * create1DBranchVector(std::vector shape ){//returns pointer to first element + return new Vec(shape[0]); +} +//gets called once anyway, still needs garbage collection +Vec > * create2DBranchVector(std::vector shape){//returns pointer to first element + return new Vec > + (shape[0],Vec(shape[1])); +} +Vec > >* create3DBranchVector(std::vector shape){//returns pointer to first element + return new Vec > > + (shape[0],Vec > (shape[1],Vec (shape[2]))); +} +Vec > > > * create4DBranchVector(std::vector shape){//returns pointer to first element + auto * out = new + Vec > > >(shape[0], + Vec > >(shape[1], + Vec >(shape[2], + Vec(shape[3])))); + for(auto& vvv:*out) + for(auto& vv:vvv) + for(auto & v:vv) + for(auto& e:v) + e=0; + return out; +} /* * wrapper to create input to C++ only function * Can be generalised to doing it at the same time for many different sized branches */ -void store(long numpyarray, const boost::python::list _shape, - std::string filename) { - std::vector shape = toSTLVector(_shape); - int nentries = shape[0]; - - int ndims = shape.size() - 1; - int shape_root[ndims]; - size_t flattened_length = 1; - for(size_t i = 1; i < shape.size(); i++) { - shape_root[i-1] = shape[i]; - flattened_length *= shape[i]; - } - float data_root[flattened_length]; - float* data_in = reinterpret_cast(numpyarray); +void store(const boost::python::list _numpyarrays, + const boost::python::list _shapes, + std::string filename, + const boost::python::list _adds, + bool storeflat) { + + Vec numpyarrays = toSTLVector(_numpyarrays); + Vec > shapes = toSTL2DVector(_shapes); + Vec adds = toSTLVector(_adds); + + int nentries = 0; + TFile *outfile = new TFile(filename.c_str(), "RECREATE"); - TDirectory *dir = outfile->mkdir("prediction", "prediction"); - dir->cd(); + //TDirectory *dir = outfile->mkdir("prediction", "prediction"); + //dir->cd(); TTree *t = new TTree("tree", "tree"); - t->Branch("ndims" ,&ndims, "ndims_/i"); - t->Branch("shape", shape_root, "shape_[ndims_]/i"); - t->Branch("flattened_length", &flattened_length, "flattened_length_/i"); - t->Branch("data", data_root, "data_[flattened_length_]/f"); + //create branches and pointers + Vec v_data_in; + Vec > v_shape; + Vec v_ndims; + Vec v_flattened_length; + Vec v_data_out_0D(numpyarrays.size(),0); + Vec* > v_data_out_1D(numpyarrays.size(),0); + Vec >* > v_data_out_2D(numpyarrays.size(),0); + Vec > >* > v_data_out_3D(numpyarrays.size(),0); + Vec > > >* > v_data_out_4D(numpyarrays.size(),0); + for(size_t i=0;i shape = shapes.at(i); + long numpyarray = numpyarrays.at(i); + nentries = shape.at(0); + TString add = adds.at(i); - for(size_t e = 0; e < nentries; e++) { - for (size_t i = 0; i < flattened_length; i++) { - data_root[i]=data_in[e*flattened_length+i]; + int ndims = shape.size() - 1; + int ndims_shape=1; + if(ndims) + ndims_shape=ndims; + + std::vector vecshape; + + size_t flattened_length = 1; + for(size_t i = 1; i < shape.size(); i++) { + vecshape.push_back(shape[i]); + flattened_length *= shape[i]; } - t->Fill(); + shape=vecshape; + v_shape.push_back(shape); + if(storeflat){ + shape = std::vector(1,flattened_length); + } + + + v_data_in.push_back(reinterpret_cast(numpyarray)); + v_ndims.push_back(ndims); + v_flattened_length.push_back(flattened_length); + if(ndims==0){ + v_data_out_0D.at(i)=create0DBranchVector(shape); + } + else if(ndims==1 || storeflat){ + v_data_out_1D.at(i)=create1DBranchVector(shape); + } + else if(ndims==2){ + v_data_out_2D.at(i)=create2DBranchVector(shape); + } + else if(ndims==3){ + v_data_out_3D.at(i)=create3DBranchVector(shape); + } + else if(ndims==4){ + v_data_out_4D.at(i)=create4DBranchVector(shape); + } + + } + + + + Vec* > v_shapep; + for(size_t i=0;iBranch(add, v_data_out_0D.at(i)); + else if(v_data_out_1D.at(i)){ + t->Branch(add, &v_data_out_1D.at(i)); + } + else if(v_data_out_2D.at(i)){ + t->Branch(add, &v_data_out_2D.at(i)); + } + else if(v_data_out_3D.at(i)){ + t->Branch(add, &v_data_out_3D.at(i)); + } + else if(v_data_out_4D.at(i)){ + t->Branch(add, &v_data_out_4D.at(i)); + } + + } + + + if(storeflat){ + for(size_t i=0;iBranch((TString)adds.at(i)+"_shape", v_shapep.at(i)); + } + } } + //vectorsize(); i++){ + v_data_out_1D.at(a)->at(i)=v_data_in.at(a)[e*v_flattened_length.at(a)+i]; + } + } + else if(v_data_out_2D.at(a)){ + size_t globcont=0; + for (size_t i = 0; i < v_data_out_2D.at(a)->size(); i++){ + for (size_t j = 0; j < v_data_out_2D.at(a)->at(i).size(); j++){ + v_data_out_2D.at(a)->at(i).at(j)=v_data_in.at(a)[e*v_flattened_length.at(a)+globcont]; + globcont++; + } + } + } + else if(v_data_out_3D.at(a)){ + size_t globcont=0; + for (size_t i = 0; i < v_data_out_3D.at(a)->size(); i++){ + for (size_t j = 0; j < v_data_out_3D.at(a)->at(i).size(); j++){ + for (size_t k = 0; k < v_data_out_3D.at(a)->at(i).at(j).size(); k++){ + v_data_out_3D.at(a)->at(i).at(j).at(k)=v_data_in.at(a)[e*v_flattened_length.at(a)+globcont]; + globcont++; + } + } + } + } + else if(v_data_out_4D.at(a)){ + size_t globcont=0; + for (size_t i = 0; i < v_data_out_4D.at(a)->size(); i++){ + for (size_t j = 0; j < v_data_out_4D.at(a)->at(i).size(); j++){ + for (size_t k = 0; k < v_data_out_4D.at(a)->at(i).at(j).size(); k++){ + for (size_t l = 0; l < v_data_out_4D.at(a)->at(i).at(j).at(k).size(); l++){ + v_data_out_4D.at(a)->at(i).at(j).at(k).at(l)=v_data_in.at(a)[e*v_flattened_length.at(a)+globcont]; + globcont++; + } + } + } + } + } + }//arrays + + t->Fill(); + } + + t->Write(); outfile->Close(); delete outfile; diff --git a/compiled/to_bin/make_example_data.cpp b/compiled/to_bin/make_example_data.cpp index 4e89bc6..d9794de 100644 --- a/compiled/to_bin/make_example_data.cpp +++ b/compiled/to_bin/make_example_data.cpp @@ -147,6 +147,7 @@ int main(int argc, char* argv[]){ int type=0; for(size_t e=0;e<(size_t)nevents;e++){ + /* gen.setType(type); if(type==0){ isA=1;isB=0;isC=0; @@ -161,16 +162,21 @@ int main(int argc, char* argv[]){ type++; if(type>2) type=0; +*/ + ///testing + gen.setType(1); gen.gen(); + ///testing + auto s = gen.getImageSeq(); sigsum=0; for(const auto& sc:s) sigsum+=sc; auto s2d = gen.getImage(); - gen.setType(3); + gen.setType(2); gen.gen(); auto bg = gen.getImageSeq(); auto bg2d = gen.getImage(); @@ -208,14 +214,19 @@ void dataGenerator::gen(){ //class 0 if(type_==1){ //class 1 - xw = rand_->Uniform(0.1,0.2); + xw = rand_->Uniform(0.08,0.15); yw = 0.5*xw*rand_->Uniform(0.95,1.05); + //for testing + xhi = 0.75; + xlow = 0.6; } - else if(type_==2){ //class 1 - yw = rand_->Uniform(0.1,0.3); - xw = 1.8*yw*rand_->Uniform(0.95,1.05); + else if(type_==2){ //class 2 + yw = rand_->Uniform(0.1,0.15); + xw = 1.2*yw*rand_->Uniform(0.95,1.05); + xhi = 0.4; + xlow = 0.25; } else if(type_>2){ xlow=-5; diff --git a/compiled/to_bin/make_example_data_overlap.cpp b/compiled/to_bin/make_example_data_overlap.cpp new file mode 100644 index 0000000..d9794de --- /dev/null +++ b/compiled/to_bin/make_example_data_overlap.cpp @@ -0,0 +1,319 @@ +/* + * make_example_data.cpp + * + * Created on: 30 Apr 2019 + * Author: jkiesele + */ + +#include "TRandom3.h" +#include "TFile.h" +#include +#include "TTree.h" +#include "math.h" +#include +#include + + + +class dataGenerator{ +public: + + + dataGenerator():size_(32),type_(0),rand_(new TRandom3(123)){setSize(size_);} + ~dataGenerator(){delete rand_;} + + void gen(); + + void setSize(int s){ + size_=s; + image_.resize(size_,std::vector(size_)); + + xcoords_.clear(); + ycoords_.clear(); + for(float x=0;x<(float)size_;x++){ + for(float y=0;y<(float)size_;y++){ + ycoords_.push_back(y); + xcoords_.push_back(x); + } + } + + } + int getSize()const{return size_;} + + void setType(int t){ + type_=t; + } + + const std::vector& getXCoords()const{return xcoords_;} + const std::vector& getYCoords()const{return ycoords_;} + + const std::vector > & getImage()const{return image_;} + + std::vector getImageSeq()const; + //not protected + std::vector > addImage(const std::vector >&, const std::vector >&); + + std::vector > divideImage(const std::vector >&, const std::vector >&); + std::vector divideImage(const std::vector &, const std::vector &); + + std::vector addImage(const std::vector&, const std::vector&); + + +private: + + std::vector > makeImage(float xc, float yc, float xw, float yw, float scale)const; + + + std::vector > image_; + std::vector xcoords_,ycoords_; + int size_; + int type_; + TRandom3 * rand_; + +}; + + +int main(int argc, char* argv[]){ + int nevents=500; + int nfiles=10; + int ntest=1; + + if(argc>1) + nevents=atoi(argv[1]); + if(argc>2) + nfiles=atoi(argv[2]); + if(argc>3) + ntest=atoi(argv[3]); + + + dataGenerator gen; + + std::ofstream outtxtfile("train_files.txt"); + std::ofstream testouttxtfile("test_files.txt"); + + + for(int i=0;i imagetot; + std::vector * imagetotp = &imagetot; + t->Branch("image",&imagetotp); + + std::vector > imagetot2d; + std::vector > * imagetot2dp = &imagetot2d; + t->Branch("image2d",&imagetot2dp); + + std::vector sigfrac; + std::vector * sigfracp = &sigfrac; + t->Branch("sigfrac",&sigfracp); + + std::vector > sigfrac2d; + std::vector > * sigfrac2dp = &sigfrac2d; + t->Branch("sigfrac2d",&sigfrac2dp); + + std::vector xcoords; + std::vector * xcoordsp = &xcoords; + t->Branch("xcoords",&xcoordsp); + + std::vector ycoords; + std::vector * ycoordsp = &ycoords; + t->Branch("ycoords",&ycoords); + + float sigsum=0; + t->Branch("sigsum",&sigsum); + + int size; + t->Branch("size",&size); + int isA,isB,isC; + t->Branch("isA",&isA); + t->Branch("isB",&isB); + t->Branch("isC",&isC); + size = gen.getSize(); + + xcoords = gen.getXCoords(); + ycoords = gen.getYCoords(); + + + int type=0; + + for(size_t e=0;e<(size_t)nevents;e++){ + /* + gen.setType(type); + if(type==0){ + isA=1;isB=0;isC=0; + } + else if(type==1){ + isA=0;isB=1;isC=0; + } + else if(type==2){ + isA=0;isB=0;isC=1; + } + + type++; + if(type>2) + type=0; +*/ + + + ///testing + gen.setType(1); + gen.gen(); + ///testing + + auto s = gen.getImageSeq(); + sigsum=0; + for(const auto& sc:s) + sigsum+=sc; + + auto s2d = gen.getImage(); + gen.setType(2); + gen.gen(); + auto bg = gen.getImageSeq(); + auto bg2d = gen.getImage(); + + imagetot = gen.addImage(s,bg); + + imagetot2d = gen.addImage(s2d,bg2d); + + sigfrac2d = gen.divideImage(s2d,imagetot2d); + + sigfrac = gen.divideImage(s,imagetot); + + t ->Fill(); + } + t->Write(); + f.Close(); + //delete t; + } + + outtxtfile.close(); +} + + + + + +void dataGenerator::gen(){ + + float xlow=0.45; + float xhi = 0.55; + float ylow = 0.45; + float yhi = 0.55; + float xw = 0.25*rand_->Uniform(0.95,1.05); + float yw = 0.25*rand_->Uniform(0.95,1.05); + //class 0 + + if(type_==1){ //class 1 + xw = rand_->Uniform(0.08,0.15); + yw = 0.5*xw*rand_->Uniform(0.95,1.05); + + //for testing + xhi = 0.75; + xlow = 0.6; + } + else if(type_==2){ //class 2 + yw = rand_->Uniform(0.1,0.15); + xw = 1.2*yw*rand_->Uniform(0.95,1.05); + + xhi = 0.4; + xlow = 0.25; + } + else if(type_>2){ + xlow=-5; + xhi = 5; + ylow = -5; + yhi = 5; + xw = rand_->Uniform(3,4); + yw = rand_->Uniform(2,4); + } + + float xc = rand_->Uniform(xlow,xhi); + float yc = rand_->Uniform(ylow,yhi); + + float scale = rand_->Uniform(0.1,3.); + + image_ = makeImage(xc,yc,xw,yw,scale); + +} + + +std::vector > dataGenerator::makeImage(float xc, float yc, float xw, float yw, float scale)const{ + + //to 'size' coordinates + xc = (float)size_ * xc; + yc = (float)size_ * yc; + xw = (float)size_ * xw; + yw = (float)size_ * yw; + + std::vector > out=image_; + + for(size_t x=0;x > dataGenerator::addImage(const std::vector >& a, const std::vector >& b){ + auto out = a; + + for(size_t i=0;i dataGenerator::addImage(const std::vector& a, const std::vector & b){ + auto out = a; + + for(size_t i=0;i > dataGenerator::divideImage(const std::vector >& a, const std::vector >& b){ + auto out = a; + for(size_t i=0;i dataGenerator::divideImage(const std::vector &a, const std::vector &b){ + auto out = a; + for(size_t i=0;i dataGenerator::getImageSeq()const{ + std::vector out; + for(const auto& x:image_) + for(const auto& y:x) + out.push_back(y); + return out; +} + + + + + + From e4209a85a645defef34ca7c654bb3c21040c85c6 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Mon, 13 May 2019 17:56:47 +0200 Subject: [PATCH 046/437] zeropad option --- compiled/src/c_arrayReads.C | 17 ++++++++++------- preprocessing/preprocessing.py | 20 ++++++++++++-------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/compiled/src/c_arrayReads.C b/compiled/src/c_arrayReads.C index fc35ac2..d8f6cd8 100644 --- a/compiled/src/c_arrayReads.C +++ b/compiled/src/c_arrayReads.C @@ -31,7 +31,8 @@ void read2DArray(boost::python::numeric::array numpyarray, std::string treename_std, std::string branchname_std, int rebinx=1, - int rebiny=1 + int rebiny=1, + bool zeropad=false ) { @@ -61,7 +62,7 @@ void read2DArray(boost::python::numeric::array numpyarray, tree->GetEntry(0); - if(nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size()){ + if(!zeropad && (nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size())){ std::cerr << "read2DArray: tree/array dimensions don't match" << std::endl; throw std::runtime_error("read2DArray: tree/array dimensions don't match"); } @@ -87,7 +88,8 @@ void read3DArray(boost::python::numeric::array numpyarray, std::string branchname_std, int rebinx=1, int rebiny=1, - int rebinz=1) { + int rebinz=1, + bool zeropad=false) { TFile * tfile = new TFile(filename_std.data(),"READ"); @@ -119,7 +121,7 @@ void read3DArray(boost::python::numeric::array numpyarray, tree->GetEntry(0); - if(nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size() || nz*rebinz!=(int)inarr->at(0).at(0).size()){ + if(!zeropad && (nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size() || nz*rebinz!=(int)inarr->at(0).at(0).size())){ std::cerr << "read3DArray: tree/array dimensions don't match" << std::endl; throw std::runtime_error("read3DArray: tree/array dimensions don't match"); } @@ -149,7 +151,8 @@ void read4DArray(boost::python::numeric::array numpyarray, int rebinx=1, int rebiny=1, int rebinz=1, - int rebinf=1) { + int rebinf=1, + bool zeropad=false) { TFile * tfile = new TFile(filename_std.data(),"READ"); @@ -183,8 +186,8 @@ void read4DArray(boost::python::numeric::array numpyarray, tree->GetEntry(0); - if(nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size() || nz*rebinz!=(int)inarr->at(0).at(0).size() - || nf*rebinf!=(int)inarr->at(0).at(0).at(0).size()) + if(!zeropad && (nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size() || nz*rebinz!=(int)inarr->at(0).at(0).size() + || nf*rebinf!=(int)inarr->at(0).at(0).at(0).size())) throw std::runtime_error("read3DArray: tree/array dimensions don't match"); for(int e=0;e Date: Tue, 14 May 2019 13:15:01 +0200 Subject: [PATCH 047/437] NEW PREDICT FORMAT WITH COMPAT MODE. PLEASE CHECK. --- bin/createSubpackage.py | 100 +++++++++++++++++++++++++++++++++- bin/predict.py | 6 +- evaluation/evaluation.py | 115 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 213 insertions(+), 8 deletions(-) diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 39069c4..3720bc2 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -54,6 +54,8 @@ + + from DeepJetCore.TrainData import TrainData, fileTimeOut import numpy @@ -79,6 +81,7 @@ def __init__(self): self.registerBranches(['']) #list of branches to be used + #means norms are only produced for branches that are registered (for performance reasons) self.registerBranches(self.truthclasses) @@ -103,7 +106,7 @@ def readFromRootFile(self,filename,TupleMeanStd, weighter): print(filename) feature_array = read2DArray(filename,"tree","image2d",self.nsamples,32,32) - + print('feature_array',feature_array.shape) truth = self.read_truthclasses(filename) #notremoves=weighter.createNotRemoveIndices(Tuple) @@ -120,6 +123,12 @@ def readFromRootFile(self,filename,TupleMeanStd, weighter): self.w=[] # list of weight arrays. One for each truth target, not used + def formatPrediction(self, predicted_list): + + format_names = ['prob_isA','prob_isB','prob_isC'] + out_pred = [predicted_list[:,0],predicted_list[:,1],predicted_list[:,2]] + + return out_pred, format_names class TrainData_example_reg(TrainData): def __init__(self): @@ -127,7 +136,8 @@ def __init__(self): self.treename="tree" #input root tree name - self.truthclasses=['isA','isB','isC'] #truth classes for classification + self.truthclasses=[]#['isA','isB','isC'] #truth classes for classification + self.regressiontargetclasses=['sigsum'] self.weightbranchX='isA' #needs to be specified if weighter is used self.weightbranchY='isB' #needs to be specified if weighter is used @@ -141,7 +151,7 @@ def __init__(self): self.weight_binY = numpy.array([0,40000],dtype=float) - self.registerBranches(['']) #list of branches to be used + self.registerBranches(self.regressiontargetclasses) #list of branches to be used self.registerBranches(self.truthclasses) @@ -183,6 +193,86 @@ def readFromRootFile(self,filename,TupleMeanStd, weighter): self.y=[reg_truth] # list of target numpy arrays (truth) self.w=[] # list of weight arrays. One for each truth target, not used + def formatPrediction(self, predicted_list): + + format_names = ['sigsum'] + out_pred = predicted_list + + return out_pred, format_names + + +class TrainData_example_frac(TrainData): + def __init__(self): + TrainData.__init__(self) + + self.treename="tree" #input root tree name + + self.truthclasses=[]#['isA','isB','isC'] #truth classes for classification + self.regressiontargetclasses=['sigfrac_bgfrac_featforweights'] + + self.weightbranchX='isA' #needs to be specified if weighter is used + self.weightbranchY='isB' #needs to be specified if weighter is used + + #there is no need to resample/reweight + self.weight=False + self.remove=False + #does not do anything in this configuration + self.referenceclass='flatten' + self.weight_binX = numpy.array([0,40000],dtype=float) + self.weight_binY = numpy.array([0,40000],dtype=float) + + + #self.registerBranches() #list of branches to be used + + self.registerBranches(self.truthclasses) + + + #call this at the end + self.reduceTruth(None) + + + def readFromRootFile(self,filename,TupleMeanStd, weighter): + + # this function defines how to convert the root ntuple to the training format + # options are not yet described here + import numpy as np + import ROOT + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get("tree") + self.nsamples=tree.GetEntries() + + + # user code, example works with the example 2D images in root format generated by make_example_data + from DeepJetCore.preprocessing import read2DArray + print(filename) + feature_array = read2DArray(filename,"tree","image2d",self.nsamples,32,32) + + reg_truth = read2DArray(filename,"tree","sigfrac2d",self.nsamples,32,32) + bgfrac = 1 - reg_truth + + truth = np.concatenate([reg_truth, bgfrac, feature_array], axis=-1) + + #notremoves=weighter.createNotRemoveIndices(Tuple) + + # this removes parts of the dataset for weighting the events + #feature_array = feature_array[notremoves > 0] + + # call this in the end + + self.nsamples=len(feature_array) + + self.x=[feature_array] # list of feature numpy arrays + self.y=[truth] # list of target numpy arrays (truth) + self.w=[] # list of weight arrays. One for each truth target, not used + + + def formatPrediction(self, predicted_list): + + format_names = ['sigfrac','bgfrac'] + out_pred = [predicted_list[0][:,:,1],predicted_list[0][:,:,2]] + + return out_pred, format_names ''' @@ -341,6 +431,10 @@ def my_regression_model(Inputs,nclasses,nregressions,otheroption): auto c = intree.getChain(); std::cout << c->GetEntries() <0: + ident='_'+ident + + self.__sourceroots=[] + self.__predictroots=[] + self.metrics=[] + + + for i in range(len(testdatacollection.samples)): + sample=testdatacollection.samples[i] + originroot=testdatacollection.originRoots[i] + outrootfilename=os.path.splitext(os.path.basename(originroot))[0]+'_predict'+ident+'.root' + + fullpath=testdatacollection.getSamplePath(sample) + if monkey_class_obj is not None: + testdatacollection.dataclass = monkey_class_obj() + td=testdatacollection.dataclass + + td.readIn(fullpath) + + + + features=td.x + #labels=td.y #not needed - maybe we can add this as option so all info is in the output trees (no friends) + weights=None + if len(td.w): + weights=td.w + + prediction = model.predict(features) + if not isinstance(prediction, list): + prediction=[prediction] + + prediction, formatstring = td.formatPrediction(prediction) + if len(formatstring) < len(prediction): + formatstring.extend(['auto_pred_'+str(i) for i in range(len(prediction)-len(formatstring))]) + + if weights is not None: + prediction.append(weights) + formatstring.append('weight') + ###### prediction functor needs to be adapted!! + + #######NEW + if self.use_only: + prediction = [prediction[i] for i in self.use_only] + formatstring = [formatstring[i] for i in self.use_only] + + + + cont_pred = [np.ascontiguousarray(prediction[i], dtype=np.float32) for i in range(len(prediction))] + c_storeTensor.store([p.ctypes.data for p in cont_pred], + [a.shape for a in prediction], + outputDir+'/'+outrootfilename, + formatstring, + flatten_everything) + + self.__sourceroots.append(originroot) + self.__predictroots.append(outputDir+'/'+outrootfilename) + + print('written prediction output '+outputDir+'/'+outrootfilename) + + if self.addnumpyoutput: + print('addnumpyoutput: currently not supported (anymore), please request re-implementation') + + + #compatibility mode! + def makePrediction_compat(self, model, testdatacollection, outputDir, ident='', store_labels = False, monkey_class=''): + + deprwarning=''' + +WARNING! makePrediction is being run in compatibilty mode. This mode will soon be deprecated. +The new prediction mode requires to define a function of the TrainData class that takes as input the prediction of the network \ +and as output a list of formatted predictions and associated names. +Each list item will be assigned an own branch name in the output tree +def formatPrediction(self, predicted_list): + + format_names = [name1, name2, ...] + out_pred = [predicted_list[1],predicted_list[0]] #e.g. if the order should be swapped + + return out_pred, format_names + + ''' + + print(deprwarning) import numpy as np from root_numpy import array2root import os @@ -106,7 +211,9 @@ def makePrediction(self, model, testdatacollection, outputDir, features=td.x labels=td.y - weights=td.w[0] + weights=None + if td.w is not None and len(td.w): + weights=td.w[0] @@ -133,8 +240,9 @@ def makePrediction(self, model, testdatacollection, outputDir, axis=1) if all_write.ndim == 2: - all_write = np.concatenate([all_write, weights], axis=1) - formatstring.append('weight') + if weights is not None: + all_write = np.concatenate([all_write, weights], axis=1) + formatstring.append('weight') if not all_write.shape[1] == len(formatstring): print(formatstring, ' vs ', all_write.shape[1]) raise ValueError('Prediction output does not match with the provided targets!') @@ -153,6 +261,7 @@ def makePrediction(self, model, testdatacollection, outputDir, else: fullnumpyarray=np.array(all_write) else: + raise Exception("tensor output not supported (anymore) in compatibilty prediction mode!") c_storeTensor.store(np.ascontiguousarray(all_write, dtype=np.float32).ctypes.data, list(np.shape(all_write)), outputDir+'/'+outrootfilename) self.__sourceroots.append(originroot) self.__predictroots.append(outputDir+'/'+outrootfilename) From c9ac099d8549db7980340af1f1fe6ce3e332fdfe Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 14 May 2019 17:23:12 +0200 Subject: [PATCH 048/437] Update README.md --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e25fb94..8bb9047 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -**For the bleeding-edge version of DeepJetCore check out the [updated installation](https://github.com/SwapneelM/DeepJetCore/blob/python-package/PYPKG.md)** +**For the bleeding-edge version of DeepJetCore check out the [updated installation](https://github.com/SwapneelM/DeepJetCore/blob/python-package/PYPKG.md) However, it is recommended to use the stable version described in the next Section** -*For details, refer to the [presentations for DeepJet](https://drive.google.com/drive/folders/1l8Hu34hMYNc-YdgpCoAuqMzQ-qa5eCSJ?usp=sharing)* +*For details on the bleeding edge version, refer to the [presentations for DeepJet](https://drive.google.com/drive/folders/1l8Hu34hMYNc-YdgpCoAuqMzQ-qa5eCSJ?usp=sharing)* *Check out the [DeepJetCore wiki](https://github.com/DL4Jets/DeepJetCore/wiki) for an introduction to the package.* DeepJetCore: Package for training and evaluation of deep neural networks for HEP @@ -68,6 +68,12 @@ However, an example package containing more specific code examples (referred to This subpackage will include an example dataset which gets generated on the fly (size about 150 MB). More instructions are printed by the script creating the subpackage. This subpackage can serve as a reference for own projects. +In general, the following steps are needed for a training and evaluation: + * Define the training data structure, e.i. which branches from the input root ntuples are read, and how they are re-organised as input to the DNN. An example can be found in subpackage/modules/datastructures + * Convert the root ntuples into the training data format using convertFromRoot.py. Please consider the help message for options (```convertFromRoot.py -h```). The input is a list of root files contained in a text file. An example dataset is generated when setting up the subpackage. It can be found in subpackage/example_data. Different files should be used for training and testing. To convert the training data, execute ```convertFromRoot.py -i -o -c TrainData_example```, with TrainData_example being the data structure defined before. To create the test dataset, execute ```convertFromRoot.py -i --testdatafor /dataCollection.dc -o ```. + * Train the model. The convertFromRoot.py script creates a set of output files and a descriptor (dataCollection.dc). This descriptor is fed to the training file which contains the model definition and an instance of the trainingbase class. An example is given in subpackage/Train/training_example.py. This file is called with ```python training_example.py /path/to/data/dataCollection.dc ```. More options are provided and described when calling ```python training_example.py -h```. + * Once the training is done, the model can be used to predict the output of the model for the test data: ```predict.py /path/to/the/model.h5 /path/to/the/test/data/dataCollection.dc ```. Please keep in mind that the output can become large (not the case in the example). + * For plotting, there are a few simple wrappers provided, which can be found in DeepJetCore/evaluation/evaluation.py, for making ROCs and simple plots. As input, these functions take the text file created by the predict.py script. From 716a075772f79156ef87e04808481f31325a363d Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 15 May 2019 14:49:40 +0200 Subject: [PATCH 049/437] fixes for rebinning --- compiled/src/c_arrayReads.C | 11 ++++++++--- preprocessing/preprocessing.py | 9 ++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/compiled/src/c_arrayReads.C b/compiled/src/c_arrayReads.C index d8f6cd8..7da5af8 100644 --- a/compiled/src/c_arrayReads.C +++ b/compiled/src/c_arrayReads.C @@ -187,9 +187,13 @@ void read4DArray(boost::python::numeric::array numpyarray, tree->GetEntry(0); if(!zeropad && (nx*rebinx!=(int)inarr->size() || ny*rebiny!=(int)inarr->at(0).size() || nz*rebinz!=(int)inarr->at(0).at(0).size() - || nf*rebinf!=(int)inarr->at(0).at(0).at(0).size())) - throw std::runtime_error("read3DArray: tree/array dimensions don't match"); - + || nf*rebinf!=(int)inarr->at(0).at(0).at(0).size())){ + std::cout << "nx*rebinx "<size()<<'\n'; + std::cout << "ny*rebiny "<at(0).size()<<'\n'; + std::cout << "nz*rebinz "<at(0).at(0).size()<<'\n'; + std::cout << "nf*rebinf "<at(0).at(0).at(0).size()<<'\n'; + throw std::runtime_error("read4DArray: tree/array dimensions don't match"); + } for(int e=0;eGetEntry(e); for(size_t x=0;xsize();x++){ @@ -200,6 +204,7 @@ void read4DArray(boost::python::numeric::array numpyarray, int npz = (int)z/rebinz; for(size_t f=0;fat(x)[y][z].size();f++){ int npf = (int)f/rebinf; + // std::cout << e <<", "<< npx <<", "<< npy <<", "<< npz <<", "<< npf << ": "<< f<< std::endl; numpyarray[e][npx][npy][npz][npf][0] += inarr->at(x)[y][z][f]; } } diff --git a/preprocessing/preprocessing.py b/preprocessing/preprocessing.py index 4da22f8..3d23f8c 100644 --- a/preprocessing/preprocessing.py +++ b/preprocessing/preprocessing.py @@ -548,7 +548,7 @@ def read2DArray(filename, treename, branchname, nevents, xsize, ysize, from DeepJetCore.compiled import c_arrayReads - array = numpy.zeros((nevents,xsize, ysize,1) , dtype='float32') + array = numpy.zeros((nevents,xsize/rebinx, ysize/rebiny,1) , dtype='float32') c_arrayReads.read2DArray(array,filename, treename, branchname,rebinx,rebiny,zeropad) @@ -577,7 +577,7 @@ def read3DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, from DeepJetCore.compiled import c_arrayReads - array = numpy.zeros((nevents,xsize, ysize,zsize,1) , dtype='float32') + array = numpy.zeros((nevents,xsize/rebinx, ysize/rebiny,zsize/rebinz,1) , dtype='float32') c_arrayReads.read3DArray(array,filename, treename, branchname,rebinx,rebiny,rebinz,zeropad) @@ -592,7 +592,10 @@ def read4DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, fs from DeepJetCore.compiled import c_arrayReads - array = numpy.zeros((nevents,xsize, ysize,zsize,fsize,1) , dtype='float32') + + array = numpy.zeros((nevents,xsize/rebinx, ysize/rebiny,zsize/rebinz,fsize/rebinf,1) , dtype='float32') + + print(array.shape) c_arrayReads.read4DArray(array,filename, treename, branchname,rebinx,rebiny,rebinz,rebinf,zeropad) From 45639a55059ad737ba81961ebc20dede6ccb3556 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 15 May 2019 17:05:04 +0200 Subject: [PATCH 050/437] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8bb9047..f743c04 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,7 @@ More instructions are printed by the script creating the subpackage. This subpackage can serve as a reference for own projects. In general, the following steps are needed for a training and evaluation: + * Always source the environment script (```env.sh```) in the subpackage directory, NOT in DeepJetCore. * Define the training data structure, e.i. which branches from the input root ntuples are read, and how they are re-organised as input to the DNN. An example can be found in subpackage/modules/datastructures * Convert the root ntuples into the training data format using convertFromRoot.py. Please consider the help message for options (```convertFromRoot.py -h```). The input is a list of root files contained in a text file. An example dataset is generated when setting up the subpackage. It can be found in subpackage/example_data. Different files should be used for training and testing. To convert the training data, execute ```convertFromRoot.py -i -o -c TrainData_example```, with TrainData_example being the data structure defined before. To create the test dataset, execute ```convertFromRoot.py -i --testdatafor /dataCollection.dc -o ```. * Train the model. The convertFromRoot.py script creates a set of output files and a descriptor (dataCollection.dc). This descriptor is fed to the training file which contains the model definition and an instance of the trainingbase class. An example is given in subpackage/Train/training_example.py. This file is called with ```python training_example.py /path/to/data/dataCollection.dc ```. More options are provided and described when calling ```python training_example.py -h```. From 49b227b65a2f74899a57135cef02d15219eb1fef Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 22 May 2019 11:01:42 +0200 Subject: [PATCH 051/437] REMOVED OLD FORMAT COMPAT. Added workaroung for hdf5 not working properly when writing to eos directly --- TrainData.py | 73 +++++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/TrainData.py b/TrainData.py index 3942799..78148f7 100644 --- a/TrainData.py +++ b/TrainData.py @@ -222,43 +222,52 @@ def reduceTruth(self, tuple_in=None): def writeOut(self,fileprefix): - import h5py - fileTimeOut(fileprefix,120) - h5f = h5py.File(fileprefix, 'w') + from shutil import copyfile + import tempfile + #this is a workaround because hdf5 files written on eos are unreadable... + final_output_file=fileprefix - # try "lzf", too, faster, but less compression - def _writeoutListinfo(arrlist,fidstr,h5F): - arr=numpy.array([len(arrlist)]) - h5F.create_dataset(fidstr+'_listlength',data=arr) - for i in range(len(arrlist)): - idstr=fidstr+str(i) - h5F.create_dataset(idstr+'_shape',data=arrlist[i].shape) + with tempfile.NamedTemporaryFile(suffix='.meta') as t: + fileprefix = t.name - def _writeoutArrays(arrlist,fidstr,h5F): - for i in range(len(arrlist)): - idstr=fidstr+str(i) - arr=arrlist[i] - if "meta" in fileprefix[-4:]: + print('temp output ',fileprefix) + + import h5py + fileTimeOut(fileprefix,120) + h5f = h5py.File(fileprefix, 'w') + + # try "lzf", too, faster, but less compression + def _writeoutListinfo(arrlist,fidstr,h5F): + arr=numpy.array([len(arrlist)]) + h5F.create_dataset(fidstr+'_listlength',data=arr) + for i in range(len(arrlist)): + idstr=fidstr+str(i) + h5F.create_dataset(idstr+'_shape',data=arrlist[i].shape) + + def _writeoutArrays(arrlist,fidstr,h5F): + for i in range(len(arrlist)): + idstr=fidstr+str(i) + arr=arrlist[i] from DeepJetCore.compiled.c_readArrThreaded import writeArray if arr.dtype!='float32': arr=arr.astype('float32') - writeArray(arr.ctypes.data,fileprefix[:-4]+fidstr+'.'+str(i),list(arr.shape)) - else: - h5F.create_dataset(idstr, data=arr, compression="lzf") - - - arr=numpy.array([self.nsamples],dtype='int') - h5f.create_dataset('n', data=arr) - - _writeoutListinfo(self.w,'w',h5f) - _writeoutListinfo(self.x,'x',h5f) - _writeoutListinfo(self.y,'y',h5f) - - _writeoutArrays(self.w,'w',h5f) - _writeoutArrays(self.x,'x',h5f) - _writeoutArrays(self.y,'y',h5f) - - h5f.close() + writeArray(arr.ctypes.data,final_output_file[:-4]+fidstr+'.'+str(i),list(arr.shape)) + + + arr=numpy.array([self.nsamples],dtype='int') + h5f.create_dataset('n', data=arr) + + _writeoutListinfo(self.w,'w',h5f) + _writeoutListinfo(self.x,'x',h5f) + _writeoutListinfo(self.y,'y',h5f) + + _writeoutArrays(self.w,'w',h5f) + _writeoutArrays(self.x,'x',h5f) + _writeoutArrays(self.y,'y',h5f) + + h5f.close() + + copyfile(fileprefix, final_output_file) From b1d5a3dbd464eed8e11f50cdcb7941e4d4096cfc Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 22 May 2019 11:02:20 +0200 Subject: [PATCH 052/437] removed printout --- TrainData.py | 1 - 1 file changed, 1 deletion(-) diff --git a/TrainData.py b/TrainData.py index 78148f7..c077bba 100644 --- a/TrainData.py +++ b/TrainData.py @@ -230,7 +230,6 @@ def writeOut(self,fileprefix): with tempfile.NamedTemporaryFile(suffix='.meta') as t: fileprefix = t.name - print('temp output ',fileprefix) import h5py fileTimeOut(fileprefix,120) From 04fe20053ec51075b01a05732d3711964e0a0caf Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Mon, 27 May 2019 14:35:29 +0200 Subject: [PATCH 053/437] some additions --- TrainData.py | 17 ++++++ bin/createSubpackage.py | 1 + compiled/to_bin/make_example_data_overlap.cpp | 27 +++++---- training/DeepJet_callbacks.py | 58 +++++++++++++++++++ training/training_base.py | 5 ++ 5 files changed, 98 insertions(+), 10 deletions(-) diff --git a/TrainData.py b/TrainData.py index c077bba..5ca29af 100644 --- a/TrainData.py +++ b/TrainData.py @@ -160,6 +160,23 @@ def clear(self): self.w=[numpy.array([])] self.nsamples=None + + def skim(self, event=0): + xs=[] + ys=[] + ws=[] + + for x in self.x: + xs.append(x[event:event+1,...]) + for y in self.y: + ys.append(y[event:event+1,...]) + for w in self.w: + ws.append(w[event:event+1,...]) + self.clear() + self.nsamples=1 + self.x=xs + self.y=ys + self.w=ws def defineCustomPredictionLabels(self, labels): self.customlabels=labels diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 3720bc2..c6c6b6b 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -32,6 +32,7 @@ cd ${subpackage} export PYTHONPATH=${subpackage}/modules:$PYTHONPATH export PYTHONPATH=${subpackage}/modules/datastructures:$PYTHONPATH +export PATH=${subpackage}/scripts:$PATH '''.format(deepjetcore=deepjetcore, subpackage=args.subpackage_name.upper(), subpackage_dir=os.path.abspath(subpackage_dir), diff --git a/compiled/to_bin/make_example_data_overlap.cpp b/compiled/to_bin/make_example_data_overlap.cpp index d9794de..863d7c3 100644 --- a/compiled/to_bin/make_example_data_overlap.cpp +++ b/compiled/to_bin/make_example_data_overlap.cpp @@ -19,7 +19,7 @@ class dataGenerator{ public: - dataGenerator():size_(32),type_(0),rand_(new TRandom3(123)){setSize(size_);} + dataGenerator(int seed=0):size_(24),type_(0),rand_(new TRandom3(seed)){setSize(size_);} ~dataGenerator(){delete rand_;} void gen(); @@ -77,6 +77,7 @@ int main(int argc, char* argv[]){ int nevents=500; int nfiles=10; int ntest=1; + int seed=0;//also indicates starting counter if(argc>1) nevents=atoi(argv[1]); @@ -84,18 +85,24 @@ int main(int argc, char* argv[]){ nfiles=atoi(argv[2]); if(argc>3) ntest=atoi(argv[3]); + if(argc>4) + seed=atoi(argv[4]); - dataGenerator gen; - - std::ofstream outtxtfile("train_files.txt"); - std::ofstream testouttxtfile("test_files.txt"); + dataGenerator gen(seed); + TString add=""; + if(seed) + add+=seed; + std::ofstream outtxtfile((add+"train_files.txt").Data()); + std::ofstream testouttxtfile((add+"test_files.txt").Data()); + int counter=seed; for(int i=0;iUniform(0.95,1.05); //for testing - xhi = 0.75; - xlow = 0.6; + xhi = 0.7; + xlow = 0.53; } else if(type_==2){ //class 2 yw = rand_->Uniform(0.1,0.15); xw = 1.2*yw*rand_->Uniform(0.95,1.05); - xhi = 0.4; - xlow = 0.25; + xhi = 0.47; + xlow = 0.3; } else if(type_>2){ xlow=-5; diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index a2fff43..e4acda8 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -199,3 +199,61 @@ def __init__(self, self.callbacks.extend([ self.nl_end, self.history,self.timer]) + + + +from DeepJetCore.TrainData import TrainData + +class PredictCallback(Callback): + + def __init__(self, + samplefile='', + function_to_apply=None, #needs to be function(counter,[model_input], [predict_output], [truth]) + after_n_batches=50, + on_epoch_end=False, + use_event=0 + ): + super(PredictCallback, self).__init__() + self.samplefile=samplefile + self.function_to_apply=function_to_apply + + self.after_n_batches=after_n_batches + self.run_on_epoch_end=on_epoch_end + + if self.run_on_epoch_end and self.after_n_batches>=0: + print('PredictCallback: can only be used on epoch end OR after n batches, falling back to epoch end') + self.after_n_batches=0 + + self.td=TrainData() + self.td.readIn(samplefile) + self.td.skim(event=use_event) + + def on_train_begin(self, logs=None): + pass + + def predict_and_call(self,counter): + + predicted = self.model.predict(self.td.x) + if not isinstance(predicted, list): + predicted=[predicted] + + self.function_to_apply(counter,self.td.x,predicted,self.td.y) + + def on_epoch_end(self, epoch, logs=None): + if not self.run_on_epoch_end: return + self.predict_and_call(epoch) + + def on_batch_end(self, batch, logs=None): + if self.after_n_batches<=0: return + if batch%self.after_n_batches: return + self.predict_and_call(batch) + + + + + + + + + + diff --git a/training/training_base.py b/training/training_base.py index 2324ac4..f4ee5b1 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -259,6 +259,7 @@ def trainModel(self, maxqsize=5, checkperiod=10, additional_plots=None, + additional_callbacks=None, **trainargs): @@ -317,6 +318,10 @@ def trainModel(self, checkperiodoffset=self.trainedepoches, additional_plots=additional_plots) + if additional_callbacks is not None: + if not isinstance(additional_callbacks, list): + additional_callbacks=[additional_callbacks] + self.callbacks.callbacks.extend(additional_callbacks) print('starting training') self.keras_model.fit_generator(self.train_data.generator() , From 438c09258699cb1f74e7be20c569246e6e60048b Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Tue, 28 May 2019 15:05:43 +0200 Subject: [PATCH 054/437] first hacky GAN training implementation --- training/training_base.py | 210 +++++++++++++++++++++++++++++++------- 1 file changed, 172 insertions(+), 38 deletions(-) diff --git a/training/training_base.py b/training/training_base.py index f4ee5b1..2f1f0e0 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -110,7 +110,9 @@ def __init__( self.checkpointcounter=0 self.renewtokens=renewtokens self.callbacks=None + self.custom_optimizer=False + self.GAN_mode=False self.inputData = os.path.abspath(args.inputDataCollection) \ if ',' not in args.inputDataCollection else \ @@ -153,8 +155,6 @@ def __init__( self.keras_inputs=[] self.keras_inputsshapes=[] - print(shapes) - for s in shapes: self.keras_inputs.append(keras.layers.Input(shape=s)) self.keras_inputsshapes.append(s) @@ -188,6 +188,26 @@ def setModel(self,model,**modelargs): if not self.keras_model: raise Exception('Setting model not successful') + def setGANModel(self, generator_func, discriminator_func): + ''' + The inputs are functions that generate a keras Model + The GAN output must match the discriminator input. + The first and only function argument of the discriminator must be the input. + The generator MUST get the same input. (e.g. both get a list of which one item is the + discriminator input, the other the generator input) + ''' + self.GAN_mode = True + self.create_generator = generator_func + self.create_discriminator = discriminator_func + + def _create_gan(self,discriminator, generator, gan_input): + import keras + discriminator.trainable=False + x = generator(gan_input) + gan_output = discriminator(x) + gan = keras.models.Model(inputs=gan_input, outputs=gan_output) + return gan + def defineCustomPredictionLabels(self, labels): self.train_data.defineCustomPredictionLabels(labels) self.val_data.defineCustomPredictionLabels(labels) @@ -204,30 +224,46 @@ def loadModel(self,filename): self.optimizer=self.keras_model.optimizer self.compiled=True + def setCustomOptimizer(self,optimizer): + self.optimizer = optimizer + self.custom_optimizer=True + def compileModel(self, learningrate, clipnorm=None, + discriminator_loss='binary_crossentropy', + generator_loss='binary_crossentropy', **compileargs): - if not self.keras_model: + if not self.keras_model and not self.GAN_mode: raise Exception('set model first') - from keras.optimizers import Adam self.startlearningrate=learningrate - if clipnorm: - self.optimizer = Adam(lr=self.startlearningrate,clipnorm=clipnorm) - else: - self.optimizer = Adam(lr=self.startlearningrate) - self.keras_model.compile(optimizer=self.optimizer,**compileargs) + + if not self.custom_optimizer: + from keras.optimizers import Adam + if clipnorm: + self.optimizer = Adam(lr=self.startlearningrate,clipnorm=clipnorm) + else: + self.optimizer = Adam(lr=self.startlearningrate) + + + if self.GAN_mode: + #self.optimizer = 'adam' #FIXME + self.generator= self.create_generator(self.keras_inputs) + self.generator.compile(optimizer=self.optimizer,loss=generator_loss,**compileargs) + self.discriminator= self.create_discriminator(self.keras_inputs) + self.discriminator.compile(optimizer=self.optimizer,loss=discriminator_loss,**compileargs) + self.gan = self._create_gan(self.discriminator, self.generator, self.keras_inputs) + self.gan.compile(optimizer=self.optimizer,loss=generator_loss,**compileargs) + else: + self.keras_model.compile(optimizer=self.optimizer,**compileargs) self.compiled=True def compileModelWithCustomOptimizer(self, customOptimizer, **compileargs): - if not self.keras_model: - raise Exception('set model first') - self.optimizer = customOptimizer - self.keras_model.compile(optimizer=self.optimizer,**compileargs) - self.compiled=True + raise Exception('DEPRECATED: please use setCustomOptimizer before calling compileModel') + def saveModel(self,outfile): self.keras_model.save(self.outputDir+outfile) @@ -247,31 +283,13 @@ def saveModel(self,outfile): #del f['optimizer_weights'] #f.close() - def trainModel(self, - nepochs, - batchsize, - stop_patience=-1, - lr_factor=0.5, - lr_patience=-1, - lr_epsilon=0.003, - lr_cooldown=6, - lr_minimum=0.000001, - maxqsize=5, - checkperiod=10, - additional_plots=None, - additional_callbacks=None, - **trainargs): + def _initTraining(self, + nepochs, + batchsize,maxqsize): - # check a few things, e.g. output dimensions etc. - # need implementation, but probably TF update SWAPNEEL - customtarget=self.train_data.getCustomPredictionLabels() - if customtarget: - pass - # work on self.model.outputs - # check here if the output dimension of the model fits the custom labels - - # write only after the output classes have been added + self.train_data.setBatchSize(batchsize) + self.val_data.setBatchSize(batchsize) self.train_data.writeToFile(self.outputDir+'trainsamples.dc') self.val_data.writeToFile(self.outputDir+'valsamples.dc') @@ -301,6 +319,33 @@ def trainModel(self, self.train_data.maxFilesOpen=nfilespre self.val_data.maxFilesOpen=min(int(nfilespre/2),1) + def trainModel(self, + nepochs, + batchsize, + stop_patience=-1, + lr_factor=0.5, + lr_patience=-1, + lr_epsilon=0.003, + lr_cooldown=6, + lr_minimum=0.000001, + maxqsize=5, + checkperiod=10, + additional_plots=None, + additional_callbacks=None, + **trainargs): + + + # check a few things, e.g. output dimensions etc. + # need implementation, but probably TF update SWAPNEEL + customtarget=self.train_data.getCustomPredictionLabels() + if customtarget: + pass + # work on self.model.outputs + # check here if the output dimension of the model fits the custom labels + + # write only after the output classes have been added + self._initTraining(nepochs,batchsize,maxqsize) + #self.keras_model.save(self.outputDir+'KERAS_check_last_model.h5') print('setting up callbacks') from .DeepJet_callbacks import DeepJet_callbacks @@ -343,13 +388,102 @@ def trainModel(self, return self.keras_model, self.callbacks.history + def _create_noised_inputs(self, dnn_inputs, noise_in_shapes): + import copy + import numpy as np + gen_inputs = copy.deepcopy(dnn_inputs) + for n in range(len(noise_in_shapes)): + if len(noise_in_shapes[n]): + gen_inputs[n] = np.random.normal(0,1, noise_in_shapes[n]) + return gen_inputs + def trainGAN(self, + nepochs, + batchsize, + noise_inputs=[], + gan_skipping_factor=1, + discr_skipping_factor=1, + maxqsize=5): + + ''' + This is just a first implementation. + in the end, it should follow the trainModel() function w.r.t. the interface (except for GAN specifics) + and support all the callbacks. + For that purpose, it is likely needed to copy and adapt this one: + https://github.com/keras-team/keras/blob/master/keras/engine/training_generator.py + + Also, savng the GAN and making sure weights are properly frozen etc needs to be implemented + ''' + + + self._initTraining(nepochs,batchsize,maxqsize) + + print(self.keras_inputsshapes[0]) + + import numpy as np + from sklearn.utils import shuffle + print(self.keras_inputs) + noise_in_shapes = [[] for i in range(len(self.keras_inputsshapes))] + for i in range(len(noise_in_shapes)): + if i in noise_inputs: + noise_in_shapes[i] = [batchsize] + self.keras_inputsshapes[i] + + nbatches_per_epoch = self.train_data.getNBatchesPerEpoch() + nepochs_train = nepochs - self.trainedepoches + _gen = self.train_data.generator() + for e in range(1,nepochs_train+1 ): + print('epoch ',e) + for batch in range(nbatches_per_epoch): + dnn_inputs, _ = _gen.next() #replace by noised ones + + if not batch%discr_skipping_factor: + + x_gen = self._create_noised_inputs(dnn_inputs, noise_in_shapes) + + generated_images = self.generator.predict(x_gen) + + y_dis = np.concatenate([np.zeros(batchsize, dtype='float32')+1., + np.zeros(batchsize, dtype='float32')],axis=0) + + x_dis = [np.concatenate([dnn_inputs[i],generated_images[i]],axis=0) + for i in range(len(dnn_inputs))] + + self.discriminator.trainable=True + self.discriminator.train_on_batch(x_dis, y_dis) + + + if not batch%gan_skipping_factor: + #create new noise + x_gen = self._create_noised_inputs(dnn_inputs, noise_in_shapes) + y_gen = np.zeros(batchsize, dtype='float32')+1. + + self.discriminator.trainable=False + self.gan.train_on_batch(x_gen, y_gen) + + #disc_outs = self.discriminator.evaluate( + # x_gen, y_gen, + # batch_size=batchsize) + # + #gan_outs = self.gan.evaluate( + # x_gen, y_gen, + # batch_size=batchsize) + + #print(disc_outs) + #print(gan_outs) + print(batch) + if not batch%100: + from tools import quickplot + quickplot(generated_images[0][0], "check.pdf") + + + + self.trainedepoches = nepochs def change_learning_rate(self, new_lr): import keras.backend as K K.set_value(self.keras_model.optimizer.lr, new_lr) - + From 6c99afd4760647c8a35045e271427f57a2608457 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 29 May 2019 16:38:09 +0200 Subject: [PATCH 055/437] GAN stuff --- DataCollection.py | 3 +- Layers.py | 88 ++++++++ Losses.py | 9 + bin/predict.py | 4 + training/training_base.py | 453 ++++++++++++++++++++++++++++++-------- 5 files changed, 466 insertions(+), 91 deletions(-) create mode 100644 Layers.py create mode 100644 Losses.py diff --git a/DataCollection.py b/DataCollection.py index 3294bb0..27f2cac 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -747,7 +747,8 @@ def __stackData(self, dataclass, selector): return out - + def replaceTruthForGAN(self, generated_array, original_truth): + return self.dataclass.replaceTruthForGAN(generated_array, original_truth) def generator(self): import numpy diff --git a/Layers.py b/Layers.py new file mode 100644 index 0000000..8558a89 --- /dev/null +++ b/Layers.py @@ -0,0 +1,88 @@ + +djc_global_layers_list={} + +from keras.layers import Layer +import tensorflow as tf + +class ScalarMultiply(Layer): + def __init__(self, factor, **kwargs): + super(ScalarMultiply, self).__init__(**kwargs) + self.factor=factor + + def compute_output_shape(self, input_shape): + return input_shape + + def call(self, inputs): + return inputs*self.factor + + def get_config(self): + config = {'factor': self.factor} + base_config = super(ScalarMultiply, self).get_config() + return dict(list(base_config.items()) + list(config.items() )) + + +djc_global_layers_list['ScalarMultiply']=ScalarMultiply + +class Print(Layer): + def __init__(self, message, **kwargs): + super(Print, self).__init__(**kwargs) + self.message=message + + def compute_output_shape(self, input_shape): + return input_shape + + def call(self, inputs): + return tf.Print(inputs,[inputs],self.message,summarize=300) + + def get_config(self): + config = {'message': self.message} + base_config = super(Print, self).get_config() + return dict(list(base_config.items()) + list(config.items() )) + + +djc_global_layers_list['Print']=Print + +### the following ones should go to DeepJetCore + +class ReplaceByNoise(Layer): + def __init__(self, **kwargs): + super(ReplaceByNoise, self).__init__(**kwargs) + + def compute_output_shape(self, input_shape): + return input_shape + + def call(self, inputs): + return tf.random_normal(shape=tf.shape(inputs), + mean=0.0, + stddev=1.0, + dtype='float32') + + + def get_config(self): + base_config = super(ReplaceByNoise, self).get_config() + return dict(list(base_config.items())) + + +djc_global_layers_list['ReplaceByNoise']=ReplaceByNoise + + + +class FeedForward(Layer): + def __init__(self, **kwargs): + super(FeedForward, self).__init__(**kwargs) + + def compute_output_shape(self, input_shape): + return input_shape + + def call(self, inputs): + return 1.*inputs + + + def get_config(self): + base_config = super(FeedForward, self).get_config() + return dict(list(base_config.items())) + + +djc_global_layers_list['FeedForward']=FeedForward + + diff --git a/Losses.py b/Losses.py new file mode 100644 index 0000000..6de815d --- /dev/null +++ b/Losses.py @@ -0,0 +1,9 @@ + +djc_global_loss_list = {} + +import tensorflow as tf + +def null_loss(truth, pred): + return tf.reduce_mean(truth*0.)+tf.reduce_mean(pred*0.) + +djc_global_loss_list['null_loss']=null_loss \ No newline at end of file diff --git a/bin/predict.py b/bin/predict.py index 4ec57ac..d9f3603 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -9,6 +9,8 @@ from keras.models import load_model from DeepJetCore.evaluation import testDescriptor +from DeepJetCore.Losses import * +from DeepJetCore.Layers import * from argparse import ArgumentParser from keras import backend as K import imp @@ -53,6 +55,8 @@ raise Exception('output directory must not exists yet') custom_objs = {} +custom_objs.update(djc_global_loss_list) +custom_objs.update(djc_global_layers_list) custom_objs.update(global_loss_list) custom_objs.update(global_layers_list) custom_objs.update(global_metrics_list) diff --git a/training/training_base.py b/training/training_base.py index 2f1f0e0..d8e7d58 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -12,6 +12,8 @@ from argparse import ArgumentParser import shutil from DeepJetCore.DataCollection import DataCollection +from DeepJetCore.Losses import * +from DeepJetCore.Layers import * from pdb import set_trace import imp @@ -36,6 +38,8 @@ print('No metrics module found, ignoring at your own risk') global_metrics_list = {} custom_objects_list = {} +custom_objects_list.update(djc_global_loss_list) +custom_objects_list.update(djc_global_layers_list) custom_objects_list.update(global_loss_list) custom_objects_list.update(global_layers_list) custom_objects_list.update(global_metrics_list) @@ -46,6 +50,7 @@ class training_base(object): def __init__( self, splittrainandtest=0.85, useweights=False, testrun=False, + testrun_fraction=0.1, resumeSilently=False, renewtokens=True, collection_class=DataCollection, @@ -142,7 +147,7 @@ def __init__( self.train_data.useweights=useweights if testrun: - self.train_data.split(0.02) + self.train_data.split(testrun_fraction) self.val_data=self.train_data else: self.val_data=self.train_data.split(splittrainandtest) @@ -202,7 +207,6 @@ def setGANModel(self, generator_func, discriminator_func): def _create_gan(self,discriminator, generator, gan_input): import keras - discriminator.trainable=False x = generator(gan_input) gan_output = discriminator(x) gan = keras.models.Model(inputs=gan_input, outputs=gan_output) @@ -231,8 +235,12 @@ def setCustomOptimizer(self,optimizer): def compileModel(self, learningrate, clipnorm=None, - discriminator_loss='binary_crossentropy', - generator_loss='binary_crossentropy', + discriminator_loss=['binary_crossentropy'], + generator_loss=None, + print_models=False, + discr_loss_weights=None, + gan_loss_weights=None, + metrics=None, **compileargs): if not self.keras_model and not self.GAN_mode: raise Exception('set model first') @@ -248,15 +256,35 @@ def compileModel(self, if self.GAN_mode: - #self.optimizer = 'adam' #FIXME + if metrics is None: + metrics=['accuracy'] + else: + if not ('accuracy' in metrics): + metrics = ['accuracy']+metrics + self.generator= self.create_generator(self.keras_inputs) - self.generator.compile(optimizer=self.optimizer,loss=generator_loss,**compileargs) + if generator_loss is None: + generator_loss = [null_loss for i in range(len(self.generator.outputs))] + self.generator.compile(optimizer=self.optimizer,loss=generator_loss,metrics=metrics,**compileargs) + self.discriminator= self.create_discriminator(self.keras_inputs) - self.discriminator.compile(optimizer=self.optimizer,loss=discriminator_loss,**compileargs) + self.discriminator.compile(optimizer=self.optimizer,loss=discriminator_loss,loss_weights=discr_loss_weights,metrics=metrics,**compileargs) + + self.discriminator.trainable=False self.gan = self._create_gan(self.discriminator, self.generator, self.keras_inputs) - self.gan.compile(optimizer=self.optimizer,loss=generator_loss,**compileargs) + self.gan.compile(optimizer=self.optimizer,loss=discriminator_loss,loss_weights=gan_loss_weights,metrics=metrics,**compileargs) + + if print_models: + print('GENERATOR:') + print(self.generator.summary()) + print('DISCRIMINATOR:') + print(self.discriminator.summary()) + print('GAN:') + print(self.gan.summary()) else: self.keras_model.compile(optimizer=self.optimizer,**compileargs) + if print_models: + print(self.keras_model.summary()) self.compiled=True def compileModelWithCustomOptimizer(self, @@ -266,7 +294,12 @@ def compileModelWithCustomOptimizer(self, def saveModel(self,outfile): - self.keras_model.save(self.outputDir+outfile) + if not self.GAN_mode: + self.keras_model.save(self.outputDir+outfile) + else: + self.gan.save(self.outputDir+'GAN_'+outfile) + self.generator.save(self.outputDir+'GEN_'+outfile) + self.discriminator.save(self.outputDir+'DIS_'+outfile) import tensorflow as tf import keras.backend as K tfsession=K.get_session() @@ -388,102 +421,342 @@ def trainModel(self, return self.keras_model, self.callbacks.history - def _create_noised_inputs(self, dnn_inputs, noise_in_shapes): - import copy - import numpy as np - gen_inputs = copy.deepcopy(dnn_inputs) - for n in range(len(noise_in_shapes)): - if len(noise_in_shapes[n]): - gen_inputs[n] = np.random.normal(0,1, noise_in_shapes[n]) - return gen_inputs - def trainGAN(self, - nepochs, - batchsize, - noise_inputs=[], + + def trainGAN_exp(self, + nepochs, + batchsize, gan_skipping_factor=1, discr_skipping_factor=1, - maxqsize=5): + verbose=1, + checkperiod=1, + additional_plots=None, + additional_callbacks=None): - ''' - This is just a first implementation. - in the end, it should follow the trainModel() function w.r.t. the interface (except for GAN specifics) - and support all the callbacks. - For that purpose, it is likely needed to copy and adapt this one: - https://github.com/keras-team/keras/blob/master/keras/engine/training_generator.py + self._initTraining(nepochs,batchsize,maxqsize=5) - Also, savng the GAN and making sure weights are properly frozen etc needs to be implemented - ''' + print('setting up callbacks') + from .DeepJet_callbacks import DeepJet_callbacks + #callbacks are just a placeholder for now + self.callbacks=DeepJet_callbacks(self.keras_model, + stop_patience=-1, + lr_factor=.9, + lr_patience=-1, + lr_epsilon=1, + lr_cooldown=1, + lr_minimum=1, + outputDir=self.outputDir, + checkperiod=checkperiod, + checkperiodoffset=self.trainedepoches, + additional_plots=additional_plots) + self.callbacks.callbacks=[] + #needs more dedicated callbacks - self._initTraining(nepochs,batchsize,maxqsize) + if additional_callbacks is not None: + if not isinstance(additional_callbacks, list): + additional_callbacks=[additional_callbacks] + self.callbacks.callbacks.extend(additional_callbacks) + - print(self.keras_inputsshapes[0]) - import numpy as np + gan_history, _ = self.gan_fit_generator(generator=self.train_data.generator(), + datacollection=self.train_data, + steps_per_epoch=self.train_data.getNBatchesPerEpoch(), + epochs=nepochs, + verbose=verbose, + callbacks_discriminator=self.callbacks.callbacks, + callbacks_gan=None, + validation_data=self.val_data.generator(), + validation_steps=self.val_data.getNBatchesPerEpoch(), + validation_freq=1, + class_weight=None, + gan_skipping_factor=gan_skipping_factor, + discr_skipping_factor=discr_skipping_factor, + max_queue_size=10, + initial_epoch=0) + + self.saveModel("KERAS_model.h5") + return self.gan, gan_history + + + def change_learning_rate(self, new_lr): + import keras.backend as K + if self.GAN_mode: + K.set_value(self.discriminator.optimizer.lr, new_lr) + K.set_value(self.gan.optimizer.lr, new_lr) + else: + K.set_value(self.keras_model.optimizer.lr, new_lr) + + + + def gan_fit_generator(self, + generator, + datacollection, + steps_per_epoch=None, + epochs=1, + verbose=1, + callbacks_discriminator=None, + callbacks_gan=None, + validation_data=None, + validation_steps=None, + class_weight=None, + gan_skipping_factor=1, + discr_skipping_factor=1, + validation_freq=1,###TBI FIXME + max_queue_size=10, + initial_epoch=0, + recover_discriminator=True + ): + """See docstring for `Model.fit_generator`.""" + + import keras from sklearn.utils import shuffle - print(self.keras_inputs) - noise_in_shapes = [[] for i in range(len(self.keras_inputsshapes))] - for i in range(len(noise_in_shapes)): - if i in noise_inputs: - noise_in_shapes[i] = [batchsize] + self.keras_inputsshapes[i] - - nbatches_per_epoch = self.train_data.getNBatchesPerEpoch() - nepochs_train = nepochs - self.trainedepoches - _gen = self.train_data.generator() - for e in range(1,nepochs_train+1 ): - print('epoch ',e) - for batch in range(nbatches_per_epoch): - dnn_inputs, _ = _gen.next() #replace by noised ones + import keras.callbacks as cbks + #from keras.training_utils import should_run_validation + from keras.utils.generic_utils import to_list + import numpy as np + + epoch = initial_epoch + + do_validation = bool(validation_data) + #DEBUG self.discriminator._make_train_function() + #DEBUG self.gan._make_train_function() + if do_validation and False: #DEBUG + self.discriminator._make_test_function() + self.gan._make_test_function() + + + d_out_labels = ['dis_' + n for n in self.discriminator.metrics_names ] + g_out_labels = ['gan_' + n for n in self.gan.metrics_names ] + + d_callback_metrics = d_out_labels + ['val_' + n for n in d_out_labels] + g_callback_metrics = g_out_labels + ['val_' + n for n in g_out_labels] + + # prepare callbacks + self.discriminator.history = cbks.History() + self.gan.history = cbks.History() + _callbacks = [cbks.BaseLogger( + stateful_metrics=self.discriminator.stateful_metric_names)] + _callbacks += [cbks.BaseLogger( + stateful_metrics=self.gan.stateful_metric_names)] + + if verbose: + _callbacks.append( + cbks.ProgbarLogger( + count_mode='steps', + stateful_metrics=self.gan.stateful_metric_names)) #one model is enough here!#use only gan here + + callbacks_gan = callbacks_gan or [] + callbacks_discriminator = callbacks_discriminator or [] + for c in callbacks_gan: + c.set_model(self.gan) + for c in callbacks_discriminator: + c.set_model(self.discriminator) + + _callbacks += (callbacks_gan) + (callbacks_discriminator) + [self.discriminator.history] + [self.gan.history] + callbacks = cbks.CallbackList(_callbacks) + + callbacks.set_params({ + 'epochs': epochs, + 'steps': steps_per_epoch, + 'verbose': verbose, + 'do_validation': do_validation, + 'metrics': d_callback_metrics + g_callback_metrics, + }) + #newer keras callbacks._call_begin_hook('train') + callbacks.on_train_begin() + + enqueuer = None + val_enqueuer = None + + try: + if do_validation: - if not batch%discr_skipping_factor: + val_data = validation_data + val_enqueuer_gen = val_data + + output_generator = generator + + ## callbacks.model.stop_training = False ##FIXME TBI + # Construct epoch logs. + epoch_logs = {} + skip_gan_training = False + while epoch < epochs: + for m in self.discriminator.stateful_metric_functions: + m.reset_states() + for m in self.gan.stateful_metric_functions: + m.reset_states() + callbacks.on_epoch_begin(epoch) + steps_done = 0 + batch_index = 0 + while steps_done < steps_per_epoch: + generator_output = next(output_generator) + + if not hasattr(generator_output, '__len__'): + raise ValueError('Output of generator should be ' + 'a tuple `(x, y, sample_weight)` ' + 'or `(x, y)`. Found: ' + + str(generator_output)) + + if len(generator_output) == 2: + x, y = generator_output + sample_weight = None + elif len(generator_output) == 3: + x, y, sample_weight = generator_output + else: + raise ValueError('Output of generator should be ' + 'a tuple `(x, y, sample_weight)` ' + 'or `(x, y)`. Found: ' + + str(generator_output)) + if x is None or len(x) == 0: + # Handle data tensors support when no input given + # step-size = 1 for data tensors + batch_size = 1 + elif isinstance(x, list): + batch_size = x[0].shape[0] + elif isinstance(x, dict): + batch_size = list(x.values())[0].shape[0] + else: + batch_size = x.shape[0] + # build batch logs + batch_logs = {'batch': batch_index, 'size': batch_size} + callbacks.on_batch_begin(batch_index, batch_logs) + + + #GAN training here - x_gen = self._create_noised_inputs(dnn_inputs, noise_in_shapes) - - generated_images = self.generator.predict(x_gen) + x_gen = self.generator.predict(x) - y_dis = np.concatenate([np.zeros(batchsize, dtype='float32')+1., - np.zeros(batchsize, dtype='float32')],axis=0) + #DEBUG - NEEDS CALLBACK + # REMOVE IN FULL VERSION + if False and steps_done%50: + forplots = np.concatenate([x_gen[0][:4], x[0][:4]],axis=0) + from tools import quickplot, plotgrid + plotgrid(forplots, nplotsx=4, nplotsy=2, outname="merged.pdf") + quickplot(x_gen[0][0], "gen.pdf") + quickplot(x[0][0], "data.pdf") - x_dis = [np.concatenate([dnn_inputs[i],generated_images[i]],axis=0) - for i in range(len(dnn_inputs))] + #this needs to be more generic and actually done for every list item + #replaceTruthForGAN gives a list - self.discriminator.trainable=True - self.discriminator.train_on_batch(x_dis, y_dis) - - - if not batch%gan_skipping_factor: - #create new noise - x_gen = self._create_noised_inputs(dnn_inputs, noise_in_shapes) - y_gen = np.zeros(batchsize, dtype='float32')+1. + adapted_truth_data = datacollection.replaceTruthForGAN( + generated_array=np.zeros(batch_size, dtype='float32')+1, + original_truth=y) - self.discriminator.trainable=False - self.gan.train_on_batch(x_gen, y_gen) - - #disc_outs = self.discriminator.evaluate( - # x_gen, y_gen, - # batch_size=batchsize) - # - #gan_outs = self.gan.evaluate( - # x_gen, y_gen, - # batch_size=batchsize) - - #print(disc_outs) - #print(gan_outs) - print(batch) - if not batch%100: - from tools import quickplot - quickplot(generated_images[0][0], "check.pdf") - - - - self.trainedepoches = nepochs - - def change_learning_rate(self, new_lr): - import keras.backend as K - K.set_value(self.keras_model.optimizer.lr, new_lr) - + adapted_truth_generated = datacollection.replaceTruthForGAN( + generated_array=np.zeros(batch_size, dtype='float32'), + original_truth=y) + + y_dis = [np.concatenate([adapted_truth_data[i],adapted_truth_generated[i]],axis=0) \ + for i in range(len(adapted_truth_data))] + + x_dis = [np.concatenate([x[i],x_gen[i]],axis=0) + for i in range(len(x))] + + y_dis_new = [shuffle(n, random_state=steps_done) for n in y_dis] + x_dis_new = [shuffle(n, random_state=steps_done) for n in x_dis] + + y_dis_b1 = [y_dis_new[i][:batch_size,...] for i in range(len(y_dis_new))] + y_dis_b2 = [y_dis_new[i][batch_size:,...] for i in range(len(y_dis_new))] + + x_dis_b1 = [x_dis_new[i][:batch_size,...] for i in range(len(x_dis_new))] + x_dis_b2 = [x_dis_new[i][batch_size:,...] for i in range(len(x_dis_new))] + + #add [:batch_size,...] + #to the above for cut-off + # TBI TBI FIXME + + ## FIXME: cut in half to have same batch size everywhere + # also here would be the place to implement weighting of discr versus gen + + if (not batch_index%discr_skipping_factor): + self.discriminator.trainable=True + outs = self.discriminator.train_on_batch(x_dis_b1, y_dis_b1, + sample_weight=sample_weight, + class_weight=class_weight) + + outs = self.discriminator.train_on_batch(x_dis_b2, y_dis_b2, + sample_weight=sample_weight, + class_weight=class_weight) + + outs = to_list(outs) + + if recover_discriminator: + if outs[1] < 0.5: + skip_gan_training=True + else: + skip_gan_training=False + for l, o in zip(d_out_labels, outs): + batch_logs[l] = o + + + if (not skip_gan_training) and (not batch_index%gan_skipping_factor): + self.discriminator.trainable=False + y_gen = np.zeros(batch_size, dtype='float32')+1. + outs = self.gan.train_on_batch(x, y_gen, + sample_weight=sample_weight, + class_weight=class_weight) + outs = to_list(outs) + for l, o in zip(g_out_labels, outs): + batch_logs[l] = o + + #callbacks._call_batch_hook('train', 'end', batch_index, batch_logs) + callbacks.on_batch_end(batch_index, batch_logs) + + batch_index += 1 + steps_done += 1 + + # Epoch finished. + if (steps_done >= steps_per_epoch and + do_validation): + # Note that `callbacks` here is an instance of + # `keras.callbacks.CallbackList` + + ## this evaluate will get problems with the truth definition + ## needs to be fixed in the generator? Or just make traindata do it? + + val_outs = self.discriminator.evaluate_generator( + val_enqueuer_gen, + validation_steps, + #callbacks=callbacks, + workers=0) + + val_outs = to_list(val_outs) + # Same labels assumed. + for l, o in zip(d_out_labels, val_outs): + epoch_logs['val_' + l] = o + + val_outs = self.gan.evaluate_generator( + val_enqueuer_gen, + validation_steps, + #callbacks=callbacks, + workers=0) + + val_outs = to_list(val_outs) + # Same labels assumed. + for l, o in zip(g_out_labels, val_outs): + epoch_logs['val_' + l] = o + + #if callbacks.model.stop_training: ##FIXME TBI + # break + + callbacks.on_epoch_end(epoch, epoch_logs) + epoch += 1 + #if callbacks.model.stop_training: ##FIXME TBI + # break + + finally: + try: + if enqueuer is not None: + enqueuer.stop() + finally: + if val_enqueuer is not None: + val_enqueuer.stop() + + #callbacks._call_end_hook('train') + callbacks.on_train_end() + return self.gan.history , self.discriminator.history + - - From 8a30c46ee7c1f07e718b825cd61afa1ef0372c6b Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 31 May 2019 09:46:21 +0200 Subject: [PATCH 056/437] new sum all keras layer --- Layers.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Layers.py b/Layers.py index 8558a89..47b8545 100644 --- a/Layers.py +++ b/Layers.py @@ -86,3 +86,23 @@ def get_config(self): djc_global_layers_list['FeedForward']=FeedForward + +class ReduceSumEntirely(Layer): + def __init__(self, **kwargs): + super(ReduceSumEntirely, self).__init__(**kwargs) + + + def compute_output_shape(self, input_shape): + return (input_shape[0],1) + + def call(self, inputs): + red_axes=(inputs.shape[1:]).as_list() + red_axes = [i+1 for i in range(len(red_axes))] + return tf.expand_dims(tf.reduce_sum(inputs,axis=red_axes),axis=1) + + def get_config(self): + base_config = super(ReduceSumEntirely, self).get_config() + return dict(list(base_config.items())) + + +djc_global_layers_list['ReduceSumEntirely']=ReduceSumEntirely \ No newline at end of file From 7db32a05fd6b2fcbf4cdf3042b376ca8e66a2a71 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Mon, 3 Jun 2019 16:18:18 +0200 Subject: [PATCH 057/437] fix in example --- bin/createSubpackage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index c6c6b6b..dc251aa 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -127,7 +127,7 @@ def readFromRootFile(self,filename,TupleMeanStd, weighter): def formatPrediction(self, predicted_list): format_names = ['prob_isA','prob_isB','prob_isC'] - out_pred = [predicted_list[:,0],predicted_list[:,1],predicted_list[:,2]] + out_pred = [predicted_list[0][:,0],predicted_list[0][:,1],predicted_list[0][:,2]] return out_pred, format_names From 5cc3610477c9ec3f14108554c01ad075a2d04272 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Tue, 4 Jun 2019 10:28:59 +0200 Subject: [PATCH 058/437] cuda lib locator --- bin/locate_cuda.py | 18 ++++++++++++++++++ env.sh | 9 ++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100755 bin/locate_cuda.py diff --git a/bin/locate_cuda.py b/bin/locate_cuda.py new file mode 100755 index 0000000..cc60246 --- /dev/null +++ b/bin/locate_cuda.py @@ -0,0 +1,18 @@ +#!/bin/env python + +import os +import subprocess + + +def locate_cuda(): + ldlibpath = str(os.environ['LD_LIBRARY_PATH']) + result = os.path.dirname(subprocess.check_output(['locate', 'libcublas.so.9.0']).split('\n')[0]) + if not (result in ldlibpath): + ldlibpath+=':'+result+'/' + result = os.path.dirname(subprocess.check_output(['locate', 'libcudnn.so.7']).split('\n')[0]) + if not (result in ldlibpath): + ldlibpath+=':'+result+'/' + print(ldlibpath) + + +locate_cuda() \ No newline at end of file diff --git a/env.sh b/env.sh index 990f2dd..2b0c055 100644 --- a/env.sh +++ b/env.sh @@ -9,8 +9,11 @@ fi export DEEPJETCORE=`pwd` -export PYTHONPATH=`pwd`/../:$PYTHONPATH -export LD_LIBRARY_PATH=`pwd`/compiled:$LD_LIBRARY_PATH -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/patatrack/cuda-9.1/targets/x86_64-linux/lib/:/data/patatrack/cuda-9.0/targets/x86_64-linux/lib/ export PATH=`pwd`/bin:$PATH +export PYTHONPATH=`pwd`/../:$PYTHONPATH +export LD_LIBRARY_PATH=`pwd`/compiled/:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`locate_cuda.py` +#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/patatrack/cuda-9.1/targets/x86_64-linux/lib/:/data/patatrack/cuda-9.0/targets/x86_64-linux/lib/ + export LD_PRELOAD=$CONDA_PREFIX/lib/libmkl_core.so:$CONDA_PREFIX/lib/libmkl_sequential.so + From d091f5143f97e2ff10a9282fb5c77ac5ee4c292b Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Tue, 4 Jun 2019 10:32:07 +0200 Subject: [PATCH 059/437] fix for non GPU machines --- bin/locate_cuda.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bin/locate_cuda.py b/bin/locate_cuda.py index cc60246..81f643e 100755 --- a/bin/locate_cuda.py +++ b/bin/locate_cuda.py @@ -6,10 +6,18 @@ def locate_cuda(): ldlibpath = str(os.environ['LD_LIBRARY_PATH']) - result = os.path.dirname(subprocess.check_output(['locate', 'libcublas.so.9.0']).split('\n')[0]) + result='' + try: + result = os.path.dirname(subprocess.check_output(['locate', 'libcublas.so.9.0']).split('\n')[0]) + except: + pass if not (result in ldlibpath): ldlibpath+=':'+result+'/' - result = os.path.dirname(subprocess.check_output(['locate', 'libcudnn.so.7']).split('\n')[0]) + result='' + try: + result = os.path.dirname(subprocess.check_output(['locate', 'libcudnn.so.7']).split('\n')[0]) + except: + pass if not (result in ldlibpath): ldlibpath+=':'+result+'/' print(ldlibpath) From 5a4dfe528ff92c38dd42b6c2fa6e69d51683748f Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 5 Jun 2019 10:47:44 +0200 Subject: [PATCH 060/437] a lot of fixes --- Weighter.py | 23 +++++--- bin/batch_conversion.py | 120 ++++++++++++---------------------------- bin/check_conversion.py | 66 +++++++++++----------- 3 files changed, 83 insertions(+), 126 deletions(-) diff --git a/Weighter.py b/Weighter.py index f47d5fc..f74f6a9 100644 --- a/Weighter.py +++ b/Weighter.py @@ -5,6 +5,7 @@ ''' from __future__ import print_function +import numpy as np import matplotlib #if no X11 use below @@ -23,21 +24,29 @@ def __init__(self): self.removeProbabilties=[] self.binweights=[] self.distributions=[] - self.xedges=[] - self.yedges=[] + self.xedges=[np.array([])] + self.yedges=[np.array([])] self.classes=[] self.refclassidx=0 self.undefTruth=[] def __eq__(self, other): 'A == B' + def _all(x): + if hasattr(x, 'all'): + return x.all() + if hasattr(x, '__iter__'): + return all(x) + else: return x + def comparator(this, that): 'compares lists of np arrays' - return all((i == j).all() for i,j in zip(this, that)) + return _all((i == j).all() for i,j in zip(this, that)) + return self.Axixandlabel == other.Axixandlabel and \ - all(self.axisX == other.axisX) and \ - all(self.axisY == other.axisY) and \ + _all(self.axisX == other.axisX) and \ + _all(self.axisY == other.axisY) and \ comparator(self.hists, other.hists) and \ comparator(self.removeProbabilties, other.removeProbabilties) and \ self.classes == other.classes and \ @@ -45,8 +54,8 @@ def comparator(this, that): self.undefTruth == other.undefTruth and \ comparator(self.binweights, other.binweights) and \ comparator(self.distributions, other.distributions) and \ - (self.xedges == other.xedges).all() and \ - (self.yedges == other.yedges).all() + _all(self.xedges == other.xedges) and \ + _all(self.yedges == other.yedges) def __ne__(self, other): 'A != B' diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index 07aef6e..c9c7ca4 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -25,7 +25,6 @@ print("please specify and output class") exit(-1) -cmssw_version='CMSSW_10_0_0' deep_jet_base = os.environ['DEEPJETCORE_SUBPACKAGE'] if len(deep_jet_base) < 1: @@ -35,44 +34,6 @@ deep_jet_base_name = os.path.basename(deep_jet_base) deep_jet_core = os.path.abspath((os.environ['DEEPJETCORE'])) - -print('creating CMSSW based installation of DeepJetCore to run on sl6 nodes') - -fullcommand=''' -source deactivate ; -cd {batchdir} ; -export SCRAM_ARCH=slc6_amd64_gcc630 ; -scramv1 project CMSSW {cmssw_version} ; -cd {cmssw_version}/src ; -echo setting up cmssw env ; -eval `scram runtime -sh` ; -cp -rL {djc} . ; -mkdir -p {DJ_base_name} ; -cp -rL {DJ}/modules {DJ_base_name}/ ; -cp {DJ}/* {DJ_base_name}/ ; -cd {batchdir}/{cmssw_version}/src/DeepJetCore/compiled ; -pwd ; -echo compiling DeepJetCore ; -make clean; -make -j4; -cd {batchdir}/{cmssw_version}/src/{DJ_base_name} ; -echo sourcing {batchdir}/{cmssw_version}/src/DeepJetCore ; - -cd {batchdir}/{cmssw_version}/src/DeepJetCore -export DEEPJETCORE=`pwd` -export PYTHONPATH=`pwd`/../:$PYTHONPATH -export LD_LIBRARY_PATH=`pwd`/compiled:$LD_LIBRARY_PATH -export PATH=`pwd`/bin:$PATH - -echo "compiling {DJ_base_name} (if needed)"; -echo {batchdir}/{cmssw_version}/src/{DJ_base_name}/modules -cd {batchdir}/{cmssw_version}/src/{DJ_base_name}/modules ; -make clean; -make -j4 ; -'''.format(DJ=deep_jet_base,DJ_base_name=deep_jet_base_name, djc=deep_jet_core, batchdir=args.batch_dir,cmssw_version=cmssw_version) - -#print(fullcommand) -#exit() if os.path.isdir(args.out): print ("output dir must not exists") @@ -83,35 +44,28 @@ os.mkdir(args.batch_dir) if not os.path.isdir('%s/batch' % args.batch_dir): - os.mkdir('%s/batch' % args.batch_dir) + os.mkdir('%s/batch' % args.batch_dir) - -os.system(fullcommand) - - -djc_cmssw=args.batch_dir+'/'+cmssw_version +'/src/DeepJetCore' - - if not (len(args.meansfrom) or args.testdatafor): - #Run a fisrt round of root conversion to get the means/std and weights - print('creating a dummy datacollection for means/norms and weighter (can take a while)...') - cmd = [ - 'convertFromRoot.py', - '-i', args.infile, - '-c', args.c, - '-o', args.out, - '--nforweighter', args.nforweighter, - '--means' - ] - proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = proc.communicate() - code = proc.wait() - - if code != 0: - raise RuntimeError('The first round of root conversion failed with message: \n\n%s' % err) - else: - print('means/norms/weighter produced successfully') + #Run a fisrt round of root conversion to get the means/std and weights + print('creating a dummy datacollection for means/norms and weighter (can take a while)...') + cmd = [ + 'convertFromRoot.py', + '-i', args.infile, + '-c', args.c, + '-o', args.out, + '--nforweighter', args.nforweighter, + '--means' + ] + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = proc.communicate() + code = proc.wait() + + if code != 0: + raise RuntimeError('The first round of root conversion failed with message: \n\n%s' % err) + else: + print('means/norms/weighter produced successfully') elif args.meansfrom: if not os.path.exists(args.meansfrom): @@ -123,12 +77,12 @@ inputs = [i for i in open(args.infile)] def chunkify(l, n): - """Yield successive n-sized chunks from l.""" - for i in range(0, len(l), n): - yield l[i:i + n] + """Yield successive n-sized chunks from l.""" + for i in range(0, len(l), n): + yield l[i:i + n] if not args.infile.endswith('.txt'): - raise ValueError('The code assumes that the input files has .txt extension') + raise ValueError('The code assumes that the input files has .txt extension') print('splitting input file...') @@ -136,12 +90,12 @@ def chunkify(l, n): batch_txts = [] nchunks = 0 for idx, chunk in enumerate(chunkify(inputs, len(inputs)/args.nchunks)): - name = txt_template % idx - batch_txts.append(name) - if not args.useexistingsplit: - with open(name, 'w') as cfile: - cfile.write(''.join(chunk)) - nchunks = idx + name = txt_template % idx + batch_txts.append(name) + if not args.useexistingsplit: + with open(name, 'w') as cfile: + cfile.write(''.join(chunk)) + nchunks = idx batch_template = '''#!/bin/bash @@ -149,14 +103,8 @@ def chunkify(l, n): echo "JOBSUB::RUN job running" trap "echo JOBSUB::FAIL job killed" SIGTERM BASEDIR=`pwd` -cd {djc_cmssw} -eval `scram runtime -sh` #get glibc libraries -export PATH={djc_cmssw}/bin:$PATH -export LD_LIBRARY_PATH={djc_cmssw}/compiled:$LD_LIBRARY_PATH -export LD_LIBRARY_PATH={djc_cmssw}/../{DJ}/modules:$LD_LIBRARY_PATH -export PYTHONPATH={djc_cmssw}/../:$PYTHONPATH -export PYTHONPATH={djc_cmssw}/../{DJ}/modules:$PYTHONPATH -cd $BASEDIR +cd {subpackage} +source env.sh convertFromRoot.py "$@" exitstatus=$? if [ $exitstatus != 0 ] @@ -165,15 +113,15 @@ def chunkify(l, n): else echo JOBSUB::SUCC job ended sucessfully fi -'''.format(DJ=deep_jet_base_name,djc_cmssw=djc_cmssw) +'''.format(subpackage=deep_jet_base) batch_script = '%s/batch.sh' % args.batch_dir with open(batch_script, 'w') as bb: - bb.write(batch_template) + bb.write(batch_template) means_file = '%s/batch_template.dc' % os.path.realpath(args.out) if not args.testdatafor else args.testdatafor option = '--usemeansfrom' if not args.testdatafor else '--testdatafor' with open('%s/submit.sub' % args.batch_dir, 'w') as bb: - bb.write(''' + bb.write(''' executable = {EXE} arguments = -i {INFILE} -c {CLASS} -o {OUT} --nothreads --batch conversion.$(ProcId).dc {OPTION} {MEANS} output = batch/con_out.$(ProcId).out diff --git a/bin/check_conversion.py b/bin/check_conversion.py index 0b7356e..6543745 100755 --- a/bin/check_conversion.py +++ b/bin/check_conversion.py @@ -7,11 +7,11 @@ import os def grep(fname, pattern): - with open(fname) as infile: - for line in infile: - if pattern in line: - return True - return False + with open(fname) as infile: + for line in infile: + if pattern in line: + return True + return False parser = ArgumentParser('program to check batch conversion of root tuples to traindata format') parser.add_argument("indir", help="input dir of the batch task", metavar="FILE") @@ -21,12 +21,12 @@ def grep(fname, pattern): general_lines = [] proc_lines = [] for line in sub_lines: - if '$(ProcId)' in line: - proc_lines.append(line.replace('$(ProcId)', '{IDX}')) - elif 'queue ' in line: - pass #nothing to be done - else: - general_lines.append(line) + if '$(ProcId)' in line: + proc_lines.append(line.replace('$(ProcId)', '{IDX}')) + elif 'queue ' in line: + pass #nothing to be done + else: + general_lines.append(line) proc_lines.append('queue\n') proc_lines = ''.join(proc_lines) @@ -39,10 +39,10 @@ def grep(fname, pattern): successful=[ i.split(".")[-2] for i in outputs if grep(i, 'JOBSUB::SUCC')] def get_output_dir(): - batch_args = [i for i in open('%s/submit.sub' % args.indir) if 'arguments' in i][0] - batch_args = batch_args.split('=')[1].split('-') - output_dir = [i for i in batch_args if i.startswith('o ')][0].split(' ')[1] - return output_dir + batch_args = [i for i in open('%s/submit.sub' % args.indir) if 'arguments' in i][0] + batch_args = batch_args.split('=')[1].split(' ') + output_dir = [batch_args[i+1] for i in range(len(batch_args)) if batch_args[i].startswith('-o')][0] + return output_dir @@ -69,23 +69,23 @@ def merge_successful(): if len(failed) == 0: - print 'All jobs successfully completed, merging...' - merged=merge_successful() - dname = os.path.dirname(merged.originRoots[0]) - infiles = glob('%s/*.root' % dname) - if len(infiles) != len(merged.originRoots): - print '\n\n\nThere are missing files that were not converted, maybe something went wrong!\n\n\n' + print 'All jobs successfully completed, merging...' + merged=merge_successful() + dname = os.path.dirname(merged.originRoots[0]) + infiles = glob.glob('%s/*.root' % dname) + if len(infiles) != len(merged.originRoots): + print '\n\n\nThere are missing files that were not converted, maybe something went wrong!\n\n\n' else: - keep_going = raw_input('%d/%d jobs have failed, should I recover them? [yY/nN] ' % (len(failed), len(outputs))) - if keep_going.lower() == 'n': - merge_anyways = raw_input('Should I merge the sucessfully converted files (%d)? [yY/nN] ' % len(successful)) - if merge_anyways.lower() == 'n': exit(0) - merge_successful() - exit(0) - - idxs = [os.path.basename(i).split('.')[1] for i in failed] - with open('%s/rescue.sub' % args.indir, 'w') as jdl: - jdl.write(''.join(general_lines)) - jdl.write('\n'.join([proc_lines.format(IDX=i) for i in idxs])) - print 'rescue file created' + keep_going = raw_input('%d/%d jobs have failed, should I recover them? [yY/nN] ' % (len(failed), len(outputs))) + if keep_going.lower() == 'n': + merge_anyways = raw_input('Should I merge the sucessfully converted files (%d)? [yY/nN] ' % len(successful)) + if merge_anyways.lower() == 'n': exit(0) + merge_successful() + exit(0) + + idxs = [os.path.basename(i).split('.')[1] for i in failed] + with open('%s/rescue.sub' % args.indir, 'w') as jdl: + jdl.write(''.join(general_lines)) + jdl.write('\n'.join([proc_lines.format(IDX=i) for i in idxs])) + print 'rescue file created' From 109e8ce2f168520fc8b6c31d1d4e6240f63c5dda Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 5 Jun 2019 14:37:30 +0200 Subject: [PATCH 061/437] one fix of a small bug and one performance improvement --- training/DeepJet_callbacks.py | 8 ++++++-- training/training_base.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index e4acda8..9e0bbd5 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -216,6 +216,7 @@ def __init__(self, super(PredictCallback, self).__init__() self.samplefile=samplefile self.function_to_apply=function_to_apply + self.counter=0 self.after_n_batches=after_n_batches self.run_on_epoch_end=on_epoch_end @@ -240,13 +241,16 @@ def predict_and_call(self,counter): self.function_to_apply(counter,self.td.x,predicted,self.td.y) def on_epoch_end(self, epoch, logs=None): + self.counter=0 if not self.run_on_epoch_end: return self.predict_and_call(epoch) def on_batch_end(self, batch, logs=None): if self.after_n_batches<=0: return - if batch%self.after_n_batches: return - self.predict_and_call(batch) + self.counter+=1 + if self.counter>self.after_n_batches: + self.counter=0 + self.predict_and_call(batch) diff --git a/training/training_base.py b/training/training_base.py index d8e7d58..b7a3cde 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -282,7 +282,7 @@ def compileModel(self, print('GAN:') print(self.gan.summary()) else: - self.keras_model.compile(optimizer=self.optimizer,**compileargs) + self.keras_model.compile(optimizer=self.optimizer,metrics=metrics,**compileargs) if print_models: print(self.keras_model.summary()) self.compiled=True From b79d2d0183472eaad87a571e62d8f6308c100caa Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Thu, 6 Jun 2019 11:02:56 +0200 Subject: [PATCH 062/437] BUGFIX FOR EXAMPLE DATA GENERATOR --- compiled/to_bin/make_example_data.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/compiled/to_bin/make_example_data.cpp b/compiled/to_bin/make_example_data.cpp index d9794de..09aa31e 100644 --- a/compiled/to_bin/make_example_data.cpp +++ b/compiled/to_bin/make_example_data.cpp @@ -147,7 +147,7 @@ int main(int argc, char* argv[]){ int type=0; for(size_t e=0;e<(size_t)nevents;e++){ - /* + gen.setType(type); if(type==0){ isA=1;isB=0;isC=0; @@ -162,13 +162,7 @@ int main(int argc, char* argv[]){ type++; if(type>2) type=0; -*/ - - ///testing - gen.setType(1); - gen.gen(); - ///testing auto s = gen.getImageSeq(); sigsum=0; From e2f1419ee68b4f6a3494dc8689062f0c5692485d Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 7 Jun 2019 15:22:41 +0200 Subject: [PATCH 063/437] updated to TF 1.13, CUDA10 --- environment/djcenv.conda | 11 ++++------- environment/djcenv_gpu.pip | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/environment/djcenv.conda b/environment/djcenv.conda index 24f9951..3abee35 100644 --- a/environment/djcenv.conda +++ b/environment/djcenv.conda @@ -3,6 +3,7 @@ # platform: linux-64 @EXPLICIT https://repo.continuum.io/pkgs/main/linux-64/ca-certificates-2019.1.23-0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/libgfortran-3.0.0-1.tar.bz2 https://repo.continuum.io/pkgs/main/linux-64/libstdcxx-ng-8.2.0-hdf63c60_1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/expat-2.1.0-0.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/fftw-3.3.4-2.tar.bz2 @@ -15,7 +16,6 @@ https://repo.continuum.io/pkgs/free/linux-64/jpeg-9b-0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libffi-3.2.1-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libgcc-5.2.0-0.tar.bz2 https://repo.continuum.io/pkgs/main/linux-64/libgcc-ng-8.2.0-hdf63c60_1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libgfortran-3.0.0-1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libiconv-1.14-0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/libxcb-1.12-1.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/linux-headers-2.6.32-1.tar.bz2 @@ -45,19 +45,16 @@ https://repo.continuum.io/pkgs/free/linux-64/cloog-0.18.0-0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/freetype-2.5.5-2.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/gstreamer-1.8.0-0.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/mpc-1.0.1-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/numpy-1.13.1-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/six-1.10.0-py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/numexpr-2.6.2-np113py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/scikit-learn-0.18.2-np113py27_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/wheel-0.29.0-py27_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/fontconfig-2.12.1-3.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/gcc-4.8.2-25.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/graphviz-2.38.0-4.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/gst-plugins-base-1.8.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/numexpr-2.6.2-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/scipy-0.19.1-np113py27_0.tar.bz2 +https://repo.continuum.io/pkgs/free/linux-64/pytables-3.3.0-np113py27_0.tar.bz2 https://repo.continuum.io/pkgs/main/linux-64/setuptools-41.0.1-py27_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/pip-9.0.1-py27_1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/pytables-3.3.0-np113py27_0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/qt-5.6.2-3.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/scikit-learn-0.18.2-np113py27_0.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/root-6.04-py2.7_gcc4.8.2.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/root-numpy-4.4.0-root6.04_py2.7.tar.bz2 diff --git a/environment/djcenv_gpu.pip b/environment/djcenv_gpu.pip index 57845bb..651f7bf 100644 --- a/environment/djcenv_gpu.pip +++ b/environment/djcenv_gpu.pip @@ -1,8 +1,8 @@ -tensorflow-gpu==1.8.0 absl-py==0.7.1 astor==0.7.1 backports.weakref==1.0.post1 bleach==1.5.0 +blessings==1.7 certifi==2019.3.9 cycler==0.10.0 enum34==1.1.6 @@ -10,8 +10,9 @@ funcsigs==1.0.2 functools32==3.2.3.post2 futures==3.2.0 gast==0.2.2 +gpustat==0.5.0 grpcio==1.20.1 -h5py==2.6.0 +h5py==2.9.0 html5lib==0.9999999 Keras==2.2.4 Keras-Applications==1.0.7 @@ -21,18 +22,23 @@ matplotlib==2.0.0 mock==2.0.0 numexpr==2.6.2 numpy==1.16.3 +nvidia-ml-py==375.53.1 pbr==2.0.0 protobuf==3.7.1 +psutil==5.6.2 pyparsing==2.2.0 python-dateutil==2.6.0 pytz==2016.10 -PyYAML==3.12 +PyYAML==5.1 root-numpy==4.4.0.dev0 scikit-learn==0.18.2 -scipy==0.19.1 -six==1.10.0 +scipy==1.2.1 +setGPU==0.0.7 +six==1.12.0 subprocess32==3.2.7 tables==3.3.0 -tensorboard==1.8.0 +tensorboard==1.13.1 +tensorflow-estimator==1.13.0 +tensorflow-gpu==1.13.1 termcolor==1.1.0 Werkzeug==0.15.2 From 1b28df1ea2fb97c333d34680b0d0ad0a55a585fd Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 7 Jun 2019 15:24:11 +0200 Subject: [PATCH 064/437] non gpu env --- environment/djcenv.pip | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/environment/djcenv.pip b/environment/djcenv.pip index ff514bb..e6fa0aa 100644 --- a/environment/djcenv.pip +++ b/environment/djcenv.pip @@ -2,6 +2,7 @@ absl-py==0.7.1 astor==0.7.1 backports.weakref==1.0.post1 bleach==1.5.0 +blessings==1.7 certifi==2019.3.9 cycler==0.10.0 enum34==1.1.6 @@ -9,8 +10,9 @@ funcsigs==1.0.2 functools32==3.2.3.post2 futures==3.2.0 gast==0.2.2 +gpustat==0.5.0 grpcio==1.20.1 -h5py==2.6.0 +h5py==2.9.0 html5lib==0.9999999 Keras==2.2.4 Keras-Applications==1.0.7 @@ -20,19 +22,23 @@ matplotlib==2.0.0 mock==2.0.0 numexpr==2.6.2 numpy==1.16.3 +nvidia-ml-py==375.53.1 pbr==2.0.0 protobuf==3.7.1 +psutil==5.6.2 pyparsing==2.2.0 python-dateutil==2.6.0 pytz==2016.10 -PyYAML==3.12 +PyYAML==5.1 root-numpy==4.4.0.dev0 scikit-learn==0.18.2 -scipy==0.19.1 -six==1.10.0 +scipy==1.2.1 +setGPU==0.0.7 +six==1.12.0 subprocess32==3.2.7 tables==3.3.0 -tensorboard==1.8.0 -tensorflow==1.8.0 +tensorboard==1.13.1 +tensorflow-estimator==1.13.0 +tensorflow==1.13.1 termcolor==1.1.0 Werkzeug==0.15.2 From 1d0d9f9e61b5b58522032ccfe9f56d376d17a070 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 7 Jun 2019 15:27:14 +0200 Subject: [PATCH 065/437] batch support and a few performance imprvements --- DataCollection.py | 11 +++++++-- training/DeepJet_callbacks.py | 8 +++++-- training/training_base.py | 42 ++++++++++++++++++++++++++--------- 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 27f2cac..22820a0 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -828,7 +828,9 @@ def startRead(counter,filename,shuffleseed): def __getLast(self): + #print('joining...') #DEBUG PERF self.tdlist[self.lastcounter].readIn_join(wasasync=True,waitforStart=True) + #print('joined') #DEBUG PERF td=self.tdlist[self.lastcounter] #print('got ',self.lastcounter) @@ -911,10 +913,13 @@ def get(self): # psamples=0 #for random shuffling nepoch=0 + shufflecounter=0 + shufflecounter2=0 while 1: if processedbatches == totalbatches: processedbatches=0 nepoch+=1 + shufflecounter2+=1 lastbatchrest=0 if processedbatches == 0: #reset buffer and start new @@ -974,7 +979,9 @@ def get(self): else: #randomly^2 shuffle - not needed every time - if psamples%2==0 and nepoch%2==1: + if shufflecounter>1 and shufflecounter2>1: + shufflecounter=0 + shufflecounter2=0 for i in range(0,dimx): td.x[i]=shuffle(td.x[i], random_state=psamples) for i in range(0,dimy): @@ -982,7 +989,7 @@ def get(self): for i in range(0,dimw): td.w[i]=shuffle(td.w[i], random_state=psamples) - + shufflecounter+=1 for i in range(0,dimx): if(xstored[i].ndim==1): diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 9e0bbd5..ae6631d 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -96,15 +96,19 @@ def on_epoch_end(self,epoch, epoch_logs={}): class Losstimer(Callback): - def __init__(self, every = 5): + def __init__(self, every = 50): self.points = [] self.every = every + self.counter=0 def on_train_begin(self, logs): self.start = time() def on_batch_end(self, batch, logs): - if (batch % self.every) != 0: return + if (self.counter != self.every): + self.counter+=1 + return + self.counter = 0 elapsed = time() - self.start cop = {} for i, j in logs.iteritems(): diff --git a/training/training_base.py b/training/training_base.py index b7a3cde..b6006d2 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -64,12 +64,23 @@ def __init__( parser.add_argument('inputDataCollection') parser.add_argument('outputDir') parser.add_argument('--modelMethod', help='Method to be used to instantiate model in derived training class', metavar='OPT', default=None) - parser.add_argument("--gpu", help="select specific GPU", type=int, metavar="OPT", default=-1) + parser.add_argument("--gpu", help="select specific GPU", metavar="OPT", default=-1) parser.add_argument("--gpufraction", help="select memory fraction for GPU", type=float, metavar="OPT", default=-1) + parser.add_argument("--submitbatch", help="submits the job to condor" , default=False, action="store_true") + parser.add_argument("--isbatchrun", help="is batch run", default=False, action="store_true") + args = parser.parse_args() self.args = args - import os + import sys + self.argstring = sys.argv + #sanity check + if args.isbatchrun: + args.submitbatch=False + resumeSilently=True + + if args.submitbatch: + print('submitting batch job. Model will be compiled for testing before submission') import matplotlib @@ -114,8 +125,12 @@ def __init__( self.compiled=False self.checkpointcounter=0 self.renewtokens=renewtokens + if args.isbatchrun: + self.renewtokens=False self.callbacks=None self.custom_optimizer=False + self.copied_script="" + self.submitbatch=args.submitbatch self.GAN_mode=False @@ -138,10 +153,12 @@ def __init__( self.outputDir+='/' #copy configuration to output dir - shutil.copyfile(scriptname,self.outputDir+os.path.basename(scriptname)) + if not args.isbatchrun: + shutil.copyfile(scriptname,self.outputDir+os.path.basename(scriptname)) + self.copied_script = self.outputDir+os.path.basename(scriptname) + else: + self.copied_script = scriptname - - self.train_data = collection_class() self.train_data.readFromFile(self.inputData) self.train_data.useweights=useweights @@ -168,11 +185,11 @@ def __init__( kfile = self.outputDir+'/KERAS_check_model_last.h5' \ if os.path.isfile(self.outputDir+'/KERAS_check_model_last.h5') else \ self.outputDir+'/KERAS_model.h5' - if not os.path.isfile(kfile): - print('you cannot resume a training that did not train for at least one epoch.\nplease start a new training.') - exit() - self.loadModel(kfile) - self.trainedepoches=sum(1 for line in open(self.outputDir+'losses.log')) + if os.path.isfile(kfile): + self.loadModel(kfile) + self.trainedepoches=sum(1 for line in open(self.outputDir+'losses.log')) + else: + print('no model found in existing output dir, starting training from scratch') def __del__(self): @@ -321,6 +338,11 @@ def _initTraining(self, batchsize,maxqsize): + if self.submitbatch: + from DeepJetCore.training.batchTools import submit_batch + submit_batch(self) + exit() #don't delete this! + self.train_data.setBatchSize(batchsize) self.val_data.setBatchSize(batchsize) self.train_data.writeToFile(self.outputDir+'trainsamples.dc') From a822e8da67509ee245a584dba17dd02a03e1d1ed Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 7 Jun 2019 15:52:20 +0200 Subject: [PATCH 066/437] NOT SUPPORTED dev for multi-gpu --- training/training_base.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/training/training_base.py b/training/training_base.py index b6006d2..25e21ad 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -15,6 +15,7 @@ from DeepJetCore.Losses import * from DeepJetCore.Layers import * from pdb import set_trace +from keras.utils import multi_gpu_model import imp try: @@ -96,7 +97,7 @@ def __init__( else: os.environ['CUDA_DEVICE_ORDER'] = 'PCI_BUS_ID' os.environ['CUDA_VISIBLE_DEVICES'] = str(args.gpu) - print('running on GPU '+str(args.gpu)) + print('running on GPU(s) '+str(args.gpu)) if args.gpufraction>0 and args.gpufraction<1: import sys @@ -113,6 +114,11 @@ def __init__( import keras + self.ngpus=1 + if (not args.gpu<0) and len(args.gpu): + self.ngpus=len([i for i in args.gpu.split(',')]) + print('running on '+str(self.ngpus)+ ' gpus') + self.keras_inputs=[] self.keras_inputsshapes=[] self.keras_model=None @@ -262,6 +268,10 @@ def compileModel(self, if not self.keras_model and not self.GAN_mode: raise Exception('set model first') + if self.ngpus>1: + print('Model being compiled for '+str(self.ngpus)+' gpus') + self.keras_model = multi_gpu_model(self.keras_model, gpus=self.ngpus) + self.startlearningrate=learningrate if not self.custom_optimizer: From a10707a0d84d2226a2dd643ad86f2846a769af0b Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 7 Jun 2019 18:01:47 +0200 Subject: [PATCH 067/437] fix --- training/batchTools.py | 65 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 training/batchTools.py diff --git a/training/batchTools.py b/training/batchTools.py new file mode 100644 index 0000000..3758835 --- /dev/null +++ b/training/batchTools.py @@ -0,0 +1,65 @@ + +#can pipe config from stdin to condor_submit! +#executable, arguments + +#add feedback from traindata arguments +#add not requesting new directory after creating one in the batch submission + +from DeepJetCore.training.training_base import training_base +import os, sys, stat + +def submit_batch(trainingbase): + + subpackage = os.environ['DEEPJETCORE_SUBPACKAGE'] + + commandline = " ".join(trainingbase.argstring) + + scriptpath = trainingbase.outputDir+'batchscript.sh' + + condorpath = trainingbase.outputDir+'condor.sub' + + #create the batch script + batch_scipt=''' +#!/bin/zsh +echo "running DeepJetCore job::setting up environment" +cd {subpackage} +pwd +source {subpackage}/env.sh +cd {jobdir} +echo "running DeepJetCore job::training" +python {fullcommand} +echo "job done" + '''.format(subpackage=subpackage, + jobdir=trainingbase.outputDir, + trainingscript=trainingbase.copied_script, + fullcommand=commandline+ ' --isbatchrun') + + with open(scriptpath,'w') as scriptfile: + scriptfile.write(batch_scipt) + + os.chmod(scriptpath, stat.S_IRWXU | + stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) + + condor_file=''' +executable = /bin/bash +arguments = {scriptpath} +output = {outdir}batch.out +error = {outdir}batch.err +log = {outdir}batch.log +getenv = True +#+MaxRuntime = 431999 +request_GPUs = {ngpus} +request_cpus = 4 +queue 1 + '''.format(scriptpath=scriptpath, + outdir=trainingbase.outputDir, + ngpus=trainingbase.ngpus) + + with open(condorpath,'w') as condorfile: + condorfile.write(condor_file) + + os.system('condor_submit '+condorpath) + print('job submitted') + + + \ No newline at end of file From fbcd23d7f2d978fe12c740d694dc1d0a1f32e60c Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Tue, 11 Jun 2019 14:11:29 +0200 Subject: [PATCH 068/437] example data bug fix --- bin/createSubpackage.py | 8 ++++++-- compiled/to_bin/make_example_data.cpp | 18 +++++++++--------- training/training_base.py | 4 ++-- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index dc251aa..c73b4ec 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -284,20 +284,22 @@ def formatPrediction(self, predicted_list): from DeepJetCore.training.training_base import training_base import keras from keras.models import Model -from keras.layers import Dense, Conv2D, Flatten #etc +from keras.layers import Dense, Conv2D, Flatten, BatchNormalization #etc def my_model(Inputs,nclasses,nregressions,otheroption): x = Inputs[0] #this is the self.x list from the TrainData data structure + x = BatchNormalization(momentum=0.9)(x) x = Conv2D(8,(4,4),activation='relu', padding='same')(x) x = Conv2D(8,(4,4),activation='relu', padding='same')(x) x = Conv2D(8,(4,4),activation='relu', padding='same')(x) + x = BatchNormalization(momentum=0.9)(x) x = Conv2D(8,(4,4),strides=(2,2),activation='relu', padding='valid')(x) x = Conv2D(4,(4,4),strides=(2,2),activation='relu', padding='valid')(x) x = Flatten()(x) x = Dense(32, activation='relu')(x) - x = Dense(nclasses)(x) + x = Dense(nclasses, activation='softmax')(x) predictions = [x] return Model(inputs=Inputs, outputs=predictions) @@ -305,9 +307,11 @@ def my_model(Inputs,nclasses,nregressions,otheroption): def my_regression_model(Inputs,nclasses,nregressions,otheroption): x = Inputs[0] #this is the self.x list from the TrainData data structure + x = BatchNormalization(momentum=0.9)(x) x = Conv2D(8,(4,4),activation='relu', padding='same')(x) x = Conv2D(8,(4,4),activation='relu', padding='same')(x) x = Conv2D(8,(4,4),activation='relu', padding='same')(x) + x = BatchNormalization(momentum=0.9)(x) x = Conv2D(8,(4,4),strides=(2,2),activation='relu', padding='valid')(x) x = Conv2D(4,(4,4),strides=(2,2),activation='relu', padding='valid')(x) x = Flatten()(x) diff --git a/compiled/to_bin/make_example_data.cpp b/compiled/to_bin/make_example_data.cpp index 09aa31e..ec43816 100644 --- a/compiled/to_bin/make_example_data.cpp +++ b/compiled/to_bin/make_example_data.cpp @@ -148,7 +148,7 @@ int main(int argc, char* argv[]){ for(size_t e=0;e<(size_t)nevents;e++){ - gen.setType(type); + gen.setType(type+1); if(type==0){ isA=1;isB=0;isC=0; } @@ -212,21 +212,21 @@ void dataGenerator::gen(){ yw = 0.5*xw*rand_->Uniform(0.95,1.05); //for testing - xhi = 0.75; - xlow = 0.6; + // xhi = 0.75; + // xlow = 0.6; } else if(type_==2){ //class 2 yw = rand_->Uniform(0.1,0.15); xw = 1.2*yw*rand_->Uniform(0.95,1.05); - xhi = 0.4; - xlow = 0.25; + // xhi = 0.4; + // xlow = 0.25; } else if(type_>2){ - xlow=-5; - xhi = 5; - ylow = -5; - yhi = 5; + // xlow=-5; + // xhi = 5; + // ylow = -5; + // yhi = 5; xw = rand_->Uniform(3,4); yw = rand_->Uniform(2,4); } diff --git a/training/training_base.py b/training/training_base.py index 25e21ad..d9bb5c4 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -81,7 +81,7 @@ def __init__( resumeSilently=True if args.submitbatch: - print('submitting batch job. Model will be compiled for testing before submission') + print('submitting batch job. Model will be compiled for testing before submission (GPU settings being ignored)') import matplotlib @@ -268,7 +268,7 @@ def compileModel(self, if not self.keras_model and not self.GAN_mode: raise Exception('set model first') - if self.ngpus>1: + if self.ngpus>1 and not self.submitbatch: print('Model being compiled for '+str(self.ngpus)+' gpus') self.keras_model = multi_gpu_model(self.keras_model, gpus=self.ngpus) From 309d7d1f6ca5fc0c0d6aaf397db1363e46ac3213 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Tue, 11 Jun 2019 14:30:18 +0200 Subject: [PATCH 069/437] example bugfix 2 --- compiled/to_bin/make_example_data.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/compiled/to_bin/make_example_data.cpp b/compiled/to_bin/make_example_data.cpp index ec43816..0e8583a 100644 --- a/compiled/to_bin/make_example_data.cpp +++ b/compiled/to_bin/make_example_data.cpp @@ -163,6 +163,7 @@ int main(int argc, char* argv[]){ if(type>2) type=0; + gen.gen(); auto s = gen.getImageSeq(); sigsum=0; @@ -170,8 +171,6 @@ int main(int argc, char* argv[]){ sigsum+=sc; auto s2d = gen.getImage(); - gen.setType(2); - gen.gen(); auto bg = gen.getImageSeq(); auto bg2d = gen.getImage(); From ba6580d3f80d82c58e6f1302bb440baa0ee36365 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 14 Jun 2019 14:44:57 +0200 Subject: [PATCH 070/437] better env script --- bin/locate_cuda.py | 29 +++++++++++++++++------------ env.sh | 11 +++++++---- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/bin/locate_cuda.py b/bin/locate_cuda.py index 81f643e..eb6c5a5 100755 --- a/bin/locate_cuda.py +++ b/bin/locate_cuda.py @@ -3,24 +3,29 @@ import os import subprocess - -def locate_cuda(): - ldlibpath = str(os.environ['LD_LIBRARY_PATH']) +def locate_lib(libname, ldlibpath): result='' try: - result = os.path.dirname(subprocess.check_output(['locate', 'libcublas.so.9.0']).split('\n')[0]) + result = os.path.dirname(subprocess.check_output(['locate', libname]).split('\n')[0]) except: pass if not (result in ldlibpath): - ldlibpath+=':'+result+'/' - result='' - try: - result = os.path.dirname(subprocess.check_output(['locate', 'libcudnn.so.7']).split('\n')[0]) - except: - pass - if not (result in ldlibpath): - ldlibpath+=':'+result+'/' + if len(ldlibpath): + ldlibpath+=':'+result+'/' + else: + ldlibpath=result + return ldlibpath + + +def locate_cuda(): + ldlibpath = str(os.environ['LD_LIBRARY_PATH']) + + ldlibpath=locate_lib('libcublas.so.9.',ldlibpath) + ldlibpath=locate_lib('libcublas.so.10',ldlibpath) + ldlibpath=locate_lib('libcudnn.so.7',ldlibpath) + print(ldlibpath) + locate_cuda() \ No newline at end of file diff --git a/env.sh b/env.sh index 2b0c055..084ab44 100644 --- a/env.sh +++ b/env.sh @@ -11,9 +11,12 @@ export DEEPJETCORE=`pwd` export PATH=`pwd`/bin:$PATH export PYTHONPATH=`pwd`/../:$PYTHONPATH -export LD_LIBRARY_PATH=`pwd`/compiled/:$LD_LIBRARY_PATH -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`locate_cuda.py` -#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/patatrack/cuda-9.1/targets/x86_64-linux/lib/:/data/patatrack/cuda-9.0/targets/x86_64-linux/lib/ - +if [ $LD_LIBRARY_PATH ] +then + export LD_LIBRARY_PATH=`pwd`/compiled/:$LD_LIBRARY_PATH +else + export LD_LIBRARY_PATH=`pwd`/compiled/ +fi +export LD_LIBRARY_PATH=`locate_cuda.py` export LD_PRELOAD=$CONDA_PREFIX/lib/libmkl_core.so:$CONDA_PREFIX/lib/libmkl_sequential.so From 667ea1e232b6f37bf176727f316a743a5488c39b Mon Sep 17 00:00:00 2001 From: Yutaro Date: Mon, 1 Jul 2019 12:24:16 +0200 Subject: [PATCH 071/437] making batch conversion a bit smoother --- bin/batch_conversion.py | 111 +++++++++++++++++++++------------------ bin/convertFromRoot.py | 58 ++++++++++++-------- conversion/conversion.py | 12 +++++ 3 files changed, 107 insertions(+), 74 deletions(-) create mode 100644 conversion/conversion.py diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index c9c7ca4..84bf6c4 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -2,7 +2,6 @@ from argparse import ArgumentParser from pdb import set_trace -import subprocess import os parser = ArgumentParser('program to convert root tuples to traindata format') @@ -11,10 +10,12 @@ parser.add_argument("out", help="output path") parser.add_argument("batch_dir", help="batch directory") parser.add_argument("-c", help="output class", default="") +parser.add_argument("--classArgs", help="Arguments to pass to output class") parser.add_argument("--testdatafor", default='') parser.add_argument("--nforweighter", default='500000', help='set number of samples to be used for weight and mean calculation') parser.add_argument("--meansfrom", default="", help='where to get means/std, in case already computed') parser.add_argument("--useexistingsplit", default=False, help='use an existing file split (potentially dangerous)') +parser.add_argument("--noRelativePaths", help="Assume input samples are absolute paths with respect to working directory", default=False, action="store_true") args = parser.parse_args() args.infile = os.path.abspath(args.infile) @@ -50,22 +51,29 @@ if not (len(args.meansfrom) or args.testdatafor): #Run a fisrt round of root conversion to get the means/std and weights print('creating a dummy datacollection for means/norms and weighter (can take a while)...') - cmd = [ - 'convertFromRoot.py', - '-i', args.infile, - '-c', args.c, - '-o', args.out, - '--nforweighter', args.nforweighter, - '--means' - ] - proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = proc.communicate() - code = proc.wait() + + from DeepJetCore.DataCollection import DataCollection + from DeepJetCore.conversion.conversion import class_options + + try: + cls = class_options[args.c] + except KeyError: + raise Exception('wrong class selection') + + if not args.classArgs: + args.classArgs = tuple() + + dc = DataCollection(nprocs=-1, + useRelativePaths=(True if not args.noRelativePaths else False)) + dc.meansnormslimit = int(args.nforweighter) + try: + dc.convertListOfRootFiles(args.infile, cls(*args.classArgs), args.out, means_only=True, output_name='batch_template.dc') - if code != 0: - raise RuntimeError('The first round of root conversion failed with message: \n\n%s' % err) - else: - print('means/norms/weighter produced successfully') + except: + print 'The first round of root conversion failed' + raise + + print('means/norms/weighter produced successfully') elif args.meansfrom: if not os.path.exists(args.meansfrom): @@ -74,29 +82,19 @@ os.mkdir(args.out) os.system('cp '+args.meansfrom+' '+args.out+'/batch_template.dc') -inputs = [i for i in open(args.infile)] - -def chunkify(l, n): - """Yield successive n-sized chunks from l.""" - for i in range(0, len(l), n): - yield l[i:i + n] - if not args.infile.endswith('.txt'): raise ValueError('The code assumes that the input files has .txt extension') +with open(args.infile) as source: + num_inputs = len(source.read().split('\n')) + +chunk_size = num_inputs / args.nchunks print('splitting input file...') -txt_template = args.infile.replace('.txt', '.%s.txt') -batch_txts = [] -nchunks = 0 -for idx, chunk in enumerate(chunkify(inputs, len(inputs)/args.nchunks)): - name = txt_template % idx - batch_txts.append(name) - if not args.useexistingsplit: - with open(name, 'w') as cfile: - cfile.write(''.join(chunk)) - nchunks = idx +range_indices = [] +for start in range(0, num_inputs, chunk_size): + range_indices.append((start, start + chunk_size)) batch_template = '''#!/bin/bash sleep $(shuf -i1-300 -n1) #sleep a random amount of time between 1s and 10' to avoid bottlenecks in reaching afs @@ -118,28 +116,37 @@ def chunkify(l, n): with open(batch_script, 'w') as bb: bb.write(batch_template) -means_file = '%s/batch_template.dc' % os.path.realpath(args.out) if not args.testdatafor else args.testdatafor -option = '--usemeansfrom' if not args.testdatafor else '--testdatafor' +options = [] +if args.noRelativePaths: + options.append('--noRelativePaths') +if args.testdatafor: + options.append('--testdatafor ' + args.testdatafor) +else: + options.append('--usemeansfrom %s/batch_template.dc' % os.path.realpath(args.out)) + +option = ' '.join(options) + with open('%s/submit.sub' % args.batch_dir, 'w') as bb: - bb.write(''' -executable = {EXE} -arguments = -i {INFILE} -c {CLASS} -o {OUT} --nothreads --batch conversion.$(ProcId).dc {OPTION} {MEANS} -output = batch/con_out.$(ProcId).out -error = batch/con_out.$(ProcId).err -log = batch/con_out.$(ProcId).log + bb.write('''executable = {EXE} +arguments = -i {INFILE} --inRange $(START) $(STOP) -c {CLASS} -o {OUT} --nothreads --batch conversion.$(ProcId).dc {OPTION} +output = {BATCH_DIR}/batch/con_out.$(ProcId).out +error = {BATCH_DIR}/batch/con_out.$(ProcId).err +log = {BATCH_DIR}/batch/con_out.$(ProcId).log +MaxRuntime = 86399 ++JobFlavour = "microcentury" getenv = True -use_x509userproxy = True -queue {NJOBS} -'''.format( - EXE = os.path.realpath(batch_script), - NJOBS = nchunks+1, - INFILE = txt_template % '$(ProcId)', - CLASS = args.c, - OUT = os.path.realpath(args.out), - OPTION = option, - MEANS = means_file, +#use_x509userproxy = True +queue START STOP from ( +{RANGE_INDICES} ) - ) +'''.format( + EXE = os.path.realpath(batch_script), + INFILE = args.infile, + CLASS = args.c, + OUT = os.path.realpath(args.out), + OPTION = option, + BATCH_DIR = args.batch_dir, + RANGE_INDICES = '\n'.join('%d %d' % rng for rng in range_indices) +)) print('condor submit file can be found in '+ args.batch_dir+'\nuse check_conversion.py ' + args.batch_dir + ' to to check jobs') diff --git a/bin/convertFromRoot.py b/bin/convertFromRoot.py index fade5ab..0b88b12 100755 --- a/bin/convertFromRoot.py +++ b/bin/convertFromRoot.py @@ -12,6 +12,7 @@ import sys import os +import tempfile from argparse import ArgumentParser from pdb import set_trace @@ -19,26 +20,11 @@ logging.getLogger().setLevel(logging.INFO) from DeepJetCore.DataCollection import DataCollection - -import imp -try: - imp.find_module('datastructures') - from datastructures import * -except ImportError: - print('datastructure modules not found. Please define a DeepJetCore submodule') - - -class_options=[] -import inspect, sys -for name, obj in inspect.getmembers(sys.modules['datastructures']): - if inspect.isclass(obj) and 'TrainData' in name: - class_options.append(obj) - -class_options = dict((str(i).split("'")[1].split('.')[-1], i) for i in class_options) - +from DeepJetCore.conversion.conversion import class_options parser = ArgumentParser('program to convert root tuples to traindata format') parser.add_argument("-i", help="set input sample description (output from the check.py script)", metavar="FILE") +parser.add_argument("--inRange", nargs=2, type=int, help="Input line numbers") parser.add_argument("--noRelativePaths", help="Assume input samples are absolute paths with respect to working directory", default=False, action="store_true") parser.add_argument("-o", help="set output path", metavar="PATH") parser.add_argument("-c", choices = class_options.keys(), help="set output class (options: %s)" % ', '.join(class_options.keys()), metavar="Class") @@ -81,6 +67,37 @@ if outPath: logging.info("outPath = %s" % outPath) +if args.inRange is not None: + relative_to_absolute = '' + if not args.noRelativePaths: + new_list_directory = os.getenv('TMPDIR', '/tmp') + pos = 0 + # count the number of slashes + while True: + pos = new_list_directory.find('/', pos) + 1 + if pos == 0: + break + + relative_to_absolute += '../' + + if new_list_directory.endswith('/'): + relative_to_absolute = relative_to_absolute[:-3] + + relative_to_absolute += os.path.dirname(os.path.realpath(infile))[1:] + '/' + + with tempfile.NamedTemporaryFile(delete=False, dir=os.getenv('TMPDIR', '/tmp')) as my_infile: + with open(infile) as source: + do_write = False + for iline, line in enumerate(source): + if iline == args.inRange[0]: + do_write = True + elif iline == args.inRange[1]: + break + if do_write: + my_infile.write(relative_to_absolute + line) + + infile = my_infile.name + # MAIN BODY # dc = DataCollection(nprocs = (1 if args.nothreads else -1), useRelativePaths=True if not args.noRelativePaths else False) @@ -95,7 +112,8 @@ print('available classes:') for key, val in class_options.iteritems(): print(key) - raise Exception('wrong class selection') + raise Exception('wrong class selection') + if testdatafor: logging.info('converting test data, no weights applied') dc.createTestDataForDataCollection( @@ -117,7 +135,3 @@ usemeansfrom, output_name = args.batch if args.batch else 'dataCollection.dc', batch_mode = bool(args.batch) ) - - - - diff --git a/conversion/conversion.py b/conversion/conversion.py new file mode 100644 index 0000000..2bd386a --- /dev/null +++ b/conversion/conversion.py @@ -0,0 +1,12 @@ +try: + from datastructures import * +except ImportError: + print('datastructure modules not found. Please define a DeepJetCore submodule') + +class_options=[] +import inspect, sys +for name, obj in inspect.getmembers(sys.modules['datastructures']): + if inspect.isclass(obj) and 'TrainData' in name: + class_options.append(obj) + +class_options = dict((str(i).split("'")[1].split('.')[-1], i) for i in class_options) From 9155e49be7ecda3a5a9c82d09fe77e8765d03b54 Mon Sep 17 00:00:00 2001 From: Yutaro Date: Mon, 1 Jul 2019 12:33:06 +0200 Subject: [PATCH 072/437] init was ignored --- conversion/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 conversion/__init__.py diff --git a/conversion/__init__.py b/conversion/__init__.py new file mode 100644 index 0000000..e69de29 From 4e7c5f662c29ac51b9f91e6fa45b3b971042ad64 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Mon, 1 Jul 2019 13:43:01 +0200 Subject: [PATCH 073/437] renaming a lot --- Layers.py => DJCLayers.py | 0 Losses.py => DJCLosses.py | 0 DataCollection.py | 5 ++++- Weighter.py | 3 +++ bin/check_conversion.py | 14 +++++++++++- bin/convertToPB.py | 40 +++++++++++++++++++++++++++++++++-- bin/predict.py | 4 ++-- bin/prepare_for_deployment.py | 2 ++ modeltools.py | 13 +++++++----- training/DeepJet_callbacks.py | 10 +++++++-- training/training_base.py | 16 +++++++++----- 11 files changed, 89 insertions(+), 18 deletions(-) rename Layers.py => DJCLayers.py (100%) rename Losses.py => DJCLosses.py (100%) diff --git a/Layers.py b/DJCLayers.py similarity index 100% rename from Layers.py rename to DJCLayers.py diff --git a/Losses.py b/DJCLosses.py similarity index 100% rename from Losses.py rename to DJCLosses.py diff --git a/DataCollection.py b/DataCollection.py index 22820a0..f828e9b 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -49,6 +49,9 @@ def __init__(self, infile = None, nprocs = -1,useRelativePaths=True): self.meansnormslimit=500000 if infile: self.readFromFile(infile) + #check for consistency + if not len(self.samples): + raise Exception("no valid datacollection found in "+infile) def clear(self): self.samples=[] @@ -668,7 +671,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): #immediately send the next continue - + results = sorted(results, key=lambda x:x[0]) for r in results: thisidx=r[0] if thisidx==lastindex+1: diff --git a/Weighter.py b/Weighter.py index f74f6a9..dae5505 100644 --- a/Weighter.py +++ b/Weighter.py @@ -43,6 +43,9 @@ def comparator(this, that): 'compares lists of np arrays' return _all((i == j).all() for i,j in zip(this, that)) + #empty + if len(self.Axixandlabel) == len(other.Axixandlabel) and len(self.Axixandlabel) == 0: + return True return self.Axixandlabel == other.Axixandlabel and \ _all(self.axisX == other.axisX) and \ diff --git a/bin/check_conversion.py b/bin/check_conversion.py index 6543745..850119c 100755 --- a/bin/check_conversion.py +++ b/bin/check_conversion.py @@ -58,10 +58,22 @@ def merge_successful(): except Exception as e: print('problems adding '+in_path+" will continue nevertheless... (error see below)") print(e) + dc=0 if dc: alldc.append(DataCollection(in_path)) print("merging DataCollections") - merged = sum(alldc) + merged = alldc[0] + merged_c=1 + for i in range(1,len(alldc)): + try: + merged += alldc[i] + merged_c+=1 + except Exception as e: + print(e) + print('...continue adding nevertheless') + + if merged_c != len(alldc): + print('lost '+str(100* (1. - float(merged_c)/float(len(alldc)))) +'%') print("saving merged DataCollection") merged.writeToFile('%s/dataCollection.dc' % output_dir) print('successfully merged to %s/dataCollection.dc' % output_dir) diff --git a/bin/convertToPB.py b/bin/convertToPB.py index 77cdab7..f41fef9 100755 --- a/bin/convertToPB.py +++ b/bin/convertToPB.py @@ -12,6 +12,40 @@ import tensorflow as tf +from DeepJetCore.DJCLosses import * +from DeepJetCore.DJCLayers import * +from argparse import ArgumentParser +from keras import backend as K +import imp +try: + imp.find_module('Losses') + from Losses import * +except ImportError: + print 'No Losses module found, ignoring at your own risk' + global_loss_list = {} + +try: + imp.find_module('Layers') + from Layers import * +except ImportError: + print 'No Layers module found, ignoring at your own risk' + global_layers_list = {} + +try: + imp.find_module('Metrics') + from Metrics import * +except ImportError: + print 'No metrics module found, ignoring at your own risk' + global_metrics_list = {} + + +custom_objs = {} +custom_objs.update(djc_global_loss_list) +custom_objs.update(djc_global_layers_list) +custom_objs.update(global_loss_list) +custom_objs.update(global_layers_list) +custom_objs.update(global_metrics_list) + sess = tf.Session() from keras.models import load_model from argparse import ArgumentParser @@ -30,11 +64,13 @@ if os.path.isdir(args.outputDir): raise Exception('output directory must not exists yet') -model=load_model(args.inputModel, custom_objects=global_loss_list) +model=load_model(args.inputModel, custom_objects=custom_objs) K.set_learning_phase(0) +inputs = [node.op.name for node in model.inputs] +print ("input layer names", inputs) outputs = [node.op.name for node in model.outputs] -print outputs +print ("output layer names",outputs) constant_graph = tf.graph_util.convert_variables_to_constants(sess, sess.graph.as_graph_def(), outputs) tfoutpath=args.outputDir+'/tf' import os diff --git a/bin/predict.py b/bin/predict.py index d9f3603..36a99ad 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -9,8 +9,8 @@ from keras.models import load_model from DeepJetCore.evaluation import testDescriptor -from DeepJetCore.Losses import * -from DeepJetCore.Layers import * +from DeepJetCore.DJCLosses import * +from DeepJetCore.DJCLayers import * from argparse import ArgumentParser from keras import backend as K import imp diff --git a/bin/prepare_for_deployment.py b/bin/prepare_for_deployment.py index 5c896a1..daa77aa 100755 --- a/bin/prepare_for_deployment.py +++ b/bin/prepare_for_deployment.py @@ -13,6 +13,8 @@ from keras.models import load_model from keras import backend as K from tensorflow.python.tools import optimize_for_inference_lib +from DeepJetCore.DJCLosses import * +from DeepJetCore.DJCLayers import * import tensorflow as tf sess = tf.Session() diff --git a/modeltools.py b/modeltools.py index c6d9626..63b9382 100644 --- a/modeltools.py +++ b/modeltools.py @@ -20,6 +20,14 @@ print 'No metrics module found, ignoring at your own risk' global_metrics_list = {} + + +custom_objs = {} +custom_objs.update(global_loss_list) +custom_objs.update(global_layers_list) +custom_objs.update(global_metrics_list) + + def getLayer(model, name): for layer in model.layers: if layer.name == name: @@ -84,11 +92,6 @@ def loadModelAndFixLayers(filename,fixOnlyContaining): def load_model(filename): from keras.models import load_model - - custom_objs = {} - custom_objs.update(global_loss_list) - custom_objs.update(global_layers_list) - custom_objs.update(global_metrics_list) model=load_model(filename, custom_objects=custom_objs) return model diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index ae6631d..7491422 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -221,6 +221,7 @@ def __init__(self, self.samplefile=samplefile self.function_to_apply=function_to_apply self.counter=0 + self.call_counter=0 self.after_n_batches=after_n_batches self.run_on_epoch_end=on_epoch_end @@ -231,18 +232,23 @@ def __init__(self, self.td=TrainData() self.td.readIn(samplefile) - self.td.skim(event=use_event) + if use_event>=0: + self.td.skim(event=use_event) def on_train_begin(self, logs=None): pass + def reset(self): + self.call_counter=0 + def predict_and_call(self,counter): predicted = self.model.predict(self.td.x) if not isinstance(predicted, list): predicted=[predicted] - self.function_to_apply(counter,self.td.x,predicted,self.td.y) + self.function_to_apply(self.call_counter,self.td.x,predicted,self.td.y) + self.call_counter+=1 def on_epoch_end(self, epoch, logs=None): self.counter=0 diff --git a/training/training_base.py b/training/training_base.py index d9bb5c4..d58a970 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -12,8 +12,8 @@ from argparse import ArgumentParser import shutil from DeepJetCore.DataCollection import DataCollection -from DeepJetCore.Losses import * -from DeepJetCore.Layers import * +from DeepJetCore.DJCLosses import * +from DeepJetCore.DJCLayers import * from pdb import set_trace from keras.utils import multi_gpu_model @@ -55,7 +55,8 @@ def __init__( resumeSilently=False, renewtokens=True, collection_class=DataCollection, - parser=None + parser=None, + recreate_silently=False ): import sys @@ -148,16 +149,21 @@ def __init__( isNewTraining=True if os.path.isdir(self.outputDir): - if not resumeSilently: + if not (resumeSilently or recreate_silently): var = raw_input('output dir exists. To recover a training, please type "yes"\n') if not var == 'yes': raise Exception('output directory must not exists yet') - isNewTraining=False + isNewTraining=False + if recreate_silently: + isNewTraining=True else: os.mkdir(self.outputDir) self.outputDir = os.path.abspath(self.outputDir) self.outputDir+='/' + if recreate_silently: + os.system('rm -rf '+ self.outputDir +'*') + #copy configuration to output dir if not args.isbatchrun: shutil.copyfile(scriptname,self.outputDir+os.path.basename(scriptname)) From 709a3241c889cf166e4b050c6dc3c75bddc3aea2 Mon Sep 17 00:00:00 2001 From: Yutaro Date: Mon, 1 Jul 2019 16:40:48 +0200 Subject: [PATCH 074/437] check_conversion to new submission format --- bin/check_conversion.py | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/bin/check_conversion.py b/bin/check_conversion.py index 6543745..46277db 100755 --- a/bin/check_conversion.py +++ b/bin/check_conversion.py @@ -17,19 +17,6 @@ def grep(fname, pattern): parser.add_argument("indir", help="input dir of the batch task", metavar="FILE") args = parser.parse_args() -sub_lines = [i for i in open('%s/submit.sub' % args.indir)] -general_lines = [] -proc_lines = [] -for line in sub_lines: - if '$(ProcId)' in line: - proc_lines.append(line.replace('$(ProcId)', '{IDX}')) - elif 'queue ' in line: - pass #nothing to be done - else: - general_lines.append(line) -proc_lines.append('queue\n') -proc_lines = ''.join(proc_lines) - outputs = glob.glob('%s/batch/con_out.*.out' % args.indir) if len(outputs)<1: print('no jobs submitted, please check') @@ -44,8 +31,6 @@ def get_output_dir(): output_dir = [batch_args[i+1] for i in range(len(batch_args)) if batch_args[i].startswith('-o')][0] return output_dir - - def merge_successful(): output_dir=get_output_dir() from DeepJetCore.DataCollection import DataCollection @@ -66,7 +51,6 @@ def merge_successful(): merged.writeToFile('%s/dataCollection.dc' % output_dir) print('successfully merged to %s/dataCollection.dc' % output_dir) return merged - if len(failed) == 0: print 'All jobs successfully completed, merging...' @@ -83,9 +67,26 @@ def merge_successful(): if merge_anyways.lower() == 'n': exit(0) merge_successful() exit(0) + + general_lines = [] + proc_lines = [] + + with open('%s/submit.sub' % args.indir) as submit_file: + parse_procs = False + for line in sub_lines: + if 'queue ' in line: + parse_procs = True + + if parse_args: + if line.startswith(')'): + break + proc_lines.append(line.strip()) + else: + general_lines.append(line) - idxs = [os.path.basename(i).split('.')[1] for i in failed] + idxs = [int(os.path.basename(i).split('.')[1]) for i in failed] with open('%s/rescue.sub' % args.indir, 'w') as jdl: - jdl.write(''.join(general_lines)) - jdl.write('\n'.join([proc_lines.format(IDX=i) for i in idxs])) + jdl.write(''.join(general_lines)) + jdl.write('\n'.join(proc_lines[i] for i in idxs)) + jdl.write(')\n') print 'rescue file created' From 5a00da1b8e0dfa1af895b624d961fb50544a2519 Mon Sep 17 00:00:00 2001 From: Yutaro Date: Mon, 1 Jul 2019 16:50:53 +0200 Subject: [PATCH 075/437] bugfix --- bin/check_conversion.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bin/check_conversion.py b/bin/check_conversion.py index 01a09f3..3877fbc 100755 --- a/bin/check_conversion.py +++ b/bin/check_conversion.py @@ -85,20 +85,20 @@ def merge_successful(): with open('%s/submit.sub' % args.indir) as submit_file: parse_procs = False - for line in sub_lines: - if 'queue ' in line: - parse_procs = True - - if parse_args: + for line in submit_file: + + if parse_procs: if line.startswith(')'): break proc_lines.append(line.strip()) else: general_lines.append(line) + if 'queue ' in line: + parse_procs = True idxs = [int(os.path.basename(i).split('.')[1]) for i in failed] with open('%s/rescue.sub' % args.indir, 'w') as jdl: jdl.write(''.join(general_lines)) jdl.write('\n'.join(proc_lines[i] for i in idxs)) - jdl.write(')\n') + jdl.write('\n)\n') print 'rescue file created' From d2b6a21b1ad41f522ad821ff67258cac40126413 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Tue, 2 Jul 2019 15:30:53 +0200 Subject: [PATCH 076/437] max time --- training/batchTools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/training/batchTools.py b/training/batchTools.py index 3758835..ea9f64d 100644 --- a/training/batchTools.py +++ b/training/batchTools.py @@ -47,7 +47,7 @@ def submit_batch(trainingbase): error = {outdir}batch.err log = {outdir}batch.log getenv = True -#+MaxRuntime = 431999 ++MaxRuntime = 431999 request_GPUs = {ngpus} request_cpus = 4 queue 1 From f21a6bd3a45bd5537fb2da62269f92b63baeddc8 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Wed, 3 Jul 2019 09:20:36 +0200 Subject: [PATCH 077/437] walltime adaptable for batch submission --- training/batchTools.py | 24 ++++++++++++++++++++++-- training/training_base.py | 3 ++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/training/batchTools.py b/training/batchTools.py index ea9f64d..499dd4e 100644 --- a/training/batchTools.py +++ b/training/batchTools.py @@ -1,4 +1,6 @@ +from __future__ import print_function + #can pipe config from stdin to condor_submit! #executable, arguments @@ -8,7 +10,7 @@ from DeepJetCore.training.training_base import training_base import os, sys, stat -def submit_batch(trainingbase): +def submit_batch(trainingbase, walltime=None): subpackage = os.environ['DEEPJETCORE_SUBPACKAGE'] @@ -40,6 +42,23 @@ def submit_batch(trainingbase): os.chmod(scriptpath, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) + if walltime is not None: + wt_days=0 + wt_hours=0 + rest=walltime + if 'd' in walltime: + wt_days = int(rest.split('d')[0]) + rest = rest.split('d')[1:] + if 'h' in walltime: + wt_hours = int(''.join(rest).split('h')[0]) + print('submitting for ', wt_days, 'days', wt_hours, 'hours') + walltime = wt_days*24*3600 + wt_hours*3600 + + else: + walltime=1*24*3600 # 1 day standard + + + condor_file=''' executable = /bin/bash arguments = {scriptpath} @@ -47,12 +66,13 @@ def submit_batch(trainingbase): error = {outdir}batch.err log = {outdir}batch.log getenv = True -+MaxRuntime = 431999 ++MaxRuntime = {walltime} request_GPUs = {ngpus} request_cpus = 4 queue 1 '''.format(scriptpath=scriptpath, outdir=trainingbase.outputDir, + walltime=str(walltime), ngpus=trainingbase.ngpus) with open(condorpath,'w') as condorfile: diff --git a/training/training_base.py b/training/training_base.py index d58a970..6bd351d 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -69,6 +69,7 @@ def __init__( parser.add_argument("--gpu", help="select specific GPU", metavar="OPT", default=-1) parser.add_argument("--gpufraction", help="select memory fraction for GPU", type=float, metavar="OPT", default=-1) parser.add_argument("--submitbatch", help="submits the job to condor" , default=False, action="store_true") + parser.add_argument("--walltime", help="sets the wall time for the batch job, format: 1d5h or 2d or 3h etc" , default='1d') parser.add_argument("--isbatchrun", help="is batch run", default=False, action="store_true") @@ -356,7 +357,7 @@ def _initTraining(self, if self.submitbatch: from DeepJetCore.training.batchTools import submit_batch - submit_batch(self) + submit_batch(self, self.args.walltime) exit() #don't delete this! self.train_data.setBatchSize(batchsize) From 4db3453f03de4de3bb217be9082cef674aae83ec Mon Sep 17 00:00:00 2001 From: Yutaro Date: Wed, 3 Jul 2019 11:56:26 +0200 Subject: [PATCH 078/437] tuning conversion for batch --- DataCollection.py | 226 +++++++++++++++++++++------------------- TrainData.py | 103 +++++++++--------- Weighter.py | 38 ++++--- bin/batch_conversion.py | 16 ++- bin/convertFromRoot.py | 15 ++- 5 files changed, 203 insertions(+), 195 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index f828e9b..9fd8d14 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -7,15 +7,23 @@ #from builtins import list from __future__ import print_function +import os +import copy +import pickle +import time +import tempfile +import shutil +from stopwatch import stopwatch +import numpy as np from Weighter import Weighter from TrainData import TrainData, fileTimeOut #for convenience import logging from pdb import set_trace -import copy usenewformat=True +logger = logging.getLogger(__name__) # super not-generic without safety belts #needs some revision @@ -25,7 +33,6 @@ def __init__(self, ranges, batchsize): self.batchsize=batchsize def generateBatch(self): - import numpy as np randoms=[] for i in range(len(self.ranges)): randoms.append(np.full((1,self.batchsize),np.random.uniform(self.ranges[i][0], self.ranges[i][1], size=1)[0])) @@ -52,6 +59,9 @@ def __init__(self, infile = None, nprocs = -1,useRelativePaths=True): #check for consistency if not len(self.samples): raise Exception("no valid datacollection found in "+infile) + + # Running data conversion etc. on a batch farm + self.batch_mode = False def clear(self): self.samples=[] @@ -143,7 +153,6 @@ def getClassWeights(self): def __computeClassWeights(self,truthclassesarray): if not len(self.samples): raise Exception("DataCollection:computeClassWeights: no sample files associated") - import copy td=copy.deepcopy(self.dataclass) td.readIn(self.getSamplePath(self.samples[0])) arr=td.y[0] @@ -272,23 +281,22 @@ def removeEntry(self,relative_path_to_entry): def writeToFile(self,filename): - import pickle - fd=open(filename,'wb') - self.dataclass.clear() - pickle.dump(self.samples, fd,protocol=0 ) - pickle.dump(self.sampleentries, fd,protocol=0 ) - pickle.dump(self.originRoots, fd,protocol=0 ) - pickle.dump(self.nsamples, fd,protocol=0 ) - pickle.dump(self.useweights, fd,protocol=0 ) - pickle.dump(self.__batchsize, fd,protocol=0 ) - pickle.dump(self.dataclass, fd,protocol=0 ) - pickle.dump(self.weighter, fd,protocol=0 ) - #pickle.dump(self.means, fd,protocol=0 ) - self.means.dump(fd) - fd.close() + with tempfile.NamedTemporaryFile(mode='wb', delete=False) as fd: + self.dataclass.clear() + pickle.dump(self.samples, fd,protocol=0 ) + pickle.dump(self.sampleentries, fd,protocol=0 ) + pickle.dump(self.originRoots, fd,protocol=0 ) + pickle.dump(self.nsamples, fd,protocol=0 ) + pickle.dump(self.useweights, fd,protocol=0 ) + pickle.dump(self.__batchsize, fd,protocol=0 ) + pickle.dump(self.dataclass, fd,protocol=0 ) + pickle.dump(self.weighter, fd,protocol=0 ) + #pickle.dump(self.means, fd,protocol=0 ) + self.means.dump(fd) + + shutil.move(fd.name, filename) def readFromFile(self,filename): - import pickle fd=open(filename,'rb') self.samples=pickle.load(fd) self.sampleentries=pickle.load(fd) @@ -300,7 +308,7 @@ def readFromFile(self,filename): self.weighter=pickle.load(fd) self.means=pickle.load(fd) fd.close() - import os + self.dataDir=os.path.dirname(os.path.abspath(filename)) self.dataDir+='/' #don't check if files exist @@ -318,8 +326,6 @@ def readFromFile(self,filename): def readRootListFromFile(self,file): - import os - self.samples=[] self.sampleentries=[] self.originRoots=[] @@ -347,8 +353,6 @@ def split(self,ratio): returns out modifies itself ''' - import copy - out=DataCollection() itself=copy.deepcopy(self) @@ -407,9 +411,8 @@ def split(self,ratio): def createTestDataForDataCollection( self, collectionfile, inputfile, outputDir, outname = 'dataCollection.dc', - batch_mode = False, traind=None): - import copy + self.readFromFile(collectionfile) self.dataclass.remove=False self.dataclass.weight=True #False @@ -419,13 +422,12 @@ def createTestDataForDataCollection( self.readRootListFromFile(inputfile) self.createDataFromRoot( self.dataclass, outputDir, False, - dir_check = not batch_mode + dir_check = not self.batch_mode ) self.writeToFile(outputDir+'/'+outname) def recoverCreateDataFromRootFromSnapshot(self, snapshotfile): - import os snapshotfile=os.path.abspath(snapshotfile) self.readFromFile(snapshotfile) td=self.dataclass @@ -458,7 +460,6 @@ def createDataFromRoot( print('createDataFromRoot: no input root file') raise Exception('createDataFromRoot: no input root file') - import os outputDir+='/' if os.path.isdir(outputDir) and dir_check: raise Exception('output dir must not exist') @@ -468,11 +469,11 @@ def createDataFromRoot( self.nsamples=0 self.samples=[] self.sampleentries=[] - import copy self.dataclass=copy.deepcopy(dataclass) td=self.dataclass ##produce weighter from a larger dataset as one file - + + if redo_meansandweights and (td.remove or td.weight): logging.info('producing weights and remove indices') self.weighter = td.produceBinWeighter( @@ -488,32 +489,41 @@ def createDataFromRoot( ) if means_only: return - self.__writeData_async_andCollect(0,outputDir) - - + + if self.batch_mode: + for sample in self.originRoots: + self.__writeData(sample, outputDir) + else: + self.__writeData_async_andCollect(0, outputDir) - def __writeData(self,sample,means, weighter,outputDir,dataclass,number=-1): - import os - import copy - from stopwatch import stopwatch + def __writeData(self, sample, outputDir): sw=stopwatch() - td=copy.deepcopy(dataclass) + td=copy.deepcopy(self.dataclass) fileTimeOut(sample,120) #once available copy to ram - ramdisksample= '/dev/shm/'+str(os.getpid())+os.path.basename(sample) - - def removefile(): - os.system('rm -f '+ramdisksample) - - import atexit - atexit.register(removefile) - - os.system('cp '+sample+' '+ramdisksample) + + if self.batch_mode: + tmpinput = sample + + def removefile(): + pass + else: + tmpinput = '/dev/shm/'+str(os.getpid())+os.path.basename(sample) + + def removefile(): + os.system('rm -f '+tmpinput) + + import atexit + atexit.register(removefile) + + os_ret = os.system('cp '+sample+' '+tmpinput) + if os_ret: + raise Exception("copy to ramdisk not successful for "+sample) + try: - td.readFromRootFile(ramdisksample,means, weighter) - newname=os.path.basename(sample).rsplit('.', 1)[0] - if number>0: - newname+=str(number) + td.readFromRootFile(tmpinput, self.means, self.weighter) + sbasename = os.path.basename(sample) + newname = sbasename[:sbasename.rfind('.')] if usenewformat: newname+='.meta' @@ -526,66 +536,74 @@ def removefile(): self.nsamples+=td.nsamples self.sampleentries.append(td.nsamples) td.clear() - self.writeToFile(outputDir+'/snapshot.dc') - except Exception as e: + + if not self.batch_mode: + self.writeToFile(outputDir+'/snapshot.dc') + + finally: removefile() - raise e - removefile() - def __writeData_async_andCollect(self, startindex, outputDir): #set tree name to use + logger.info('setTreeName') import DeepJetCore.preprocessing DeepJetCore.preprocessing.setTreeName(self.dataclass.treename) from multiprocessing import Process, Queue, cpu_count, Lock wo_queue = Queue() writelock=Lock() - import os thispid=str(os.getpid()) - if not os.path.isfile(outputDir+'/snapshot.dc'): + if not self.batch_mode and not os.path.isfile(outputDir+'/snapshot.dc'): self.writeToFile(outputDir+'/snapshot.dc') tempstoragepath='/dev/shm/'+thispid - print('creating dir '+tempstoragepath) + logger.info('creating dir '+tempstoragepath) os.system('mkdir -p '+tempstoragepath) def writeData_async(index,woq,wrlck): + + logger.info('async started') - import copy - from stopwatch import stopwatch sw=stopwatch() td=copy.deepcopy(self.dataclass) sample=self.originRoots[index] - ramdisksample= tempstoragepath+'/'+str(os.getpid())+os.path.basename(sample) - - def removefile(): - os.system('rm -f '+ramdisksample) - - import atexit - atexit.register(removefile) + + if self.batch_mode: + tmpinput = sample + + def removefile(): + pass + else: + tmpinput = tempstoragepath+'/'+str(os.getpid())+os.path.basename(sample) + + def removefile(): + os.system('rm -f '+tmpinput) + + import atexit + atexit.register(removefile) + + logger.info('start cp') + os_ret=os.system('cp '+sample+' '+tmpinput) + if os_ret: + raise Exception("copy to ramdisk not successful for "+sample) + success=False out_samplename='' out_sampleentries=0 - newname=os.path.basename(sample).rsplit('.', 1)[0] - newname+=str(index) - + sbasename = os.path.basename(sample) + newname = sbasename[:sbasename.rfind('.')] if usenewformat: newname+='.meta' else: newname+='.z' newpath=os.path.abspath(outputDir+newname) - - try: - fileTimeOut(sample,120) #once available copy to ram - os_ret=os.system('cp '+sample+' '+ramdisksample) - if os_ret: - raise Exception("copy to ramdisk not successful for "+sample) - td.readFromRootFile(ramdisksample,self.means, self.weighter) + logger.info('readFromRootFile') + td.readFromRootFile(tmpinput, self.means, self.weighter) + logger.info('writeOut') #wrlck.acquire() td.writeOut(newpath) #wrlck.release() @@ -598,25 +616,22 @@ def removefile(): removefile() woq.put((index,[success,out_samplename,out_sampleentries])) - except: print('problem in '+newname) removefile() woq.put((index,[False,out_samplename,out_sampleentries])) raise - - - def __collectWriteInfo(successful,samplename,sampleentries,outputDir): if not successful: raise Exception("write not successful, stopping") - import os + self.samples.append(samplename) self.nsamples+=sampleentries self.sampleentries.append(sampleentries) - self.writeToFile(outputDir+'/snapshot_tmp.dc')#avoid to overwrite directly - os.system('mv '+outputDir+'/snapshot_tmp.dc '+outputDir+'/snapshot.dc') + if not self.batch_mode: + self.writeToFile(outputDir+'/snapshot_tmp.dc')#avoid to overwrite directly + os.system('mv '+outputDir+'/snapshot_tmp.dc '+outputDir+'/snapshot.dc') processes=[] processrunning=[] @@ -627,7 +642,6 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): processfinished.append(False) nchilds = int(cpu_count()/2)-2 if self.nprocs <= 0 else self.nprocs - #import os #if 'nvidiagtx1080' in os.getenv('HOSTNAME'): # nchilds=cpu_count()-5 if nchilds<1: @@ -640,7 +654,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): lastindex=startindex-1 alldone=False results=[] - import time + try: while not alldone: nrunning=0 @@ -692,7 +706,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): def convertListOfRootFiles( self, inputfile, dataclass, outputDir, takemeansfrom='', means_only = False, - output_name = 'dataCollection.dc', batch_mode = False): + output_name = 'dataCollection.dc'): newmeans=True if takemeansfrom: self.readFromFile(takemeansfrom) @@ -701,7 +715,7 @@ def convertListOfRootFiles( self.createDataFromRoot( dataclass, outputDir, newmeans, means_only = means_only, - dir_check= not batch_mode + dir_check= not self.batch_mode ) self.writeToFile(outputDir+'/'+output_name) @@ -722,7 +736,6 @@ def getSamplePath(self,samplefile): return self.dataDir+'/'+samplefile def __stackData(self, dataclass, selector): - import numpy td=dataclass out=[] firstcall=True @@ -743,9 +756,9 @@ def __stackData(self, dataclass, selector): else: for i in range(0,len(thislist)): if selector == 'w': - out[i] = numpy.append(out[i],thislist[i]) + out[i] = np.append(out[i],thislist[i]) else: - out[i] = numpy.vstack((out[i],thislist[i])) + out[i] = np.vstack((out[i],thislist[i])) return out @@ -754,15 +767,9 @@ def replaceTruthForGAN(self, generated_array, original_truth): return self.dataclass.replaceTruthForGAN(generated_array, original_truth) def generator(self): - import numpy - import copy from sklearn.utils import shuffle - import shutil import uuid - import os - import copy import threading - import time print('start generator') #helper class class tdreader(object): @@ -794,7 +801,6 @@ def start(self): def __readNext(self): #make sure this fast function has exited before getLast tries to read the file - import copy readfilename=self.filelist[self.filecounter] if len(filelist)>1: self.tdlist[self.nextcounter].clear() @@ -882,7 +888,7 @@ def get(self): ranges=td.generatePerBatch batchgen=BatchRandomInputGenerator(ranges, self.__batchsize) - xstored=[numpy.array([])] + xstored=[np.array([])] dimx=0 ystored=[] dimy=0 @@ -927,7 +933,7 @@ def get(self): lastbatchrest=0 if processedbatches == 0: #reset buffer and start new #print('DataCollection: new turnaround') - xstored=[numpy.array([])] + xstored=[np.array([])] dimx=0 ystored=[] dimy=0 @@ -996,21 +1002,21 @@ def get(self): for i in range(0,dimx): if(xstored[i].ndim==1): - xstored[i] = numpy.append(xstored[i],td.x[i]) + xstored[i] = np.append(xstored[i],td.x[i]) else: - xstored[i] = numpy.vstack((xstored[i],td.x[i])) + xstored[i] = np.vstack((xstored[i],td.x[i])) for i in range(0,dimy): if(ystored[i].ndim==1): - ystored[i] = numpy.append(ystored[i],td.y[i]) + ystored[i] = np.append(ystored[i],td.y[i]) else: - ystored[i] = numpy.vstack((ystored[i],td.y[i])) + ystored[i] = np.vstack((ystored[i],td.y[i])) for i in range(0,dimw): if(wstored[i].ndim==1): - wstored[i] = numpy.append(wstored[i],td.w[i]) + wstored[i] = np.append(wstored[i],td.w[i]) else: - wstored[i] = numpy.vstack((wstored[i],td.w[i])) + wstored[i] = np.vstack((wstored[i],td.w[i])) if xstored[0].shape[0] >= self.__batchsize: batchcomplete = True @@ -1030,15 +1036,15 @@ def get(self): #print('batch complete, split')#DEBUG for i in range(0,dimx): - splitted=numpy.split(xstored[i],[self.__batchsize]) + splitted=np.split(xstored[i],[self.__batchsize]) xstored[i] = splitted[1] xout[i] = splitted[0] for i in range(0,dimy): - splitted=numpy.split(ystored[i],[self.__batchsize]) + splitted=np.split(ystored[i],[self.__batchsize]) ystored[i] = splitted[1] yout[i] = splitted[0] for i in range(0,dimw): - splitted=numpy.split(wstored[i],[self.__batchsize]) + splitted=np.split(wstored[i],[self.__batchsize]) wstored[i] = splitted[1] wout[i] = splitted[0] diff --git a/TrainData.py b/TrainData.py index 5ca29af..de87366 100644 --- a/TrainData.py +++ b/TrainData.py @@ -6,12 +6,15 @@ from __future__ import print_function - from Weighter import Weighter from pdb import set_trace +import os +import time import numpy import logging - +import tempfile +import copy +import shutil import threading import multiprocessing @@ -25,13 +28,12 @@ def fileTimeOut(fileName, timeOut): waits until the dir, the file should be stored in/read from, is accessible again, or the the timeout ''' - import os filepath=os.path.dirname(fileName) if len(filepath) < 1: filepath = '.' if os.path.isdir(filepath): return - import time + counter=0 print('file I/O problems... waiting for filesystem to become available for '+fileName) while not os.path.isdir(filepath): @@ -239,58 +241,56 @@ def reduceTruth(self, tuple_in=None): def writeOut(self,fileprefix): - from shutil import copyfile - import tempfile + import h5py + #this is a workaround because hdf5 files written on eos are unreadable... final_output_file=fileprefix + + # with h5py >= 2.9 you can directly write to an open tempfile, but for now + # we'd need to use tempfile as a safe name generator + #with tempfile.NamedTemporaryFile(suffix='.meta', delete=False) as t: + # h5f = h5py.File(t) - with tempfile.NamedTemporaryFile(suffix='.meta') as t: - fileprefix = t.name - + t = tempfile.NamedTemporaryFile(suffix='.meta', delete=False) + t.close() + + h5f = h5py.File(t.name, 'w') - import h5py - fileTimeOut(fileprefix,120) - h5f = h5py.File(fileprefix, 'w') - - # try "lzf", too, faster, but less compression - def _writeoutListinfo(arrlist,fidstr,h5F): - arr=numpy.array([len(arrlist)]) - h5F.create_dataset(fidstr+'_listlength',data=arr) - for i in range(len(arrlist)): - idstr=fidstr+str(i) - h5F.create_dataset(idstr+'_shape',data=arrlist[i].shape) - - def _writeoutArrays(arrlist,fidstr,h5F): - for i in range(len(arrlist)): - idstr=fidstr+str(i) - arr=arrlist[i] - from DeepJetCore.compiled.c_readArrThreaded import writeArray - if arr.dtype!='float32': - arr=arr.astype('float32') - writeArray(arr.ctypes.data,final_output_file[:-4]+fidstr+'.'+str(i),list(arr.shape)) - - - arr=numpy.array([self.nsamples],dtype='int') - h5f.create_dataset('n', data=arr) - - _writeoutListinfo(self.w,'w',h5f) - _writeoutListinfo(self.x,'x',h5f) - _writeoutListinfo(self.y,'y',h5f) - - _writeoutArrays(self.w,'w',h5f) - _writeoutArrays(self.x,'x',h5f) - _writeoutArrays(self.y,'y',h5f) - - h5f.close() + # try "lzf", too, faster, but less compression + def _writeoutListinfo(arrlist,fidstr,h5F): + arr=numpy.array([len(arrlist)]) + h5F.create_dataset(fidstr+'_listlength',data=arr) + for i in range(len(arrlist)): + idstr=fidstr+str(i) + h5F.create_dataset(idstr+'_shape',data=arrlist[i].shape) - copyfile(fileprefix, final_output_file) - - + def _writeoutArrays(arrlist,fidstr,h5F): + for i in range(len(arrlist)): + idstr=fidstr+str(i) + arr=arrlist[i] + from DeepJetCore.compiled.c_readArrThreaded import writeArray + if arr.dtype!='float32': + arr=arr.astype('float32') + writeArray(arr.ctypes.data,final_output_file[:-4]+fidstr+'.'+str(i),list(arr.shape)) + arr=numpy.array([self.nsamples],dtype='int') + h5f.create_dataset('n', data=arr) + + _writeoutListinfo(self.w,'w',h5f) + _writeoutListinfo(self.x,'x',h5f) + _writeoutListinfo(self.y,'y',h5f) + + _writeoutArrays(self.w,'w',h5f) + _writeoutArrays(self.x,'x',h5f) + _writeoutArrays(self.y,'y',h5f) + + h5f.close() + + shutil.copyfile(t.name, final_output_file) def __createArr(self,shapeinfo): import ctypes - import multiprocessing + fulldim=1 for d in shapeinfo: fulldim*=d @@ -306,7 +306,6 @@ def __createArr(self,shapeinfo): def removeRamDiskFile(self): if hasattr(self, 'ramdiskfile'): - import os try: if self.ramdiskfile and os.path.exists(self.ramdiskfile): if "meta" in self.ramdiskfile[-4:]: @@ -326,7 +325,6 @@ def readIn_async(self,fileprefix,read_async=True,shapesOnly=False,ramdiskpath='' #print('read') import h5py - import multiprocessing #print('\ninit async read\n') @@ -376,10 +374,7 @@ def _readListInfo_(idstr): isRamDisk=len(ramdiskpath)>0 if isRamDisk: - import shutil import uuid - import os - import copy unique_filename='' unique_filename = ramdiskpath+'/'+str(uuid.uuid4())+'.z' @@ -493,7 +488,6 @@ def readIn_join(self,wasasync=True,waitforStart=True): if not not hasattr(self, 'readthreadids') and not waitforStart and not self.readthread and wasasync: print('\nreadIn_join:read never started\n') - import time if waitforStart: while (not hasattr(self, 'readthreadids')) and not self.readthread: time.sleep(0.1) @@ -538,7 +532,6 @@ def readIn_join(self,wasasync=True,waitforStart=True): if self.readdone.value: self.readthread.join(.1) - import copy #move away from shared memory #this costs performance but seems necessary direct=False @@ -593,7 +586,6 @@ def readIn(self,fileprefix,shapesOnly=False): self.x=self.x_list self.y=self.y_list else: - import copy self.w=copy.deepcopy(self.w_list) del self.w_list self.x=copy.deepcopy(self.x_list) @@ -699,7 +691,6 @@ def produceMeansFromRootFile(self,filename, limit=500000): #overload if necessary def make_empty_weighter(self): - from Weighter import Weighter weighter = Weighter() weighter.undefTruth = self.undefTruth diff --git a/Weighter.py b/Weighter.py index dae5505..7829eac 100644 --- a/Weighter.py +++ b/Weighter.py @@ -74,7 +74,6 @@ def setBinningAndClasses(self,bins,nameX,nameY,classes): self.classes=[''] def addDistributions(self,Tuple): - import numpy selidxs=[] ytuple=Tuple[self.nameY] @@ -87,11 +86,11 @@ def addDistributions(self,Tuple): for c in self.classes: selidxs.append(labeltuple[c]>0) else: - selidxs=[numpy.zeros(len(xtuple),dtype='int')<1] + selidxs=[np.zeros(len(xtuple),dtype='int')<1] for i in range(len(self.classes)): - tmphist,xe,ye=numpy.histogram2d(xtuple[selidxs[i]],ytuple[selidxs[i]],[self.axisX,self.axisY],normed=True) + tmphist,xe,ye=np.histogram2d(xtuple[selidxs[i]],ytuple[selidxs[i]],[self.axisX,self.axisY],normed=True) self.xedges=xe self.yedges=ye if len(self.distributions)==len(self.classes): @@ -100,13 +99,12 @@ def addDistributions(self,Tuple): self.distributions.append(tmphist) def printHistos(self,outdir): - import numpy def plotHist(hist,outname): import matplotlib.pyplot as plt H=hist.T fig = plt.figure() ax = fig.add_subplot(111) - X, Y = numpy.meshgrid(self.xedges, self.yedges) + X, Y = np.meshgrid(self.xedges, self.yedges) ax.pcolormesh(X, Y, H) if self.axisX[0]>0: ax.set_xscale("log", nonposx='clip') @@ -127,7 +125,6 @@ def plotHist(hist,outname): def createRemoveProbabilitiesAndWeights(self,referenceclass='isB'): - import numpy referenceidx=-1 if not referenceclass=='flatten': try: @@ -143,16 +140,16 @@ def createRemoveProbabilitiesAndWeights(self,referenceclass='isB'): self.refclassidx=referenceidx - refhist=numpy.zeros((len(self.axisX)-1,len(self.axisY)-1), dtype='float32') + refhist=np.zeros((len(self.axisX)-1,len(self.axisY)-1), dtype='float32') refhist += 1 if referenceidx >= 0: refhist=self.distributions[referenceidx] - refhist=refhist/numpy.amax(refhist) + refhist=refhist/np.amax(refhist) def divideHistos(a,b): - out=numpy.array(a) + out=np.array(a) for i in range(a.shape[0]): for j in range(a.shape[1]): if b[i][j]: @@ -169,15 +166,15 @@ def divideHistos(a,b): tmphist=self.distributions[i] #print(tmphist) #print(refhist) - if numpy.amax(tmphist): - tmphist=tmphist/numpy.amax(tmphist) + if np.amax(tmphist): + tmphist=tmphist/np.amax(tmphist) else: print('Warning: class '+self.classes[i]+' empty.') ratio=divideHistos(refhist,tmphist) - ratio=ratio/numpy.amax(ratio)#norm to 1 + ratio=ratio/np.amax(ratio)#norm to 1 #print(ratio) ratio[ratio<0]=1 - ratio[ratio==numpy.nan]=1 + ratio[ratio==np.nan]=1 weighthists.append(ratio) ratio=1-ratio#make it a remove probability probhists.append(ratio) @@ -187,20 +184,19 @@ def divideHistos(a,b): #make it an average 1 for i in range(len(self.binweights)): - self.binweights[i]=self.binweights[i]/numpy.average(self.binweights[i]) + self.binweights[i]=self.binweights[i]/np.average(self.binweights[i]) def createNotRemoveIndices(self,Tuple): - import numpy if len(self.removeProbabilties) <1: print('removeProbabilties bins not initialised. Cannot create indices per jet') raise Exception('removeProbabilties bins not initialised. Cannot create indices per jet') tuplelength=len(Tuple) - notremove=numpy.zeros(tuplelength) + notremove=np.zeros(tuplelength) counter=0 xaverage=[] norm=[] @@ -221,7 +217,7 @@ def createNotRemoveIndices(self,Tuple): for index, classs in enumerate(self.classes): if useonlyoneclass or 1 == jet[classs]: - rand=numpy.random.ranf() + rand=np.random.ranf() prob = self.removeProbabilties[index][binX][binY] if rand < prob and index != self.refclassidx: @@ -234,7 +230,10 @@ def createNotRemoveIndices(self,Tuple): yaverage[index]+=jet[self.nameY] norm[index]+=1 - counter=counter+1 + counter += 1 + break + else: + counter += 1 if not len(notremove) == counter: @@ -246,12 +245,11 @@ def createNotRemoveIndices(self,Tuple): def getJetWeights(self,Tuple): - import numpy countMissedJets = 0 if len(self.binweights) <1: raise Exception('weight bins not initialised. Cannot create weights per jet') - weight = numpy.zeros(len(Tuple)) + weight = np.zeros(len(Tuple)) jetcount=0 useonlyoneclass=len(self.classes)==1 and len(self.classes[0])==0 diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index 84bf6c4..9977c55 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -1,8 +1,10 @@ #!/bin/env python -from argparse import ArgumentParser -from pdb import set_trace import os +import logging +from argparse import ArgumentParser + +logging.getLogger().setLevel(logging.INFO) parser = ArgumentParser('program to convert root tuples to traindata format') parser.add_argument("infile", help="set input sample description (output from the check.py script)", metavar="FILE") @@ -16,6 +18,8 @@ parser.add_argument("--meansfrom", default="", help='where to get means/std, in case already computed') parser.add_argument("--useexistingsplit", default=False, help='use an existing file split (potentially dangerous)') parser.add_argument("--noRelativePaths", help="Assume input samples are absolute paths with respect to working directory", default=False, action="store_true") +parser.add_argument("--jobFlavour", default='espresso', help="CERN HTCondor job flavour (espresso, microcentury, longlunch, workday)") +parser.add_argument("--cmst3", action="store_true", help="Submit jobs with cmst3 accounting group.") args = parser.parse_args() args.infile = os.path.abspath(args.infile) @@ -97,7 +101,7 @@ range_indices.append((start, start + chunk_size)) batch_template = '''#!/bin/bash -sleep $(shuf -i1-300 -n1) #sleep a random amount of time between 1s and 10' to avoid bottlenecks in reaching afs +#sleep $(shuf -i1-300 -n1) #sleep a random amount of time between 1s and 10' to avoid bottlenecks in reaching afs echo "JOBSUB::RUN job running" trap "echo JOBSUB::FAIL job killed" SIGTERM BASEDIR=`pwd` @@ -133,9 +137,11 @@ error = {BATCH_DIR}/batch/con_out.$(ProcId).err log = {BATCH_DIR}/batch/con_out.$(ProcId).log +MaxRuntime = 86399 -+JobFlavour = "microcentury" ++JobFlavour = "{FLAVOUR}" getenv = True #use_x509userproxy = True +accounting_group = {ACCTGRP} ++AccountingGroup = {ACCTGRP} queue START STOP from ( {RANGE_INDICES} ) @@ -146,6 +152,8 @@ OUT = os.path.realpath(args.out), OPTION = option, BATCH_DIR = args.batch_dir, + FLAVOUR = args.jobFlavour, + ACCTGRP = 'group_u_CMST3.all' if args.cmst3 else 'group_u_CMS.u_zh', RANGE_INDICES = '\n'.join('%d %d' % rng for rng in range_indices) )) diff --git a/bin/convertFromRoot.py b/bin/convertFromRoot.py index 0b88b12..a5010e4 100755 --- a/bin/convertFromRoot.py +++ b/bin/convertFromRoot.py @@ -17,6 +17,7 @@ from argparse import ArgumentParser from pdb import set_trace import logging +logging.basicConfig(format='%(asctime)s:%(levelname)s:%(name)s: %(message)s') logging.getLogger().setLevel(logging.INFO) from DeepJetCore.DataCollection import DataCollection @@ -103,7 +104,9 @@ useRelativePaths=True if not args.noRelativePaths else False) dc.meansnormslimit = int(args.nforweighter) if len(nchilds): - dc.nprocs=int(nchilds) + dc.nprocs=int(nchilds) +if args.batch is not None: + dc.batch_mode = True traind=None if class_name in class_options: @@ -119,7 +122,6 @@ dc.createTestDataForDataCollection( testdatafor, infile, outPath, outname = args.batch if args.batch else 'dataCollection.dc', - batch_mode = bool(args.batch), traind=traind(class_args) if traind else None ) elif recover: @@ -128,10 +130,13 @@ dc.convertListOfRootFiles( infile, traind(class_args) if class_args else traind(), outPath, means_only=True, output_name='batch_template.dc' - ) + ) else: + logging.info('Start conversion') dc.convertListOfRootFiles( infile, traind(class_args) if class_args else traind(), outPath, usemeansfrom, output_name = args.batch if args.batch else 'dataCollection.dc', - batch_mode = bool(args.batch) - ) + ) + +if args.inRange is not None: + os.unlink(infile) From 8570bce21fb22b248dbe808aa9ee78998b7ed8f1 Mon Sep 17 00:00:00 2001 From: Yutaro Date: Thu, 4 Jul 2019 10:22:38 +0200 Subject: [PATCH 079/437] making relative path a bit less awkward --- DataCollection.py | 30 ++++++++++++++-------------- bin/convertFromRoot.py | 45 +++++++++++++++++++----------------------- 2 files changed, 35 insertions(+), 40 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 9fd8d14..672e995 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -46,12 +46,11 @@ class DataCollection(object): ''' - def __init__(self, infile = None, nprocs = -1,useRelativePaths=True): + def __init__(self, infile = None, nprocs = -1): ''' Constructor ''' self.clear() - self.useRelativePaths=useRelativePaths self.nprocs = nprocs self.meansnormslimit=500000 if infile: @@ -325,7 +324,7 @@ def readFromFile(self,filename): raise Exception('sample file not found') - def readRootListFromFile(self,file): + def readRootListFromFile(self, file, relpath=''): self.samples=[] self.sampleentries=[] self.originRoots=[] @@ -338,8 +337,8 @@ def readRootListFromFile(self,file): lines = [line.rstrip('\n') for line in open(file)] for line in lines: if len(line) < 1: continue - if self.useRelativePaths: - self.originRoots.append(fdir+'/'+line) + if relpath: + self.originRoots.append(os.path.join(relpath, line)) else: self.originRoots.append(line) @@ -408,10 +407,10 @@ def split(self,ratio): return out - def createTestDataForDataCollection( - self, collectionfile, inputfile, - outputDir, outname = 'dataCollection.dc', - traind=None): + def createTestDataForDataCollection(self, collectionfile, inputfile, outputDir, + outname='dataCollection.dc', + traind=None, + relpath=''): self.readFromFile(collectionfile) self.dataclass.remove=False @@ -419,7 +418,7 @@ def createTestDataForDataCollection( if traind: print('[createTestDataForDataCollection] dataclass is overriden by user request') self.dataclass=traind - self.readRootListFromFile(inputfile) + self.readRootListFromFile(inputfile, relpath=relpath) self.createDataFromRoot( self.dataclass, outputDir, False, dir_check = not self.batch_mode @@ -703,15 +702,16 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): raise os.system('rm -rf '+tempstoragepath) - def convertListOfRootFiles( - self, inputfile, dataclass, outputDir, - takemeansfrom='', means_only = False, - output_name = 'dataCollection.dc'): + def convertListOfRootFiles(self, inputfile, dataclass, outputDir, + takemeansfrom='', means_only=False, + output_name='dataCollection.dc', + relpath=''): + newmeans=True if takemeansfrom: self.readFromFile(takemeansfrom) newmeans=False - self.readRootListFromFile(inputfile) + self.readRootListFromFile(inputfile, relpath=relpath) self.createDataFromRoot( dataclass, outputDir, newmeans, means_only = means_only, diff --git a/bin/convertFromRoot.py b/bin/convertFromRoot.py index a5010e4..a2b0302 100755 --- a/bin/convertFromRoot.py +++ b/bin/convertFromRoot.py @@ -68,24 +68,12 @@ if outPath: logging.info("outPath = %s" % outPath) +if args.noRelativePaths: + relpath = '' +else: + relpath = os.path.dirname(os.path.realpath(infile)) + if args.inRange is not None: - relative_to_absolute = '' - if not args.noRelativePaths: - new_list_directory = os.getenv('TMPDIR', '/tmp') - pos = 0 - # count the number of slashes - while True: - pos = new_list_directory.find('/', pos) + 1 - if pos == 0: - break - - relative_to_absolute += '../' - - if new_list_directory.endswith('/'): - relative_to_absolute = relative_to_absolute[:-3] - - relative_to_absolute += os.path.dirname(os.path.realpath(infile))[1:] + '/' - with tempfile.NamedTemporaryFile(delete=False, dir=os.getenv('TMPDIR', '/tmp')) as my_infile: with open(infile) as source: do_write = False @@ -95,13 +83,15 @@ elif iline == args.inRange[1]: break if do_write: - my_infile.write(relative_to_absolute + line) + path = os.path.realpath(os.path.join(relpath, line)) + my_infile.write(path) infile = my_infile.name + # new infile will always have absolute path + relpath = '' # MAIN BODY # -dc = DataCollection(nprocs = (1 if args.nothreads else -1), - useRelativePaths=True if not args.noRelativePaths else False) +dc = DataCollection(nprocs = (1 if args.nothreads else -1)) dc.meansnormslimit = int(args.nforweighter) if len(nchilds): dc.nprocs=int(nchilds) @@ -121,21 +111,26 @@ logging.info('converting test data, no weights applied') dc.createTestDataForDataCollection( testdatafor, infile, outPath, - outname = args.batch if args.batch else 'dataCollection.dc', - traind=traind(class_args) if traind else None + outname=(args.batch if args.batch else 'dataCollection.dc'), + traind=(traind(class_args) if traind else None), + relpath=relpath ) elif recover: dc.recoverCreateDataFromRootFromSnapshot(recover) elif args.means: dc.convertListOfRootFiles( - infile, traind(class_args) if class_args else traind(), outPath, - means_only=True, output_name='batch_template.dc' + infile, traind(class_args) if class_args else traind(), outPath, + means_only=True, + output_name='batch_template.dc', + relpath=relpath ) else: logging.info('Start conversion') dc.convertListOfRootFiles( infile, traind(class_args) if class_args else traind(), outPath, - usemeansfrom, output_name = args.batch if args.batch else 'dataCollection.dc', + takemeansfrom=usemeansfrom, + output_name=(args.batch if args.batch else 'dataCollection.dc'), + relpath=relpath ) if args.inRange is not None: From e6cb57fdc0f83f61dd6afec4f9971fdf520ce1b7 Mon Sep 17 00:00:00 2001 From: Yutaro Date: Thu, 4 Jul 2019 10:51:06 +0200 Subject: [PATCH 080/437] bugfix --- bin/batch_conversion.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index 9977c55..9a825be 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -67,11 +67,14 @@ if not args.classArgs: args.classArgs = tuple() - dc = DataCollection(nprocs=-1, - useRelativePaths=(True if not args.noRelativePaths else False)) + dc = DataCollection(nprocs=-1) dc.meansnormslimit = int(args.nforweighter) try: - dc.convertListOfRootFiles(args.infile, cls(*args.classArgs), args.out, means_only=True, output_name='batch_template.dc') + dc.convertListOfRootFiles(args.infile, cls(*args.classArgs), args.out, + means_only=True, + output_name='batch_template.dc', + relpath=('' if args.noRelativePaths else os.path.dirname(os.path.realpath(args.infile))) + ) except: print 'The first round of root conversion failed' From 600a3b3b7e5e4d319b7aa4b8cb53a192f4ab69ec Mon Sep 17 00:00:00 2001 From: Yutaro Date: Thu, 4 Jul 2019 18:27:22 +0200 Subject: [PATCH 081/437] cannot use ProcId for rescue to work properly --- bin/batch_conversion.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index 9a825be..8ece327 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -100,8 +100,8 @@ print('splitting input file...') range_indices = [] -for start in range(0, num_inputs, chunk_size): - range_indices.append((start, start + chunk_size)) +for idx, start in enumerate(range(0, num_inputs, chunk_size)): + range_indices.append((idx, start, start + chunk_size)) batch_template = '''#!/bin/bash #sleep $(shuf -i1-300 -n1) #sleep a random amount of time between 1s and 10' to avoid bottlenecks in reaching afs @@ -135,17 +135,17 @@ with open('%s/submit.sub' % args.batch_dir, 'w') as bb: bb.write('''executable = {EXE} -arguments = -i {INFILE} --inRange $(START) $(STOP) -c {CLASS} -o {OUT} --nothreads --batch conversion.$(ProcId).dc {OPTION} -output = {BATCH_DIR}/batch/con_out.$(ProcId).out -error = {BATCH_DIR}/batch/con_out.$(ProcId).err -log = {BATCH_DIR}/batch/con_out.$(ProcId).log +arguments = -i {INFILE} --inRange $(START) $(STOP) -c {CLASS} -o {OUT} --nothreads --batch conversion.$(JOBIDX).dc {OPTION} +output = {BATCH_DIR}/batch/con_out.$(JOBIDX).out +error = {BATCH_DIR}/batch/con_out.$(JOBIDX).err +log = {BATCH_DIR}/batch/con_out.$(JOBIDX).log +MaxRuntime = 86399 +JobFlavour = "{FLAVOUR}" getenv = True #use_x509userproxy = True accounting_group = {ACCTGRP} +AccountingGroup = {ACCTGRP} -queue START STOP from ( +queue JOBIDX START STOP from ( {RANGE_INDICES} ) '''.format( @@ -157,7 +157,7 @@ BATCH_DIR = args.batch_dir, FLAVOUR = args.jobFlavour, ACCTGRP = 'group_u_CMST3.all' if args.cmst3 else 'group_u_CMS.u_zh', - RANGE_INDICES = '\n'.join('%d %d' % rng for rng in range_indices) + RANGE_INDICES = '\n'.join('%d %d %d' % rng for rng in range_indices) )) print('condor submit file can be found in '+ args.batch_dir+'\nuse check_conversion.py ' + args.batch_dir + ' to to check jobs') From add4f1677f6fbad7ac7cccda65811dfe9652da9b Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Mon, 8 Jul 2019 11:28:30 +0200 Subject: [PATCH 082/437] small changes, default queue longer --- bin/batch_conversion.py | 4 ++-- bin/locate_cuda.py | 11 +++++++++-- evaluation/evaluation.py | 25 ++++++++++++++++--------- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index 8ece327..ca1be2c 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -18,7 +18,7 @@ parser.add_argument("--meansfrom", default="", help='where to get means/std, in case already computed') parser.add_argument("--useexistingsplit", default=False, help='use an existing file split (potentially dangerous)') parser.add_argument("--noRelativePaths", help="Assume input samples are absolute paths with respect to working directory", default=False, action="store_true") -parser.add_argument("--jobFlavour", default='espresso', help="CERN HTCondor job flavour (espresso, microcentury, longlunch, workday)") +parser.add_argument("--jobFlavour", default='longlunch', help="CERN HTCondor job flavour (espresso, microcentury, longlunch, workday)") parser.add_argument("--cmst3", action="store_true", help="Submit jobs with cmst3 accounting group.") args = parser.parse_args() @@ -139,7 +139,7 @@ output = {BATCH_DIR}/batch/con_out.$(JOBIDX).out error = {BATCH_DIR}/batch/con_out.$(JOBIDX).err log = {BATCH_DIR}/batch/con_out.$(JOBIDX).log -+MaxRuntime = 86399 +#+MaxRuntime = 86399 +JobFlavour = "{FLAVOUR}" getenv = True #use_x509userproxy = True diff --git a/bin/locate_cuda.py b/bin/locate_cuda.py index eb6c5a5..081ca36 100755 --- a/bin/locate_cuda.py +++ b/bin/locate_cuda.py @@ -6,7 +6,14 @@ def locate_lib(libname, ldlibpath): result='' try: - result = os.path.dirname(subprocess.check_output(['locate', libname]).split('\n')[0]) + result = os.path.dirname(subprocess.check_output(['locate', libname]).split('\n')) + res=result[0] + for l in result: + if '/usr/' in l: + res=l + break + + result=res except: pass if not (result in ldlibpath): @@ -20,8 +27,8 @@ def locate_lib(libname, ldlibpath): def locate_cuda(): ldlibpath = str(os.environ['LD_LIBRARY_PATH']) - ldlibpath=locate_lib('libcublas.so.9.',ldlibpath) ldlibpath=locate_lib('libcublas.so.10',ldlibpath) + ldlibpath=locate_lib('libcublas.so.9.',ldlibpath) ldlibpath=locate_lib('libcudnn.so.7',ldlibpath) print(ldlibpath) diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index 2d0f75c..2b0b038 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -519,12 +519,13 @@ def association(fname): return truth, models - + + def plotLoss(infilename,outfilename,range): import matplotlib - - matplotlib.use('Agg') + #matplotlib.use('Agg') + import matplotlib.pyplot as plt infile=open(infilename,'r') trainloss=[] @@ -533,6 +534,12 @@ def plotLoss(infilename,outfilename,range): i=0 automax=0 automin=100 + nlines=0 + with open(infilename,'r') as tmpfile: + for line in tmpfile: + if len(line)<1: continue + nlines+=1 + for line in infile: if len(line)<1: continue tl=float(line.split(' ')[0]) @@ -541,13 +548,12 @@ def plotLoss(infilename,outfilename,range): valloss.append(vl) epochs.append(i) i=i+1 - if i==5: - automax=max(tl,vl) + if i - float(nlines)/2. > 1.: + automax=max(automax,tl,vl) automin=min(automin,vl,tl) - import matplotlib.pyplot as plt - f = plt.figure() + plt.plot(epochs,trainloss,'r',label='train') plt.plot(epochs,valloss,'b',label='val') plt.ylabel('loss') @@ -556,8 +562,9 @@ def plotLoss(infilename,outfilename,range): if len(range)==2: plt.ylim(range) elif automax>0: - plt.ylim([automin*0.9,automax]) - f.savefig(outfilename) + plt.ylim([automin*0.9,automax*1.1]) + plt.show() + #plt.savefig(outfilename, format='pdf') plt.close() ######### old part - keep for reference, might be useful some day From 4486e0417ae82349d838381ac434dc86bd2422b7 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Tue, 9 Jul 2019 14:51:53 +0200 Subject: [PATCH 083/437] cosmetic fix in datacollection, actual fix in locate_cuda --- DataCollection.py | 2 +- bin/locate_cuda.py | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 672e995..6fd8047 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -688,7 +688,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): for r in results: thisidx=r[0] if thisidx==lastindex+1: - logging.info('>>>> collected result %d of %d' % (thisidx,len(self.originRoots))) + logging.info('>>>> collected result %d of %d' % (thisidx+1,len(self.originRoots))) __collectWriteInfo(r[1][0],r[1][1],r[1][2],outputDir) lastindex=thisidx diff --git a/bin/locate_cuda.py b/bin/locate_cuda.py index 081ca36..93c4c53 100755 --- a/bin/locate_cuda.py +++ b/bin/locate_cuda.py @@ -6,17 +6,18 @@ def locate_lib(libname, ldlibpath): result='' try: - result = os.path.dirname(subprocess.check_output(['locate', libname]).split('\n')) + result = subprocess.check_output(['locate', libname]) + result = result.split('\n') res=result[0] for l in result: if '/usr/' in l: res=l break - result=res + result=os.path.dirname(res) except: pass - if not (result in ldlibpath): + if len(result) and not (result in ldlibpath): if len(ldlibpath): ldlibpath+=':'+result+'/' else: @@ -26,10 +27,11 @@ def locate_lib(libname, ldlibpath): def locate_cuda(): ldlibpath = str(os.environ['LD_LIBRARY_PATH']) - ldlibpath=locate_lib('libcublas.so.10',ldlibpath) ldlibpath=locate_lib('libcublas.so.9.',ldlibpath) - ldlibpath=locate_lib('libcudnn.so.7',ldlibpath) + ldlibpath=locate_lib('libcudnn.so.7.6',ldlibpath) + ldlibpath=locate_lib('libcudnn.so.7.5',ldlibpath) + ldlibpath=locate_lib('libcudnn.so.7.4',ldlibpath) print(ldlibpath) From fe9f3c6c22297bec32bcdec03c0b092e30ac3e73 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Tue, 9 Jul 2019 14:57:23 +0200 Subject: [PATCH 084/437] fixed to new TF and cuda version --- bin/locate_cuda.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/locate_cuda.py b/bin/locate_cuda.py index 93c4c53..eed792b 100755 --- a/bin/locate_cuda.py +++ b/bin/locate_cuda.py @@ -27,7 +27,7 @@ def locate_lib(libname, ldlibpath): def locate_cuda(): ldlibpath = str(os.environ['LD_LIBRARY_PATH']) - ldlibpath=locate_lib('libcublas.so.10',ldlibpath) + ldlibpath=locate_lib('libcublas.so.10.0',ldlibpath) ldlibpath=locate_lib('libcublas.so.9.',ldlibpath) ldlibpath=locate_lib('libcudnn.so.7.6',ldlibpath) ldlibpath=locate_lib('libcudnn.so.7.5',ldlibpath) From 584091a4d7c65428a42637220abe3669ff97a614 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 12 Jul 2019 16:38:01 +0200 Subject: [PATCH 085/437] env update --- environment/deepjetLinux3.conda | 57 ----------------- environment/deepjetLinux3.pip | 15 ----- environment/deepjetOSX.conda | 42 ------------ environment/deepjetOSX.pip | 15 ----- environment/deepjetenv.conda | 109 -------------------------------- environment/djcenv.conda | 1 - environment/djcenv.pip | 2 - environment/djcenv_gpu.pip | 1 - environment/setupEnv.sh | 47 -------------- environment/setup_djcenv.sh | 5 ++ 10 files changed, 5 insertions(+), 289 deletions(-) delete mode 100644 environment/deepjetLinux3.conda delete mode 100644 environment/deepjetLinux3.pip delete mode 100644 environment/deepjetOSX.conda delete mode 100644 environment/deepjetOSX.pip delete mode 100644 environment/deepjetenv.conda delete mode 100755 environment/setupEnv.sh diff --git a/environment/deepjetLinux3.conda b/environment/deepjetLinux3.conda deleted file mode 100644 index 260dfd7..0000000 --- a/environment/deepjetLinux3.conda +++ /dev/null @@ -1,57 +0,0 @@ -# This file may be used to create an environment using: -# $ conda create --name --file -# platform: linux-64 -@EXPLICIT -https://repo.continuum.io/pkgs/free/linux-64/boost-1.61.0-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/cloog-0.18.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/dbus-1.10.10-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/expat-2.1.0-0.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/fftw-3.3.4-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/fontconfig-2.12.1-3.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/freetype-2.5.5-2.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/gcc-4.8.2-25.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/glib-2.43.0-1.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/glibc-2.12.2-3.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/gmp-5.1.2-3.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/graphviz-2.38.0-4.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/gsl-1.16-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/gst-plugins-base-1.8.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/gstreamer-1.8.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/hdf5-1.8.17-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/icu-54.1-0.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/isl-0.12.2-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/jbig-2.1-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/jpeg-9b-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libffi-3.2.1-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libgcc-5.2.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libgfortran-3.0.0-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libiconv-1.14-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libpng-1.6.27-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libtiff-4.0.6-3.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libxcb-1.12-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libxml2-2.9.4-0.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/linux-headers-2.6.32-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/mkl-2017.0.1-0.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/mpc-1.0.1-2.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/mpfr-3.1.2-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/numexpr-2.6.2-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/numpy-1.13.1-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/openssl-1.0.1k-1.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/pcre-8.37-5.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/pip-9.0.1-py27_1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/pytables-3.3.0-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/python-2.7.5-3.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/qt-5.6.2-3.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/readline-6.2-2.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/root-6.04-py2.7_gcc4.8.2.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/root-numpy-4.4.0-root6.04_py2.7.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/scikit-learn-0.18.2-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/scipy-0.19.1-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/setuptools-27.2.0-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/six-1.10.0-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/sqlite-3.13.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/system-5.8-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/tk-8.5.18-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/wheel-0.29.0-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/xz-5.2.2-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/zlib-1.2.8-3.tar.bz2 diff --git a/environment/deepjetLinux3.pip b/environment/deepjetLinux3.pip deleted file mode 100644 index 3aa84a2..0000000 --- a/environment/deepjetLinux3.pip +++ /dev/null @@ -1,15 +0,0 @@ -cycler==0.10.0 -funcsigs==1.0.2 -functools32==3.2.3.post2 -h5py==2.6.0 -tensorflow==1.0.1 -Keras==2.0.0 -matplotlib==2.0.0 -mock==2.0.0 -pbr==2.0.0 -protobuf==3.2.0 -pyparsing==2.2.0 -python-dateutil==2.6.0 -pytz==2016.10 -PyYAML==3.12 -subprocess32==3.2.7 diff --git a/environment/deepjetOSX.conda b/environment/deepjetOSX.conda deleted file mode 100644 index dad6c82..0000000 --- a/environment/deepjetOSX.conda +++ /dev/null @@ -1,42 +0,0 @@ -# This file may be used to create an environment using: -# $ conda create --name --file -# platform: osx-64 -@EXPLICIT -https://repo.continuum.io/pkgs/free/osx-64/boost-1.61.0-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/ca-certificates-2017.08.26-ha1e5d58_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/certifi-2018.1.18-py27_0.tar.bz2 -https://conda.anaconda.org/NLeSC/osx-64/fftw-3.3.4-0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/freetype-2.8-h12048fb_1.tar.bz2 -https://conda.anaconda.org/NLeSC/osx-64/gsl-1.16-2.tar.bz2 -https://repo.continuum.io/pkgs/free/osx-64/hdf5-1.8.17-2.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/icu-58.2-h4b95b61_1.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/intel-openmp-2018.0.0-h8158457_8.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/krb5-1.14.2-h9a779f2_6.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/libcxx-4.0.1-h579ed51_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/libcxxabi-4.0.1-hebd6815_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/libedit-3.1-hb4e282d_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/libffi-3.2.1-h475c297_4.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/libiconv-1.15-hdd342a3_7.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/libpng-1.6.34-he12f830_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/libxml2-2.9.7-hab757c2_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/mkl-2017.0.4-h1fae6ae_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/ncurses-6.0-hd04f020_2.tar.bz2 -https://repo.continuum.io/pkgs/free/osx-64/numexpr-2.6.2-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/osx-64/numpy-1.13.1-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/openssl-1.0.2n-hdbc3d79_0.tar.bz2 -https://conda.anaconda.org/NLeSC/osx-64/pcre-8.35-7.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/pip-9.0.1-py27h1567d89_4.tar.bz2 -https://repo.continuum.io/pkgs/free/osx-64/pytables-3.4.2-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/python-2.7.13-h89fad4f_16.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/readline-7.0-hc1231fa_4.tar.bz2 -https://conda.anaconda.org/NLeSC/osx-64/root-6.04-py2.7_clang503.tar.bz2 -https://conda.anaconda.org/NLeSC/osx-64/root-numpy-4.4.0-root6.04_py2.7.tar.bz2 -https://repo.continuum.io/pkgs/free/osx-64/scikit-learn-0.18.2-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/osx-64/scipy-0.19.1-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/setuptools-38.4.0-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/six-1.11.0-py27h7252ba3_1.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/sqlite-3.22.0-h3efe00b_0.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/tk-8.6.7-h35a86e2_3.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/wheel-0.30.0-py27h677a027_1.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/xz-5.2.3-h0278029_2.tar.bz2 -https://repo.continuum.io/pkgs/main/osx-64/zlib-1.2.11-hf3cbc9b_2.tar.bz2 diff --git a/environment/deepjetOSX.pip b/environment/deepjetOSX.pip deleted file mode 100644 index 3aa84a2..0000000 --- a/environment/deepjetOSX.pip +++ /dev/null @@ -1,15 +0,0 @@ -cycler==0.10.0 -funcsigs==1.0.2 -functools32==3.2.3.post2 -h5py==2.6.0 -tensorflow==1.0.1 -Keras==2.0.0 -matplotlib==2.0.0 -mock==2.0.0 -pbr==2.0.0 -protobuf==3.2.0 -pyparsing==2.2.0 -python-dateutil==2.6.0 -pytz==2016.10 -PyYAML==3.12 -subprocess32==3.2.7 diff --git a/environment/deepjetenv.conda b/environment/deepjetenv.conda deleted file mode 100644 index 6cf4864..0000000 --- a/environment/deepjetenv.conda +++ /dev/null @@ -1,109 +0,0 @@ -name: deepjetenv -channels: - - NLeSC - - defaults -dependencies: - - fftw=3.3.4=2 - - gcc=4.8.2=25 - - glibc=2.12.2=3 - - gsl=1.16=2 - - linux-headers=2.6.32=1 - - root=6.05=py3.6_gcc4.8.2 - - root-numpy=4.7.2=root6.05_py3.6 - - blas=1.0=mkl - - blosc=1.14.3=hdbcaa40_0 - - boost=1.65.1=py36_4 - - bzip2=1.0.6=h14c3975_5 - - ca-certificates=2018.03.07=0 - - cairo=1.14.12=h7636065_2 - - certifi=2018.4.16=py36_0 - - cloog=0.18.0=0 - - dbus=1.13.2=h714fa37_1 - - expat=2.2.5=he0dffb1_0 - - fontconfig=2.12.6=h49f89f6_0 - - freetype=2.8=hab7d2ae_1 - - glib=2.56.1=h000015b_0 - - gmp=6.1.2=h6c8ec71_1 - - graphite2=1.3.11=h16798f4_2 - - graphviz=2.40.1=h25d223c_0 - - gst-plugins-base=1.14.0=hbbd80ab_1 - - gstreamer=1.14.0=hb453b48_1 - - harfbuzz=1.7.6=h5f0a787_1 - - hdf5=1.10.2=hba1933b_1 - - icu=58.2=h9c2bf20_1 - - intel-openmp=2018.0.3=0 - - isl=0.12.2=0 - - jbig=2.1=hdba287a_0 - - jpeg=9b=h024ee3a_2 - - libboost=1.65.1=habcd387_4 - - libedit=3.1.20170329=h6b74fdf_2 - - libffi=3.2.1=hd88cf55_4 - - libgcc=7.2.0=h69d50b8_2 - - libgcc-ng=7.2.0=hdf63c60_3 - - libgfortran=3.0.0=1 - - libgfortran-ng=7.2.0=hdf63c60_3 - - libiconv=1.15=h63c8f33_5 - - libpng=1.6.34=hb9fc6fc_0 - - libstdcxx-ng=7.2.0=hdf63c60_3 - - libtiff=4.0.9=he85c1e1_1 - - libtool=2.4.6=h544aabb_3 - - libxcb=1.13=h1bed415_1 - - libxml2=2.9.8=h26e45fe_1 - - lzo=2.10=h49e0be7_2 - - mkl=2018.0.3=1 - - mpc=1.0.3=hec55b23_5 - - mpfr=3.1.5=h11a74b3_2 - - ncurses=6.1=hf484d3e_0 - - numexpr=2.6.5=py36h7bf3b9c_0 - - numpy=1.14.3=py36h28100ab_2 - - numpy-base=1.14.3=py36hdbf6ddf_2 - - openssl=1.0.2o=h20670df_0 - - pango=1.41.0=hd475d92_0 - - pcre=8.42=h439df22_0 - - pip=10.0.1=py36_0 - - pixman=0.34.0=hceecf20_3 - - py-boost=1.65.1=py36hf484d3e_4 - - pytables=3.4.3=py36h02b9ad4_2 - - python=3.6.5=hc3d631a_2 - - qt=5.9.5=h7e424d6_0 - - readline=7.0=ha6073c6_4 - - scikit-learn=0.19.1=py36h7aa7ec6_0 - - scipy=1.1.0=py36hfc37229_0 - - setuptools=39.2.0=py36_0 - - six=1.11.0=py36h372c433_1 - - snappy=1.1.7=hbae5bb6_3 - - sqlite=3.23.1=he433501_0 - - system=5.8=2 - - tk=8.6.7=hc745277_3 - - wheel=0.31.1=py36_0 - - xz=5.2.4=h14c3975_4 - - zlib=1.2.11=ha838bed_2 - - pip: - - absl-py==0.2.2 - - astor==0.6.2 - - bleach==1.5.0 - - cycler==0.10.0 - - funcsigs==1.0.2 - - gast==0.2.0 - - grpcio==1.12.1 - - h5py==2.8.0 - - html5lib==0.9999999 - - keras==2.2.0 - - keras-applications==1.0.2 - - keras-preprocessing==1.0.1 - - kiwisolver==1.0.1 - - markdown==2.6.11 - - matplotlib==2.2.2 - - mock==2.0.0 - - pbr==4.0.4 - - protobuf==3.5.2.post1 - - pyparsing==2.2.0 - - python-dateutil==2.7.3 - - pytz==2018.4 - - pyyaml==3.12 - - tables==3.4.3 - - tensorboard==1.8.0 - - tensorflow==1.8.0 - - termcolor==1.1.0 - - werkzeug==0.14.1 -prefix: /afs/cern.ch/work/s/smehta/miniconda3/envs/deepjetenv diff --git a/environment/djcenv.conda b/environment/djcenv.conda index 3abee35..31ff785 100644 --- a/environment/djcenv.conda +++ b/environment/djcenv.conda @@ -54,7 +54,6 @@ https://conda.anaconda.org/NLeSC/linux-64/graphviz-2.38.0-4.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/gst-plugins-base-1.8.0-0.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/pytables-3.3.0-np113py27_0.tar.bz2 https://repo.continuum.io/pkgs/main/linux-64/setuptools-41.0.1-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/pip-9.0.1-py27_1.tar.bz2 https://repo.continuum.io/pkgs/free/linux-64/qt-5.6.2-3.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/root-6.04-py2.7_gcc4.8.2.tar.bz2 https://conda.anaconda.org/NLeSC/linux-64/root-numpy-4.4.0-root6.04_py2.7.tar.bz2 diff --git a/environment/djcenv.pip b/environment/djcenv.pip index e6fa0aa..07635d5 100644 --- a/environment/djcenv.pip +++ b/environment/djcenv.pip @@ -22,7 +22,6 @@ matplotlib==2.0.0 mock==2.0.0 numexpr==2.6.2 numpy==1.16.3 -nvidia-ml-py==375.53.1 pbr==2.0.0 protobuf==3.7.1 psutil==5.6.2 @@ -33,7 +32,6 @@ PyYAML==5.1 root-numpy==4.4.0.dev0 scikit-learn==0.18.2 scipy==1.2.1 -setGPU==0.0.7 six==1.12.0 subprocess32==3.2.7 tables==3.3.0 diff --git a/environment/djcenv_gpu.pip b/environment/djcenv_gpu.pip index 651f7bf..dacc83b 100644 --- a/environment/djcenv_gpu.pip +++ b/environment/djcenv_gpu.pip @@ -22,7 +22,6 @@ matplotlib==2.0.0 mock==2.0.0 numexpr==2.6.2 numpy==1.16.3 -nvidia-ml-py==375.53.1 pbr==2.0.0 protobuf==3.7.1 psutil==5.6.2 diff --git a/environment/setupEnv.sh b/environment/setupEnv.sh deleted file mode 100755 index f7654a0..0000000 --- a/environment/setupEnv.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -if [ ! `which conda` ] -then -echo Please install the anaconda package manager -exit 1 -fi - -if [ ! $1 ] -then - echo "please specify an environment file" - exit -fi - -addstring="" - -if [[ $2 == "gpu" ]] -then - echo "setting up for gpu usage" - addstring="_${2}" -fi - - - -envfile=$1 -envname="${envfile%.*}${addstring}" -pipfile="${envfile%.*}.pip" - -conda create --copy --name $envname python=2.7.13 -conda install --name $envname --file $envfile - - -source activate $envname -pip install -r $pipfile - -#conda install scikit-learn -#conda install numpy #to update packages. fast bugfix. make a new conda list later - -cp activateROOT.sh $CONDA_PREFIX/etc/conda/activate.d/activateROOT.sh - -if [ $addstring ] -then - pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.0.1-cp27-none-linux_x86_64.whl - pip install setGPU -fi - -echo "environment set up. Please activate it with \"source activate ${envname}\"" - diff --git a/environment/setup_djcenv.sh b/environment/setup_djcenv.sh index ec8d67d..1f2f789 100755 --- a/environment/setup_djcenv.sh +++ b/environment/setup_djcenv.sh @@ -38,6 +38,11 @@ fi cp activateROOT.sh $CONDA_PREFIX/etc/conda/activate.d/activateROOT.sh +echo "please ignore the warning that come with the following installation" + +conda install -c menpo ffmpeg + +echo "stop ignoring the warnings again" echo "environment set up. Please activate it with \"source activate ${envname}\"" From 3c399a88e20349ffb8fe06b48b4f653ec4ff84bb Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Fri, 12 Jul 2019 17:23:28 +0200 Subject: [PATCH 086/437] env fixes, some more little improvements --- DJCLayers.py | 19 +++++++++++++++++++ environment/djcenv_gpu.pip | 1 - training/DeepJet_callbacks.py | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/DJCLayers.py b/DJCLayers.py index 47b8545..26f3d5e 100644 --- a/DJCLayers.py +++ b/DJCLayers.py @@ -85,7 +85,26 @@ def get_config(self): djc_global_layers_list['FeedForward']=FeedForward + +class Clip(Layer): + def __init__(self, min, max , **kwargs): + super(Clip, self).__init__(**kwargs) + self.min=min + self.max=max + + def compute_output_shape(self, input_shape): + return input_shape + + def call(self, inputs): + return tf.clip_by_value(inputs, self.min, self.max) + def get_config(self): + config = {'min': self.min, 'max': self.max} + base_config = super(Clip, self).get_config() + return dict(list(base_config.items()) + list(config.items() )) + +djc_global_layers_list['Clip']=Clip + class ReduceSumEntirely(Layer): def __init__(self, **kwargs): diff --git a/environment/djcenv_gpu.pip b/environment/djcenv_gpu.pip index dacc83b..460f2ff 100644 --- a/environment/djcenv_gpu.pip +++ b/environment/djcenv_gpu.pip @@ -3,7 +3,6 @@ astor==0.7.1 backports.weakref==1.0.post1 bleach==1.5.0 blessings==1.7 -certifi==2019.3.9 cycler==0.10.0 enum34==1.1.6 funcsigs==1.0.2 diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 7491422..6ec731c 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -211,7 +211,7 @@ def __init__(self, class PredictCallback(Callback): def __init__(self, - samplefile='', + samplefile, function_to_apply=None, #needs to be function(counter,[model_input], [predict_output], [truth]) after_n_batches=50, on_epoch_end=False, From 95dd386e5cb768b1c8c971f4aeb58c9842ab2854 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Mon, 15 Jul 2019 10:54:06 +0200 Subject: [PATCH 087/437] list cut off --- compiled/src/c_arrayReads.C | 18 ++++++++++++++---- preprocessing/preprocessing.py | 13 +++++++++---- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/compiled/src/c_arrayReads.C b/compiled/src/c_arrayReads.C index 7da5af8..f5bd1cb 100644 --- a/compiled/src/c_arrayReads.C +++ b/compiled/src/c_arrayReads.C @@ -30,9 +30,11 @@ void read2DArray(boost::python::numeric::array numpyarray, std::string filename_std, std::string treename_std, std::string branchname_std, - int rebinx=1, - int rebiny=1, - bool zeropad=false + int rebinx, + int rebiny, + bool zeropad, + bool x_cutoff, + boost::python::numeric::array x_ncut ) { @@ -67,15 +69,23 @@ void read2DArray(boost::python::numeric::array numpyarray, throw std::runtime_error("read2DArray: tree/array dimensions don't match"); } + int npe=0; for(int e=0;eGetEntry(e); + if(inarr->size() > nx){ + if(x_cutoff){ + x_ncut[0]+=1; + continue;} + else throw std::out_of_range("read2DArray: x ([:,x,...]) out of range"); + } for(size_t x=0;xsize();x++){ int npx = (int)x/rebinx; for(size_t y=0;yat(x).size();y++){ int npy = (int)y/rebiny; - numpyarray[e][npx][npy][0] += inarr->at(x)[y]; + numpyarray[npe][npx][npy][0] += inarr->at(x)[y]; } } + npe++; } tfile->Close(); delete tfile; diff --git a/preprocessing/preprocessing.py b/preprocessing/preprocessing.py index 3d23f8c..84548dd 100644 --- a/preprocessing/preprocessing.py +++ b/preprocessing/preprocessing.py @@ -549,23 +549,28 @@ def read2DArray(filename, treename, branchname, nevents, xsize, ysize, from DeepJetCore.compiled import c_arrayReads array = numpy.zeros((nevents,xsize/rebinx, ysize/rebiny,1) , dtype='float32') - - c_arrayReads.read2DArray(array,filename, treename, branchname,rebinx,rebiny,zeropad) + ncut=0 + c_arrayReads.read2DArray(array,filename, treename, branchname,rebinx,rebiny,zeropad, False, ncut) return array def readListArray(filename, treename, branchname, nevents, list_size, n_feat_per_element, - zeropad=False): + zeropad=False, list_size_cut=False): from DeepJetCore.compiled import c_arrayReads + n_cut = numpy.array([0],dtype='int') + array = numpy.zeros((nevents,list_size, n_feat_per_element,1) , dtype='float32') - c_arrayReads.read2DArray(array,filename, treename, branchname,1,1,zeropad) + c_arrayReads.read2DArray(array,filename, treename, branchname,1,1,zeropad,list_size_cut,n_cut) array = numpy.squeeze(array, axis=-1) + if list_size_cut: + return array, n_cut[0] + return array def read3DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, From 884a98f1805b3fdf44909f80b08d1b2d09593a60 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Mon, 15 Jul 2019 15:56:32 +0200 Subject: [PATCH 088/437] layer --- DJCLayers.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/DJCLayers.py b/DJCLayers.py index 26f3d5e..e8fd301 100644 --- a/DJCLayers.py +++ b/DJCLayers.py @@ -4,6 +4,30 @@ from keras.layers import Layer import tensorflow as tf + + +class SelectFeatures(Layer): + def __init__(self, index_left, index_right, **kwargs): + super(SelectFeatures, self).__init__(**kwargs) + self.index_left=index_left + self.index_right=index_right + + def compute_output_shape(self, input_shape): + return input_shape[:-1] + (self.index_right-self.index_left,) + + def call(self, inputs): + + return inputs[...,self.index_left:self.index_right] + + def get_config(self): + config = {'index_left': self.index_left,'index_right': self.index_right} + base_config = super(SelectFeatures, self).get_config() + return dict(list(base_config.items()) + list(config.items() )) + + +djc_global_layers_list['SelectFeatures']=SelectFeatures + + class ScalarMultiply(Layer): def __init__(self, factor, **kwargs): super(ScalarMultiply, self).__init__(**kwargs) From 1b84a866268f8639df2da5da8d28c552678e2fa1 Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Mon, 15 Jul 2019 18:25:51 +0200 Subject: [PATCH 089/437] made multigpu possible including callbacks --- training/training_base.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/training/training_base.py b/training/training_base.py index 6bd351d..944d3df 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -45,6 +45,26 @@ custom_objects_list.update(global_layers_list) custom_objects_list.update(global_metrics_list) +##helper + +from keras import Model +class ModelMGPU(Model): + def __init__(self, ser_model, gpus): + pmodel = multi_gpu_model(ser_model, gpus) + self.__dict__.update(pmodel.__dict__) + self._smodel = ser_model + + def __getattribute__(self, attrname): + '''Override load save and predict methods to be used from the serial-model. The + serial-model holds references to the weights in the multi-gpu model. + ''' + if 'load' in attrname or 'save' in attrname or 'predict' in attrname: + return getattr(self._smodel, attrname) + else: + #return Model.__getattribute__(self, attrname) + return super(ModelMGPU, self).__getattribute__(attrname) + + class training_base(object): @@ -277,7 +297,7 @@ def compileModel(self, if self.ngpus>1 and not self.submitbatch: print('Model being compiled for '+str(self.ngpus)+' gpus') - self.keras_model = multi_gpu_model(self.keras_model, gpus=self.ngpus) + self.keras_model = ModelMGPU(self.keras_model, gpus=self.ngpus) self.startlearningrate=learningrate From 2e4cd3a5f41a0d7aaeb67adb3b43ae8449df838d Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Tue, 16 Jul 2019 14:35:40 +0200 Subject: [PATCH 090/437] small addition --- training/DeepJet_callbacks.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 6ec731c..3d72c65 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -215,13 +215,15 @@ def __init__(self, function_to_apply=None, #needs to be function(counter,[model_input], [predict_output], [truth]) after_n_batches=50, on_epoch_end=False, - use_event=0 + use_event=0, + decay_function=None ): super(PredictCallback, self).__init__() self.samplefile=samplefile self.function_to_apply=function_to_apply self.counter=0 self.call_counter=0 + self.decay_function=decay_function self.after_n_batches=after_n_batches self.run_on_epoch_end=on_epoch_end @@ -252,6 +254,8 @@ def predict_and_call(self,counter): def on_epoch_end(self, epoch, logs=None): self.counter=0 + if self.decay_function is not None: + self.after_n_batches=self.decay_function(self.after_n_batches) if not self.run_on_epoch_end: return self.predict_and_call(epoch) From 76963137c755cb21680225e0da96f08675f5490e Mon Sep 17 00:00:00 2001 From: CoralieNeubueser Date: Thu, 18 Jul 2019 10:33:19 +0200 Subject: [PATCH 091/437] a few new tools --- training/batchTools.py | 8 +++++--- training/training_base.py | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/training/batchTools.py b/training/batchTools.py index 499dd4e..7ae5539 100644 --- a/training/batchTools.py +++ b/training/batchTools.py @@ -57,7 +57,8 @@ def submit_batch(trainingbase, walltime=None): else: walltime=1*24*3600 # 1 day standard - + ncpus=3 + ncpus+=trainingbase.ngpus condor_file=''' executable = /bin/bash @@ -68,12 +69,13 @@ def submit_batch(trainingbase, walltime=None): getenv = True +MaxRuntime = {walltime} request_GPUs = {ngpus} -request_cpus = 4 +request_cpus = {ncpus} queue 1 '''.format(scriptpath=scriptpath, outdir=trainingbase.outputDir, walltime=str(walltime), - ngpus=trainingbase.ngpus) + ngpus=trainingbase.ngpus, + ncpus=ncpus) with open(condorpath,'w') as condorfile: condorfile.write(condor_file) diff --git a/training/training_base.py b/training/training_base.py index 944d3df..eb769d3 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -277,6 +277,8 @@ def loadModel(self,filename): self.keras_model=load_model(filename, custom_objects=custom_objects_list) self.optimizer=self.keras_model.optimizer self.compiled=True + if self.ngpus>1: + self.compiled=False def setCustomOptimizer(self,optimizer): self.optimizer = optimizer From 529d4020ab7ae9fd56f0e2f5bcaaf2459b0bb7a0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 19 Jul 2019 18:15:52 +0200 Subject: [PATCH 092/437] merge data collections with relative paths --- DataCollection.py | 6 ++++ bin/mergeDataCollections.py | 67 +++++++++++++++++++++++++++++++++++++ evaluation/evaluation.py | 2 +- modeltools.py | 27 +++++++++++---- 4 files changed, 94 insertions(+), 8 deletions(-) create mode 100755 bin/mergeDataCollections.py diff --git a/DataCollection.py b/DataCollection.py index 6fd8047..3da928f 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -170,6 +170,12 @@ def __computeClassWeights(self,truthclassesarray): self.classweights=outdict + def prependToSampleFiles(self, path_to_prepend): + newsamples=[] + for s in self.samples: + newsamples.append(path_to_prepend+s) + self.samples=newsamples + def defineCustomPredictionLabels(self, labels): self.dataclass.defineCustomPredictionLabels(labels) diff --git a/bin/mergeDataCollections.py b/bin/mergeDataCollections.py new file mode 100755 index 0000000..4a08b81 --- /dev/null +++ b/bin/mergeDataCollections.py @@ -0,0 +1,67 @@ +#! /bin/env python + +from argparse import ArgumentParser +from DeepJetCore.DataCollection import DataCollection +import os + +def sumDCandWrite(filelist, outname): + alldc=[] + for f in filelist: + dc = DataCollection(f) + alldc.append(dc) + rel = os.path.relpath(dc.dataDir,os.getcwd()) + dc.prependToSampleFiles(rel+'/') + dc.dataDir=os.getcwd() + + merged = sum(alldc) + print(outname) + merged.writeToFile(outname) + +parser = ArgumentParser('program to merge dataCollection files') +parser.add_argument('inputfiles', metavar='N', type=str, nargs='+',help='input data collection files (.dc)') +parser.add_argument("--testsplit", help="The fraction used to create a testing dataset", default=0, type=float) +parser.add_argument("--outputprefix", help="prefix to be used for output", default="merged", type=str) + +args = parser.parse_args() + +outprefix = args.outputprefix +if len(outprefix) and outprefix[-1] != '_': + outprefix+='_' + +if args.testsplit > 1 or args.testsplit < 0: + print('testsplit must not be larger than 1 or smaller than 0, abort') + exit(-1) + +#DEBUG +ninput = float(len(args.inputfiles)) + +if args.testsplit > 0 and ninput*(args.testsplit) < 1: + print('testsplit too small to produce a single test file, abort') + exit(-2) + + +trainfiles = [] +testfiles = [] + +if args.testsplit == 0: + trainfiles = args.inputfiles +else: + + for i in range(len(args.inputfiles)): + if i < ninput*(1.-args.testsplit): + trainfiles.append(args.inputfiles[i]) + else: + testfiles.append(args.inputfiles[i]) + + +print(trainfiles) +print(testfiles) + +if args.testsplit > 0: + sumDCandWrite(testfiles, outprefix+'test.dc') +sumDCandWrite(trainfiles, outprefix+'train.dc') + + + + + diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index 2b0b038..c744705 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -564,7 +564,7 @@ def plotLoss(infilename,outfilename,range): elif automax>0: plt.ylim([automin*0.9,automax*1.1]) plt.show() - #plt.savefig(outfilename, format='pdf') + #plt.savefig(outfilename, format='pdf') #why does this crash? plt.close() ######### old part - keep for reference, might be useful some day diff --git a/modeltools.py b/modeltools.py index 63b9382..2fc5e1c 100644 --- a/modeltools.py +++ b/modeltools.py @@ -66,13 +66,13 @@ def fixLayersContaining(m, fixOnlyContaining, invert=False): return m def set_trainable(m, patterns, value): - if isinstance(patterns, basestring): - patterns = [patterns] - for layidx in range(len(m.layers)): - name = m.get_layer(index=layidx).name - if any(i in name for i in patterns): - m.get_layer(index=layidx).trainable = value - return m + if isinstance(patterns, basestring): + patterns = [patterns] + for layidx in range(len(m.layers)): + name = m.get_layer(index=layidx).name + if any(i in name for i in patterns): + m.get_layer(index=layidx).trainable = value + return m def setAllTrainable(m): for layidx in range(len(m.layers)): @@ -95,4 +95,17 @@ def load_model(filename): model=load_model(filename, custom_objects=custom_objs) return model + +def apply_weights_where_possible(target_model, weight_model): + + for layer_a in target_model.layers: + for layer_b in weight_model.layers: + if layer_a.name == layer_b.name: + try: + layer_a.set_weights(layer_b.get_weights()) + except: + print('unable to copy weights for layer ', layer_a.name) + print(layer_a.weights,'\n',layer_b.weights) + + return target_model From 722eb4fcf613c89eb5c9f61e23ca9750c6015896 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 26 Jul 2019 10:23:05 +0200 Subject: [PATCH 093/437] make it work even with non en LC --- training/tokenTools.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/training/tokenTools.py b/training/tokenTools.py index cfae31e..7c5bdaf 100644 --- a/training/tokenTools.py +++ b/training/tokenTools.py @@ -21,9 +21,11 @@ def checkTokens(cutofftime_hours=48): if not renewtokens: return True import subprocess + import os klist="" try: + os.environ['LC_ALL']="en_US.UTF-8" klist=str(subprocess.check_output(['klist'],stderr=subprocess.STDOUT)) except subprocess.CalledProcessError as inst: print('klist failed - no token?')#just ignore From cce84a4dceacf621faebfc2a98f65e42230d4915 Mon Sep 17 00:00:00 2001 From: Marcel R Date: Wed, 31 Jul 2019 17:56:00 +0200 Subject: [PATCH 094/437] Add bin/make_example_data_overlap to gitignore. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index ef11b78..595342c 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ __pycache__ #*.*# build/ *.egg-info/ +bin/make_example_data_overlap + From 3f051cf81298af9ff2c494323afdbc45b1929904 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 15 Aug 2019 14:09:42 +0200 Subject: [PATCH 095/437] skip in case of problematic files --- bin/mergeDataCollections.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/mergeDataCollections.py b/bin/mergeDataCollections.py index 4a08b81..f113e90 100755 --- a/bin/mergeDataCollections.py +++ b/bin/mergeDataCollections.py @@ -7,7 +7,11 @@ def sumDCandWrite(filelist, outname): alldc=[] for f in filelist: - dc = DataCollection(f) + try: + dc = DataCollection(f) + except: + print('read in of '+f +' not working, skip') + continue alldc.append(dc) rel = os.path.relpath(dc.dataDir,os.getcwd()) dc.prependToSampleFiles(rel+'/') From 28649ffb88562530d420ed1a2b769022d7a54104 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 18 Aug 2019 10:39:23 +0200 Subject: [PATCH 096/437] incomplete but working fix of validate --- DataCollection.py | 1 + 1 file changed, 1 insertion(+) diff --git a/DataCollection.py b/DataCollection.py index 3da928f..cabc4eb 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -251,6 +251,7 @@ def validate(self, remove=True, skip_first=0): ''' for i in range(len(self.samples)): if i < skip_first: continue + if i >= len(self.samples): break td=copy.deepcopy(self.dataclass) fullpath=self.getSamplePath(self.samples[i]) print('reading '+fullpath, str(self.sampleentries[i]), str(i), '/', str(len(self.samples))) From a19577e9f3770f6ed57709b1210daf0f9e4a2a73 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 23 Aug 2019 17:33:31 +0200 Subject: [PATCH 097/437] fix --- bin/locate_cuda.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/locate_cuda.py b/bin/locate_cuda.py index eed792b..c6540df 100755 --- a/bin/locate_cuda.py +++ b/bin/locate_cuda.py @@ -32,9 +32,9 @@ def locate_cuda(): ldlibpath=locate_lib('libcudnn.so.7.6',ldlibpath) ldlibpath=locate_lib('libcudnn.so.7.5',ldlibpath) ldlibpath=locate_lib('libcudnn.so.7.4',ldlibpath) - + ldlibpath=locate_lib('libcusolver.so.10',ldlibpath) print(ldlibpath) -locate_cuda() \ No newline at end of file +locate_cuda() From b0999c42610dabb123286f528353d07c86af86a7 Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Wed, 4 Sep 2019 07:30:38 +0200 Subject: [PATCH 098/437] fix increment --- DataCollection.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index cabc4eb..09d4165 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -838,7 +838,7 @@ def startRead(counter,filename,shuffleseed): self.shuffleseed=0 #startRead(self.nextcounter,readfilename,self.shuffleseed) self.tdopen[self.nextcounter]=True - self.filecounter=self.__increment(self.filecounter,self.nfiles) + self.filecounter=self.__increment(self.filecounter,self.nfiles,to_shuffle=True) self.nextcounter=self.__increment(self.nextcounter,self.nfiles) @@ -854,11 +854,12 @@ def __getLast(self): self.lastcounter=self.__increment(self.lastcounter,self.nfiles) return td - def __increment(self,counter,maxval): + def __increment(self,counter,maxval,to_shuffle): counter+=1 if counter>=maxval: - counter=0 - self.filelist = shuffle(self.filelist) + counter=0 + if to_shuffle: + self.filelist = shuffle(self.filelist) return counter def __del__(self): From 222c4b72fe40c2751a6fca65a8cbf2b60afd5a90 Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Wed, 4 Sep 2019 07:50:12 +0200 Subject: [PATCH 099/437] add value --- DataCollection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DataCollection.py b/DataCollection.py index 09d4165..bd12def 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -854,7 +854,7 @@ def __getLast(self): self.lastcounter=self.__increment(self.lastcounter,self.nfiles) return td - def __increment(self,counter,maxval,to_shuffle): + def __increment(self,counter,maxval,to_shuffle=False): counter+=1 if counter>=maxval: counter=0 From e3750c7b39c7099176e6364adb4a72affcfa634e Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Mon, 9 Sep 2019 16:16:24 +0200 Subject: [PATCH 100/437] add option to use model.fit() --- training/training_base.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/training/training_base.py b/training/training_base.py index eb769d3..ff0af58 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -426,6 +426,7 @@ def trainModel(self, checkperiod=10, additional_plots=None, additional_callbacks=None, + load_in_mem = False, **trainargs): @@ -463,13 +464,25 @@ def trainModel(self, self.callbacks.callbacks.extend(additional_callbacks) print('starting training') - self.keras_model.fit_generator(self.train_data.generator() , - steps_per_epoch=self.train_data.getNBatchesPerEpoch(), - epochs=nepochs-self.trainedepoches, - callbacks=self.callbacks.callbacks, - validation_data=self.val_data.generator(), - validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, - max_q_size=maxqsize,**trainargs) + if load_in_mem: + print('make features') + X_train = self.train_data.getAllFeatures() + X_test = self.val_data.getAllFeatures() + print('make truth') + Y_train = self.train_data.getAllLabels() + Y_test = self.val_data.getAllLabels() + self.keras_model.fit(X_train, Y_train, batch_size=batchsize, epochs=nepochs, + callbacks=self.callbacks.callbacks, + validation_data=(X_test, Y_test), + **trainargs) + else: + self.keras_model.fit_generator(self.train_data.generator() , + steps_per_epoch=self.train_data.getNBatchesPerEpoch(), + epochs=nepochs-self.trainedepoches, + callbacks=self.callbacks.callbacks, + validation_data=self.val_data.generator(), + validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, + max_q_size=maxqsize,**trainargs) self.trainedepoches=nepochs self.saveModel("KERAS_model.h5") From cc6fddc6eeb7aabeeb6fada4babb93d334a59c0f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 10 Sep 2019 10:08:57 +0200 Subject: [PATCH 101/437] fix for buggy keras behaviour for now --- training/training_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/training/training_base.py b/training/training_base.py index ff0af58..7dc08e8 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -482,7 +482,7 @@ def trainModel(self, callbacks=self.callbacks.callbacks, validation_data=self.val_data.generator(), validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, - max_q_size=maxqsize,**trainargs) + max_q_size=1,**trainargs) self.trainedepoches=nepochs self.saveModel("KERAS_model.h5") From ef981fe5b2a6bca12a037021dc78b0a80614992d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 10 Sep 2019 10:28:06 +0200 Subject: [PATCH 102/437] fixes for issue 28 and 30 --- training/training_base.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/training/training_base.py b/training/training_base.py index 7dc08e8..d7de754 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -15,7 +15,12 @@ from DeepJetCore.DJCLosses import * from DeepJetCore.DJCLayers import * from pdb import set_trace -from keras.utils import multi_gpu_model +import keras +if float(keras.__version__[2:]) >= 2.2: + from keras.utils import multi_gpu_model +else: + def multi_gpu_model(m, ngpus): + return m import imp try: @@ -47,9 +52,11 @@ ##helper -from keras import Model +from keras.models import Model class ModelMGPU(Model): def __init__(self, ser_model, gpus): + if float(keras.__version__[2:]) < 2.2: + print('multi gpu option from keras >= 2.2.2 is NOT available for now. (see DJC issues 28 and 30)') pmodel = multi_gpu_model(ser_model, gpus) self.__dict__.update(pmodel.__dict__) self._smodel = ser_model From 8fc8b17eb7da356ad9b708e75262547cfb033d9b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 20 Sep 2019 09:50:42 +0200 Subject: [PATCH 103/437] bugfix --- bin/convertFromRoot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/convertFromRoot.py b/bin/convertFromRoot.py index a2b0302..c76faf9 100755 --- a/bin/convertFromRoot.py +++ b/bin/convertFromRoot.py @@ -70,7 +70,7 @@ if args.noRelativePaths: relpath = '' -else: +elif not recover: relpath = os.path.dirname(os.path.realpath(infile)) if args.inRange is not None: From 23d9c52f819ebdb3e803a86e18e9fc9263038848 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 30 Sep 2019 14:52:12 +0200 Subject: [PATCH 104/437] test script to see if machine is fine --- bin/testEnvironment.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 bin/testEnvironment.py diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py new file mode 100755 index 0000000..674bd9b --- /dev/null +++ b/bin/testEnvironment.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +print('importing tensorflow...') + +import tensorflow + +print('importing keras...') + +import keras +from keras import Input + +print('importing numpy...') + +import numpy + +print('running random training in keras...') + +features = numpy.random.rand(1000, 10) +truth = features + + +a = Input(shape=(10,)) +b = keras.layers.Dense(10)(a) +model = keras.models.Model(inputs=a, outputs=b) +model.compile(optimizer='adam',loss='mse') +model.fit(x=features, y=truth, batch_size=100, epochs=20) + +print('loading DeepJetCore library...') + +from DeepJetCore.compiled import c_arrayReads + +print('basic packages seem to work') From 5432d6cb967da0f6cd51ea4b2033ccf87374063a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 4 Oct 2019 16:53:43 +0200 Subject: [PATCH 105/437] docker env --- docker_env.sh | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 docker_env.sh diff --git a/docker_env.sh b/docker_env.sh new file mode 100644 index 0000000..005de12 --- /dev/null +++ b/docker_env.sh @@ -0,0 +1,9 @@ + +export PATH=`pwd`/bin:$PATH +export PYTHONPATH=`pwd`/../:$PYTHONPATH +if [ $LD_LIBRARY_PATH ] +then + export LD_LIBRARY_PATH=`pwd`/compiled/:$LD_LIBRARY_PATH +else + export LD_LIBRARY_PATH=`pwd`/compiled/ +fi \ No newline at end of file From 14852f267dc76df375fce3af5b6a30f35261449a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 4 Oct 2019 16:12:13 +0000 Subject: [PATCH 106/437] boost >1.63 --- compiled/Makefile | 47 ++++++++------------------------ compiled/interface/pythonToSTL.h | 2 +- compiled/src/c_arrayReads.C | 12 ++++---- compiled/src/c_makePlots.C | 2 +- compiled/src/c_makeROCs.C | 2 +- compiled/src/c_meanNormZeroPad.C | 32 +++++++++++----------- compiled/src/c_randomSelect.C | 12 ++++---- compiled/src/c_readArrThreaded.C | 4 +-- compiled/src/c_storeTensor.C | 4 +-- 9 files changed, 47 insertions(+), 70 deletions(-) diff --git a/compiled/Makefile b/compiled/Makefile index 8c5e346..b79286d 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -1,25 +1,11 @@ -# location of the Python header files -PYTHON_VERSION = 2.7 # location of the Boost Python include files and library -PYTHON_INCLUDE = ${CONDA_PREFIX}/include/python2.7 -PYTHON_LIB=${CONDA_PREFIX}/lib/python$(PYTHON_VERSION)/config -# also works on gpu in compiled version -# this is just luck, ... -BOOST_INC = ${CONDA_PREFIX}/include -BOOST_LIB = ${CONDA_PREFIX}/lib -ifdef CMSSW_BASE - PYTHON_BASE=$(shell scram tool info python | grep BASE | cut -d "=" -f 2) - PYTHON_INCLUDE=${PYTHON_BASE}/include/python${PYTHON_VERSION}/ - PYTHON_LIB=${PYTHON_BASE}/lib/python${PYTHON_VERSION}/config - BOOST_BASE=$(shell scram tool info boost | grep BASE | cut -d "=" -f 2) - BOOST_INC = ${BOOST_BASE}/include - BOOST_LIB = ${BOOST_BASE}/lib -endif +PYTHON_INCLUDE = `python-config --includes` +PYTHON_LIB=`python-config --libs` + LINUXADD=-Wl,--export-dynamic -ROOTSTUFF=`root-config --cflags --libs --glibs` -g -CFLAGS= +ROOTSTUFF=`root-config --cflags --libs --glibs` CPP_FILES := $(wildcard src/*.cpp) OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) @@ -30,11 +16,6 @@ MODULES := $(wildcard src/*.C) MODULES_OBJ_FILES := $(addprefix ./,$(notdir $(MODULES:.C=.o))) MODULES_SHARED_LIBS := $(addprefix ./,$(notdir $(MODULES:.C=.so))) -UNAME_S := $(shell uname -s) -# remove linux flags in osx -ifeq ($(UNAME_S),Darwin) - LINUXADD="" -endif all: $(MODULES_SHARED_LIBS) $(patsubst to_bin/%.cpp, %, $(wildcard to_bin/*.cpp)) classdict.so @@ -43,17 +24,13 @@ classdict.cxx: src/LinkDef.h rootcling -v4 -f $@ -rmf classdict.rootmap -rml classdict.so $^ classdict.so: classdict.cxx - g++ -std=c++11 -fPIC -shared -o classdict.so classdict.cxx - -#make_example_data: to_bin/make_example_data.cpp libdeepjetcorehelpers.so classdict.cxx -# g++ $(CFLAGS) $(LINUXADD) $(ROOTSTUFF) -I./interface $< -o $@ -# mv make_example_data ../bin/ - - + g++ $(ROOTSTUFF) -std=c++11 -fPIC -shared -o classdict.so classdict.cxx + + %: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx - g++ $(CFLAGS) $(LINUXADD) $(ROOTSTUFF) -I./interface $< -o $@ + g++ $(CFLAGS) -I./interface $(LINUXADD) $< $(ROOTSTUFF) -o $@ mv $@ ../bin/ - + #helpers libquicklz.so: gcc -shared -O2 -fPIC src/quicklz.c -o libquicklz.so @@ -66,13 +43,13 @@ libdeepjetcorehelpers.so: $(OBJ_FILES) g++ -shared $(LINUXADD) -fPIC $(ROOTSTUFF) obj/*.o -o $@ %.so: %.o libdeepjetcorehelpers.so libquicklz.so - g++ -shared $(LINUXADD) $(ROOTSTUFF) -lquicklz -L./ -ldeepjetcorehelpers -L$(BOOST_LIB) -lboost_python -L$(PYTHON_LIB) -lpython2.7 $< -o $(@) + g++ -shared $(LINUXADD) $(ROOTSTUFF) -lquicklz -L./ -ldeepjetcorehelpers -lboost_python $(PYTHON_LIB) $< -o $(@) %.o: src/%.C - g++ $(ROOTSTUFF) -O2 -I./interface -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -fPIC -c -o $(@) $< + g++ $(ROOTSTUFF) -O2 -I./interface $(PYTHON_INCLUDE) -fPIC -c -o $(@) $< clean: - rm -f $(OBJ_FILES) $(SHARED_LIBS) $(MODULES_SHARED_LIBS) $(MODULES_OBJ_FILES) libdeepjetcorehelpers.so libquicklz.so classdict.so classdict.cxx classdict.rootmap classdict_rdict.pcm \ No newline at end of file + rm -f $(OBJ_FILES) $(SHARED_LIBS) $(MODULES_SHARED_LIBS) $(MODULES_OBJ_FILES) libdeepjetcorehelpers.so libquicklz.so classdict.so classdict.cxx classdict.rootmap classdict_rdict.pcm diff --git a/compiled/interface/pythonToSTL.h b/compiled/interface/pythonToSTL.h index 916c207..42fc78b 100644 --- a/compiled/interface/pythonToSTL.h +++ b/compiled/interface/pythonToSTL.h @@ -9,7 +9,7 @@ #define DEEPJET_MODULES_INTERFACE_PYTHONTOSTL_H_ #include #include "boost/python/extract.hpp" -#include "boost/python/numeric.hpp" +#include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include "boost/python/str.hpp" #include diff --git a/compiled/src/c_arrayReads.C b/compiled/src/c_arrayReads.C index f5bd1cb..d62a391 100644 --- a/compiled/src/c_arrayReads.C +++ b/compiled/src/c_arrayReads.C @@ -2,7 +2,7 @@ #define BOOST_PYTHON_MAX_ARITY 20 #include #include "boost/python/extract.hpp" -#include "boost/python/numeric.hpp" +#include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include "boost/python/str.hpp" //#include "boost/filesystem.hpp" @@ -26,7 +26,7 @@ using namespace boost::python; //for some reason.... -void read2DArray(boost::python::numeric::array numpyarray, +void read2DArray(boost::python::numpy::ndarray numpyarray, std::string filename_std, std::string treename_std, std::string branchname_std, @@ -34,7 +34,7 @@ void read2DArray(boost::python::numeric::array numpyarray, int rebiny, bool zeropad, bool x_cutoff, - boost::python::numeric::array x_ncut + boost::python::numpy::ndarray x_ncut ) { @@ -92,7 +92,7 @@ void read2DArray(boost::python::numeric::array numpyarray, } -void read3DArray(boost::python::numeric::array numpyarray, +void read3DArray(boost::python::numpy::ndarray numpyarray, std::string filename_std, std::string treename_std, std::string branchname_std, @@ -154,7 +154,7 @@ void read3DArray(boost::python::numeric::array numpyarray, } -void read4DArray(boost::python::numeric::array numpyarray, +void read4DArray(boost::python::numpy::ndarray numpyarray, std::string filename_std, std::string treename_std, std::string branchname_std, @@ -228,7 +228,7 @@ void read4DArray(boost::python::numeric::array numpyarray, // Expose classes and methods to Python BOOST_PYTHON_MODULE(c_arrayReads) { - boost::python::numeric::array::set_module_and_type("numpy", "ndarray"); + def("read2DArray", &read2DArray); def("read3DArray", &read3DArray); def("read4DArray", &read4DArray); diff --git a/compiled/src/c_makePlots.C b/compiled/src/c_makePlots.C index 13a9e9f..4f6957a 100644 --- a/compiled/src/c_makePlots.C +++ b/compiled/src/c_makePlots.C @@ -2,7 +2,7 @@ #define BOOST_PYTHON_MAX_ARITY 20 #include #include "boost/python/extract.hpp" -#include "boost/python/numeric.hpp" +#include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include "boost/python/str.hpp" //#include "boost/filesystem.hpp" diff --git a/compiled/src/c_makeROCs.C b/compiled/src/c_makeROCs.C index 9d71c2c..e5f4e2e 100644 --- a/compiled/src/c_makeROCs.C +++ b/compiled/src/c_makeROCs.C @@ -1,7 +1,7 @@ #define BOOST_PYTHON_MAX_ARITY 40 #include #include "boost/python/extract.hpp" -#include "boost/python/numeric.hpp" +#include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include "boost/python/str.hpp" //#include "boost/filesystem.hpp" diff --git a/compiled/src/c_meanNormZeroPad.C b/compiled/src/c_meanNormZeroPad.C index c5af407..062d12c 100644 --- a/compiled/src/c_meanNormZeroPad.C +++ b/compiled/src/c_meanNormZeroPad.C @@ -2,7 +2,7 @@ #define BOOST_PYTHON_MAX_ARITY 20 #include #include "boost/python/extract.hpp" -#include "boost/python/numeric.hpp" +#include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include "boost/python/str.hpp" //#include "boost/filesystem.hpp" @@ -36,12 +36,12 @@ enum modeen {en_flat,en_particlewise}; // Functions to demonstrate extraction -void priv_meanNormZeroPad(boost::python::numeric::array& numpyarray, +void priv_meanNormZeroPad(boost::python::numpy::ndarray& numpyarray, std::vector<__hidden::indata> data, TFile* tfile, modeen mode); -void priv_process(boost::python::numeric::array numpyarray, +void priv_process(boost::python::numpy::ndarray numpyarray, const boost::python::list inl_norms, const boost::python::list inl_means , const boost::python::list inl_branches, @@ -56,7 +56,7 @@ void priv_process(boost::python::numeric::array numpyarray, * wrapper to create input to C++ only function * Can be generalised to doing it at the same time for many different sized branches */ -void process(boost::python::numeric::array numpyarray, +void process(boost::python::numpy::ndarray numpyarray, const boost::python::list inl_norms, const boost::python::list inl_means , const boost::python::list inl_branches, @@ -70,7 +70,7 @@ void process(boost::python::numeric::array numpyarray, } -void particlecluster(boost::python::numeric::array numpyarray, +void particlecluster(boost::python::numpy::ndarray numpyarray, const boost::python::list inl_norms, const boost::python::list inl_means , const boost::python::list inl_branches, @@ -86,7 +86,7 @@ void particlecluster(boost::python::numeric::array numpyarray, } -void priv_process(boost::python::numeric::array numpyarray, +void priv_process(boost::python::numpy::ndarray numpyarray, const boost::python::list inl_norms, const boost::python::list inl_means , const boost::python::list inl_branches, @@ -124,7 +124,7 @@ void priv_process(boost::python::numeric::array numpyarray, //root-only functions //change all inputs except for in_data to vectors for simultaneous use -void priv_meanNormZeroPad(boost::python::numeric::array& numpyarray, +void priv_meanNormZeroPad(boost::python::numpy::ndarray& numpyarray, std::vector<__hidden::indata> datacollection, TFile* tfile, modeen mode){ @@ -177,7 +177,7 @@ void priv_meanNormZeroPad(boost::python::numeric::array& numpyarray, } -void priv_particlecluster(boost::python::numeric::array& numpyarray, +void priv_particlecluster(boost::python::numpy::ndarray& numpyarray, std::vector<__hidden::indata> datacollection, TFile* tfile){ @@ -211,13 +211,13 @@ void particle_binner( std::string xbranch, std::string xcenter, int xbins, float xwidth, std::string ybranch, std::string ycenter, int ybins, float ywidth, //binned variables - boost::python::numeric::array numpyarray, + boost::python::numpy::ndarray numpyarray, const boost::python::list inl_norms, const boost::python::list inl_means , const boost::python::list inl_branches, int nmax, //summed variables - boost::python::numeric::array sum_npy_array, + boost::python::numpy::ndarray sum_npy_array, const boost::python::list sum_inl_norms, const boost::python::list sum_inl_means , const boost::python::list summed_branches @@ -353,7 +353,7 @@ void particle_binner( tfile->Close(); delete tfile; } -void priv_fillDensityMap(boost::python::numeric::array numpyarray, +void priv_fillDensityMap(boost::python::numpy::ndarray numpyarray, double norm, std::string in_branch, std::string in_weightbranch, @@ -363,7 +363,7 @@ void priv_fillDensityMap(boost::python::numeric::array numpyarray, double offset, bool count=false ); -void fillDensityMap(boost::python::numeric::array numpyarray, +void fillDensityMap(boost::python::numpy::ndarray numpyarray, double norm, std::string in_branch, std::string in_weightbranch, @@ -376,7 +376,7 @@ void fillDensityMap(boost::python::numeric::array numpyarray, xbranch,xcenter,xbins,xwidth, ybranch,ycenter,ybins,ywidth,offset,false); } -void fillCountMap(boost::python::numeric::array numpyarray, +void fillCountMap(boost::python::numpy::ndarray numpyarray, double norm, std::string in_weightbranch, std::string filename, std::string counter_branch, @@ -390,7 +390,7 @@ void fillCountMap(boost::python::numeric::array numpyarray, ybranch,ycenter,ybins,ywidth,offset,true); } -void fillDensityLayers(boost::python::numeric::array numpyarray, +void fillDensityLayers(boost::python::numpy::ndarray numpyarray, const boost::python::list inl_norms, const boost::python::list inl_means, const boost::python::list in_branches, @@ -550,7 +550,7 @@ void fillDensityLayers(boost::python::numeric::array numpyarray, } -void priv_fillDensityMap(boost::python::numeric::array numpyarray, +void priv_fillDensityMap(boost::python::numpy::ndarray numpyarray, double norm, std::string in_branch, std::string in_weightbranch, @@ -666,7 +666,7 @@ void doScaling(bool doit){ // Expose classes and methods to Python BOOST_PYTHON_MODULE(c_meanNormZeroPad) { - boost::python::numeric::array::set_module_and_type("numpy", "ndarray"); + __hidden::indata();//for some reason exposing the class prevents segfaults. garbage collector? //anyway, it doesn't hurt, just leave this here def("process", &process); diff --git a/compiled/src/c_randomSelect.C b/compiled/src/c_randomSelect.C index 890b268..745375f 100644 --- a/compiled/src/c_randomSelect.C +++ b/compiled/src/c_randomSelect.C @@ -10,7 +10,7 @@ #include #include "boost/python/extract.hpp" -#include "boost/python/numeric.hpp" +#include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include "boost/python/str.hpp" #include @@ -30,13 +30,13 @@ public: ~randomSelector(){ delete rand_; } - void select(boost::python::numeric::array probs , boost::python::numeric::array indices, const size_t nselect); + void select(boost::python::numpy::ndarray probs , boost::python::numpy::ndarray indices, const size_t nselect); private: TRandom3* rand_; } sel; -void randomSelector::select(boost::python::numeric::array probs, boost::python::numeric::array selects, const size_t nselect){ +void randomSelector::select(boost::python::numpy::ndarray probs, boost::python::numpy::ndarray selects, const size_t nselect){ const size_t size = len(probs); if(nselect>size){ @@ -64,8 +64,8 @@ void randomSelector::select(boost::python::numeric::array probs, boost::python: } //indices are initialised to 0, probs describe the remove probabilities -void randSelect(boost::python::numeric::array probs, - boost::python::numeric::array indices, +void randSelect(boost::python::numpy::ndarray probs, + boost::python::numpy::ndarray indices, int nentries){ sel.select(probs,indices,nentries); @@ -74,7 +74,7 @@ void randSelect(boost::python::numeric::array probs, // Expose classes and methods to Python BOOST_PYTHON_MODULE(c_randomSelect) { - boost::python::numeric::array::set_module_and_type("numpy", "ndarray"); + def("randSelect", &randSelect); } diff --git a/compiled/src/c_readArrThreaded.C b/compiled/src/c_readArrThreaded.C index 7c569d3..a46ba0d 100644 --- a/compiled/src/c_readArrThreaded.C +++ b/compiled/src/c_readArrThreaded.C @@ -3,7 +3,7 @@ #define BOOST_PYTHON_MAX_ARITY 20 #include #include "boost/python/extract.hpp" -#include "boost/python/numeric.hpp" +#include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include "boost/python/str.hpp" #include @@ -323,7 +323,7 @@ if(debug) BOOST_PYTHON_MODULE(c_readArrThreaded) { //PyEval_InitThreads(); - boost::python::numeric::array::set_module_and_type("numpy", "ndarray"); + def("readBlocking", &readBlocking); diff --git a/compiled/src/c_storeTensor.C b/compiled/src/c_storeTensor.C index 709dd22..5fedc16 100644 --- a/compiled/src/c_storeTensor.C +++ b/compiled/src/c_storeTensor.C @@ -2,7 +2,7 @@ #define BOOST_PYTHON_MAX_ARITY 20 #include #include "boost/python/extract.hpp" -#include "boost/python/numeric.hpp" +#include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include "boost/python/str.hpp" //#include "boost/filesystem.hpp" @@ -249,7 +249,7 @@ void store(const boost::python::list _numpyarrays, // Expose classes and methods to Python BOOST_PYTHON_MODULE(c_storeTensor) { - boost::python::numeric::array::set_module_and_type("numpy", "ndarray"); + __hidden::indata();//for some reason exposing the class prevents segfaults. garbage collector? //anyway, it doesn't hurt, just leave this here def("store", &store); From 93670ec10959d35a950043370e9983df7e21f51a Mon Sep 17 00:00:00 2001 From: jkiesele Date: Fri, 4 Oct 2019 20:16:50 +0000 Subject: [PATCH 107/437] docker --- compiled/Makefile | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/compiled/Makefile b/compiled/Makefile index b79286d..c282926 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -4,9 +4,9 @@ PYTHON_INCLUDE = `python-config --includes` PYTHON_LIB=`python-config --libs` -LINUXADD=-Wl,--export-dynamic -ROOTSTUFF=`root-config --cflags --libs --glibs` - +LINUXADD= #-Wl --export-dynamic +ROOTSTUFF=`root-config --libs --glibs --ldflags` +ROOTCFLAGS=`root-config --cflags` CPP_FILES := $(wildcard src/*.cpp) OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) @@ -24,11 +24,11 @@ classdict.cxx: src/LinkDef.h rootcling -v4 -f $@ -rmf classdict.rootmap -rml classdict.so $^ classdict.so: classdict.cxx - g++ $(ROOTSTUFF) -std=c++11 -fPIC -shared -o classdict.so classdict.cxx + g++ $(ROOTCFLAGS) $(ROOTSTUFF) -std=c++11 -fPIC -shared -o classdict.so classdict.cxx %: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx - g++ $(CFLAGS) -I./interface $(LINUXADD) $< $(ROOTSTUFF) -o $@ + g++ $(CFLAGS) -I./interface $(LINUXADD) $< $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ mv $@ ../bin/ #helpers @@ -36,18 +36,17 @@ libquicklz.so: gcc -shared -O2 -fPIC src/quicklz.c -o libquicklz.so obj/%.o: src/%.cpp - g++ $(CFLAGS) $(ROOTSTUFF) -I./interface -O2 -fPIC -c -o $@ $< + g++ $(CFLAGS) $(ROOTCFLAGS) -I./interface -O2 -fPIC -c -o $@ $< #pack helpers in lib libdeepjetcorehelpers.so: $(OBJ_FILES) - g++ -shared $(LINUXADD) -fPIC $(ROOTSTUFF) obj/*.o -o $@ + g++ -o $@ -shared -fPIC $(LINUXADD) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lboost_python -lboost_numpy %.so: %.o libdeepjetcorehelpers.so libquicklz.so - g++ -shared $(LINUXADD) $(ROOTSTUFF) -lquicklz -L./ -ldeepjetcorehelpers -lboost_python $(PYTHON_LIB) $< -o $(@) - + g++ -o $(@) -shared -fPIC $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lboost_python -lboost_numpy -L./ -ldeepjetcorehelpers %.o: src/%.C - g++ $(ROOTSTUFF) -O2 -I./interface $(PYTHON_INCLUDE) -fPIC -c -o $(@) $< + g++ $(ROOTCFLAGS) -O2 -I./interface $(PYTHON_INCLUDE) -fPIC -c -o $(@) $< From 8eb9685d7973170c0e588fbc57b036cf3cacce7d Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Wed, 9 Oct 2019 17:43:59 +0200 Subject: [PATCH 108/437] testing module --- evaluation/evaluation.py | 40 +++++++++++++++++++++++++++++++++++ training/DeepJet_callbacks.py | 31 ++++++++++++++++++++++++++- training/training_base.py | 4 +++- 3 files changed, 73 insertions(+), 2 deletions(-) diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index c744705..a4d4b18 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -566,6 +566,46 @@ def plotLoss(infilename,outfilename,range): plt.show() #plt.savefig(outfilename, format='pdf') #why does this crash? plt.close() + + +def plotBatchLoss(infilename,outfilename,range): + + import matplotlib + #matplotlib.use('Agg') + import matplotlib.pyplot as plt + + infile=open(infilename,'r') + trainloss=[] + batch=[] + i=0 + automax=0 + automin=100 + nlines=0 + with open(infilename,'r') as tmpfile: + for line in tmpfile: + if len(line)<1: continue + nlines+=1 + + for line in infile: + if len(line)<1: continue + tl=float(line.split(' ')[0]) + trainloss.append(tl) + batch.append(i) + i=i+1 + if i - float(nlines)/2. > 1.: + automax=max(automax,tl) + automin=min(automin,tl) + + + + plt.plot(batch,trainloss,'r',label='train') + plt.ylabel('loss') + plt.xlabel('batch') + plt.legend() + plt.ylim([0,6.2]) + plt.show() + plt.savefig(outfilename) #why does this crash? + plt.close() ######### old part - keep for reference, might be useful some day diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 3d72c65..1392469 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -7,6 +7,7 @@ from .ReduceLROnPlateau import ReduceLROnPlateau from ..evaluation import plotLoss +from ..evaluation import plotBatchLoss from keras.callbacks import Callback, EarlyStopping,History,ModelCheckpoint #, ReduceLROnPlateau # , TensorBoard # loss per epoch @@ -89,6 +90,29 @@ def on_epoch_end(self,epoch, epoch_logs={}): if self.plotLoss: plotLoss(self.outputDir+'/losses.log',self.outputDir+'/losses.pdf',[]) + +class batch_callback_begin(Callback): + + def __init__(self,outputDir,plotLoss=False): + self.outputDir=outputDir + self.loss=[] + self.val_loss=[] + self.full_logs=[] + self.plotLoss=plotLoss + + def on_batch_end(self,batch,batch_logs={}): + import os + blossfile=os.path.join( self.outputDir, 'batch_losses.log') + self.loss.append(batch_logs.get('loss')) + self.val_loss.append(batch_logs.get('val_loss')) + f = open(blossfile, 'a') + f.write(str(batch_logs.get('loss'))) + f.write(" ") + f.write(str(batch_logs.get('val_loss'))) + f.write("\n") + f.close() + def on_epoch_end(self,epoch,epoch_logs={}): + plotBatchLoss(self.outputDir+'/batch_losses.log',self.outputDir+'/batch_losses.pdf',[]) class newline_callbacks_end(Callback): def on_epoch_end(self,epoch, epoch_logs={}): @@ -154,7 +178,8 @@ def __init__(self, checkperiod=10, checkperiodoffset=0, plotLossEachEpoch=True, - additional_plots=None): + additional_plots=None, + batch_loss = False): @@ -163,6 +188,10 @@ def __init__(self, self.callbacks=[self.nl_begin] + if batch_loss: + self.batch_callback=batch_callback_begin(outputDir,plotLossEachEpoch) + self.callbacks.append(self.batch_callback) + if minTokenLifetime>0: self.tokencheck=checkTokens_callback(minTokenLifetime) self.callbacks.append(self.tokencheck) diff --git a/training/training_base.py b/training/training_base.py index d7de754..5275598 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -434,6 +434,7 @@ def trainModel(self, additional_plots=None, additional_callbacks=None, load_in_mem = False, + plot_batch_loss = False, **trainargs): @@ -463,7 +464,8 @@ def trainModel(self, outputDir=self.outputDir, checkperiod=checkperiod, checkperiodoffset=self.trainedepoches, - additional_plots=additional_plots) + additional_plots=additional_plots, + batch_loss = plot_batch_loss) if additional_callbacks is not None: if not isinstance(additional_callbacks, list): From aafe46dc6669d783f237c027136e16a2f99a9b9a Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Wed, 9 Oct 2019 17:44:53 +0200 Subject: [PATCH 109/437] testing dir --- testing/Here/test_max_q_size.py | 474 ++++++++++++++++++++++++++++++++ testing/test_batch_explosion.py | 188 +++++++++++++ testing/test_max_q_size.py | 474 ++++++++++++++++++++++++++++++++ 3 files changed, 1136 insertions(+) create mode 100644 testing/Here/test_max_q_size.py create mode 100644 testing/test_batch_explosion.py create mode 100644 testing/test_max_q_size.py diff --git a/testing/Here/test_max_q_size.py b/testing/Here/test_max_q_size.py new file mode 100644 index 0000000..7affb71 --- /dev/null +++ b/testing/Here/test_max_q_size.py @@ -0,0 +1,474 @@ +from DeepJetCore.training.training_base import training_base +from DeepJetCore.TrainData import TrainData +from DeepJetCore.TrainData import fileTimeOut as tdfto +import numpy +from DeepJetCore.evaluation import plotLoss + + + +from keras.callbacks import Callback +from keras.layers import Dense,BatchNormalization,Convolution1D +from keras.layers import Dense, Dropout, Flatten,Concatenate, Convolution2D, LSTM,merge, Convolution1D, Conv2D +from keras.models import Model + +class TrainDataDeepJet(TrainData): + ''' + Base class for DeepJet. + TO create own b-tagging trainings, please inherit from this class + ''' + + def __init__(self): + import numpy + TrainData.__init__(self) + + #setting DeepJet specific defaults + self.treename="deepntuplizer/tree" + self.undefTruth=['isUndefined'] + self.referenceclass='isB' + self.truthclasses=['isB','isBB','isGBB','isLeptonicB','isLeptonicB_C','isC','isCC', + 'isGCC','isUD','isS','isG','isUndefined'] + + + #standard branches + self.registerBranches(self.undefTruth) + self.registerBranches(self.truthclasses) + self.registerBranches(['jet_pt','jet_eta']) + + self.weightbranchX='jet_pt' + self.weightbranchY='jet_eta' + + self.weight_binX = numpy.array([ + 10,25,30,35,40,45,50,60,75,100, + 125,150,175,200,250,300,400,500, + 600,2000],dtype=float) + + self.weight_binY = numpy.array( + [-2.5,-2.,-1.5,-1.,-0.5,0.5,1,1.5,2.,2.5], + dtype=float + ) + + + + self.reduceTruth(None) + + + def getFlavourClassificationData(self,filename,TupleMeanStd, weighter): + from DeepJetCore.stopwatch import stopwatch + + sw=stopwatch() + swall=stopwatch() + + import ROOT + + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get(self.treename) + self.nsamples=tree.GetEntries() + + #print('took ', sw.getAndReset(), ' seconds for getting tree entries') + + + Tuple = self.readTreeFromRootToTuple(filename) + + + x_all = MeanNormZeroPad(filename,TupleMeanStd,self.branches,self.branchcutoffs,self.nsamples) + + #print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') + + notremoves=numpy.array([]) + weights=numpy.array([]) + if self.remove: + notremoves=weighter.createNotRemoveIndices(Tuple) + weights=notremoves + #print('took ', sw.getAndReset(), ' to create remove indices') + elif self.weight: + #print('creating weights') + weights= weighter.getJetWeights(Tuple) + else: + print('neither remove nor weight') + weights=numpy.empty(self.nsamples) + weights.fill(1.) + + + + truthtuple = Tuple[self.truthclasses] + #print(self.truthclasses) + alltruth=self.reduceTruth(truthtuple) + + #print(alltruth.shape) + if self.remove: + #print('remove') + weights=weights[notremoves > 0] + x_all=x_all[notremoves > 0] + alltruth=alltruth[notremoves > 0] + + newnsamp=x_all.shape[0] + #print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') + self.nsamples = newnsamp + + #print('took in total ', swall.getAndReset(),' seconds for conversion') + + return weights,x_all,alltruth, notremoves + +class TrainData_fullTruth(TrainDataDeepJet): + def __init__(self): + TrainDataDeepJet.__init__(self) + self.clear() + + def reduceTruth(self, tuple_in): + + self.reducedtruthclasses=['isB','isBB','isLeptB','isC','isUDS','isG'] + if tuple_in is not None: + b = tuple_in['isB'].view(numpy.ndarray) + + bb = tuple_in['isBB'].view(numpy.ndarray) + gbb = tuple_in['isGBB'].view(numpy.ndarray) + + + bl = tuple_in['isLeptonicB'].view(numpy.ndarray) + blc = tuple_in['isLeptonicB_C'].view(numpy.ndarray) + lepb=bl+blc + + c = tuple_in['isC'].view(numpy.ndarray) + cc = tuple_in['isCC'].view(numpy.ndarray) + gcc = tuple_in['isGCC'].view(numpy.ndarray) + + ud = tuple_in['isUD'].view(numpy.ndarray) + s = tuple_in['isS'].view(numpy.ndarray) + uds=ud+s + + g = tuple_in['isG'].view(numpy.ndarray) + + + return numpy.vstack((b,bb+gbb,lepb,c+cc+gcc,uds,g)).transpose() + + +class TrainData_deepFlavour_FT(TrainData_fullTruth): + ''' + classdocs + ''' + + def __init__(self): + ''' + Constructor + ''' + TrainData_fullTruth.__init__(self) + + + self.addBranches(['jet_pt', 'jet_eta', + 'nCpfcand','nNpfcand', + 'nsv','npv', + 'TagVarCSV_trackSumJetEtRatio', + 'TagVarCSV_trackSumJetDeltaR', + 'TagVarCSV_vertexCategory', + 'TagVarCSV_trackSip2dValAboveCharm', + 'TagVarCSV_trackSip2dSigAboveCharm', + 'TagVarCSV_trackSip3dValAboveCharm', + 'TagVarCSV_trackSip3dSigAboveCharm', + 'TagVarCSV_jetNSelectedTracks', + 'TagVarCSV_jetNTracksEtaRel']) + + self.addBranches(['Cpfcan_BtagPf_trackEtaRel', + 'Cpfcan_BtagPf_trackPtRel', + 'Cpfcan_BtagPf_trackPPar', + 'Cpfcan_BtagPf_trackDeltaR', + 'Cpfcan_BtagPf_trackPParRatio', + 'Cpfcan_BtagPf_trackSip2dVal', + 'Cpfcan_BtagPf_trackSip2dSig', + 'Cpfcan_BtagPf_trackSip3dVal', + 'Cpfcan_BtagPf_trackSip3dSig', + 'Cpfcan_BtagPf_trackJetDistVal', + #'Cpfcan_BtagPf_trackJetDistSig', + + 'Cpfcan_ptrel', + 'Cpfcan_drminsv', + #'Cpfcan_fromPV', + 'Cpfcan_VTX_ass', + 'Cpfcan_puppiw', + 'Cpfcan_chi2', + 'Cpfcan_quality' + ], + 25) + + + self.addBranches(['Npfcan_ptrel', + 'Npfcan_deltaR', + 'Npfcan_isGamma', + 'Npfcan_HadFrac', + 'Npfcan_drminsv', + 'Npfcan_puppiw' + ], + 25) + + + self.addBranches(['sv_pt', + 'sv_deltaR', + 'sv_mass', + 'sv_ntracks', + 'sv_chi2', + 'sv_normchi2', + 'sv_dxy', + 'sv_dxysig', + 'sv_d3d', + 'sv_d3dsig', + 'sv_costhetasvpv', + 'sv_enratio', + ], + 4) + + + + + def readFromRootFile(self,filename,TupleMeanStd, weighter): + from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles + import numpy + from DeepJetCore.stopwatch import stopwatch + + sw=stopwatch() + swall=stopwatch() + + import ROOT + + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get("deepntuplizer/tree") + self.nsamples=tree.GetEntries() + + print('took ', sw.getAndReset(), ' seconds for getting tree entries') + + + # split for convolutional network + + x_global = MeanNormZeroPad(filename,TupleMeanStd, + [self.branches[0]], + [self.branchcutoffs[0]],self.nsamples) + + x_cpf = MeanNormZeroPadParticles(filename,TupleMeanStd, + self.branches[1], + self.branchcutoffs[1],self.nsamples) + + x_npf = MeanNormZeroPadParticles(filename,TupleMeanStd, + self.branches[2], + self.branchcutoffs[2],self.nsamples) + + x_sv = MeanNormZeroPadParticles(filename,TupleMeanStd, + self.branches[3], + self.branchcutoffs[3],self.nsamples) + + + + print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') + + Tuple = self.readTreeFromRootToTuple(filename) + + if self.remove: + notremoves=weighter.createNotRemoveIndices(Tuple) + undef=Tuple['isUndefined'] + notremoves-=undef + print('took ', sw.getAndReset(), ' to create remove indices') + + if self.weight: + weights=weighter.getJetWeights(Tuple) + elif self.remove: + weights=notremoves + else: + print('neither remove nor weight') + weights=numpy.empty(self.nsamples) + weights.fill(1.) + + + truthtuple = Tuple[self.truthclasses] + #print(self.truthclasses) + alltruth=self.reduceTruth(truthtuple) + + #print(alltruth.shape) + if self.remove: + print('remove') + weights=weights[notremoves > 0] + x_global=x_global[notremoves > 0] + x_cpf=x_cpf[notremoves > 0] + x_npf=x_npf[notremoves > 0] + x_sv=x_sv[notremoves > 0] + alltruth=alltruth[notremoves > 0] + + newnsamp=x_global.shape[0] + print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') + self.nsamples = newnsamp + + print(x_global.shape,self.nsamples) + + self.w=[weights] + self.x=[x_global,x_cpf,x_npf,x_sv] + self.y=[alltruth] + + +def block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): + if active: + x= Dense(200, activation='relu',kernel_initializer='lecun_uniform', name='df_dense0')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm0')(x) + x = Dropout(dropoutRate,name='df_dense_dropout0')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense1')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm1')(x) + x = Dropout(dropoutRate,name='df_dense_dropout1')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense2')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm2')(x) + x = Dropout(dropoutRate,name='df_dense_dropout2')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense3')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm3')(x) + x = Dropout(dropoutRate,name='df_dense_dropout3')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense4')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm4')(x) + x = Dropout(dropoutRate,name='df_dense_dropout4')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense5')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm5')(x) + x = Dropout(dropoutRate,name='df_dense_dropout5')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense6')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm6')(x) + x = Dropout(dropoutRate,name='df_dense_dropout6')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense7')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm7')(x) + x = Dropout(dropoutRate,name='df_dense_dropout7')(x) + else: + x= Dense(1,kernel_initializer='zeros',trainable=False,name='df_dense_off')(x) + + return x + + +def block_deepFlavourConvolutions(charged,neutrals,vertices,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): + ''' + deep Flavour convolution part. + ''' + cpf=charged + if active: + cpf = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv0')(cpf) + if batchnorm: + cpf = BatchNormalization(momentum=batchmomentum ,name='cpf_batchnorm0')(cpf) + cpf = Dropout(dropoutRate,name='cpf_dropout0')(cpf) + cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv1')(cpf) + if batchnorm: + cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm1')(cpf) + cpf = Dropout(dropoutRate,name='cpf_dropout1')(cpf) + cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv2')(cpf) + if batchnorm: + cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm2')(cpf) + cpf = Dropout(dropoutRate,name='cpf_dropout2')(cpf) + cpf = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu' , name='cpf_conv3')(cpf) + else: + cpf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(cpf) + + npf=neutrals + if active: + npf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv0')(npf) + if batchnorm: + npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm0')(npf) + npf = Dropout(dropoutRate,name='npf_dropout0')(npf) + npf = Convolution1D(16, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv1')(npf) + if batchnorm: + npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm1')(npf) + npf = Dropout(dropoutRate,name='npf_dropout1')(npf) + npf = Convolution1D(4, 1, kernel_initializer='lecun_uniform', activation='relu' , name='npf_conv2')(npf) + else: + npf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(npf) + + vtx = vertices + if active: + vtx = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv0')(vtx) + if batchnorm: + vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm0')(vtx) + vtx = Dropout(dropoutRate,name='vtx_dropout0')(vtx) + vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv1')(vtx) + if batchnorm: + vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm1')(vtx) + vtx = Dropout(dropoutRate,name='vtx_dropout1')(vtx) + vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv2')(vtx) + if batchnorm: + vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm2')(vtx) + vtx = Dropout(dropoutRate,name='vtx_dropout2')(vtx) + vtx = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv3')(vtx) + else: + vtx = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(vtx) + + return cpf,npf,vtx + +def model_deepFlavourReference_test(Inputs,nclasses,nregclasses,dropoutRate=0.1,momentum=0.6): + """ + reference 1x1 convolutional model for 'deepFlavour' + with recurrent layers and batch normalisation + standard dropout rate it 0.1 + should be trained for flavour prediction first. afterwards, all layers can be fixed + that do not include 'regression' and the training can be repeated focusing on the regression part + (check function fixLayersContaining with invert=True) + """ + globalvars = BatchNormalization(momentum=momentum,name='globals_input_batchnorm') (Inputs[0]) + cpf = BatchNormalization(momentum=momentum,name='cpf_input_batchnorm') (Inputs[1]) + npf = BatchNormalization(momentum=momentum,name='npf_input_batchnorm') (Inputs[2]) + vtx = BatchNormalization(momentum=momentum,name='vtx_input_batchnorm') (Inputs[3]) + + cpf,npf,vtx = block_deepFlavourConvolutions(charged=cpf, + neutrals=npf, + vertices=vtx, + dropoutRate=dropoutRate, + active=True, + batchnorm=True, batchmomentum=momentum) + + + # + cpf = LSTM(150,go_backwards=True,implementation=2, name='cpf_lstm')(cpf) + cpf=BatchNormalization(momentum=momentum,name='cpflstm_batchnorm')(cpf) + cpf = Dropout(dropoutRate)(cpf) + + npf = LSTM(50,go_backwards=True,implementation=2, name='npf_lstm')(npf) + npf=BatchNormalization(momentum=momentum,name='npflstm_batchnorm')(npf) + npf = Dropout(dropoutRate)(npf) + + vtx = LSTM(50,go_backwards=True,implementation=2, name='vtx_lstm')(vtx) + vtx=BatchNormalization(momentum=momentum,name='vtxlstm_batchnorm')(vtx) + vtx = Dropout(dropoutRate)(vtx) + + + x = Concatenate()( [globalvars,cpf,npf,vtx ]) + + x = block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=True,batchmomentum=momentum) + + flavour_pred=Dense(nclasses, activation='softmax',kernel_initializer='lecun_uniform',name='ID_pred')(x) + + predictions = [flavour_pred] + model = Model(inputs=Inputs, outputs=predictions) + return model + +train=training_base(testrun=False) +newtraining= not train.modelSet() + + +if newtraining: + train.setModel(model_deepFlavourReference_test) + + #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) + + train.compileModel(learningrate=0.001, + loss=['categorical_crossentropy'], + metrics=['accuracy']) + + + train.train_data.maxFilesOpen=5 + print(train.keras_model.summary()) + model,history = train.trainModel(nepochs=3, + batchsize=10000, + stop_patience=300, + lr_factor=0.5, + lr_patience=3, + lr_epsilon=0.0001, + lr_cooldown=6, + lr_minimum=0.0001, + maxqsize=150, + plot_batch_loss = True) + + diff --git a/testing/test_batch_explosion.py b/testing/test_batch_explosion.py new file mode 100644 index 0000000..e633338 --- /dev/null +++ b/testing/test_batch_explosion.py @@ -0,0 +1,188 @@ +from DeepJetCore.training.training_base import training_base +from DeepJetCore.TrainData import TrainData +from DeepJetCore.TrainData import fileTimeOut as tdfto +import numpy +from DeepJetCore.evaluation import plotLoss + + + +from keras.callbacks import Callback +from keras.layers import Dense +from keras.models import Model + + +class TrainData_forTest(TrainData): + + def __init__(self): + import numpy + TrainData.__init__(self) + + #setting DeepJet specific defaults + self.treename="deepntuplizer/tree" + self.truthclasses=['class1','class2'] + + self.treename="deepntuplizer/tree" + self.referenceclass='class1' + + + self.registerBranches(self.truthclasses) + self.registerBranches(['x']) + + self.weightbranchX='x' + self.weightbranchY='x' + + self.weight_binX = numpy.array([-1,0.9,2.0],dtype=float) + + self.weight_binY = numpy.array( + [-1,0.9,2.0], + dtype=float + ) + + + + def reduceTruth(self, tuple_in): + + self.reducedtruthclasses=['isB','isBB','isLeptB','isC','isUDS','isG'] + if tuple_in is not None: + class1 = tuple_in['class1'].view(numpy.ndarray) + + class2 = tuple_in['class2'].view(numpy.ndarray) + + return numpy.vstack((class1,class2)).transpose() + + + + def getFlavourClassificationData(self,filename,TupleMeanStd): + from DeepJetCore.stopwatch import stopwatch + + sw=stopwatch() + swall=stopwatch() + + import ROOT + + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get(self.treename) + self.nsamples=tree.GetEntries() + + #print('took ', sw.getAndReset(), ' seconds for getting tree entries') + + + Tuple = self.readTreeFromRootToTuple(filename) + + + x_all = MeanNormZeroPad(filename,TupleMeanStd,self.branches,self.branchcutoffs,self.nsamples) + + truthtuple = Tuple[self.truthclasses] + #print(self.truthclasses) + alltruth=self.reduceTruth(truthtuple) + + + newnsamp=x_all.shape[0] + self.nsamples = newnsamp + + + return x_all,alltruth + +class TrainData_testingClass(TrainData_forTest): + + + def __init__(self): + TrainData_forTest.__init__(self) + self.addBranches(['x']) + + def readFromRootFile(self,filename,TupleMeanStd,weighter): + + + from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles + import numpy + from DeepJetCore.stopwatch import stopwatch + + sw=stopwatch() + swall=stopwatch() + + import ROOT + + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get("deepntuplizer/tree") + self.nsamples=tree.GetEntries() + + print('took ', sw.getAndReset(), ' seconds for getting tree entries') + + + # split for convolutional network + + x_global = MeanNormZeroPad(filename,None, + [self.branches[0]], + [self.branchcutoffs[0]],self.nsamples) + + print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') + + Tuple = self.readTreeFromRootToTuple(filename) + + + weights=numpy.empty(self.nsamples) + weights.fill(1.) + + + truthtuple = Tuple[self.truthclasses] + alltruth=self.reduceTruth(truthtuple) + + newnsamp=x_global.shape[0] + print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') + self.nsamples = newnsamp + + print(x_global.shape,self.nsamples) + + self.w=[weights] + self.x=[x_global] + self.y=[alltruth] + + +def model_for_test(Inputs,nclasses,nregclasses): + + globalvars = (Inputs[0]) + + x = Dense(50,activation='relu',kernel_initializer='lecun_uniform')(globalvars) + + flavour_pred=Dense(nclasses, activation='softmax',kernel_initializer='lecun_uniform',name='ID_pred')(x) + + predictions = [flavour_pred] + model = Model(inputs=Inputs, outputs=predictions) + return model + + + + + + + +train=training_base(testrun=False) +newtraining= not train.modelSet() + + +if newtraining: + train.setModel(model_for_test) + + #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) + + train.compileModel(learningrate=0.001, + loss=['categorical_crossentropy'], + metrics=['accuracy']) + + + train.train_data.maxFilesOpen=5 + print(train.keras_model.summary()) + model,history = train.trainModel(nepochs=100, + batchsize=10000, + stop_patience=300, + lr_factor=0.5, + lr_patience=3, + lr_epsilon=0.0001, + lr_cooldown=6, + lr_minimum=0.0001, + maxqsize=1, + plot_batch_loss = True) + + diff --git a/testing/test_max_q_size.py b/testing/test_max_q_size.py new file mode 100644 index 0000000..7affb71 --- /dev/null +++ b/testing/test_max_q_size.py @@ -0,0 +1,474 @@ +from DeepJetCore.training.training_base import training_base +from DeepJetCore.TrainData import TrainData +from DeepJetCore.TrainData import fileTimeOut as tdfto +import numpy +from DeepJetCore.evaluation import plotLoss + + + +from keras.callbacks import Callback +from keras.layers import Dense,BatchNormalization,Convolution1D +from keras.layers import Dense, Dropout, Flatten,Concatenate, Convolution2D, LSTM,merge, Convolution1D, Conv2D +from keras.models import Model + +class TrainDataDeepJet(TrainData): + ''' + Base class for DeepJet. + TO create own b-tagging trainings, please inherit from this class + ''' + + def __init__(self): + import numpy + TrainData.__init__(self) + + #setting DeepJet specific defaults + self.treename="deepntuplizer/tree" + self.undefTruth=['isUndefined'] + self.referenceclass='isB' + self.truthclasses=['isB','isBB','isGBB','isLeptonicB','isLeptonicB_C','isC','isCC', + 'isGCC','isUD','isS','isG','isUndefined'] + + + #standard branches + self.registerBranches(self.undefTruth) + self.registerBranches(self.truthclasses) + self.registerBranches(['jet_pt','jet_eta']) + + self.weightbranchX='jet_pt' + self.weightbranchY='jet_eta' + + self.weight_binX = numpy.array([ + 10,25,30,35,40,45,50,60,75,100, + 125,150,175,200,250,300,400,500, + 600,2000],dtype=float) + + self.weight_binY = numpy.array( + [-2.5,-2.,-1.5,-1.,-0.5,0.5,1,1.5,2.,2.5], + dtype=float + ) + + + + self.reduceTruth(None) + + + def getFlavourClassificationData(self,filename,TupleMeanStd, weighter): + from DeepJetCore.stopwatch import stopwatch + + sw=stopwatch() + swall=stopwatch() + + import ROOT + + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get(self.treename) + self.nsamples=tree.GetEntries() + + #print('took ', sw.getAndReset(), ' seconds for getting tree entries') + + + Tuple = self.readTreeFromRootToTuple(filename) + + + x_all = MeanNormZeroPad(filename,TupleMeanStd,self.branches,self.branchcutoffs,self.nsamples) + + #print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') + + notremoves=numpy.array([]) + weights=numpy.array([]) + if self.remove: + notremoves=weighter.createNotRemoveIndices(Tuple) + weights=notremoves + #print('took ', sw.getAndReset(), ' to create remove indices') + elif self.weight: + #print('creating weights') + weights= weighter.getJetWeights(Tuple) + else: + print('neither remove nor weight') + weights=numpy.empty(self.nsamples) + weights.fill(1.) + + + + truthtuple = Tuple[self.truthclasses] + #print(self.truthclasses) + alltruth=self.reduceTruth(truthtuple) + + #print(alltruth.shape) + if self.remove: + #print('remove') + weights=weights[notremoves > 0] + x_all=x_all[notremoves > 0] + alltruth=alltruth[notremoves > 0] + + newnsamp=x_all.shape[0] + #print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') + self.nsamples = newnsamp + + #print('took in total ', swall.getAndReset(),' seconds for conversion') + + return weights,x_all,alltruth, notremoves + +class TrainData_fullTruth(TrainDataDeepJet): + def __init__(self): + TrainDataDeepJet.__init__(self) + self.clear() + + def reduceTruth(self, tuple_in): + + self.reducedtruthclasses=['isB','isBB','isLeptB','isC','isUDS','isG'] + if tuple_in is not None: + b = tuple_in['isB'].view(numpy.ndarray) + + bb = tuple_in['isBB'].view(numpy.ndarray) + gbb = tuple_in['isGBB'].view(numpy.ndarray) + + + bl = tuple_in['isLeptonicB'].view(numpy.ndarray) + blc = tuple_in['isLeptonicB_C'].view(numpy.ndarray) + lepb=bl+blc + + c = tuple_in['isC'].view(numpy.ndarray) + cc = tuple_in['isCC'].view(numpy.ndarray) + gcc = tuple_in['isGCC'].view(numpy.ndarray) + + ud = tuple_in['isUD'].view(numpy.ndarray) + s = tuple_in['isS'].view(numpy.ndarray) + uds=ud+s + + g = tuple_in['isG'].view(numpy.ndarray) + + + return numpy.vstack((b,bb+gbb,lepb,c+cc+gcc,uds,g)).transpose() + + +class TrainData_deepFlavour_FT(TrainData_fullTruth): + ''' + classdocs + ''' + + def __init__(self): + ''' + Constructor + ''' + TrainData_fullTruth.__init__(self) + + + self.addBranches(['jet_pt', 'jet_eta', + 'nCpfcand','nNpfcand', + 'nsv','npv', + 'TagVarCSV_trackSumJetEtRatio', + 'TagVarCSV_trackSumJetDeltaR', + 'TagVarCSV_vertexCategory', + 'TagVarCSV_trackSip2dValAboveCharm', + 'TagVarCSV_trackSip2dSigAboveCharm', + 'TagVarCSV_trackSip3dValAboveCharm', + 'TagVarCSV_trackSip3dSigAboveCharm', + 'TagVarCSV_jetNSelectedTracks', + 'TagVarCSV_jetNTracksEtaRel']) + + self.addBranches(['Cpfcan_BtagPf_trackEtaRel', + 'Cpfcan_BtagPf_trackPtRel', + 'Cpfcan_BtagPf_trackPPar', + 'Cpfcan_BtagPf_trackDeltaR', + 'Cpfcan_BtagPf_trackPParRatio', + 'Cpfcan_BtagPf_trackSip2dVal', + 'Cpfcan_BtagPf_trackSip2dSig', + 'Cpfcan_BtagPf_trackSip3dVal', + 'Cpfcan_BtagPf_trackSip3dSig', + 'Cpfcan_BtagPf_trackJetDistVal', + #'Cpfcan_BtagPf_trackJetDistSig', + + 'Cpfcan_ptrel', + 'Cpfcan_drminsv', + #'Cpfcan_fromPV', + 'Cpfcan_VTX_ass', + 'Cpfcan_puppiw', + 'Cpfcan_chi2', + 'Cpfcan_quality' + ], + 25) + + + self.addBranches(['Npfcan_ptrel', + 'Npfcan_deltaR', + 'Npfcan_isGamma', + 'Npfcan_HadFrac', + 'Npfcan_drminsv', + 'Npfcan_puppiw' + ], + 25) + + + self.addBranches(['sv_pt', + 'sv_deltaR', + 'sv_mass', + 'sv_ntracks', + 'sv_chi2', + 'sv_normchi2', + 'sv_dxy', + 'sv_dxysig', + 'sv_d3d', + 'sv_d3dsig', + 'sv_costhetasvpv', + 'sv_enratio', + ], + 4) + + + + + def readFromRootFile(self,filename,TupleMeanStd, weighter): + from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles + import numpy + from DeepJetCore.stopwatch import stopwatch + + sw=stopwatch() + swall=stopwatch() + + import ROOT + + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get("deepntuplizer/tree") + self.nsamples=tree.GetEntries() + + print('took ', sw.getAndReset(), ' seconds for getting tree entries') + + + # split for convolutional network + + x_global = MeanNormZeroPad(filename,TupleMeanStd, + [self.branches[0]], + [self.branchcutoffs[0]],self.nsamples) + + x_cpf = MeanNormZeroPadParticles(filename,TupleMeanStd, + self.branches[1], + self.branchcutoffs[1],self.nsamples) + + x_npf = MeanNormZeroPadParticles(filename,TupleMeanStd, + self.branches[2], + self.branchcutoffs[2],self.nsamples) + + x_sv = MeanNormZeroPadParticles(filename,TupleMeanStd, + self.branches[3], + self.branchcutoffs[3],self.nsamples) + + + + print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') + + Tuple = self.readTreeFromRootToTuple(filename) + + if self.remove: + notremoves=weighter.createNotRemoveIndices(Tuple) + undef=Tuple['isUndefined'] + notremoves-=undef + print('took ', sw.getAndReset(), ' to create remove indices') + + if self.weight: + weights=weighter.getJetWeights(Tuple) + elif self.remove: + weights=notremoves + else: + print('neither remove nor weight') + weights=numpy.empty(self.nsamples) + weights.fill(1.) + + + truthtuple = Tuple[self.truthclasses] + #print(self.truthclasses) + alltruth=self.reduceTruth(truthtuple) + + #print(alltruth.shape) + if self.remove: + print('remove') + weights=weights[notremoves > 0] + x_global=x_global[notremoves > 0] + x_cpf=x_cpf[notremoves > 0] + x_npf=x_npf[notremoves > 0] + x_sv=x_sv[notremoves > 0] + alltruth=alltruth[notremoves > 0] + + newnsamp=x_global.shape[0] + print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') + self.nsamples = newnsamp + + print(x_global.shape,self.nsamples) + + self.w=[weights] + self.x=[x_global,x_cpf,x_npf,x_sv] + self.y=[alltruth] + + +def block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): + if active: + x= Dense(200, activation='relu',kernel_initializer='lecun_uniform', name='df_dense0')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm0')(x) + x = Dropout(dropoutRate,name='df_dense_dropout0')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense1')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm1')(x) + x = Dropout(dropoutRate,name='df_dense_dropout1')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense2')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm2')(x) + x = Dropout(dropoutRate,name='df_dense_dropout2')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense3')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm3')(x) + x = Dropout(dropoutRate,name='df_dense_dropout3')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense4')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm4')(x) + x = Dropout(dropoutRate,name='df_dense_dropout4')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense5')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm5')(x) + x = Dropout(dropoutRate,name='df_dense_dropout5')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense6')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm6')(x) + x = Dropout(dropoutRate,name='df_dense_dropout6')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense7')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm7')(x) + x = Dropout(dropoutRate,name='df_dense_dropout7')(x) + else: + x= Dense(1,kernel_initializer='zeros',trainable=False,name='df_dense_off')(x) + + return x + + +def block_deepFlavourConvolutions(charged,neutrals,vertices,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): + ''' + deep Flavour convolution part. + ''' + cpf=charged + if active: + cpf = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv0')(cpf) + if batchnorm: + cpf = BatchNormalization(momentum=batchmomentum ,name='cpf_batchnorm0')(cpf) + cpf = Dropout(dropoutRate,name='cpf_dropout0')(cpf) + cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv1')(cpf) + if batchnorm: + cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm1')(cpf) + cpf = Dropout(dropoutRate,name='cpf_dropout1')(cpf) + cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv2')(cpf) + if batchnorm: + cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm2')(cpf) + cpf = Dropout(dropoutRate,name='cpf_dropout2')(cpf) + cpf = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu' , name='cpf_conv3')(cpf) + else: + cpf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(cpf) + + npf=neutrals + if active: + npf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv0')(npf) + if batchnorm: + npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm0')(npf) + npf = Dropout(dropoutRate,name='npf_dropout0')(npf) + npf = Convolution1D(16, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv1')(npf) + if batchnorm: + npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm1')(npf) + npf = Dropout(dropoutRate,name='npf_dropout1')(npf) + npf = Convolution1D(4, 1, kernel_initializer='lecun_uniform', activation='relu' , name='npf_conv2')(npf) + else: + npf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(npf) + + vtx = vertices + if active: + vtx = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv0')(vtx) + if batchnorm: + vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm0')(vtx) + vtx = Dropout(dropoutRate,name='vtx_dropout0')(vtx) + vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv1')(vtx) + if batchnorm: + vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm1')(vtx) + vtx = Dropout(dropoutRate,name='vtx_dropout1')(vtx) + vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv2')(vtx) + if batchnorm: + vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm2')(vtx) + vtx = Dropout(dropoutRate,name='vtx_dropout2')(vtx) + vtx = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv3')(vtx) + else: + vtx = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(vtx) + + return cpf,npf,vtx + +def model_deepFlavourReference_test(Inputs,nclasses,nregclasses,dropoutRate=0.1,momentum=0.6): + """ + reference 1x1 convolutional model for 'deepFlavour' + with recurrent layers and batch normalisation + standard dropout rate it 0.1 + should be trained for flavour prediction first. afterwards, all layers can be fixed + that do not include 'regression' and the training can be repeated focusing on the regression part + (check function fixLayersContaining with invert=True) + """ + globalvars = BatchNormalization(momentum=momentum,name='globals_input_batchnorm') (Inputs[0]) + cpf = BatchNormalization(momentum=momentum,name='cpf_input_batchnorm') (Inputs[1]) + npf = BatchNormalization(momentum=momentum,name='npf_input_batchnorm') (Inputs[2]) + vtx = BatchNormalization(momentum=momentum,name='vtx_input_batchnorm') (Inputs[3]) + + cpf,npf,vtx = block_deepFlavourConvolutions(charged=cpf, + neutrals=npf, + vertices=vtx, + dropoutRate=dropoutRate, + active=True, + batchnorm=True, batchmomentum=momentum) + + + # + cpf = LSTM(150,go_backwards=True,implementation=2, name='cpf_lstm')(cpf) + cpf=BatchNormalization(momentum=momentum,name='cpflstm_batchnorm')(cpf) + cpf = Dropout(dropoutRate)(cpf) + + npf = LSTM(50,go_backwards=True,implementation=2, name='npf_lstm')(npf) + npf=BatchNormalization(momentum=momentum,name='npflstm_batchnorm')(npf) + npf = Dropout(dropoutRate)(npf) + + vtx = LSTM(50,go_backwards=True,implementation=2, name='vtx_lstm')(vtx) + vtx=BatchNormalization(momentum=momentum,name='vtxlstm_batchnorm')(vtx) + vtx = Dropout(dropoutRate)(vtx) + + + x = Concatenate()( [globalvars,cpf,npf,vtx ]) + + x = block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=True,batchmomentum=momentum) + + flavour_pred=Dense(nclasses, activation='softmax',kernel_initializer='lecun_uniform',name='ID_pred')(x) + + predictions = [flavour_pred] + model = Model(inputs=Inputs, outputs=predictions) + return model + +train=training_base(testrun=False) +newtraining= not train.modelSet() + + +if newtraining: + train.setModel(model_deepFlavourReference_test) + + #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) + + train.compileModel(learningrate=0.001, + loss=['categorical_crossentropy'], + metrics=['accuracy']) + + + train.train_data.maxFilesOpen=5 + print(train.keras_model.summary()) + model,history = train.trainModel(nepochs=3, + batchsize=10000, + stop_patience=300, + lr_factor=0.5, + lr_patience=3, + lr_epsilon=0.0001, + lr_cooldown=6, + lr_minimum=0.0001, + maxqsize=150, + plot_batch_loss = True) + + From 2532edda82e905071f5be41004e4944606b1f466 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 14 Oct 2019 13:46:38 +0000 Subject: [PATCH 110/437] fix for new boost version --- compiled/src/c_arrayReads.C | 1 + compiled/src/c_meanNormZeroPad.C | 2 +- compiled/src/c_randomSelect.C | 1 + compiled/src/c_storeTensor.C | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/compiled/src/c_arrayReads.C b/compiled/src/c_arrayReads.C index d62a391..6c17689 100644 --- a/compiled/src/c_arrayReads.C +++ b/compiled/src/c_arrayReads.C @@ -229,6 +229,7 @@ void read4DArray(boost::python::numpy::ndarray numpyarray, // Expose classes and methods to Python BOOST_PYTHON_MODULE(c_arrayReads) { + boost::python::numpy::initialize(); def("read2DArray", &read2DArray); def("read3DArray", &read3DArray); def("read4DArray", &read4DArray); diff --git a/compiled/src/c_meanNormZeroPad.C b/compiled/src/c_meanNormZeroPad.C index 062d12c..fc6a794 100644 --- a/compiled/src/c_meanNormZeroPad.C +++ b/compiled/src/c_meanNormZeroPad.C @@ -666,7 +666,7 @@ void doScaling(bool doit){ // Expose classes and methods to Python BOOST_PYTHON_MODULE(c_meanNormZeroPad) { - + boost::python::numpy::initialize(); __hidden::indata();//for some reason exposing the class prevents segfaults. garbage collector? //anyway, it doesn't hurt, just leave this here def("process", &process); diff --git a/compiled/src/c_randomSelect.C b/compiled/src/c_randomSelect.C index 745375f..e04f49b 100644 --- a/compiled/src/c_randomSelect.C +++ b/compiled/src/c_randomSelect.C @@ -75,6 +75,7 @@ void randSelect(boost::python::numpy::ndarray probs, // Expose classes and methods to Python BOOST_PYTHON_MODULE(c_randomSelect) { + boost::python::numpy::initialize(); def("randSelect", &randSelect); } diff --git a/compiled/src/c_storeTensor.C b/compiled/src/c_storeTensor.C index 5fedc16..11d5181 100644 --- a/compiled/src/c_storeTensor.C +++ b/compiled/src/c_storeTensor.C @@ -250,6 +250,7 @@ void store(const boost::python::list _numpyarrays, // Expose classes and methods to Python BOOST_PYTHON_MODULE(c_storeTensor) { + boost::python::numpy::initialize(); __hidden::indata();//for some reason exposing the class prevents segfaults. garbage collector? //anyway, it doesn't hurt, just leave this here def("store", &store); From 69fb030b4cd45e7b496a9c190f973995ab09de5f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 14 Oct 2019 15:41:44 +0000 Subject: [PATCH 111/437] has some dirty tf.keras hacks --- DataCollection.py | 9 +- __init__.py | 4 + bin/testEnvironment.py | 31 +- docker_env.sh | 4 +- testing/Here/test_max_q_size.py | 474 -------------------- testing/batch_explosion.py | 64 +++ testing/datastructures/TrainData_testing.py | 334 ++++++++++++++ testing/datastructures/__init__.py | 22 + testing/max_q_size.py | 33 ++ testing/test_batch_explosion.py | 188 -------- testing/test_max_q_size.py | 474 -------------------- testing/tools.py | 153 +++++++ training/DeepJet_callbacks.py | 49 +- training/training_base.py | 7 +- 14 files changed, 680 insertions(+), 1166 deletions(-) delete mode 100644 testing/Here/test_max_q_size.py create mode 100644 testing/batch_explosion.py create mode 100644 testing/datastructures/TrainData_testing.py create mode 100644 testing/datastructures/__init__.py create mode 100644 testing/max_q_size.py delete mode 100644 testing/test_batch_explosion.py delete mode 100644 testing/test_max_q_size.py create mode 100644 testing/tools.py diff --git a/DataCollection.py b/DataCollection.py index bd12def..7731ac2 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -831,8 +831,12 @@ def startRead(counter,filename,shuffleseed): traceback.print_exc(file=sys.stdout) raise d - t=threading.Thread(target=startRead, args=(self.nextcounter,readfilename,self.shuffleseed)) - t.start() + # don't remove these commented lines just yet + # the whole generator call is moved to thread since keras 2.0.6 anyway + #t=threading.Thread(target=startRead, args=(self.nextcounter,readfilename,self.shuffleseed)) + #t.start() + + startRead(self.nextcounter,readfilename,self.shuffleseed) self.shuffleseed+=1 if self.shuffleseed>1e5: self.shuffleseed=0 @@ -1083,7 +1087,6 @@ def get(self): else: xout[-1]=batchgen.generateBatch() - if self.useweights: yield (xout,yout,wout) else: diff --git a/__init__.py b/__init__.py index e69de29..73d1384 100644 --- a/__init__.py +++ b/__init__.py @@ -0,0 +1,4 @@ + +import sys +import tensorflow as tf +sys.modules["keras"] = tf.keras \ No newline at end of file diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py index 674bd9b..0fb050d 100755 --- a/bin/testEnvironment.py +++ b/bin/testEnvironment.py @@ -3,10 +3,14 @@ print('importing tensorflow...') import tensorflow +print(tensorflow.__file__) print('importing keras...') import keras + +print(keras.__file__) + from keras import Input print('importing numpy...') @@ -29,4 +33,29 @@ from DeepJetCore.compiled import c_arrayReads -print('basic packages seem to work') +print('basic packages seem to work... testing conversion') + +import os +djc_base = os.environ.get('DEEPJETCORE') +script=''' +#!/bin/bash +cd {djc_base}/testing +rm -rf batchDC +convertFromRoot.py -i files/filelist.txt -o batchDC -c TrainData_testBatch -n 1 +'''.format(djc_base=djc_base) +os.system(script) + +print('testing batch explosion. Please check batch loss plot afterwards for smoothness. Warnings about the callback time can be ignored.') +script=''' +#!/bin/bash +cd {djc_base}/testing +rm -rf batchExplode +python batch_explosion.py batchDC/dataCollection.dc batchExplode +'''.format(djc_base=djc_base) +os.system(script) + + + + + + diff --git a/docker_env.sh b/docker_env.sh index 005de12..37513bc 100644 --- a/docker_env.sh +++ b/docker_env.sh @@ -1,4 +1,4 @@ - +export DEEPJETCORE=`pwd` export PATH=`pwd`/bin:$PATH export PYTHONPATH=`pwd`/../:$PYTHONPATH if [ $LD_LIBRARY_PATH ] @@ -6,4 +6,4 @@ then export LD_LIBRARY_PATH=`pwd`/compiled/:$LD_LIBRARY_PATH else export LD_LIBRARY_PATH=`pwd`/compiled/ -fi \ No newline at end of file +fi diff --git a/testing/Here/test_max_q_size.py b/testing/Here/test_max_q_size.py deleted file mode 100644 index 7affb71..0000000 --- a/testing/Here/test_max_q_size.py +++ /dev/null @@ -1,474 +0,0 @@ -from DeepJetCore.training.training_base import training_base -from DeepJetCore.TrainData import TrainData -from DeepJetCore.TrainData import fileTimeOut as tdfto -import numpy -from DeepJetCore.evaluation import plotLoss - - - -from keras.callbacks import Callback -from keras.layers import Dense,BatchNormalization,Convolution1D -from keras.layers import Dense, Dropout, Flatten,Concatenate, Convolution2D, LSTM,merge, Convolution1D, Conv2D -from keras.models import Model - -class TrainDataDeepJet(TrainData): - ''' - Base class for DeepJet. - TO create own b-tagging trainings, please inherit from this class - ''' - - def __init__(self): - import numpy - TrainData.__init__(self) - - #setting DeepJet specific defaults - self.treename="deepntuplizer/tree" - self.undefTruth=['isUndefined'] - self.referenceclass='isB' - self.truthclasses=['isB','isBB','isGBB','isLeptonicB','isLeptonicB_C','isC','isCC', - 'isGCC','isUD','isS','isG','isUndefined'] - - - #standard branches - self.registerBranches(self.undefTruth) - self.registerBranches(self.truthclasses) - self.registerBranches(['jet_pt','jet_eta']) - - self.weightbranchX='jet_pt' - self.weightbranchY='jet_eta' - - self.weight_binX = numpy.array([ - 10,25,30,35,40,45,50,60,75,100, - 125,150,175,200,250,300,400,500, - 600,2000],dtype=float) - - self.weight_binY = numpy.array( - [-2.5,-2.,-1.5,-1.,-0.5,0.5,1,1.5,2.,2.5], - dtype=float - ) - - - - self.reduceTruth(None) - - - def getFlavourClassificationData(self,filename,TupleMeanStd, weighter): - from DeepJetCore.stopwatch import stopwatch - - sw=stopwatch() - swall=stopwatch() - - import ROOT - - fileTimeOut(filename,120) #give eos a minute to recover - rfile = ROOT.TFile(filename) - tree = rfile.Get(self.treename) - self.nsamples=tree.GetEntries() - - #print('took ', sw.getAndReset(), ' seconds for getting tree entries') - - - Tuple = self.readTreeFromRootToTuple(filename) - - - x_all = MeanNormZeroPad(filename,TupleMeanStd,self.branches,self.branchcutoffs,self.nsamples) - - #print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') - - notremoves=numpy.array([]) - weights=numpy.array([]) - if self.remove: - notremoves=weighter.createNotRemoveIndices(Tuple) - weights=notremoves - #print('took ', sw.getAndReset(), ' to create remove indices') - elif self.weight: - #print('creating weights') - weights= weighter.getJetWeights(Tuple) - else: - print('neither remove nor weight') - weights=numpy.empty(self.nsamples) - weights.fill(1.) - - - - truthtuple = Tuple[self.truthclasses] - #print(self.truthclasses) - alltruth=self.reduceTruth(truthtuple) - - #print(alltruth.shape) - if self.remove: - #print('remove') - weights=weights[notremoves > 0] - x_all=x_all[notremoves > 0] - alltruth=alltruth[notremoves > 0] - - newnsamp=x_all.shape[0] - #print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') - self.nsamples = newnsamp - - #print('took in total ', swall.getAndReset(),' seconds for conversion') - - return weights,x_all,alltruth, notremoves - -class TrainData_fullTruth(TrainDataDeepJet): - def __init__(self): - TrainDataDeepJet.__init__(self) - self.clear() - - def reduceTruth(self, tuple_in): - - self.reducedtruthclasses=['isB','isBB','isLeptB','isC','isUDS','isG'] - if tuple_in is not None: - b = tuple_in['isB'].view(numpy.ndarray) - - bb = tuple_in['isBB'].view(numpy.ndarray) - gbb = tuple_in['isGBB'].view(numpy.ndarray) - - - bl = tuple_in['isLeptonicB'].view(numpy.ndarray) - blc = tuple_in['isLeptonicB_C'].view(numpy.ndarray) - lepb=bl+blc - - c = tuple_in['isC'].view(numpy.ndarray) - cc = tuple_in['isCC'].view(numpy.ndarray) - gcc = tuple_in['isGCC'].view(numpy.ndarray) - - ud = tuple_in['isUD'].view(numpy.ndarray) - s = tuple_in['isS'].view(numpy.ndarray) - uds=ud+s - - g = tuple_in['isG'].view(numpy.ndarray) - - - return numpy.vstack((b,bb+gbb,lepb,c+cc+gcc,uds,g)).transpose() - - -class TrainData_deepFlavour_FT(TrainData_fullTruth): - ''' - classdocs - ''' - - def __init__(self): - ''' - Constructor - ''' - TrainData_fullTruth.__init__(self) - - - self.addBranches(['jet_pt', 'jet_eta', - 'nCpfcand','nNpfcand', - 'nsv','npv', - 'TagVarCSV_trackSumJetEtRatio', - 'TagVarCSV_trackSumJetDeltaR', - 'TagVarCSV_vertexCategory', - 'TagVarCSV_trackSip2dValAboveCharm', - 'TagVarCSV_trackSip2dSigAboveCharm', - 'TagVarCSV_trackSip3dValAboveCharm', - 'TagVarCSV_trackSip3dSigAboveCharm', - 'TagVarCSV_jetNSelectedTracks', - 'TagVarCSV_jetNTracksEtaRel']) - - self.addBranches(['Cpfcan_BtagPf_trackEtaRel', - 'Cpfcan_BtagPf_trackPtRel', - 'Cpfcan_BtagPf_trackPPar', - 'Cpfcan_BtagPf_trackDeltaR', - 'Cpfcan_BtagPf_trackPParRatio', - 'Cpfcan_BtagPf_trackSip2dVal', - 'Cpfcan_BtagPf_trackSip2dSig', - 'Cpfcan_BtagPf_trackSip3dVal', - 'Cpfcan_BtagPf_trackSip3dSig', - 'Cpfcan_BtagPf_trackJetDistVal', - #'Cpfcan_BtagPf_trackJetDistSig', - - 'Cpfcan_ptrel', - 'Cpfcan_drminsv', - #'Cpfcan_fromPV', - 'Cpfcan_VTX_ass', - 'Cpfcan_puppiw', - 'Cpfcan_chi2', - 'Cpfcan_quality' - ], - 25) - - - self.addBranches(['Npfcan_ptrel', - 'Npfcan_deltaR', - 'Npfcan_isGamma', - 'Npfcan_HadFrac', - 'Npfcan_drminsv', - 'Npfcan_puppiw' - ], - 25) - - - self.addBranches(['sv_pt', - 'sv_deltaR', - 'sv_mass', - 'sv_ntracks', - 'sv_chi2', - 'sv_normchi2', - 'sv_dxy', - 'sv_dxysig', - 'sv_d3d', - 'sv_d3dsig', - 'sv_costhetasvpv', - 'sv_enratio', - ], - 4) - - - - - def readFromRootFile(self,filename,TupleMeanStd, weighter): - from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles - import numpy - from DeepJetCore.stopwatch import stopwatch - - sw=stopwatch() - swall=stopwatch() - - import ROOT - - fileTimeOut(filename,120) #give eos a minute to recover - rfile = ROOT.TFile(filename) - tree = rfile.Get("deepntuplizer/tree") - self.nsamples=tree.GetEntries() - - print('took ', sw.getAndReset(), ' seconds for getting tree entries') - - - # split for convolutional network - - x_global = MeanNormZeroPad(filename,TupleMeanStd, - [self.branches[0]], - [self.branchcutoffs[0]],self.nsamples) - - x_cpf = MeanNormZeroPadParticles(filename,TupleMeanStd, - self.branches[1], - self.branchcutoffs[1],self.nsamples) - - x_npf = MeanNormZeroPadParticles(filename,TupleMeanStd, - self.branches[2], - self.branchcutoffs[2],self.nsamples) - - x_sv = MeanNormZeroPadParticles(filename,TupleMeanStd, - self.branches[3], - self.branchcutoffs[3],self.nsamples) - - - - print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') - - Tuple = self.readTreeFromRootToTuple(filename) - - if self.remove: - notremoves=weighter.createNotRemoveIndices(Tuple) - undef=Tuple['isUndefined'] - notremoves-=undef - print('took ', sw.getAndReset(), ' to create remove indices') - - if self.weight: - weights=weighter.getJetWeights(Tuple) - elif self.remove: - weights=notremoves - else: - print('neither remove nor weight') - weights=numpy.empty(self.nsamples) - weights.fill(1.) - - - truthtuple = Tuple[self.truthclasses] - #print(self.truthclasses) - alltruth=self.reduceTruth(truthtuple) - - #print(alltruth.shape) - if self.remove: - print('remove') - weights=weights[notremoves > 0] - x_global=x_global[notremoves > 0] - x_cpf=x_cpf[notremoves > 0] - x_npf=x_npf[notremoves > 0] - x_sv=x_sv[notremoves > 0] - alltruth=alltruth[notremoves > 0] - - newnsamp=x_global.shape[0] - print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') - self.nsamples = newnsamp - - print(x_global.shape,self.nsamples) - - self.w=[weights] - self.x=[x_global,x_cpf,x_npf,x_sv] - self.y=[alltruth] - - -def block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): - if active: - x= Dense(200, activation='relu',kernel_initializer='lecun_uniform', name='df_dense0')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm0')(x) - x = Dropout(dropoutRate,name='df_dense_dropout0')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense1')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm1')(x) - x = Dropout(dropoutRate,name='df_dense_dropout1')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense2')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm2')(x) - x = Dropout(dropoutRate,name='df_dense_dropout2')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense3')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm3')(x) - x = Dropout(dropoutRate,name='df_dense_dropout3')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense4')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm4')(x) - x = Dropout(dropoutRate,name='df_dense_dropout4')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense5')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm5')(x) - x = Dropout(dropoutRate,name='df_dense_dropout5')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense6')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm6')(x) - x = Dropout(dropoutRate,name='df_dense_dropout6')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense7')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm7')(x) - x = Dropout(dropoutRate,name='df_dense_dropout7')(x) - else: - x= Dense(1,kernel_initializer='zeros',trainable=False,name='df_dense_off')(x) - - return x - - -def block_deepFlavourConvolutions(charged,neutrals,vertices,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): - ''' - deep Flavour convolution part. - ''' - cpf=charged - if active: - cpf = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv0')(cpf) - if batchnorm: - cpf = BatchNormalization(momentum=batchmomentum ,name='cpf_batchnorm0')(cpf) - cpf = Dropout(dropoutRate,name='cpf_dropout0')(cpf) - cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv1')(cpf) - if batchnorm: - cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm1')(cpf) - cpf = Dropout(dropoutRate,name='cpf_dropout1')(cpf) - cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv2')(cpf) - if batchnorm: - cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm2')(cpf) - cpf = Dropout(dropoutRate,name='cpf_dropout2')(cpf) - cpf = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu' , name='cpf_conv3')(cpf) - else: - cpf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(cpf) - - npf=neutrals - if active: - npf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv0')(npf) - if batchnorm: - npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm0')(npf) - npf = Dropout(dropoutRate,name='npf_dropout0')(npf) - npf = Convolution1D(16, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv1')(npf) - if batchnorm: - npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm1')(npf) - npf = Dropout(dropoutRate,name='npf_dropout1')(npf) - npf = Convolution1D(4, 1, kernel_initializer='lecun_uniform', activation='relu' , name='npf_conv2')(npf) - else: - npf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(npf) - - vtx = vertices - if active: - vtx = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv0')(vtx) - if batchnorm: - vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm0')(vtx) - vtx = Dropout(dropoutRate,name='vtx_dropout0')(vtx) - vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv1')(vtx) - if batchnorm: - vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm1')(vtx) - vtx = Dropout(dropoutRate,name='vtx_dropout1')(vtx) - vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv2')(vtx) - if batchnorm: - vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm2')(vtx) - vtx = Dropout(dropoutRate,name='vtx_dropout2')(vtx) - vtx = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv3')(vtx) - else: - vtx = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(vtx) - - return cpf,npf,vtx - -def model_deepFlavourReference_test(Inputs,nclasses,nregclasses,dropoutRate=0.1,momentum=0.6): - """ - reference 1x1 convolutional model for 'deepFlavour' - with recurrent layers and batch normalisation - standard dropout rate it 0.1 - should be trained for flavour prediction first. afterwards, all layers can be fixed - that do not include 'regression' and the training can be repeated focusing on the regression part - (check function fixLayersContaining with invert=True) - """ - globalvars = BatchNormalization(momentum=momentum,name='globals_input_batchnorm') (Inputs[0]) - cpf = BatchNormalization(momentum=momentum,name='cpf_input_batchnorm') (Inputs[1]) - npf = BatchNormalization(momentum=momentum,name='npf_input_batchnorm') (Inputs[2]) - vtx = BatchNormalization(momentum=momentum,name='vtx_input_batchnorm') (Inputs[3]) - - cpf,npf,vtx = block_deepFlavourConvolutions(charged=cpf, - neutrals=npf, - vertices=vtx, - dropoutRate=dropoutRate, - active=True, - batchnorm=True, batchmomentum=momentum) - - - # - cpf = LSTM(150,go_backwards=True,implementation=2, name='cpf_lstm')(cpf) - cpf=BatchNormalization(momentum=momentum,name='cpflstm_batchnorm')(cpf) - cpf = Dropout(dropoutRate)(cpf) - - npf = LSTM(50,go_backwards=True,implementation=2, name='npf_lstm')(npf) - npf=BatchNormalization(momentum=momentum,name='npflstm_batchnorm')(npf) - npf = Dropout(dropoutRate)(npf) - - vtx = LSTM(50,go_backwards=True,implementation=2, name='vtx_lstm')(vtx) - vtx=BatchNormalization(momentum=momentum,name='vtxlstm_batchnorm')(vtx) - vtx = Dropout(dropoutRate)(vtx) - - - x = Concatenate()( [globalvars,cpf,npf,vtx ]) - - x = block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=True,batchmomentum=momentum) - - flavour_pred=Dense(nclasses, activation='softmax',kernel_initializer='lecun_uniform',name='ID_pred')(x) - - predictions = [flavour_pred] - model = Model(inputs=Inputs, outputs=predictions) - return model - -train=training_base(testrun=False) -newtraining= not train.modelSet() - - -if newtraining: - train.setModel(model_deepFlavourReference_test) - - #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) - - train.compileModel(learningrate=0.001, - loss=['categorical_crossentropy'], - metrics=['accuracy']) - - - train.train_data.maxFilesOpen=5 - print(train.keras_model.summary()) - model,history = train.trainModel(nepochs=3, - batchsize=10000, - stop_patience=300, - lr_factor=0.5, - lr_patience=3, - lr_epsilon=0.0001, - lr_cooldown=6, - lr_minimum=0.0001, - maxqsize=150, - plot_batch_loss = True) - - diff --git a/testing/batch_explosion.py b/testing/batch_explosion.py new file mode 100644 index 0000000..b4cc4e3 --- /dev/null +++ b/testing/batch_explosion.py @@ -0,0 +1,64 @@ +from DeepJetCore.training.training_base import training_base +from DeepJetCore.TrainData import TrainData +from DeepJetCore.TrainData import fileTimeOut as tdfto +import numpy as np +from DeepJetCore.evaluation import plotLoss + + + +from keras.callbacks import Callback +from keras.layers import Dense +from keras.models import Model + + + + +def model_for_test(Inputs,nclasses,nregclasses): + + globalvars = (Inputs[0]) + + x = Dense(50,activation='relu',kernel_initializer='lecun_uniform')(globalvars) + + flavour_pred=Dense(nclasses, activation='softmax',kernel_initializer='lecun_uniform',name='ID_pred')(x) + + predictions = [flavour_pred] + model = Model(inputs=Inputs, outputs=predictions) + return model + + + + + + + +train=training_base(testrun=False) +newtraining= not train.modelSet() + +def testequal(xout,yout): + + print(np.all(xout[0]==yout[0][:,0:1])) + +#train.train_data.test_output_function=testequal + + + +if newtraining: + train.setModel(model_for_test) + + #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) + + train.compileModel(learningrate=0.001, + loss=['categorical_crossentropy'], + metrics=['accuracy']) + + + train.train_data.maxFilesOpen=5 +print(train.keras_model.summary()) +model,history = train.trainModel(nepochs=10, + verbose=1, + batchsize=10000, + + load_in_mem = False, + plot_batch_loss = True) + + diff --git a/testing/datastructures/TrainData_testing.py b/testing/datastructures/TrainData_testing.py new file mode 100644 index 0000000..cfc2dc5 --- /dev/null +++ b/testing/datastructures/TrainData_testing.py @@ -0,0 +1,334 @@ +from DeepJetCore.TrainData import TrainData +from DeepJetCore.TrainData import fileTimeOut +import numpy + + +class base_traindata_batchex(TrainData): + + def __init__(self): + import numpy + TrainData.__init__(self) + + #setting DeepJet specific defaults + self.treename="deepntuplizer/tree" + self.truthclasses=['class1','class2'] + + self.treename="deepntuplizer/tree" + self.referenceclass='class1' + + + self.registerBranches(self.truthclasses) + self.registerBranches(['x']) + + self.weightbranchX='x' + self.weightbranchY='x' + + self.weight_binX = numpy.array([-1,0.9,2.0],dtype=float) + + self.weight_binY = numpy.array( + [-1,0.9,2.0], + dtype=float + ) + + + + def reduceTruth(self, tuple_in): + + self.reducedtruthclasses=['isB','isBB','isLeptB','isC','isUDS','isG'] + if tuple_in is not None: + class1 = tuple_in['class1'].view(numpy.ndarray) + + class2 = tuple_in['class2'].view(numpy.ndarray) + + return numpy.vstack((class1,class2)).transpose() + + + + +class TrainData_testBatch(base_traindata_batchex): + + + def __init__(self): + base_traindata_batchex.__init__(self) + self.addBranches(['x']) + + def readFromRootFile(self,filename,TupleMeanStd,weighter): + + + from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles + import numpy + from DeepJetCore.stopwatch import stopwatch + + sw=stopwatch() + swall=stopwatch() + + import ROOT + + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get("deepntuplizer/tree") + self.nsamples=tree.GetEntries() + + print('took ', sw.getAndReset(), ' seconds for getting tree entries') + + + # split for convolutional network + + x_global = MeanNormZeroPad(filename,None, + [self.branches[0]], + [self.branchcutoffs[0]],self.nsamples) + + print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') + + Tuple = self.readTreeFromRootToTuple(filename) + + + truthtuple = Tuple[self.truthclasses] + alltruth=self.reduceTruth(truthtuple) + + newnsamp=x_global.shape[0] + print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') + self.nsamples = newnsamp + + print(x_global.shape,self.nsamples) + + self.w=[] + self.x=[x_global] + self.y=[alltruth] + + + + + + +class TrainDataDeepJet_base(TrainData): + ''' + Base class for DeepJet. + TO create own b-tagging trainings, please inherit from this class + ''' + + def __init__(self): + import numpy + TrainData.__init__(self) + + #setting DeepJet specific defaults + self.treename="deepntuplizer/tree" + self.undefTruth=['isUndefined'] + self.referenceclass='isB' + self.truthclasses=['isB','isBB','isGBB','isLeptonicB','isLeptonicB_C','isC','isCC', + 'isGCC','isUD','isS','isG','isUndefined'] + + + #standard branches + self.registerBranches(self.undefTruth) + self.registerBranches(self.truthclasses) + self.registerBranches(['jet_pt','jet_eta']) + + self.weightbranchX='jet_pt' + self.weightbranchY='jet_eta' + + self.weight_binX = numpy.array([ + 10,25,30,35,40,45,50,60,75,100, + 125,150,175,200,250,300,400,500, + 600,2000],dtype=float) + + self.weight_binY = numpy.array( + [-2.5,-2.,-1.5,-1.,-0.5,0.5,1,1.5,2.,2.5], + dtype=float + ) + + + + self.reduceTruth(None) + + +class TrainData_fullTruth_base(TrainDataDeepJet_base): + def __init__(self): + TrainDataDeepJet_base.__init__(self) + self.clear() + + def reduceTruth(self, tuple_in): + + self.reducedtruthclasses=['isB','isBB','isLeptB','isC','isUDS','isG'] + if tuple_in is not None: + b = tuple_in['isB'].view(numpy.ndarray) + + bb = tuple_in['isBB'].view(numpy.ndarray) + gbb = tuple_in['isGBB'].view(numpy.ndarray) + + + bl = tuple_in['isLeptonicB'].view(numpy.ndarray) + blc = tuple_in['isLeptonicB_C'].view(numpy.ndarray) + lepb=bl+blc + + c = tuple_in['isC'].view(numpy.ndarray) + cc = tuple_in['isCC'].view(numpy.ndarray) + gcc = tuple_in['isGCC'].view(numpy.ndarray) + + ud = tuple_in['isUD'].view(numpy.ndarray) + s = tuple_in['isS'].view(numpy.ndarray) + uds=ud+s + + g = tuple_in['isG'].view(numpy.ndarray) + + + return numpy.vstack((b,bb+gbb,lepb,c+cc+gcc,uds,g)).transpose() + + +class TrainData_testQueue(TrainData_fullTruth_base): + ''' + classdocs + ''' + + def __init__(self): + ''' + Constructor + ''' + TrainData_fullTruth_base.__init__(self) + + + self.addBranches(['jet_pt', 'jet_eta', + 'nCpfcand','nNpfcand', + 'nsv','npv', + 'TagVarCSV_trackSumJetEtRatio', + 'TagVarCSV_trackSumJetDeltaR', + 'TagVarCSV_vertexCategory', + 'TagVarCSV_trackSip2dValAboveCharm', + 'TagVarCSV_trackSip2dSigAboveCharm', + 'TagVarCSV_trackSip3dValAboveCharm', + 'TagVarCSV_trackSip3dSigAboveCharm', + 'TagVarCSV_jetNSelectedTracks', + 'TagVarCSV_jetNTracksEtaRel']) + + self.addBranches(['Cpfcan_BtagPf_trackEtaRel', + 'Cpfcan_BtagPf_trackPtRel', + 'Cpfcan_BtagPf_trackPPar', + 'Cpfcan_BtagPf_trackDeltaR', + 'Cpfcan_BtagPf_trackPParRatio', + 'Cpfcan_BtagPf_trackSip2dVal', + 'Cpfcan_BtagPf_trackSip2dSig', + 'Cpfcan_BtagPf_trackSip3dVal', + 'Cpfcan_BtagPf_trackSip3dSig', + 'Cpfcan_BtagPf_trackJetDistVal', + #'Cpfcan_BtagPf_trackJetDistSig', + + 'Cpfcan_ptrel', + 'Cpfcan_drminsv', + #'Cpfcan_fromPV', + 'Cpfcan_VTX_ass', + 'Cpfcan_puppiw', + 'Cpfcan_chi2', + 'Cpfcan_quality' + ], + 25) + + + self.addBranches(['Npfcan_ptrel', + 'Npfcan_deltaR', + 'Npfcan_isGamma', + 'Npfcan_HadFrac', + 'Npfcan_drminsv', + 'Npfcan_puppiw' + ], + 25) + + + self.addBranches(['sv_pt', + 'sv_deltaR', + 'sv_mass', + 'sv_ntracks', + 'sv_chi2', + 'sv_normchi2', + 'sv_dxy', + 'sv_dxysig', + 'sv_d3d', + 'sv_d3dsig', + 'sv_costhetasvpv', + 'sv_enratio', + ], + 4) + + + + + def readFromRootFile(self,filename,TupleMeanStd, weighter): + from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles + import numpy + from DeepJetCore.stopwatch import stopwatch + + sw=stopwatch() + swall=stopwatch() + + import ROOT + + fileTimeOut(filename,120) #give eos a minute to recover + rfile = ROOT.TFile(filename) + tree = rfile.Get("deepntuplizer/tree") + self.nsamples=tree.GetEntries() + + print('took ', sw.getAndReset(), ' seconds for getting tree entries') + + + # split for convolutional network + + x_global = MeanNormZeroPad(filename,TupleMeanStd, + [self.branches[0]], + [self.branchcutoffs[0]],self.nsamples) + + x_cpf = MeanNormZeroPadParticles(filename,TupleMeanStd, + self.branches[1], + self.branchcutoffs[1],self.nsamples) + + x_npf = MeanNormZeroPadParticles(filename,TupleMeanStd, + self.branches[2], + self.branchcutoffs[2],self.nsamples) + + x_sv = MeanNormZeroPadParticles(filename,TupleMeanStd, + self.branches[3], + self.branchcutoffs[3],self.nsamples) + + + + print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') + + Tuple = self.readTreeFromRootToTuple(filename) + + if self.remove: + notremoves=weighter.createNotRemoveIndices(Tuple) + undef=Tuple['isUndefined'] + notremoves-=undef + print('took ', sw.getAndReset(), ' to create remove indices') + + if self.weight: + weights=weighter.getJetWeights(Tuple) + elif self.remove: + weights=notremoves + else: + print('neither remove nor weight') + weights=numpy.empty(self.nsamples) + weights.fill(1.) + + + truthtuple = Tuple[self.truthclasses] + #print(self.truthclasses) + alltruth=self.reduceTruth(truthtuple) + + #print(alltruth.shape) + if self.remove: + print('remove') + weights=weights[notremoves > 0] + x_global=x_global[notremoves > 0] + x_cpf=x_cpf[notremoves > 0] + x_npf=x_npf[notremoves > 0] + x_sv=x_sv[notremoves > 0] + alltruth=alltruth[notremoves > 0] + + newnsamp=x_global.shape[0] + print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') + self.nsamples = newnsamp + + print(x_global.shape,self.nsamples) + + self.w=[weights] + self.x=[x_global,x_cpf,x_npf,x_sv] + self.y=[alltruth] diff --git a/testing/datastructures/__init__.py b/testing/datastructures/__init__.py new file mode 100644 index 0000000..c6a6e23 --- /dev/null +++ b/testing/datastructures/__init__.py @@ -0,0 +1,22 @@ + +#Make it look like a package +from glob import glob +from os import environ +from os.path import basename, dirname +from pdb import set_trace + +#gather all the files here +modules = [basename(i.replace('.py','')) for i in glob('%s/[A-Za-z]*.py' % dirname(__file__))] +__all__ = [] +structure_list=[] +for module_name in modules: + module = __import__(module_name, globals(), locals(), [module_name]) + for model_name in [i for i in dir(module) if 'TrainData' in i]: + + + model = getattr(module, model_name) + globals()[model_name] = model + locals( )[model_name] = model + __all__.append(model_name) + structure_list.append(model_name) + diff --git a/testing/max_q_size.py b/testing/max_q_size.py new file mode 100644 index 0000000..81195b4 --- /dev/null +++ b/testing/max_q_size.py @@ -0,0 +1,33 @@ +from DeepJetCore.training.training_base import training_base +from tools import model_deepFlavourReference_test + + + +train=training_base(testrun=False) +newtraining= not train.modelSet() + + +if newtraining: + train.setModel(model_deepFlavourReference_test) + + #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) + + train.compileModel(learningrate=0.001, + loss=['categorical_crossentropy'], + metrics=['accuracy']) + + + train.train_data.maxFilesOpen=5 + print(train.keras_model.summary()) + model,history = train.trainModel(nepochs=3, + batchsize=10000, + stop_patience=300, + lr_factor=0.5, + lr_patience=3, + lr_epsilon=0.0001, + lr_cooldown=6, + lr_minimum=0.0001, + maxqsize=150, + plot_batch_loss = True) + + diff --git a/testing/test_batch_explosion.py b/testing/test_batch_explosion.py deleted file mode 100644 index e633338..0000000 --- a/testing/test_batch_explosion.py +++ /dev/null @@ -1,188 +0,0 @@ -from DeepJetCore.training.training_base import training_base -from DeepJetCore.TrainData import TrainData -from DeepJetCore.TrainData import fileTimeOut as tdfto -import numpy -from DeepJetCore.evaluation import plotLoss - - - -from keras.callbacks import Callback -from keras.layers import Dense -from keras.models import Model - - -class TrainData_forTest(TrainData): - - def __init__(self): - import numpy - TrainData.__init__(self) - - #setting DeepJet specific defaults - self.treename="deepntuplizer/tree" - self.truthclasses=['class1','class2'] - - self.treename="deepntuplizer/tree" - self.referenceclass='class1' - - - self.registerBranches(self.truthclasses) - self.registerBranches(['x']) - - self.weightbranchX='x' - self.weightbranchY='x' - - self.weight_binX = numpy.array([-1,0.9,2.0],dtype=float) - - self.weight_binY = numpy.array( - [-1,0.9,2.0], - dtype=float - ) - - - - def reduceTruth(self, tuple_in): - - self.reducedtruthclasses=['isB','isBB','isLeptB','isC','isUDS','isG'] - if tuple_in is not None: - class1 = tuple_in['class1'].view(numpy.ndarray) - - class2 = tuple_in['class2'].view(numpy.ndarray) - - return numpy.vstack((class1,class2)).transpose() - - - - def getFlavourClassificationData(self,filename,TupleMeanStd): - from DeepJetCore.stopwatch import stopwatch - - sw=stopwatch() - swall=stopwatch() - - import ROOT - - fileTimeOut(filename,120) #give eos a minute to recover - rfile = ROOT.TFile(filename) - tree = rfile.Get(self.treename) - self.nsamples=tree.GetEntries() - - #print('took ', sw.getAndReset(), ' seconds for getting tree entries') - - - Tuple = self.readTreeFromRootToTuple(filename) - - - x_all = MeanNormZeroPad(filename,TupleMeanStd,self.branches,self.branchcutoffs,self.nsamples) - - truthtuple = Tuple[self.truthclasses] - #print(self.truthclasses) - alltruth=self.reduceTruth(truthtuple) - - - newnsamp=x_all.shape[0] - self.nsamples = newnsamp - - - return x_all,alltruth - -class TrainData_testingClass(TrainData_forTest): - - - def __init__(self): - TrainData_forTest.__init__(self) - self.addBranches(['x']) - - def readFromRootFile(self,filename,TupleMeanStd,weighter): - - - from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles - import numpy - from DeepJetCore.stopwatch import stopwatch - - sw=stopwatch() - swall=stopwatch() - - import ROOT - - fileTimeOut(filename,120) #give eos a minute to recover - rfile = ROOT.TFile(filename) - tree = rfile.Get("deepntuplizer/tree") - self.nsamples=tree.GetEntries() - - print('took ', sw.getAndReset(), ' seconds for getting tree entries') - - - # split for convolutional network - - x_global = MeanNormZeroPad(filename,None, - [self.branches[0]], - [self.branchcutoffs[0]],self.nsamples) - - print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') - - Tuple = self.readTreeFromRootToTuple(filename) - - - weights=numpy.empty(self.nsamples) - weights.fill(1.) - - - truthtuple = Tuple[self.truthclasses] - alltruth=self.reduceTruth(truthtuple) - - newnsamp=x_global.shape[0] - print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') - self.nsamples = newnsamp - - print(x_global.shape,self.nsamples) - - self.w=[weights] - self.x=[x_global] - self.y=[alltruth] - - -def model_for_test(Inputs,nclasses,nregclasses): - - globalvars = (Inputs[0]) - - x = Dense(50,activation='relu',kernel_initializer='lecun_uniform')(globalvars) - - flavour_pred=Dense(nclasses, activation='softmax',kernel_initializer='lecun_uniform',name='ID_pred')(x) - - predictions = [flavour_pred] - model = Model(inputs=Inputs, outputs=predictions) - return model - - - - - - - -train=training_base(testrun=False) -newtraining= not train.modelSet() - - -if newtraining: - train.setModel(model_for_test) - - #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) - - train.compileModel(learningrate=0.001, - loss=['categorical_crossentropy'], - metrics=['accuracy']) - - - train.train_data.maxFilesOpen=5 - print(train.keras_model.summary()) - model,history = train.trainModel(nepochs=100, - batchsize=10000, - stop_patience=300, - lr_factor=0.5, - lr_patience=3, - lr_epsilon=0.0001, - lr_cooldown=6, - lr_minimum=0.0001, - maxqsize=1, - plot_batch_loss = True) - - diff --git a/testing/test_max_q_size.py b/testing/test_max_q_size.py deleted file mode 100644 index 7affb71..0000000 --- a/testing/test_max_q_size.py +++ /dev/null @@ -1,474 +0,0 @@ -from DeepJetCore.training.training_base import training_base -from DeepJetCore.TrainData import TrainData -from DeepJetCore.TrainData import fileTimeOut as tdfto -import numpy -from DeepJetCore.evaluation import plotLoss - - - -from keras.callbacks import Callback -from keras.layers import Dense,BatchNormalization,Convolution1D -from keras.layers import Dense, Dropout, Flatten,Concatenate, Convolution2D, LSTM,merge, Convolution1D, Conv2D -from keras.models import Model - -class TrainDataDeepJet(TrainData): - ''' - Base class for DeepJet. - TO create own b-tagging trainings, please inherit from this class - ''' - - def __init__(self): - import numpy - TrainData.__init__(self) - - #setting DeepJet specific defaults - self.treename="deepntuplizer/tree" - self.undefTruth=['isUndefined'] - self.referenceclass='isB' - self.truthclasses=['isB','isBB','isGBB','isLeptonicB','isLeptonicB_C','isC','isCC', - 'isGCC','isUD','isS','isG','isUndefined'] - - - #standard branches - self.registerBranches(self.undefTruth) - self.registerBranches(self.truthclasses) - self.registerBranches(['jet_pt','jet_eta']) - - self.weightbranchX='jet_pt' - self.weightbranchY='jet_eta' - - self.weight_binX = numpy.array([ - 10,25,30,35,40,45,50,60,75,100, - 125,150,175,200,250,300,400,500, - 600,2000],dtype=float) - - self.weight_binY = numpy.array( - [-2.5,-2.,-1.5,-1.,-0.5,0.5,1,1.5,2.,2.5], - dtype=float - ) - - - - self.reduceTruth(None) - - - def getFlavourClassificationData(self,filename,TupleMeanStd, weighter): - from DeepJetCore.stopwatch import stopwatch - - sw=stopwatch() - swall=stopwatch() - - import ROOT - - fileTimeOut(filename,120) #give eos a minute to recover - rfile = ROOT.TFile(filename) - tree = rfile.Get(self.treename) - self.nsamples=tree.GetEntries() - - #print('took ', sw.getAndReset(), ' seconds for getting tree entries') - - - Tuple = self.readTreeFromRootToTuple(filename) - - - x_all = MeanNormZeroPad(filename,TupleMeanStd,self.branches,self.branchcutoffs,self.nsamples) - - #print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') - - notremoves=numpy.array([]) - weights=numpy.array([]) - if self.remove: - notremoves=weighter.createNotRemoveIndices(Tuple) - weights=notremoves - #print('took ', sw.getAndReset(), ' to create remove indices') - elif self.weight: - #print('creating weights') - weights= weighter.getJetWeights(Tuple) - else: - print('neither remove nor weight') - weights=numpy.empty(self.nsamples) - weights.fill(1.) - - - - truthtuple = Tuple[self.truthclasses] - #print(self.truthclasses) - alltruth=self.reduceTruth(truthtuple) - - #print(alltruth.shape) - if self.remove: - #print('remove') - weights=weights[notremoves > 0] - x_all=x_all[notremoves > 0] - alltruth=alltruth[notremoves > 0] - - newnsamp=x_all.shape[0] - #print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') - self.nsamples = newnsamp - - #print('took in total ', swall.getAndReset(),' seconds for conversion') - - return weights,x_all,alltruth, notremoves - -class TrainData_fullTruth(TrainDataDeepJet): - def __init__(self): - TrainDataDeepJet.__init__(self) - self.clear() - - def reduceTruth(self, tuple_in): - - self.reducedtruthclasses=['isB','isBB','isLeptB','isC','isUDS','isG'] - if tuple_in is not None: - b = tuple_in['isB'].view(numpy.ndarray) - - bb = tuple_in['isBB'].view(numpy.ndarray) - gbb = tuple_in['isGBB'].view(numpy.ndarray) - - - bl = tuple_in['isLeptonicB'].view(numpy.ndarray) - blc = tuple_in['isLeptonicB_C'].view(numpy.ndarray) - lepb=bl+blc - - c = tuple_in['isC'].view(numpy.ndarray) - cc = tuple_in['isCC'].view(numpy.ndarray) - gcc = tuple_in['isGCC'].view(numpy.ndarray) - - ud = tuple_in['isUD'].view(numpy.ndarray) - s = tuple_in['isS'].view(numpy.ndarray) - uds=ud+s - - g = tuple_in['isG'].view(numpy.ndarray) - - - return numpy.vstack((b,bb+gbb,lepb,c+cc+gcc,uds,g)).transpose() - - -class TrainData_deepFlavour_FT(TrainData_fullTruth): - ''' - classdocs - ''' - - def __init__(self): - ''' - Constructor - ''' - TrainData_fullTruth.__init__(self) - - - self.addBranches(['jet_pt', 'jet_eta', - 'nCpfcand','nNpfcand', - 'nsv','npv', - 'TagVarCSV_trackSumJetEtRatio', - 'TagVarCSV_trackSumJetDeltaR', - 'TagVarCSV_vertexCategory', - 'TagVarCSV_trackSip2dValAboveCharm', - 'TagVarCSV_trackSip2dSigAboveCharm', - 'TagVarCSV_trackSip3dValAboveCharm', - 'TagVarCSV_trackSip3dSigAboveCharm', - 'TagVarCSV_jetNSelectedTracks', - 'TagVarCSV_jetNTracksEtaRel']) - - self.addBranches(['Cpfcan_BtagPf_trackEtaRel', - 'Cpfcan_BtagPf_trackPtRel', - 'Cpfcan_BtagPf_trackPPar', - 'Cpfcan_BtagPf_trackDeltaR', - 'Cpfcan_BtagPf_trackPParRatio', - 'Cpfcan_BtagPf_trackSip2dVal', - 'Cpfcan_BtagPf_trackSip2dSig', - 'Cpfcan_BtagPf_trackSip3dVal', - 'Cpfcan_BtagPf_trackSip3dSig', - 'Cpfcan_BtagPf_trackJetDistVal', - #'Cpfcan_BtagPf_trackJetDistSig', - - 'Cpfcan_ptrel', - 'Cpfcan_drminsv', - #'Cpfcan_fromPV', - 'Cpfcan_VTX_ass', - 'Cpfcan_puppiw', - 'Cpfcan_chi2', - 'Cpfcan_quality' - ], - 25) - - - self.addBranches(['Npfcan_ptrel', - 'Npfcan_deltaR', - 'Npfcan_isGamma', - 'Npfcan_HadFrac', - 'Npfcan_drminsv', - 'Npfcan_puppiw' - ], - 25) - - - self.addBranches(['sv_pt', - 'sv_deltaR', - 'sv_mass', - 'sv_ntracks', - 'sv_chi2', - 'sv_normchi2', - 'sv_dxy', - 'sv_dxysig', - 'sv_d3d', - 'sv_d3dsig', - 'sv_costhetasvpv', - 'sv_enratio', - ], - 4) - - - - - def readFromRootFile(self,filename,TupleMeanStd, weighter): - from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles - import numpy - from DeepJetCore.stopwatch import stopwatch - - sw=stopwatch() - swall=stopwatch() - - import ROOT - - fileTimeOut(filename,120) #give eos a minute to recover - rfile = ROOT.TFile(filename) - tree = rfile.Get("deepntuplizer/tree") - self.nsamples=tree.GetEntries() - - print('took ', sw.getAndReset(), ' seconds for getting tree entries') - - - # split for convolutional network - - x_global = MeanNormZeroPad(filename,TupleMeanStd, - [self.branches[0]], - [self.branchcutoffs[0]],self.nsamples) - - x_cpf = MeanNormZeroPadParticles(filename,TupleMeanStd, - self.branches[1], - self.branchcutoffs[1],self.nsamples) - - x_npf = MeanNormZeroPadParticles(filename,TupleMeanStd, - self.branches[2], - self.branchcutoffs[2],self.nsamples) - - x_sv = MeanNormZeroPadParticles(filename,TupleMeanStd, - self.branches[3], - self.branchcutoffs[3],self.nsamples) - - - - print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') - - Tuple = self.readTreeFromRootToTuple(filename) - - if self.remove: - notremoves=weighter.createNotRemoveIndices(Tuple) - undef=Tuple['isUndefined'] - notremoves-=undef - print('took ', sw.getAndReset(), ' to create remove indices') - - if self.weight: - weights=weighter.getJetWeights(Tuple) - elif self.remove: - weights=notremoves - else: - print('neither remove nor weight') - weights=numpy.empty(self.nsamples) - weights.fill(1.) - - - truthtuple = Tuple[self.truthclasses] - #print(self.truthclasses) - alltruth=self.reduceTruth(truthtuple) - - #print(alltruth.shape) - if self.remove: - print('remove') - weights=weights[notremoves > 0] - x_global=x_global[notremoves > 0] - x_cpf=x_cpf[notremoves > 0] - x_npf=x_npf[notremoves > 0] - x_sv=x_sv[notremoves > 0] - alltruth=alltruth[notremoves > 0] - - newnsamp=x_global.shape[0] - print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') - self.nsamples = newnsamp - - print(x_global.shape,self.nsamples) - - self.w=[weights] - self.x=[x_global,x_cpf,x_npf,x_sv] - self.y=[alltruth] - - -def block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): - if active: - x= Dense(200, activation='relu',kernel_initializer='lecun_uniform', name='df_dense0')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm0')(x) - x = Dropout(dropoutRate,name='df_dense_dropout0')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense1')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm1')(x) - x = Dropout(dropoutRate,name='df_dense_dropout1')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense2')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm2')(x) - x = Dropout(dropoutRate,name='df_dense_dropout2')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense3')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm3')(x) - x = Dropout(dropoutRate,name='df_dense_dropout3')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense4')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm4')(x) - x = Dropout(dropoutRate,name='df_dense_dropout4')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense5')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm5')(x) - x = Dropout(dropoutRate,name='df_dense_dropout5')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense6')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm6')(x) - x = Dropout(dropoutRate,name='df_dense_dropout6')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense7')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm7')(x) - x = Dropout(dropoutRate,name='df_dense_dropout7')(x) - else: - x= Dense(1,kernel_initializer='zeros',trainable=False,name='df_dense_off')(x) - - return x - - -def block_deepFlavourConvolutions(charged,neutrals,vertices,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): - ''' - deep Flavour convolution part. - ''' - cpf=charged - if active: - cpf = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv0')(cpf) - if batchnorm: - cpf = BatchNormalization(momentum=batchmomentum ,name='cpf_batchnorm0')(cpf) - cpf = Dropout(dropoutRate,name='cpf_dropout0')(cpf) - cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv1')(cpf) - if batchnorm: - cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm1')(cpf) - cpf = Dropout(dropoutRate,name='cpf_dropout1')(cpf) - cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv2')(cpf) - if batchnorm: - cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm2')(cpf) - cpf = Dropout(dropoutRate,name='cpf_dropout2')(cpf) - cpf = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu' , name='cpf_conv3')(cpf) - else: - cpf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(cpf) - - npf=neutrals - if active: - npf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv0')(npf) - if batchnorm: - npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm0')(npf) - npf = Dropout(dropoutRate,name='npf_dropout0')(npf) - npf = Convolution1D(16, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv1')(npf) - if batchnorm: - npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm1')(npf) - npf = Dropout(dropoutRate,name='npf_dropout1')(npf) - npf = Convolution1D(4, 1, kernel_initializer='lecun_uniform', activation='relu' , name='npf_conv2')(npf) - else: - npf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(npf) - - vtx = vertices - if active: - vtx = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv0')(vtx) - if batchnorm: - vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm0')(vtx) - vtx = Dropout(dropoutRate,name='vtx_dropout0')(vtx) - vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv1')(vtx) - if batchnorm: - vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm1')(vtx) - vtx = Dropout(dropoutRate,name='vtx_dropout1')(vtx) - vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv2')(vtx) - if batchnorm: - vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm2')(vtx) - vtx = Dropout(dropoutRate,name='vtx_dropout2')(vtx) - vtx = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv3')(vtx) - else: - vtx = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(vtx) - - return cpf,npf,vtx - -def model_deepFlavourReference_test(Inputs,nclasses,nregclasses,dropoutRate=0.1,momentum=0.6): - """ - reference 1x1 convolutional model for 'deepFlavour' - with recurrent layers and batch normalisation - standard dropout rate it 0.1 - should be trained for flavour prediction first. afterwards, all layers can be fixed - that do not include 'regression' and the training can be repeated focusing on the regression part - (check function fixLayersContaining with invert=True) - """ - globalvars = BatchNormalization(momentum=momentum,name='globals_input_batchnorm') (Inputs[0]) - cpf = BatchNormalization(momentum=momentum,name='cpf_input_batchnorm') (Inputs[1]) - npf = BatchNormalization(momentum=momentum,name='npf_input_batchnorm') (Inputs[2]) - vtx = BatchNormalization(momentum=momentum,name='vtx_input_batchnorm') (Inputs[3]) - - cpf,npf,vtx = block_deepFlavourConvolutions(charged=cpf, - neutrals=npf, - vertices=vtx, - dropoutRate=dropoutRate, - active=True, - batchnorm=True, batchmomentum=momentum) - - - # - cpf = LSTM(150,go_backwards=True,implementation=2, name='cpf_lstm')(cpf) - cpf=BatchNormalization(momentum=momentum,name='cpflstm_batchnorm')(cpf) - cpf = Dropout(dropoutRate)(cpf) - - npf = LSTM(50,go_backwards=True,implementation=2, name='npf_lstm')(npf) - npf=BatchNormalization(momentum=momentum,name='npflstm_batchnorm')(npf) - npf = Dropout(dropoutRate)(npf) - - vtx = LSTM(50,go_backwards=True,implementation=2, name='vtx_lstm')(vtx) - vtx=BatchNormalization(momentum=momentum,name='vtxlstm_batchnorm')(vtx) - vtx = Dropout(dropoutRate)(vtx) - - - x = Concatenate()( [globalvars,cpf,npf,vtx ]) - - x = block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=True,batchmomentum=momentum) - - flavour_pred=Dense(nclasses, activation='softmax',kernel_initializer='lecun_uniform',name='ID_pred')(x) - - predictions = [flavour_pred] - model = Model(inputs=Inputs, outputs=predictions) - return model - -train=training_base(testrun=False) -newtraining= not train.modelSet() - - -if newtraining: - train.setModel(model_deepFlavourReference_test) - - #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) - - train.compileModel(learningrate=0.001, - loss=['categorical_crossentropy'], - metrics=['accuracy']) - - - train.train_data.maxFilesOpen=5 - print(train.keras_model.summary()) - model,history = train.trainModel(nepochs=3, - batchsize=10000, - stop_patience=300, - lr_factor=0.5, - lr_patience=3, - lr_epsilon=0.0001, - lr_cooldown=6, - lr_minimum=0.0001, - maxqsize=150, - plot_batch_loss = True) - - diff --git a/testing/tools.py b/testing/tools.py new file mode 100644 index 0000000..67e2134 --- /dev/null +++ b/testing/tools.py @@ -0,0 +1,153 @@ + + +from keras.layers import Dense,BatchNormalization,Convolution1D +from keras.layers import Dense, Dropout, Flatten,Concatenate, Convolution2D, LSTM,merge, Convolution1D, Conv2D +from keras.models import Model + + + +def block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): + if active: + x= Dense(200, activation='relu',kernel_initializer='lecun_uniform', name='df_dense0')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm0')(x) + x = Dropout(dropoutRate,name='df_dense_dropout0')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense1')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm1')(x) + x = Dropout(dropoutRate,name='df_dense_dropout1')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense2')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm2')(x) + x = Dropout(dropoutRate,name='df_dense_dropout2')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense3')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm3')(x) + x = Dropout(dropoutRate,name='df_dense_dropout3')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense4')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm4')(x) + x = Dropout(dropoutRate,name='df_dense_dropout4')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense5')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm5')(x) + x = Dropout(dropoutRate,name='df_dense_dropout5')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense6')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm6')(x) + x = Dropout(dropoutRate,name='df_dense_dropout6')(x) + x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense7')(x) + if batchnorm: + x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm7')(x) + x = Dropout(dropoutRate,name='df_dense_dropout7')(x) + else: + x= Dense(1,kernel_initializer='zeros',trainable=False,name='df_dense_off')(x) + + return x + + +def block_deepFlavourConvolutions(charged,neutrals,vertices,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): + ''' + deep Flavour convolution part. + ''' + cpf=charged + if active: + cpf = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv0')(cpf) + if batchnorm: + cpf = BatchNormalization(momentum=batchmomentum ,name='cpf_batchnorm0')(cpf) + cpf = Dropout(dropoutRate,name='cpf_dropout0')(cpf) + cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv1')(cpf) + if batchnorm: + cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm1')(cpf) + cpf = Dropout(dropoutRate,name='cpf_dropout1')(cpf) + cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv2')(cpf) + if batchnorm: + cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm2')(cpf) + cpf = Dropout(dropoutRate,name='cpf_dropout2')(cpf) + cpf = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu' , name='cpf_conv3')(cpf) + else: + cpf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(cpf) + + npf=neutrals + if active: + npf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv0')(npf) + if batchnorm: + npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm0')(npf) + npf = Dropout(dropoutRate,name='npf_dropout0')(npf) + npf = Convolution1D(16, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv1')(npf) + if batchnorm: + npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm1')(npf) + npf = Dropout(dropoutRate,name='npf_dropout1')(npf) + npf = Convolution1D(4, 1, kernel_initializer='lecun_uniform', activation='relu' , name='npf_conv2')(npf) + else: + npf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(npf) + + vtx = vertices + if active: + vtx = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv0')(vtx) + if batchnorm: + vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm0')(vtx) + vtx = Dropout(dropoutRate,name='vtx_dropout0')(vtx) + vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv1')(vtx) + if batchnorm: + vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm1')(vtx) + vtx = Dropout(dropoutRate,name='vtx_dropout1')(vtx) + vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv2')(vtx) + if batchnorm: + vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm2')(vtx) + vtx = Dropout(dropoutRate,name='vtx_dropout2')(vtx) + vtx = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv3')(vtx) + else: + vtx = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(vtx) + + return cpf,npf,vtx + +def model_deepFlavourReference_test(Inputs,nclasses,nregclasses,dropoutRate=0.1,momentum=0.6): + """ + reference 1x1 convolutional model for 'deepFlavour' + with recurrent layers and batch normalisation + standard dropout rate it 0.1 + should be trained for flavour prediction first. afterwards, all layers can be fixed + that do not include 'regression' and the training can be repeated focusing on the regression part + (check function fixLayersContaining with invert=True) + """ + globalvars = BatchNormalization(momentum=momentum,name='globals_input_batchnorm') (Inputs[0]) + cpf = BatchNormalization(momentum=momentum,name='cpf_input_batchnorm') (Inputs[1]) + npf = BatchNormalization(momentum=momentum,name='npf_input_batchnorm') (Inputs[2]) + vtx = BatchNormalization(momentum=momentum,name='vtx_input_batchnorm') (Inputs[3]) + + cpf,npf,vtx = block_deepFlavourConvolutions(charged=cpf, + neutrals=npf, + vertices=vtx, + dropoutRate=dropoutRate, + active=True, + batchnorm=True, batchmomentum=momentum) + + + # + cpf = LSTM(150,go_backwards=True,implementation=2, name='cpf_lstm')(cpf) + cpf=BatchNormalization(momentum=momentum,name='cpflstm_batchnorm')(cpf) + cpf = Dropout(dropoutRate)(cpf) + + npf = LSTM(50,go_backwards=True,implementation=2, name='npf_lstm')(npf) + npf=BatchNormalization(momentum=momentum,name='npflstm_batchnorm')(npf) + npf = Dropout(dropoutRate)(npf) + + vtx = LSTM(50,go_backwards=True,implementation=2, name='vtx_lstm')(vtx) + vtx=BatchNormalization(momentum=momentum,name='vtxlstm_batchnorm')(vtx) + vtx = Dropout(dropoutRate)(vtx) + + + x = Concatenate()( [globalvars,cpf,npf,vtx ]) + + x = block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=True,batchmomentum=momentum) + + flavour_pred=Dense(nclasses, activation='softmax',kernel_initializer='lecun_uniform',name='ID_pred')(x) + + predictions = [flavour_pred] + model = Model(inputs=Inputs, outputs=predictions) + return model + + + + diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 1392469..360999a 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -25,7 +25,7 @@ def __init__(self,outputDir,metrics): self.metrics=metrics self.outputDir=outputDir - def on_epoch_end(self,epoch, epoch_logs={}): + def on_epoch_end(self,epoch, logs={}): lossfile=os.path.join( self.outputDir, 'full_info.log') allinfo_history=None with open(lossfile, 'r') as infile: @@ -59,16 +59,16 @@ def __init__(self,outputDir,plotLoss=False): self.full_logs=[] self.plotLoss=plotLoss - def on_epoch_end(self,epoch, epoch_logs={}): + def on_epoch_end(self,epoch, logs={}): import os lossfile=os.path.join( self.outputDir, 'losses.log') print('\n***callbacks***\nsaving losses to '+lossfile) - self.loss.append(epoch_logs.get('loss')) - self.val_loss.append(epoch_logs.get('val_loss')) + self.loss.append(logs.get('loss')) + self.val_loss.append(logs.get('val_loss')) f = open(lossfile, 'a') - f.write(str(epoch_logs.get('loss'))) + f.write(str(logs.get('loss'))) f.write(" ") - f.write(str(epoch_logs.get('val_loss'))) + f.write(str(logs.get('val_loss'))) f.write("\n") f.close() learnfile=os.path.join( self.outputDir, 'learn.log') @@ -81,8 +81,8 @@ def on_epoch_end(self,epoch, epoch_logs={}): self.full_logs=json.load(infile) normed = {} - for vv in epoch_logs: - normed[vv] = float(epoch_logs[vv]) + for vv in logs: + normed[vv] = float(logs[vv]) self.full_logs.append(normed) with open(lossfile, 'w') as out: @@ -100,22 +100,28 @@ def __init__(self,outputDir,plotLoss=False): self.full_logs=[] self.plotLoss=plotLoss - def on_batch_end(self,batch,batch_logs={}): + def on_batch_end(self,batch,logs={}): + self.loss.append(logs.get('loss')) + self.val_loss.append(logs.get('val_loss')) + + + def on_epoch_end(self,epoch,logs={}): import os blossfile=os.path.join( self.outputDir, 'batch_losses.log') - self.loss.append(batch_logs.get('loss')) - self.val_loss.append(batch_logs.get('val_loss')) f = open(blossfile, 'a') - f.write(str(batch_logs.get('loss'))) - f.write(" ") - f.write(str(batch_logs.get('val_loss'))) - f.write("\n") - f.close() - def on_epoch_end(self,epoch,epoch_logs={}): + for i in range(len(self.loss)): + f.write(str(self.loss[i])) + f.write(" ") + f.write(str(self.val_loss[i])) + f.write("\n") + self.loss=[] + self.val_loss=[] + f.close() + plotBatchLoss(self.outputDir+'/batch_losses.log',self.outputDir+'/batch_losses.pdf',[]) class newline_callbacks_end(Callback): - def on_epoch_end(self,epoch, epoch_logs={}): + def on_epoch_end(self,epoch, logs={}): print('\n***callbacks end***\n') @@ -128,7 +134,7 @@ def __init__(self, every = 50): def on_train_begin(self, logs): self.start = time() - def on_batch_end(self, batch, logs): + def on_batch_end(self, batch, logs={}): if (self.counter != self.every): self.counter+=1 return @@ -160,7 +166,7 @@ class saveCheckPointDeepJet(Callback): def __init__(self,outputDir,model): self.outputDir=outputDir self.djmodel=model - def on_epoch_end(self,epoch, epoch_logs={}): + def on_epoch_end(self,epoch, logs={}): self.djmodel.save(self.outputDir+"/KERAS_check_model_last.h5") @@ -266,8 +272,7 @@ def __init__(self, if use_event>=0: self.td.skim(event=use_event) - def on_train_begin(self, logs=None): - pass + def reset(self): self.call_counter=0 diff --git a/training/training_base.py b/training/training_base.py index 5275598..b46b2b2 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -16,7 +16,7 @@ from DeepJetCore.DJCLayers import * from pdb import set_trace import keras -if float(keras.__version__[2:]) >= 2.2: +if float(keras.__version__[2:5]) >= 2.2: from keras.utils import multi_gpu_model else: def multi_gpu_model(m, ngpus): @@ -491,7 +491,10 @@ def trainModel(self, callbacks=self.callbacks.callbacks, validation_data=self.val_data.generator(), validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, - max_q_size=1,**trainargs) + max_queue_size=1, + #max_q_size=1, + use_multiprocessing=True, #the threading one doe not loke DJC + **trainargs) self.trainedepoches=nepochs self.saveModel("KERAS_model.h5") From 262d5a1c78ded873d7de275d00ea6dbe56ccadd0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 14 Oct 2019 15:43:48 +0000 Subject: [PATCH 112/437] data files --- testing/files/filelist.txt | 10 ++++++++++ testing/files/root_file0.root | Bin 0 -> 536449 bytes testing/files/root_file1.root | Bin 0 -> 536449 bytes testing/files/root_file2.root | Bin 0 -> 536449 bytes testing/files/root_file3.root | Bin 0 -> 536449 bytes testing/files/root_file4.root | Bin 0 -> 536449 bytes testing/files/root_file5.root | Bin 0 -> 536449 bytes testing/files/root_file6.root | Bin 0 -> 536449 bytes testing/files/root_file7.root | Bin 0 -> 536449 bytes testing/files/root_file8.root | Bin 0 -> 536449 bytes testing/files/root_file9.root | Bin 0 -> 536449 bytes 11 files changed, 10 insertions(+) create mode 100644 testing/files/filelist.txt create mode 100644 testing/files/root_file0.root create mode 100644 testing/files/root_file1.root create mode 100644 testing/files/root_file2.root create mode 100644 testing/files/root_file3.root create mode 100644 testing/files/root_file4.root create mode 100644 testing/files/root_file5.root create mode 100644 testing/files/root_file6.root create mode 100644 testing/files/root_file7.root create mode 100644 testing/files/root_file8.root create mode 100644 testing/files/root_file9.root diff --git a/testing/files/filelist.txt b/testing/files/filelist.txt new file mode 100644 index 0000000..efcee7a --- /dev/null +++ b/testing/files/filelist.txt @@ -0,0 +1,10 @@ +root_file0.root +root_file1.root +root_file2.root +root_file3.root +root_file4.root +root_file5.root +root_file6.root +root_file7.root +root_file8.root +root_file9.root diff --git a/testing/files/root_file0.root b/testing/files/root_file0.root new file mode 100644 index 0000000000000000000000000000000000000000..b9e50ceab546badd8a4e7c62d7d2121ad5b8495a GIT binary patch literal 536449 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 {2g(?q>HDTJ1tp(Um|cBo9daU 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 z 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 z⋘_wxA)n+Zr6dgcZ2xtAwmJi*dtS&|7ovUGB94?lT%mHaNtht65s=XF5eV>H{)* z8TYK#$bKSZ6+rxM7frXTh;rrUzI)-^)a?y)+`eXf`c&tE-_N4KJghzE27TQ{(c3usYafT>zgr62)wSXLAuC+zu$)-6pR8Kc;t>1oRva1gDIuH)9{vBRClK3O`1rqnXy3(>ZcLVKkP+Cv-$mbqYv- zFXvG?6wIY^?`71#L}VOohhJAzGC3}C+L<1h5t?_*nf(r`FXuM8Y@GV?j!wK~BBRp= z%Q|GCPmEZ9oV}A0H1_T<2DuoEd34aVbVahuc%umg(x7f{RQbb6vX~*?*loYv5bb|2 zseVi_oY>7$u8clx^E)I%g+_aW!yq=>!a2<%ilG3KeyabI9xAI=3y`AVyU3|GO}#P)Wm+k!+`Ry!(IW>p}y`dr-TLHZstkheSQ zKe0#0Juu*W*D~;=RY|pG^VNy;Hwp74HD~u2^S2*KQY6KlsRC$@onEJYPjY{yi?ffct>hc7^wW{yUY!ogP&eupUdgqpDvWLqCSC{2( zhp|eCZ)mk_=s%XLE8F6&A*sK=o zC$7-Q(Qu8JN&F*+>BY^E-57y1J$hh{lbm_FD&<5-q6a9ld|K0ONeHzZrE;KA%hUZ?$cK_KQz`Augl|sV3>>KN z6&G7T2ef-lqa}?FtdO7gWT*kr4I+ zCezCL*W9Ycfx_=|ah&)wE$%|@wz9Q+d1;LX0b;q69;OSOGxr*h#1`d6W#Gb&t*y#B z^ON;VpS$wK>3$7MqJ`Sj;3sBKB-T3$g2ld}EGl79Bs1OR6FWlJMMim9=cjt3L}O8( z;Qmy2b+1+MRJu;|{&O(+wr+ld zxHg$7J68C_*#ldxmF8o3DV$7vg6k0FUUFae{UdjKALaS|88Bh8XYZ&Qj1OINXt_kd z?Jx4ZGY)@m9{qF9<)W;%o}H%8A51MFjk>ZJh0h-#*!?F95dYLt-DA6PvOyDN>poyc zK^9X);gtE^S6r8VP1wBAtw7T5&CH|jEb+3uw9_$H;~zkq_eM51XM*{DY;#9o6@Mmt zofk!=Hiutce?h1%IdYBGIk^2A|LfC}%lmblylmTTOkSx)bkJ`-ht5era(o)mG+0t{ zWr)dm&9(#dFe4*%sV zx5{Msk~{)AjWh8H^tZRC=VOF^d8NKHld?H2PRfbIUf-!o;0BC-CY!_bls>Q;=Oy~9 z0)yODW6*4sXny=$nSM6azg!KKdyEZs%Wt6psmxxqDNFZTpZts*eD2~~(p|8~vn+`_ z9yTbAAV6*VM!Q3;_*-m`I6O_~(qi*=Ot;-SF+46$lpKTc1$Tt?dcqd1q*fe9G6)J> znnE|sGs}rWNq{!ULM9|DH$bJdjUdwRu+ib%9Rmll8Yr-SwTbL`RO=qN6xuC1M%DD# zgx7Av>%>wr)+52!Q8J7Kf`^y}zUI3t)MXvW4^0 zLi2&d+)E-RBiYz-l>%r| zZdhoX`mD-o&Wn5sInGyv)GmtHz3f$}B6`79Qo#a;I(~Ldh3n9rwk0K##A)Nbrk)n^ zNGmq$J^CW5;5zOgNQDzxlFC{@S2yyhB&U2Z@g=gqB=}Gp_ziTMHE3KuWzHWjQ%G4g zp(a2nHO-O2LKd*dxs z?r@her7#6#C+mOEk53C}0>y{4jM zr!$Dq)@PW&QXM`1JR^YIX^X~7h>wOCSM-bV9ba(rJs1XPQ^~?Q@pNMY`6j%&s2Y_o z9u^y{8{O5_CNZF0Dn7*0ZsC2e8gbVOI*cm(6RnKo|HL$G-V>E!*cByzp;t}3R5iu+4p=hBx$eJ?|frs z$nu!Jc_};hUDfghe1-=)Vt3t8QuDAEBt?Yn@Uz2@T#+*uQ{|KXN%c(O-116F-!IGW zf$-3UB-uG+bMp@QvUpWynS4)P5SRKy;hw}hQr&&0ePjJZvIB3AeP=)?6vKvbS7KAeyp zL#?z`PY?@h?1R2vaPH+~B<)SeAK`qM?p~PcDrV~r=Kx??lV>+MDLl{sJwOjg7|?Td zwdpV|P&+UCtJsm=cg`({fU9}K4eE@dOjKYKQsTTxVI zlJA1Tr|CQ7Jv!>%Z!}H4+dE7VK7`6Y68y>bAISL{N8d}TmG~C^Wph&lp;xw;EDdnS z=1c~S_HfU+UUINz^XGa^PM_^G6tJ$#(sQBoUL4_3X7DRcA4j*1OW6K|kReEnigvjK zp|ugHMbIP+GS_*{C=0{aGxqN721wDED7@o({T&ZA)@PaZ8YS&bZ7=7Djm`^LfUwC1ea@q41CDdSNlpK+=Zr&8t~%xI7Gn}?xz zABuDe)L9+@F-ZWL)K^U#;H?};$nD@1u~t$j$`}T{M=-O7!+f(G(^x)Y?NUJ(Y1IMl z`iyOGemq@v7UkCN$^zu~WL_p}z`vR272tjrCeUts4!!26`WO3GyAixsH_ zPbRK3PE|Izm%|Cx^{pr;1z>jX0sA8H`sCW}Oyb^x%Mp#(lUy|W08Nv=x(GuPtEmWU zpDZ=-w2ni4T3+^ul2(X}|M7_z|XK|IZv{-WKmiw#~6ue$yRdW|qokr+9_ zG6FYxMe<4cg4*S$6!b7*|H#&Lo>Ahc_Vm|E}6%&+jycycqEJaNyQN}v@Aq`B^er3eoDo;0pm1WE-}$x40T+h9q6 zcKbM+WjV>}2xA~wL z{>g;oSdbu$FM#jM=v1MXmK-WEP^Ak?axIvCabzOjJg zPG_Ga*bEBah=P;$eXWf`k7HLjf>Xu#;N!`qIk)4-UvLB9#4&<}QE^~3xA`@7gDup@ zB1hb^D#pe1_L+~fmznq9iIUl9sm%7}2Eb|+&Hv=!r zsM~ds#&qwJ5%lL)4!;_H+4s3rSzA{zB|I9>tn~cWTmU$&8br2d`>Vr%OJzmxMgdkZ z`Y&WI^M1N}(vlmKPfj1SJcPsnd&_d`$^j^0gFS5K%eZ{78|gNC&j>v0FBk<R&TMsqx-NEnH4oX<&ppi2d=CBeKGZ3YKqd zBFvjVKo>R-1=dW9GXPvmM&-R8(bLT$#Xkj+_~UX^*K=iBudjfoDdhokFQ~QG8o?P= zH+MzmWA?~8;-Nop{mBaM3%Oi6wwf%nC{E0X|L8pJmMrqO)F(Q4x-$t!`Z<5N^S8K3t~ zJdyPX>s1#KRiy9%qNISsutq5#@?dVJxJ38zRzotn+FZ7*4u&GYL&D~O=IaZkNJD|4 zz%yq$K!rRaSiE5}<`eC>&^UR>*b9Ec{CNyzB_q7tXc_DXo<#1leq7}RByy&yP|TYK zg!rJ?9FEM5PmHb|zS0};e%=cYNb(mu7u6P-WG}7acDih96a2<3-855wrPnikHXi?k z(j(owRIOGXxY9agbw5jbWbqi#3I_xX9*g`T>wF3|N%nyeZBB$3;Y1p<*gK4GP-)V& z26-vL@$+Cfr`%@I&l+kF+(My|`mlccp$8z~fUm@SUxG!ck{vbC+eiC~)W)1Cf3^Dshb?6#V7o%KAw#gn)SfwELan)QwN*nFwiUt;nudGaBLs|^cZJd%okWPZJQ#Xi4^t1Xbb^}Z#6 zSFWUFM>mV=YTH^5S&5Mul3New*X|XtIBxp&)=3q3m*pZP4Cf;tnbZT(ns;Q0Rn3@Z zsl@U+_Ox}y?s&#*(^8w;mhnF@8Dld(20(1sMj>|Fr13O-wga~iL6`zh#Z;Can>OC# zXqvf34JeE&@>rwN41UAZ2F`bw3pW>^+97|T*e)NCTM_d!dUSL_maU5WUNv}4GPzar zWHMsSsGg4~E*Tck&;^83MhjI>I8ntdzk7@OC42kf*05`HK@zRt*qvWT#h-nGxa_X= zPUSMAXKw=eiyivzt``TBtm|`kF1J>*RA-<8fkiI?oj#;JJ@I*!^n@gXd>#Z?Zf)(;nLN2c7+P}<>f-o1E(m8%Mz$&EfkWmQ!5 zaoWVUarP7JseV;#WCQlk*ZkE0M}Dd}&&o zY-oJIrVa0nn~3neTL11qeBhG@RohE9CXrt7#=^&E7T_gCxPJ9cZf^1vZ-!+nnk^N1 z_*S-Qwx!YkDz_6=XYrm+mzpd`p`k9l*s3`O`tV3k@Trca&^ME&l@!x(i}mm=l7Z>-3FN=%a>Hf=-=OtzQxdaR2I;{1H&%fB<&_J)Nta{Ps86PgI8QzmF;x+E*;YJMf3&=xLx#(&DqmO!*DQU%DE;~$LOJgXa+fS|o)Nkl9ydPS zWK0>Tr^3ez=^0xs&OXW8lGC;I${HXxt;r;GeY;_Q+1mh?PGDGoR63*|S;G;`pxf{f zZ>v21Qc-n#Q&k09Jp0-9Z+hQ*exMmhE8aY88+FV$UH+ z^g8R=2rD3~t#i+>rWBUYU&Ca zWE;j!m(E-SO;>^8B*ih024l$@F(ykQ%Tc`|_EjMoZH>_~s=Yvl111gkneSxiAwHjW z#PO;XbUQ{e7u6komNU2GfX{{A$%fW8x=~B6ZF+ojm`ckMdvG@Jrdh_uToiowaJO|6 zyC#Z89B&bPe&S%QXYOAM+Adj^j8&E!>S!hlb{g+Y3l19uaiON*?~;xB;PcpWbfmlg zzyY9QN*S(r6WOv1OzisQX+0#V&ve;k{RF}Ra?-+INUBk8NiP8}C-zjo5dw>lf9O5t zi4@^cDaeY14GyQk>`?eEUkX!d-D#oAl0yVJ5|9))K(P(EN?sXA$*0+Lz!Ph`cb^bc zOxCg^=$W@aRR?&?MOK$*yo1h*Mdifq*Y$EDw9;iO=*7ze^27;SN_laOS;(Ba)bZo^ zAu=?M{SPz1#rsdCKf&;_RD;Y>?H~_22)!KEl>U}&Z~g$>yU5Z!D?RBu!Sua__?!#N z)|o@LGxh&-;{TcOCj0+ZcpLcN!W;Bo2yZML;FNVrazWigUbO$RfET@1;bgGA-~GQ8 z-rhPzhb3|eGa44APT&n7cCGJ{Y@ZrxEwJ3s*SA3rja?{*AYq3Tz~czWGyDjZ@2Kc-x!sZT+Bg8x_H z4fpTDoBID0-m*erz2O1P_mE*-@fU9&QfUv-#Q1_ojXt|7~JPs&=4p#_2W#SDx((c1;E?n5QECLOy>V8g(Ia-gz_d7i7mHt z4z`&OcMr`wma=2dfjmxU;5{74_Pi6Ch>8pUebP?R;(N*nJZz3kS?Qsc7n?Q&LCX-r zS{RrcccQV_zqDF9V=9M$uTq~bTc!_?NOdef+Y_0nQm(j>(!_ifinAAqTDZ!h%9)|Y zz*L)WY39d617)D5WN+j&vNdY|9KyBo5~<^Xzg-gYp8{2k=ewXN5Zomq3px0jf45y_|X_+5bS)WNiBu33#4&wJ1aBI3x*Vv#bMJgy%Hs z+bPZRNuccr$HQy2lMFOVR(l$=P0S%GkAHnakH-V#O<23hvhyD3s~(N7W*8YRtlN!Ou-M$rEw zg$bZ&Jos{!qqo*9@FUv86QoO*2PCyT5H7v+BbhO4K~g>+G;;I?`QD|NtU#ev)wVP# zcm$7h>kOMH5aXc=LBai*oaHWWAYta~W(`_poYQ8f$8SXSM0jY3%h`2I-B=~h$tUj+ z963rDuE~Er_j>nhSh}lp|AIL38~Rzkg7 z{L<{ll1m}u)W@1A&p-zAnCA?RA0g68T=b=qikiL8KKD{C<6mScO6?*;jn`l06n@n# z%V~TK^c#I1fS&Ci`&qf5%BV6qX?_b1FJpyH)nZ@Q?pztAftIruwCX8@f=2pib5*n% z+PuEgEH58@Q6aoG9RdzYFQ~z@nPo$`^`Qv01fvZ2T2tbf3>JOfoy|G>-D3PVM!(DT z{g>O1Y%qzVIJ?){1E52qK@Pr8JN_1^L8`wFg_i66H~8e^*e7!MjhhFZhf;@yQQyS4 zUWH%-0q@gy<&u2dV(bB7k)Vfq^5X61Yxkz)6eJ{cTy2cOKt#vb1&E1XN^(iDib=Sb z#eQ)pL}{e5&4H2f7U0dGDCDO>>)^q?^D9!6jCR!762vr*cbjXSvg zk3s9^I#j;0a^qp)c~0z}Z_FF4DoQoH_!ehdkA4PccCjp*^KR$&5TGOK^E@V>)Cen$ zdX79@l4q-8V8@LqbrJ+Qaxee*9>cKy6vQ4*?CF&h0_JwN?;?OR{Nbo9XXOklK$poL z>iuiz%+Si@d}sKMu*&bMxpn4ENJK~swPG5#1b6~?{z!kKMlMAHCimyw{Swd3`TmKd zh1S+Xf;zy)X4!_XSbogXw@50h63-~&Er4Jp(mnl5yJKtS5wwZ`9Ii0$K7ZY$si{6f z1DESKpd}tl?x5zsVqfZ#P|=NL>q7>Ueuca+Q4gc1z=DBUUu}M&H~PcP3(Nj{$N-vV z*U-%)WM7f*M{F+sk$G~?{e24_>eII1Q^oBlwTN8+3QyJf3Bs$1ivF$AdvVg&@gJa1 zH_7qT>3E}z0|1nw*$VJLI48XgBF}DFyLFzQ#X!!VbX_6(tP3aE&{Yy-c3&ZQ z-V25%th%xm)Tl9Klv}%nPWIcmqEGRG5!0=WuW}2@&9u~+c@Z*Oo>SCmbZ_FNmP;Ya zvJbcH?&RMCaRMezB7uC{|Kq!tZ_a>uP5&PRxS##2Yceh4KhJCb_pZs${!M`6Yj;+~ zss8xVJDM;){jUa^5C3)Uu{&))<$UoOb@IainAx^HX4@#ozi^Rjo2IdjfbNJ5<4u0V zLc_ejlP?Wk6IFT)sYB;?fIyBa6tvG7eiE(3#eW*TuxBeV;V@S_gLWc%ePI2FWla{E zNgjNh6$(E4ClRZ^?zC;*&?HlLdzMSW?_L~nPD^KqdUwX63Cdg7Vj4!GWWZOChEtkl2 zXs(j8IE%=-x6E^o5rWom$TOm5E&jpYEvwYe)I;#mq=sr%1O~%Kdipgob>E>s-AdQ3 zj9~8!RJ%|4Oa|vj$x!kY4JUSNarui{vD_1mtg7=YZzd*0(Wkl3Dk`u)N02i`{kCt8 zc?Qg7&m+m_2CcP{7+pI5zET5TU@pOE*6=@;;XQ?W5_;|jOqCqyHQ0QFZQVVfLSM)d zxyQqs0hFn)*4Dl6$yPkncZ9xKTYCAX(OAKm=S*&xMSl}H5lJSYB{LlB`O7V+HN*x11+8aSvT5E zn@8&wJB#191uEI-*AFQqzovS9iTWJN2V3B`v~LmSHPuWB_D955=kr??oepV5veYTB zUARDgqJLdivQmu)aHUS)4K?T4tV;VP^!%mzulw<=3EqHQ-m6}}w2|Lj-&^-$IIgGI z*BVb={$~F7?Q)oEjC*>Qy3!fWg$lwWwQcY;632qGiV+AVefJVGv&T2(ABae{yMi{?((d%(RNfhgbnK!KF8xiO8T@BpOIctb98ob@{?-eQT`RaWv_4?UQm>7`b_Su|Y&u#DfRqN*ZCJ^CR2%=AT<7L*ok#v2jEzI4&H>{3zCu9yao> z48VbUb$vKna+N~HG&3Kr@LDt0wz_qZ&~cer-DD0u@68L;ZuU(ZN}=o);?+d$Ft5>F z7_@xLmv;4MMGzSjGe73p@8_9@#7jM%rRsp;FR&o>Dzj&zsj++U_wH5ti#)n^$hi0g zl$X#=ur%?N>JK4-gA7YS1AWM--brp>p4G7xAA81M_EB0J(2IHXEMLWy zE<~YpI#r4gaZBS~85b!`}lkYp!;XYMhK)oY5ZHC`frAy-DxqpX7F-pB( z0YsL*CA#PwQhQ9%F8<^CT3}ih$M$l?{ni0tg~Mw3!CV32P8F8>iv(>R+iLVImj(Zp z%FV8SDceJz++u4ar=T8~xza``HGUW^I7L00e+|>HhB3P&p1nxdN;$)&54Pr*Q0Tex zz)oI9CB#%{&$2(N5opnKRUG{mKU$L6M);7mv36g$>1^J0Xz27uaQZrCW3OOr*sPtr zxwl)U?uYxww@#e1KDDd+(RT4>aPx;Rwx!>$IH#M;Jrb_Zz39(3{EoGOR>Ph%pkE|E z`ciy^=McIZyGi`Ugpy;DWWMETkT&a@$BIGoLz}Sl1_#CK?$4WBm&S?l1-u%~#}kfs%Kym-QbtqHC0_K`pGUJu&0b zZZ(CQHQ@Mz6o>X76`NOq4A_fCw>&M!}*?vrg@2XJod z_}o_qA4PDwOeyA45+c`vuE&Hk_4}fwrF!6(=NvP7PY#{GJsEzzzHIPh`&Y7bjkeP2 zE`~TD<~YsiS}T7(Rj~ItBU66f)3=?72wZd#evidmCWk|6zI|(>hIEtVU^xVJ(51Fr zarXWm_;~w>yN8P3*qhYN+GyfG77muAOVz4s?M;a=D9J{@I%`9>_^Avgk=^8O6%TF1 zazCvW{;DG>9C!1Q)0BNv;95XLLuetRwC)8FI;w0e>r<6c^A0gt%oa}yyL*xL1jkRz z!@SE&dobrzjhjO38=2k+(Bb|f-O4i98$oxcWA{AQ$Mub%gkD6l2hSRN)JuggEovd+@Q^8tuqc2GpPY_4J&Zqv(7XKtql3Bp9PWO6LYHbN7 z7mo<3hf8kDi`v2M0%wQ|&VA+X#z)R116XLg?=)bBgw)h029 zjMc?8uEUx7z;fiacFk%fqvaV43c)h?I7cUk$Nr#xqE|fem&#T%%FKxBXNR@3N_Hyf z?LLu4+)}&v>HF&6@WX#PIN_d4P_5+d*tb&fjdB`MM?vyUViU45vR0)vq#2#d(4H3j zp2E6;7_0<>2IFTb+oK7zWJ@pRCtw2MhMr^o0bbd!)|HS4M97BICfyqC)1iBMl0#9p zDvo+#kLg2}r+f%6pqo2cE6bf8o-_?u8(?|=c%KUOTeqJb>hchXKEg*3wR$EwG4yUY zw5_cvoFmiG5q(b*v)+3$eLmSbj?%;9bFW~;?wQt!C94gPB@0D|Z1P)qzgpz>OeDoE zE^qH2iy+5!L1M#a*xi6L3RoUk88XL>@@;nqx&V0hE1$5LZ4>;DCtN-g6sMYk1FQEq z^X_HJ^BM1exx6Jik4AW8v~DJL4_W7+tAdB=I)^^btu=V-DCWcI-C|63JobegUE@Jy z_b!{2x&Y;q_iZneOop%+4WrYox^*@=<5c-F79FV5Lo9KOfu zVd#l24oT##MS0pb1C80Oi( z`TdHU*}+KPt3ur6i64#80Z&r&4Vb~aRtyWK^;))#IPcd+l+wO4-&W}aIn7xSOWz`h zZ7F}7k{xgV0q|}IKP;1J8v>8BZ2V{)Jb1d=eSXKR@h1rzx9~+aR;UXpT(E^|7B5s6 zrxiCkHPWrF@?7WD@sTVBx6LMShib53x3HxLGo~GSQ?)gDV+FX>)~1bTZAU%E9-M&L zW`^l7M0JF3_iouXZ(#EIWZuK?F8=cOr(dlHpVo;R9RS+G$1?-Qg^})$>Jw#9w zAyA(;8Qqmp>F z*S=HTuZ+rw6gERgf)$=!+td3bptpPY7cF{1-4JTz^=etL?s%Ta({Fw~TObK8OO?PP zl7wB2OOe3wA8-cEXaOlTmLO%0)oy>Y9fCj6Mwo!}sd(M@tL^Rl7TI?Z&)n(KI}!L# zS3ZIEOpK51+EV~;J*%N5*rov`8{VMgCJ%1iz&xhKFL z4@s+Y{yI3fOCD!RNpkEC2fE_@Q|~s5OB8-V-+Zy)NP-Jv)~hJAzsPz?B) zTGH06muno#$$B1r>|v1)(ADYlt;OEN?M=QKW?WcL7(df!xu>+0s!$bZ_8CmKtZ*DZ z)~~L2^mS{o!KA6MU={lRndD`{nkaZrrwm)69$!A>+~mpHTr3SbLgnytJ6bP z3TzAW8PC+zeADgTFekScuYd(13P?A1kN(=oHhIQbTgtV%H;$ts5-B}!qrswQ^;*i_ z-|_6L<|fEr!m6ln8s9B9ONrOSse#k!w7my246fLTtGgZz6(+?;NMfjc)X-GT)_XkT zkMo-kh=UT|Yb@7$y=D;8;)!i}0XN8~!Luh+KbKG;pUg(WKYv$>E+rft98%2t1Xa-R z(-F~Ay^Uf15uchPW_3#DR!?!Q>&DX5c2uA2Ii~4Tkzxt9sMs5a1wDJQ8!no2e`~S#IRwqVDzbCNF>)x z5pF(IyGEu61Tq8t9gHro^$p=w3V`$`#T~_yeThvm(;l2iA=kXelPz`^eGiLaZ_&nM z{+HMcYA2|3xHiqKhlhxUNi!DX@WF4OyK=;H2uW6EFiJIJYA4qrS)45dprC@jKx8$% z)M(~122g#$^LNMP{XkJE+dPe`87?)Ak#7(zu6%eAN4E%2ayy?hwlVJRSIX~mSp-CT#mEq% zUy)Dspw=n%1Z`Fs&Dh}^7_jlbcq|c}W!0X&8RcCv)xROL%;eeJFL-fLkWGfv%}$2K zZnUcU6$H*l*m_THBTmjJtoz&^GuAW>W;ONpU)!ge!Rk1vem(5VNb)!b;^hn0>Wo7F zW!Vd>9RjY&#E&+9qPTDS@j{7mas5`Vax1-1Z95(CuHVWOJdBEa=FaE#i6%_AY@y-t zd!5w1k?SZv{IUw0$Bjo-Rx3Coc%@?~>~x{VsUj#MsprXo=)%?9+X4|7*MOyWtvq2P zi+ViJdbx4YW*y-?&%pfiCVgB0jUCQjom$VmQE(>smm6tHXSXRb@zb%(QW3_!v2usm^zqpf`d6>XSUpoD8}CbhjPZIdRj zLwWs0vpP;N4hDOpxMr30u+?}dx#U!*a&k;Z=>`rKf(^~Di?c3#8wp3s+pAhDf#a3^ zct%KS72eravgIa_Ka=uo8cGj=1DBIIo$pB&@nd#|`7?|JK9rs1agr_2ZP@wtjn@KA z@?M!91aR>Nl&*zQ&aJ4k`CgQGZ5lCbhOQP}NO^XJXd3oJqQCQu4vCvJG9M;&T#m-L zI!%P^Eeubc#9ez0@fq_$_vFcf54vT{v6){)??sCTWATqp1izXA0i71rVe@T#@3GkU zcC0S_ot|`xxg2{vBNz|uqEZ>LX^)gebz@Cpe02Q6{3ajI?OT^wrd;oLakrdJ+Q$l( z@tz!b%!yN#mOCDvjKf^|3jQ2?DJf6P3`N>-?`!``BpSx893CerJ9pA7DyjSe16&ni zCI1Y&-1hme4DzkV^cQPnJhwv1S^_WU=Hr&=7V{ZVzNaFYSW%sETfsT{di96t^i*zd zueXUElaWU-nl_l92OE;7+~LX~qvdcG_5@$D(Kj#V1W=ms9pP2{>a{3yS(YcUWqe_Z zWl|r*@^dF`7X<~`(c7k5mONS8Yq>)Hv|+i9v0CA6_miHk;G%^`Ic%%nLea;jUB}&x z0boJ9QU4K^CI@Gt%-vE|@7Pt4iR}UPxeIg7qrDJGAg5R*`Q(89y@Fg|#uW&Q&2?`o zDu^cI12Vv%^fgAQ%IfX!>10FvZ_RKf(clY3CCFbK3@_CDSclJGHr6|cJQ$x#tD52> zyz(9d`?{+{r#w(^l(uD2-;KzQD)2Ag{8k2H+31TNbJKb&|6?~g_%+}5gXT=p4vaG> zil){YcH5gt)kbeZCQ-V12AeeyRGA0f?^Q>S|C&`hi_`tZ)CdtGnPt{k&&b;ciaof` zkA4>zZcMhkh>iaMI!<_=)7P>xt6rP`Hqx!km9;Z1M`G3||7r{AB-&01=FhM;T(!bo z6WRh0uej|116$LPI?pGm=!rZqutn1ojK5XNZpFvLTkGrv=g%1MN?irrGrp>HWCq7` zb$`WRd`_2HA7&FS!|Hr|xo3_yIW%;DLbDCK9vamV`W%3T<`{h!SdK|ULu$B6*Np2Z zl@lx~r>PD5Dyxy#43+nHXOvn(+3FjWTZGcGM^cdxS&CU*7N zHd^*mYmWb&dV;ydGpDm`Mm#=*zYBYg5|EbDHqGP?&m~PdiM#ikzvNu@Z4Z&KBS)WP z+Bg>Fv9hG~-yb0&;JZ#o$jj(E5qw-;Zf&=_7gR3a2tZH-${{l0vTcLacR-!nhtHuY zGI7p3S>z%AlCZ{SDO0&O?LP}N8%FpdD)<(=Er_n(mR+Jk2%Ck+7YO}hqpPx`f?rar z(LYa-13OI4y0>4UQiuHT?O9->_srFus@JbQ2A})YxZucEUEta5ec&XAyxk)!c#Uzt z0)rjWd25aB>88mL#1^193MT8MYWGIdf`dhC*XRrhQ1%`hm56WjI%`&MyjtM@a%I2W zJUhhE=>!%)LWIo+<(AG^+eVLlu{&HN$>CP>L`o5Sv)A#8NCbN>24q_rqHirhmmu7A zS4`lnnA?pUi^=)3!bXT*qPodo3cPq(WwCkls57r@LwaUYc!r z5x4;C*)H0dW>x<6{dU$zWrT@|71W2i=00Q%L$aHkPI%0`-+qECKzW@%7su~qJG6CI zj;7A;YKdF$UB*uh*LUhbwg6Sk%NZ?M2_2r(7|RS)V>uRCZ2U-oeWhDtW(% zv6SzRI41243sf>6qneDcpAmR6N-BIQH zqPfj3e26pf6n9Q zzTunoS-!opfm%Q~_h5cf^fxg=d)k0?`r%5Gd1TaH5XaNEi+bo|8$F3+PVV-!i+zQV zA=yGlCS8t&xoMWdVli_IFY{(*8$)cz^+35ULRIg&&eE4QkP+;+z;t_pWU%%$4kQyP zFvP+9-g+bvD;*~dht^pOH|MwBKNg~xHNDk!Xj70aV+d1YVC$&ci=TjB>0rA zrwz1-Vh!$rMG3!0XQbVP&ohR888@~juiIlY%^2i`AJ!5!Sjr(wea?1J|GpTUGq2d8 ziCUJZ1WWgx&}I|L?{$QJNCZ=Os2iB6BsVc>u&!us#qTISAhy|mt8cdm5dl6QdRHFD zQUuY`0$PCaxdvR8TSz3lL7KN^C#`u$*#t5gvVzP~4{{Dxh&qB(nrO2rNd%V>or>_z zmVb_J1XJ16e=tb?o8b1|z5hIw{kI0mPyfvz3ADC9{{6}S`O-VIktz4;pVC&|-Sg8g zjJ>oQ{{V-+{--(HcF3i}+H7LwBYiJiMh7C=WpfMNZqF2q7^@eTejiJmh)nP})C~Z( zz6+{*mGo)ZBO!axd#0GxVx>X0E_I*C<1U_h zWSjFVvBN#h)P1sZL159UwM20T>x-Vw`vGso6;X%e0y(~egvuFncO)Ui%vL*At)lAtDz4cD68LaT3C&Mv{zl>#il%HCEh5N$aq=nbNdgxkh z?8Y~${^m@zyTs!A3=UaGHXv+`zgxn$j9Md!Jy0G?B00v5lh(n-HxUzB$ACKCk@x>) z$hTRVmkTRswz+_{N8b}+Un~3OZ<6~~{01*>j6ROOuIS*Qe|HEjx<8bZ$uJNfSf@Ow z;zX1U-5Xv4>(^QGo+vBMJ6F2e=jQhAiaeJ0Q06={hH)d4h7ZPMxJ-Wb=bp{D}Gb3ZXQu zG*QaPwz(-)_=F@X7J_R8F|^BVs3f~%<7EcUw8z4>j-bBtN3p6Q^0`3Wp0y_C9J$Y3 zWMgQjbuj%bAIPj*&@0gtiPCkj{@LPa$I-lBX+2f|Y-o3x+0VDvHEL|oY9D7xKC)R? zFL^BE5w*XDo*Yx0!`$ajq2ZkCh^(v8MsKvO$w4(sy9DXgC+VJOJ7n0oo_EJ2WO2r9mU6ZBm7|ikoM|yknJZy>D z?&2^T#mDkKa>{#gY%5AmYlhz~$hh9=>F$)#xt>Fw+vL- z^x~<~b~m^cVbF?&KMy@`H1Cb-kuYYL$!yl@+Il`-e$0oX7o{8Za+49A+Slt}yHR>w z#~Q9o!7J?nIhoF0YDoSu=v@KVRMO1oO2BWRQ)u&hh%Y%6K6&PbIv zUCLXPJiI34eRZhN83gP?Wi%$#(vo%%u!4k;JV}uPVho6>gpilV5RwqWlaPcYgeNci z*EwtdvG%pj+GqcJuI+WnpIiiz-}C!^@B9ATUkMbQOLwODy|X6j8hu@qoP9=?N+s$; zt$tJj&t(gb3dRI8>MAiS$e~0&6+DPxp!cMVD$@E_>a#2+L}v9M_WZc1827qW6w}&v zj71u)a(498em5vEtF>VNm^!=4(c$Ye%Zm4kD`IgvHCCz@CC2sGh6q!Gw-tY5tYfcl z*fnNjBKLzb8>4Q`kdWNqIiNYse!IJID*R0sk4qp0`GZpmR_&ah8tvx(&r58U|0S{g z|5##k{eO_yI45T9eRxeF6!xG~KIzDWe*v~Ro%|*jSDL&)igV`6Qsw&@?<(Q0v?8Wg z)z{t>IMp4tjve9tO0FPepJ|FpggWEaR)eu2IB@}xWAAaaC3dIJr+P^W`rIlJM;bH+ z9$w9jg6+-GINvnEcz<6iS?@vWAAgSm(tKbwMmu`vcd1iZ(6sY?=aRmZ`K!SMhj6_BtOP9zd=C=2Eo|j)1TqCPAMzr)odC^1n)nT zeJgS-xj{XwHgK_zN8K$oWAAl`Kj3PrTJ{}gv2KaXdUO^DBxqqDc1o@LrWZc=jkk$C z=B$WPXk-VP3uP{9G;G&aClO@d?Ci{dHDD#XjSFcBS<4p-T{Zh!(Lx1v;ZV_;zyhAw zl2bj$Z0Kya_3Vdof{;LVc+d!&iPfHshRt1Q>QCBB=;yZVa|eq<#7ymqQjke@OwcK{ zu+sBv{T{ik&M zKdW*9IN3*i8JXXRiRG;@y_62^r~0q`u}tAyc*5_TziBBqenh7Cd>)exruV&?(*-P= zhV@Pm{lW3CmD~(!@=Z(q@IZjCU?hc`1U=qQN&8yB#P)Kv>~KN1z!_J%t~+uuGCZI$ z{F$sy!g-7P$+V&*=gLi=DaF@KfSP4n`o1z(d#7klP8QfIaz%Q3Ph}jE0KG+jd_XLv zazKFaY#=jLB;vr{X}{`tZ47IDWFBp$MUI_W7ZrPIq_&xr)xxIXfC?WGsSSoMnU3oj zrY%;ti26CMYcF?xF6MpiQ#0qH{e755=)A91cqdcUMXZY>GaE#i(zmze;+r0)D#@ z@~p1lr;y-$mO7c`kVbzizH4-?FT1Y5997Be?TzC>Zm9Qz^_v!2i zk);a~8}r%Tp;AhAhg6a7iSH5&%dn=Ju`8G)TTyp~9~HfxLaM(jhig)~gHAQ^pwNki zH)isO!@62#ivku4;yw1lZ2C6P{oSdkPs~Hm?s5NR9UuCj%&hAdle4NN=+EiW@vb53 zXrtmc%x!^!S*TV^sWqD``=lE~a&EwS;Vi}!L2|M-Lnh_@QBg;34e@gr4U}J{?Fkfg zDSEMr*3_gJvjQDGGc|qGE66Nht&P2R{vw<+V~bCB$U)E2n($H&QD6LUASDZoaE8~_ zj}UTQ;*a&Ce6vHiQVL+WqL+>hrVDFAt?c)46ht|>aX?>mja;CE%w7g z1LF)t@xtCu9h8)>BzOAx$;GVPL&-^3JDpB>2R#fOVm#X3IcqRC_4#sf&iE9Vo?U>L z_Nlau3FY)7?0e0|Kf^BHfb+&56#;c?he}|-o%D?0og5f0oXg032=3Kro@9q;(mVD%q)Ghx>bvv zFdC#g(ni$6a^|j*MV8tvPGg!?QrBx8K>bDViWL<>E)AZm@pn*MAJ=T?_QnKj%wP1& zqkr?>@oy)jO{&ze%{cN}6!W8bQ|4PQsV0Q$I`5*D@ZrBIE_m#ajAi zOShB}D4Z=%qG!YtZZa3oiN*z5*qMqr4cS>nl(YGY!sidRj{eDqwr#EHaza)iHRK-nYb5{t`7K zMT8$uUrYCl8w@~+Ru{HAx2LD{M_Rl)mlH10T+d4u$BJWP=rPF$E~d8)sHI7kDa!bf zTe+mWMg0*Ir$JIWs+rmztfMaL9ue4Ofw^_Cg6537chI_=sySH44?I-1azcpl`r&qEJA&fec z{ixX4Ixv4Xu!0%GzRHv7`Xa;C{usq~%)r+A#9V9A5?KA*N?Ou4hW`S|7mbES*5dgA zu%Irt?TsooFJE1*sQUaE)N?}zsUL%4O5`)e`cmB~KBs9I%USjEx>o&PX20t#f)ZWo zy)OlsuC|X2;#qPs{66(!-AC|EkJ;jyQS2AD87*~VA8WF2&oN4rtzCe%fiPDc_$`yu za+$e#j!}@otk9@t&Bh{tj1s$0dDbv5Amzg&hC%4235}1lsds-EH4a?4oqW^L^Gm6C zdvR`RTiH`O1MHwk)O#T(>;%cOMT58>HacbDy$1MnKZEq6_=8d}Hb3r4?z$uCs>1sF zr#*8m&*5E|`L45W| zP;#6P{0*zx(YIu>k+GTQ`?sw8J5YPTt$Oh%KdNH`g|vkRBYHDqt4EYXTc95h@89~O zz3i${09|Zg04BmeK*;MEA@!r*O^wY7X@|C6JekB{%>!kiQQ(CvL;S6%fFViMAJQsw ziexZ@xNLa0xqJ3UTa&Ia<@Oz3e-6(r<#%sYu?@=onztyQ$3J7vMo!Mo3?C`VgNJHV zi}V{Q&vqv-#gsL5X*bVBL#!T+E_^bjk6AnD`c_jkq*NIO*a38|);%<>mge!8jmNo2 zjkHt2q>p9?x2N|X+On=UW^g*#cIG99ZCIm&Z=&_y?^OYz zp)zV079~s9^cmFbcd?Q!RHv`^#?wUvOFFzO>6EuE_oMd2OHBibUHu&I<5N@5&)a%M ziOGa=5xo0k>7FqDZW&EIqcwE4HHP+K$tnHB=qq`0seY1K>RK<-m)9MXtMb&1jTZjY zku&b!j^nc7K{9H<2xLx~ts;J@pCAvm)-bnmJV2hKhtbXSAo{!!fqnuZ#nDAnQpykB z>%2t=?0K&HMDac@=dE?O#)Px`JAB6LJ<#aLOi@3n6xutt%XRdXcDpLCj2EiLfMwR7L zkp|Z@i<=!!F+cyL^9|Ynov6YpH30K3OBpS83lU6Y~DCq7hhEvuTp zvAmdZv9J|<@Ku-|n6nB0`Yx%QN!t^h)STBClM^XKlmx(q>xzwaCznmE_O(%09~?>k zEamnmT@Hj7d?RF$w!1u+ic+pIq>NWxFRJ*ilj#TOjN@H*4(p%)zS5s?C<1<8#mRT` zdkC{HI%Z~dx+1+aUk+U#@8sWw9GktxG3}RNO;K*lk3Or`_2}AE;Un?qVwqsLdgG>Q zHmqLT5xqX~OS&AmG!i1C)pbBvcc%1>!g3lUIJGvDGonCs#<{@y4oK5dJ5GDCjp+R6 zfP1F(;_w+VE#V^`>n{+lat}fvclf65Qcvd1)N5Z$33A`_-k3Jv87Kl&iJy=e>70?d zGT~K!PxK!)!&5AuuDd3&Mq*GQAAB&_yy8|<9N*F{XzD?y1G4uA z^7W?!m&Xfb$nQ7gSM>fDK|mednAecPzwI6m_ay2K*o^@ND@8>y5JFF8 zt^rWbtXfVq=-Qh%9Fws#SLi*j<8s;*QSy()Fw09jn4LsB6a1J(KXQoN@NO5Y6to~C zq?AiL2@4P_ErqgQ|KiFFER88!#op#cYa1H3xsPHEr2+H`tBO^gr}0BLcp)2__6>U- zF92-kF>L7ebyN^I7r|n)0?MNsMq0NvX*1&KzNddutwKBL!N>Iq53}5iba#jR?rUQ8vYYx5 zVw`GZJ$9Hb6K%$b$N%e`elh2&{5v6`D^Vfcyuo|6KA}B{l@Tn>-G!Uhuk8&=7XE-P zYfpdJ8?ev5lknKrWDWZnHZN7iJP#;}slCUW0xi zo}Gzt9}O-USri)1`4C8l$c7uP*K{{4c2V!inUB5GbFT^q*mSu{Ras7XL|7<*WO2Yv zp?vH!8kx%o$p>}G0!;ITwB^se^BrPtvi5|Tv06D9S)TBQKh@|uZdPdI7H$IQ_SEi1 zoYmggT?H%Y}_tzVNFJ};*>hY`vhCAc-MEGDlkC~RQz#<|^r4=LoVt`PvO?jLv6xZa99WZDlN zWYY=Md&t)S+P3P7e2~LyCiqBh-{PH+-tT|0yOr*Zjz;4hwYbLrw<)gr#D6@+{bz>B z|2D;a{cJlm>8CbtXBcAMVrK7b`Ru)K-~OBB^MA|B+XlLQ*(x4L!(nfC5i!rfg;Dam z%_Ch@`Q#c$w5PFoWIJC6yShe0N&6^-qT=)S6ZB5%h&)x8UVdwQ+--|ON&ld9uN@PpWrW6XPe+}GAPbhgKvV#PX#AKiJS$@W0X z*r_{?#ZJBQWP_Mu<#!i{W${Ja+krZ|oXiFiRArN>o>dhd@n=r8OSc%pOapuLtgYeI zS=!SQ16z=icyyeOi7BQauOBjXQPrHhF$%LQY0G*Cs#B*56> z5gT-}smx``N67Tr`>lX+x7IRx3kNRBqt%D^q&$%shI}R|Sgd7i%=$QVqcQn5yF0uJ zkLWy0SrawaP{s33d#K1Jy>UN0!)S# z;>{;D)WyzkxnF`?XEP^qy#xNaXfUJK!sV+x2M|#Fi0hK|O7Zpd;~R2TC#ru%lbkfV zJK{NDi*2Y-p+anFW6YO{EWV;}{U9y~Z1j6y_SJ3ExL$mbEs-=^A?iRT{$~X6@*UkEvNd zUe_64*XTYd)hyF*%bH(?J|cbkph#8Y3R zZ;MKtyeM|M;^C)U!OMpB$eEdFe2CYP492dPr)TO%@)uP zvRw{ag&c_bnW^nk=lq(X1XtS7-`{S==wK!O@oWtmNb84teX7)e-$>aN{`MkLsZg9J zQwlece-1F?V*=0%mYJ~&&1;+gvq5l$b%=x71&Z$i{?#wlw?sd~%=R5gsaT!)PU!kY z^tY6D6FsJS{aIR9p#OH8Zv#$-GG{5?oklnzw6zW_fPu?db@ce0b}Uw>lY&pmuZn4n z(3Q!?;wV#J!yz=|c0rlXz^klRaDD?G(4*t%6!K^IcwQM;VqrHxCDubiPAu*CL0Qsd znN4zV(PH`O^@Nq{w&SVDuR-!~lQ>4#Xk9;YQe&oaKqJRq&24aS_e$(z$pl%Zp5MH4 z5VI2LLI(+rBdsWh^y(S*BOJQ-mT2qew(+)-69F({F?vE)w-SVpdZ%ONy*aU9xg8IXNiU57Q1AoHHiyqnj17Owd%XU=V+tD~E7t z4JymT&#)819%U@!Ky&BCO9R5ALI3JUGlrY~CBAf@Xa*4K*naYENtrWTN8q#|PRQ=bkugHeRKi$GD3`5zdyBv?;HqoK9->D1DVkWL+RW zA~~A%qgq~`usH-ZeIkgJA^voNY^Sao!sd`lZxV&Ks=&-=2+IHlj+Nn zw-bww*8=h_g&}L3=-n>nwWN_!is%kfYu%wmBfBpL9ve&$7bp&QRJMmb>*=fVDop== z=b9Y*D$4VOZwQaN{K$EpXZ5mfPU5`p6;twR(GClyQuTglU7Z+vQ>w3L^@8rGvSpOT zyBP^R-FW7w8k6;Gr0zDc{FD+dkR4?10Rc8s_1Kj-P+7~+L&Q4B`FM(dr@oZ2nD>G* zX)MxPcuTijg|2^Q-49H$s^|83NI#ticf`E?T1!d3IHzKhixZzt4qYZ?>D@~-B>Coq z%AT*!7H5+i2*Cd(YlKqz-HRnV&8Woqaa+8GqkKRh4un;di!P@IzMcFlatCp6^PD0& zE3;fE`Cbv@U6Y;^vumK#9+)m z=Y@~Y!o{}okuTaN4Vdx0OlIcbZB}@58Jsj=Q#=`yQ5OVHj<5HZK|GAs9&J^>o-Uleq3%ysti^pg~T!6id_+9Om-EvyQw2CUZL%h*Znq*48x z?uQZ59CKOxQi{vzY0z2+lH#vb#_>!R2OZfekB{_p9*=Bc<*kB2<)nB|3j}mk|1s@R z;kx#u3o5v{PsecQSiYpU=f`>ek&RWvd(>HU)E#cp#FQAR$&c`vN{PKyuw4P{NPOw& z=CEt2ey$(0#~M>%1OZVjC)Ksmu#}#XzSd^V(g_WQP}ZyR-`uL;2K)u!ET}8lnX{I| zNM8I>aWSYLO4aW`u21Zz%3aRY_ck4qbB0zJ;tf5q>NLC31@j9;UR4=quG+5;?}u=u zS=hO31z)r`9cLaqQs9g{3=HMS@|!g9C~J`A4fjm(4d)b|p_xMITPk>SUQx#4GKu4W2wYhk7Z@6rC6hLs zrH1usjST*c)cx8H1T%t*s^#mSp=?zlF_-!s>pothr;P}$tj@}uv}|mN#=ad5iOm-X zwFcQevj41uH>0>GS3Hc~03nTy@K6q;ULEgqhj*&gMev9mZFMKyoJ_3@>PL6#E<($^ zrIl7-NGGGXDTLVm-bJOv_h=NkkD|$}Zu$1$neCb|crLc5Z7vrY^5ZFvet(ILVYUFG z@sM-LyAxcn(=UM(U$M)yHOyOZ70V&36k=Y z)q&*m&D1OO3}rn{iVb^<2`IBREZYQoNT7i}e?z?zTVN|!TCBxv@3Ra2LVp7<%z>u9 zwwvm`59iVMCk=l#6v)es{}Q6?Dn9Rbs1Mi1oD94;d(mIMb;F@&ZaHtuXO@g?5_Aaa z&)WtFmfec4s{`^5l_ACX(0adE9X9A>iQ&jvMoVtIz2hY=p__2>7Ya&bY! znOfSTDJh}&YLg>h2q2RHTqwc~8}+X!gv$8#bmpwb5Pzj|D|J1#9+*R0sbTN$AD7dCB!Ukb`At$DOh9ZA-wa%C$H1=={1SsRRfv4`bg<{TwXe5R72i#pS#ZCP?gXOKz}&G)=??Y^*gHYXZF zqS3%CFJ_T98vKdi8@I@NSrL7a_Lewc+&W-O<^XXH2yuBr(HZ1dhFJc0W;3pfq$zPTtabCS&{VN@5V>>R}1VoKF9 z%>>eVD%Vl#cyqPUhsFt){O!XMk(8{eH1>h6jKz$__rf%JyBX-j3nFO}$?_U7*Kawx z(ZqB(VR4cftlnZl&Ns|ST>1y;{o;bT>m0p7r8XWk_*UfW9@DDgAaqzb zRvIWO>`4keud1TII5!9gty!?{18yjj^p*XG@m0%eiV@r$dRQFURf_GHyp=spr=`TY z(ux)diL+-x+x5o%G`mM2Xz@xqB*E0mJS0crS&YRiQ&l`(jaO5@PRzpa*54ed~{lZV3&h zCieSzJ`sU&VbT4SeeqE-H}Gs&qf)r6YmFg`ar0vpvt8~o6eIH+57FnbcIG<1mp*_i zPBbj+mcQHBt=&CCUKrT2_M!&zh=}ZGHt|2989jxxIFIL}W~jhys6cA=UNsd-4(fOz|=_wL;lL%tBttYnPW+U9~3vz<8($-H+{St82ayWSkcE;$7uT85JImu#V zES}!<+KB)ySi^_Y!!lKr#C*PqBel%vQ{5x#9>V< zevR(C?roDvKg#JMlv4rO%B>nOzoW0?s7)s&0>-G1fW(c4>dnTi@=mdy%ReP&`69-^eM7I79ih zj+MgP_`5W8JVB5*tlwnN0b)xem)}Wo78QNdoN{Aoe|IO%5F$Cz2`__%8J)f7F}gyk zZPAgj8wp0PsVX~ZpU)M3{K)<}n9;stN!KlPOAXsNon=_VWAiqp%jn=LseJ~HW6^;E zJ?xo*Z@D#fgo7_Rpn%BWGM@n0>SEXGt+!I(j|{{R3`UW~2b>{Og{BC7BO~-4oTr)c ziJ@Bb4mbpOp5GxX9`vABy0vznPgl1vcSE1^Mz+>1tKYUEk22WDQ{jL*n-QTEk`TO; z9yuwxdxfQ-+ht)xO(@=Z`^kj4LH2v2v(Kpdy{2||%1PvyJba8p5vr7zxK2ZHE|v9| z-f1XcU|-BBYMt(SdVE>ew-D{TD95175kH||6m1_C%cmDFT!9sorg?t*wy8mYa9s3> z&$DG44r_0z2rZ&>I4{lS4S5@0awcaV`YgIr*Zb1H&1HY`zj^%4ne5u2QVX6VCjEM= zIYH(x1*m(~?;JB3w{OD-rQhQ6WOe#4BqM~r)ABJ7Is{Q%pv6PjbwCWHSW=_UL=bzO z+v``Tf1S%5XxiW*LL&0S&s&&9nCm(PNbNz;q3mQa{j3j$C>V-|yB(|FS6(_bko*~R zs%_Y%axj0I%ZAU7+>}SpMLIjW!MBt(h~MJUe-sCpQdim`HgM5CFzrZ5G=e}}0B?L@ zbIN^lr9x7QFA_WSrO^KjXxs&13NdmYq(`$ndJhG#ann3~xy>k49sr+QkleLWJ z`uq9VFAwgslvLvf07cSOqdq$57-$z2gzIigxtKHhMt94=NI(*JOCs3Z@D<~l6cV6y{CoD)tk0I=g4b%+))CF^L4&MdS z>2v)7K8r*_HipLIuo>&{v6Kz>j%QMDWi0RvH56JDB|jYj36pJ|(8If>SNxpZsrlfK|P@rLSTEc?@i~Z0THj?e9|B23Qj7Ez298 zch0!93cFTId*t{FI9X0(GoB+^pjG4rkZNmJXfwJm1mmRe;i5VR`o!hhkeoiGc;2NH9whmqt;J`{92&8 z=>1G7VGyP!j|7c_QZ&b)R-W$^uqIV86^i#19KMtqS#oalguc$}9{<=l_p;;jM%DUt zv-$y4q+J~We=^^-aq~8Gi15|)rLTC6z9-bhLsINn_0{51P}ov$<1K+to9?68wIpK; zzBO)29Q>GBb&u@@kKF8v%`p*uSOl}8JtEf{34KTJnl8wrC*-cPey&!z9MIv;o?QJzUP$ZH8bmq`4J7Tudu|FaSt z@*hcXyr}2HO(i`Av1n!4uX}0Ue>9Gn4j}xZOHPpaJJLAP+Y25xHK7#$Pd+&DdysG} zRRFvi@CaSZM*g8Wop2hNcjqbMlC?~b@sIlkWQUN?-)NU!h4w%UVx@T{gWrXTviK2zXUIofz(RnG%fs@wO)P`&gQO!f6)ZHJ2VR z*Y@3u_)p-Kr3y;X){KWG-I^I;D5kR+GIcIIB*s=J_9JZ<(>2JmLYEluLAN(c z8x*}OoCFCv<^=#!d*1+KtK(QRcJj~&$XOTj0$W|1ksDi}LUc|b2B}AnuOKwfy9}Di zKvR+Ll<2yYmVHpj1p!iN!>g4D$VJ2yvmX}$vvSwy%0B8x^2Fq}d1&*d;Eh15LMY{*MJ?wj@^=B2R z1cYI$8Z)v2px*Xd*LW!GTHhAC)B?&toVtX-3;)ypeiTV&e#bHXtE1AU8IwY!Yb@z; zN2;2-H9ss0sEz&3(Q3TU&1q4q=UN<<>20%nKV&~UkP~=v8Js3HltlO-rd~7fN3pxjL{|1-wP!aObw5&Hvl={~PtK6+CeI>|;LRjv{VtsE#|r z5DWkL0UQwYN+YPRDG??(SMU6i{~USC>ACLUT6|9@6~~VUQS%#+Xxa=CzHoa?;F@N9 zJADQYThOE20tkDRbDj)kAL7#8d!t{OfN{k?OMQ$xE?rlhP`hsg4qO@z8mcP*;lPS! z{i(CdDJEOo69Vlm=aO5$9K&JiknHrK_{Ef*F6MGylbit!Nw!Ty-OuFAW>HSf6B|P0?!(JW`r)H@8Im+<9i2ugm5xK!^#b=Hf z2Rp^%%6uw2!^azcUTg6c%8PN4$cHJe54&zZ@skY=jDWA`5Z85>bZK&ibw~fAqu-`F z!SbxyFe}%yDX4>%2JnH6$c%^V-iS1XkGVubW?go*MW-ojMl8nDq07E!)m58LDtMCs zhtJH9NEie`;-FQ=lH_rE>+*~8aj3erV7RMMJe`ed-J@Z*FsH6@AnxD zV@YIFy~%&$YkJTAt*#gLK5HFga87qn0@vR)0#4O9`gEtxmh`UfiP3FZ%i2}(ep3w2 z&LU76Q)A=V*vh}iB&-e7R;1&J^_lp#+^Q3k`hw2y&6|x)sp6!iWmEo*;nRUtD&)tf z_J`{V-k1MkHg&4ehW!A6joj9c$2;fL0LUo{v~Dk5RLG~?(wJ0-bB#8Nw{%L~U^}GW z1l+u2=@sl159_7J5`1?F_n~{8_cNS!b013Qy&Ti$n=#kVQAx!cPmBi}9NjS)5V_r~ zt6g1-%en?2gtac$-1Cv-a0~mMkBgg)|6$CU9bBO(z2O@WBDYc7BPb}Z8MSQg1oudl zph2(WGtVm2!B^79#UrlKdKBi=$?$2exLd~R!|bwK=CS%4P3BLOT_IE@7sqM+w`Chg z$ts7eqCq}W%EN;e9ZJDP{};*9yZ8esX^r`$isDa#|0T_PLqsT@tuyv1lh*E}Pj(N4 zH~oabv`&zf8|-*(J2CKK?l$J}=SMW>vFYp4|&}{!SxW zfX?sMESx^{NF%J`=oshdYZ02ml^pp3V4&D#!CfquEDj)FOeaSyhE`OH>a@Y~ntNft z4|eNjft}%ROLh%P)#sW=;BkIAc4ut9ddz8%X833Nk-ovXG=$@y^i@XCz7J2ykrhtH zmYaIhV(9In773g_x!di(G+e(}GadafSA@Kn574}ij8_MwOeB%#4VhMct|3sXSr=|m zUaNgp)oxZOe0OmJ8kKlK&MAQb-&17D6t53Z1WltyM!I{`mHR*qEYrXa}wVC#-^aOO$p+ zYM_ZEFbGo18>sMRNAZDM@Go%rQWRAQO(+@UK@?G>Bg1yPb6x&1TPtqn}H3N8%HA}rK`LXRl?`6mUC(3^#wHsB> zc6HS1>c`Lu;e3+eNGDJ`lcm`Kt6kLQGm=Dcdb`2-Tzh-RB^>zlnZL-D0(>rYr8pgtpWOqoj(e6Ek%#AcUt20XR zfZNRiGa5%KP@x2%WqFr&N*m{IlW&Nn{;M@6>Z6Khw;pIr#eAzEkR_02VMd#-pFc|c2NuH2RdQMb@&XnM%b9&+spbc zoC%HK2LpN;(`*QLU63(WJ;wq|J1NQf`~b>fD+X_K!Iwit4eCxhU7R%8F&E3n_Jus` zCHuaXEf}YpYOM7h0ED+vjH|0>dxp5mPiLQEle~o0UUJRy^Sbr@{XH+y;+>ynb=Q{$ zkz6`9+#;$b3ucW)i+{XWSx=zcJH$HgsxhrA_X8{%Q9FMIG5Y<+ zghJ7!vNg6-1!&!7Uu4zcV9}GZ?5${p5jYSunuXD~sI@Bb{2|QVYGoo%jHrsbE}>7k zg;g1&cb*tWiR~RhQGmAU#-9R}-#}Df-VW?5yU77cDGLmfqn)#YisjSn+p~mNTU=>w zpqqrSWvy(qA_)hYZmPq5Wr#Ga%^(501|;lEq2+F)ZPUD~`5O&TBb(C2aD8Zt;Z7~S z2rC}~u*wE&GdQZr&4&=uzRZSad;lQ+GGL5YYRzjcV!0K%3Dgnk@Klnka^s(Djr&Lq z@8+1^Xf!K)FYv%FQ6<9dEnlW=P8vMQ07|&5t`wQ>kctsiebG)$c91`RT4H5tp3CP4 zF})1pYW*_bT?Mc6cE8+m!$Fj;O;c>2U*1$bBO=L%vI*B3@7KK!N}@2UVU0-ub_9x+ z(_A*lHa4O}MitWljR>5t&|DNhR~%NAL3^cR>GALb!%x7=JHji-*7XBPZ3DNFq zFv0cHl~DFVlFVqf^HV${cisco!93e11UT4L$0$x;6Z-WV{(zL0IFZiv9|J z_$I&2MrSEweMd+n_YgSIpPg;k^OG>N@2aRC`*`z01#EtG@1GA@s;|1{599ogloE=t z3Va`9a#G!*y{OgJ6l&FGOkcRr<=`Xy;-30l%hfTQQx3jDVhGG{&jZX%iBH4Z2_TGb)Lm@8?>xJW_s}Bz zA>jJF-L-KieVA~|9%%T|6x^Bb5eOqONn7~t1Qv$A zUBtRK72EBT7oAxjruWcqPOeak=ua2$sC(gDEv&{5xk`iU@u_Ne`II#6>fIdhVMbnt(Ut_vlm>h z8L>F%{7zkR3%rMpO-7DJmM8@n;|^VSzWADZTart@8?grSpkkLh@ThBZa|I@d96wC2 zkLdV@7v~y?h!N=9jt)`!Fb@Vk8GH0^)pOn55(;bIP1RD0Z!Y-74p)@v;IKMq?0+7Y3kE{O`(G@VAqFoPM>*Pi`OY@ANt&v@|;4rq6W+s57gl1bz@d=$8pGT zkXr=u=wG6byiy>~CTr-mhVvrAa4DtCW&EfJSJ)GLWeTTL6xitP;=xoHJ4N@dj33!D zI*N-!2@)7u%v;H$k`0F&`?UGno1q`fS?6)L{JM%N2K{Yyd9m?i@mDb!bC?(W(wI;? zd6Znv!~sa^encvN#Z!O$V3&9Yg+8S4`9{tuAXmRQj3!CAB8jTMJ?)hr-0$onxqIDz zi@G;nXv|IffKTXq8&i(39ne5rV)_-XI#-q$>R?B27~#f?UomD4!nIAGNw-G|x@<3R zPBIJ2(sfXq%VDBGeIv)1aw5$8uUdtWL6 zuwkF9!bmJJ4%LLD*Wuqf!=^OG}SCF}_8fwF1Zgq4UvK==76gl)i z8s%aznQf* zmYEJlKN4N+v}1wgz|8fpzgDxMqI+F<&vJmPoF3n}B^`igF0=ZM>#)c5#mD0oKfla| z#lTTl%PAMRtd4{{x)!4442HzXc`iT6<19c(+9Re&TR-D4{U*DhhIl1AViRJ;?7cyGAw zR-Qp<4e$2^h&uM*fiGeM&%f3#zQqx*7^W&$9*ycmh2NBE_Uec#BHewF(gs`;TUh6O zq=sI_3!jt@!Sz8JLfz^*yRV4Xyz`PlTv6ra=)Ukxe$3HPK?$4oN>Xs<*-m0(Aa14+ zRzA#!3n; zJZ~wP?}pL>*DE;;CkeJ~gv<7t{rx8~D{Ou7^~(>qk4k z$1!}^g%`h6f*jZsh#v@dAmP+QNzpigyafE<7yghrQdF1BR@NQ3DR&!I@=K-8vqJq6 z6MQ8_{yy@oV!8p6g;krAt67JO_RP>@!t+XjCej@W5Khr!r0s;qb)p9sz`oXfL)@cC zV3v)0`!Cr_Ud0_lG<;H!(4HoW(G?4y_%CdftazY+e`kk(Vvg$+lJUMJ((YxY*2=czP|D)kmRW8E5RfNR1&nukuLSPs?Is9PeK~3#l;ZN_cc?3&{ilDWU?6?XELBB|p|YK7 ze&-DH;M!i2us9Q3-gsuu*0jafI!@?Hi(e}akrrz?2$LVYrm;V%VcjEkMPfZqsojw; zpXAehVkw;t*fg>5q;vJKWagiw!nfYDwhjPI(dlVqILNDFBiB{gDVl9Y&0`UJ|2!i> zN=+Dz&4#PV_))5a!gNvlT{$MH1>3mv;_5J+=jzSmExKBbcj&|6o1rWsHZPw0%)x67 zW9_j7eL>x>wYO4=q@DA4)Ov-QQI4UVL2f_ zeL$RI$u}1k-g*ymueq~Wj1c9K+J%R9(4l5ygGFp>GKj*TW=*36ow@i|DqSup2qi2* z_^o@jnfR7)_{}$wLs(`*N#$eNIopBr;*7rOf%I2$1~`P}Lcs-3L#xirc`S|>iitzV z*b2aZA&+wJAr|rc=@8_v=e~ms3D{oPLhph zdDdv`t#_)rkMJb{ZA+W-h!DT{7=3VDGJ#&IbHJ+qi3hZW_Ni7gsgtp2T7MTf zqW(!oMe_RTql&Bn!Wo@R&sEg!1I+9w|B@?M6sTyG_bR&`0fY9rMlDi;n##KDb6IGV zcWF(bl2>LM4AC1ij~{@Y5P>$JINI!xaH6PF{#NC8goZwo+c?~RYhUmwo%J!~GfvCUgNXT_v-_Pg$e!T|r+@&w>U2EFOJLzU3bYy(|S7|TDSxR!5@Tq*$L{T;P zFBG`r^tokN$w80i#`l7Y?mIYD+9z7B&LEx3w5@tZ=vG&06&v6*&M(Fo&?23Ht7|-D zB6uSZC2Q6hgRW;ResmQ^Z{wd4pcMR`++q9?qR*1wF;MdUu*lH&^!?q5Q16i2{YLtu z>B2VSq>7ef&a7m8!-t#j#)%iJX^n_sU3sdPQU0ti0fApD)Kmy)<`-%cnLGZ}_p#Bu ze-V5Sy8>K=*KTnIzE*kOQv`Dp$W;M#(?E`DQa_#62yPmT@$o(})m<~pC`@y|*R7h* z4|TdM>j7zOcpNt(hdzqy) zk982uhp(5aPr9X!Xr^P>@!LO4=4Q9R^TO(_*_^TZ0(*gDmcZ|oD?m2*v3o8TsuhdT zM|cPK(kGsrNQzwXUXL(6s7)VC_M~IBe+UJTZ_K~K)ai4|#4HgyMoh;?LN{^hY-@KG zBF0nXq07bzl}KFJOR-0}cF^@3Hfor?-2bJ(LEzzuPIWNxlcMS4#u57GmC2G|#Gtc89>=(Dv(em6}3{h)MUw5<>b8Osh1zH9ZhE?r`fy*)a z%fD+&R@T*)RJqjGwZE7B1sn(Uaye$a_)e4jzLxliG?0YY(GAkc28s=nHx?Uj)h5yG`8-aw9PR#CQpH40*1?aC7WlaRJ!8s-Zu87t*65@) zt|h{>IivH~>PebvS%LPPNy(mE7QJ1Tbq^xFtGk*uRzjjgMdjSIOUFuM5*ceK4UYI zh~N*H%_DLg8OqDBe31XHPS9ji*BL9fOM86+(^X{wq_a1Ao6>@@G~Q@En+gDKtkF%H z#?-W`zFt%>eufB7QtE{1dp`0VU<7XHhn8~*AWj42qp2~&%yQ8Xy-ZFyN2qitxxEG8 zzH>C0Hgy(Wu2~T0n)hqxg(z*!9x4!~b;ZxI>() zynE0-BRA(-E5#CLYmgH(c+ochw?IDwG>!_di?mrT(=uT%2awqot&G>igP06W01#Zv zTzJS}!q0)?cv8LW)F(E8O?Mk?L!5oi#UeC;f@;*dLJK?hVH7&H{(n z1Qde2U3$h)?eFBh3n<3v9_MTo(#mmbgtYWOoQ%7ojn?eDW~~iEfk~Wy#w)P#lp>eu z7h3!K$zzJrJaDjWK9&vy2)#|%2y}5P{#f@JCy}+H`s~>N|S|* zssn9pyYj^cG4mWn%7RckN0%@BhG~%_~Q3)NoR| z`EJEPPqvW>I5VU}YS!xrpD3KGfwx@5Hsw5;+u+#5%`k!(dkyKC5}}ZwRAv9rvxZ^8 zR0H7<2L^*7vCXn2iY2}_4oszpkLId- zawj$5GGCMPQ;1h91jQ%0pq?M!Ii@O)qdEkP!U2Zfc_B@y1Gl^uM)`}&SMV)x+Nm*7 zyGU0$3bjbDQP+`kII!OE@~2*6)^ zA!_Ftx?(zJq@UCjIX@!&nc~_~@`?F?k&Sqil8`5XfjRt9S$z2s?OQFcd~bbhZ8ZLL z&o4XW!*HMV0Y8&sI7Qhz1xdb!dMIZh%gxfH^F-qS0Ncn8O{}%)P0T2J4XBpa*?>QW zbCA-dL34ahEV(pC7*GP=XXqm9nS1>j z73}j?@#q4yte5oPThNtZD299EnLQ9Jhs9QX1J&|Su~-I7Pw+xp==Fr&z%ZOv0y^ZH zbO`Aqy3fQ%as}sPnv8-xvp`UfCOe4>HxXl%A=m+>Fm9coycy9M=UU(iO)Zdbqs#P(xQ_7P#W?A ztwvnOeSm>9;cw!sqhrOFt8~mVFtRvc#XdvA-vyukZO`jt($E{}mvyo}IPkZ7`{vLs z$`1uL>U0W4x5RCUdoFaQH$ziD_M+E539g=(1A}^ZCB_@&xnK^&bteBF+)M1!?Au0n zA}pp&Y2pH^@%pw}nJv-2tYM;UgM5_pk93YBq2MZ13D=qzL6f`=m8XqO73qGrJ()UI zZ{82$#ci1$6_Wt zo*@wn0kw}Xw+%gi40kOH=d)QLYbzgJ+hI>Q^(Mi}>DaZ^oPMpd@>m{Tt%_q{DN+IU z-KfOZES!^+ML>J>Yu;cBQc#E&%Aoox6L#^b#THQcnOysvdeg}F&=uNPk!-nh0D*IZ zDw|Jo1BZm`&y9r%x*^}ka7O24kQJy7gDAqQh+NkCyqshD%3`$5F#+E#G(dT6v@CK_ z(B+x+{Epg~&fl=}1r&aDe{MtGrDFYCILc!ukl|<^`czyAWxJk`k>_CP%Qi%gv{%{} z)bed2Y5*C4ij7_4BQBNFJql$eYXiG)mOi&;H^i>EBA{yaG<2bj|>MA?3%AW-92ui?3yTKL7iT*d7ZLFfoeJiT-&Y z1PvbP^xHjuX>v*mP6F$Xhg-@>EnUk4Q;9qEUTcK+byY&73P#5gvXE(&g6QBsA7{wE*R|qqPl*uo?<}pB zUBJy4AiUeAiXgoiZ*(UI&NL%mKFZPk(oZWML#@0m*UVF>7}ib%4_Bp9jWvJ;$26ZT zt9zHNy8ouQ)?Kwdx^a(!I#G6VvRwHSK8KV;tO2vlgA~e!SIy+G)8;6Sjf(>(Y(yXhbKs2W06wf#Dl%@m*a%CU%Au8KoyX*d*OP+rv8I_W;*d(R4GXAPlgqe)J%bm z-zj%n5<#WIq`h6uNBS5*V+6VP^XdQ9f-X?b_Iy;!5tgQz*L}-nhd)ED#uT)zBTtq`8 z=cvF3|Bo){IRCu`okW`0%U7Q=M%ouII+hQ3qm|0VRx;hQ=5<-0lZTH*@U_-bEU-v& z1T@uC#bD=TF_dh1(mycFOqlNwJtPiQZ0qmv9SG}685e>m6y#dZnSoc4SwpUI#71T~ zolcP;g0(g3N`*K^U=qEO|0aLPkZbM;Y#px_K}CqG2(_&i=<2Y8do-UEK^oTBxZfgT zk*U&k>uwi+9xJZcb0>DDI&^u!NJ!>UJnHu2ua?dJnF{L#Lrvy{LpG)YJO4S`=Dlgq z94EU(DmF&y$b;PmlINoF@`d7xrkdCajHR(?yGoTi#$!h@?EQ0s{dwgG7M4yaMTAAN z&v4`JNUK&YAKNW*yOP;4#WnY-!ns|b_WYu23f5i<+jv7K@|DRKZ=9Wm8P zmI=eyc~RzqPvb(dMg1E)BzaqN1Yp5ax68L;T6CVL4&v<=!eiGK-3;cKV)mvM$BWCi zm_;CTyg7`%vl!T6(sV)YxCpvGGw{rym)@qJ|#hU720YW@m)GzW}Aa0Ud zI1v3A*c}WpbvRa-cFVw+(bGf^D2vq!6^ty_4#w0b*`Iwttw_Ny7U9!6VM`+FWu$HM ziQ;zzpgCV|dj2`h@$6TfbC&Mq*6;tdif_0%c2t}jhM9jS*_c6kJgtH$l$sZ%9LmAY z7&}Ou{7vf(S`S2r=@~knUcKIRw)ZVu>G|f7T`W<(-FoI6~JSMp6GF2Qh#D z6NpkwZY#ZJHPnVRiKgRPVh<_NqF?%gwfiVnjYDDv-<<2AwL+O$pob--%5AnmQX8bv zzH1C8Q7M*8+e9)RIH`s%7S~na0dBpFPDH`l;k7gyM{tCeU`=4LB%&WVqQOZ}Ci$9U zsvIkW$3bpBLF$yld1? zuDTf_r&#nc`YuvZJ`_BT4w(v0#Y3=d#qz*Yf$6h88grk?Hx}6{oC*=NPnB1U7ctMX zGpM@H@$+EQxR4@C#NvV+b~!(ctOrdFo;tQ4wVt zIk^?|{WZfT;*Z5?;!**~K6wTdcj4DP!|!xR{`(6$`u}S|$2fs#M-I*ijd&~pl-Mmd z@{{8xKJb6$R`+d^vxBHpoDRxEG`VG}9NJ(d*F~qp@?#A)OHzz>E3PMn#^+%O!?_IN ze&g*g4xp~UWNj+KIsoOQr8K#K?@n~8{t-?0Ch65ulcw8zG;*>y&fqC$_%;DCw?X9G zu+G_1e~vAa%RrCaoWDc)hrkx+|FED#N@zz=>4lY=OV~;6_5&Dxt`wr`Lw_DG?Q?+x z+>`&Xt&95CgWGEZr~mW-_g@DutNwjk_sUX`n-%fv(^J3*zT-!o_;>#jSNhH?Z`_CH z?Kpk`^dKNXdldr^hCx;99WBF`xmGifuJ_b~6( z{7gQu4s1cE!f>^B?lXZ>IGuJq43CGMO+{Bxl(vQRP`H_w72hM~HgP&c?V4T;UQ9S! zR!lmw_azXt*mvT7h!Xd5DcCg%W#@9Nf741*2<4z?)NyHjD_iIqTsYT;eHRNZe87>)jVy0 z=hgJqv-dd^*t2!qcSkB?Te-8x>W8tP0{uvF1&4LELzC!`%c~!U9v@5*Oqo#2JBk4q zIXKzYI&u_~K(+q{ZDBI$y>N7Aglqvi;@>W+>Dc~Un9#gKHOq=9O>4+JMbnVY|RDe&!u zVPc)eIeu2h8%UYGlL!Y^r%B`%_M9LOy>0_Yg|vS;*Nx9~>Mq{}gs2^i5AqW%te^+= z5|F%NyEI-V+9C&rG0y%T2?w3u0_>oXT)z5iRnT(lJ%XE}UpzOd-JjiXU!VnRIl3U* zy;QojDJ27n&Gc2iBACc`h-xiXS_^b0*E3D2`3Dki!p|C^sE9ck zYSGX=jg4it)^8Dh!_GzidQ~^eFQ2 zWa(GW2x#>&}O#3A*$=|<+-QbiPbaf{Sds# ztd`tjBZSQkJJVOX9gti?U(O(Ps{%=}B8zkJ6)1c98$ZywI2UBZOwU>jiS6B|xG^&B z${+!SnW_O@dk|`CkegPxqkxYV#|=`K-ws(o`GX%x0?VZ3Yt&CRP^QI z9l~uDMrcAG{#4#0_z119sHe(jO8L2+*5DyNjl5aE1H~7miA#(C1$Mh@nrM9^=zLnQ zd+Hv=kobq(@9}Br+U}l96tW|#+nlHs)@g@SA2L2TKh)Z0Y@KUXG?(GrCivAk_mAX> z@udrabbWS)`kMs-h(t=K!+dvt3u>P#l>a1}q@8FnBu#`97i-_J9C*4QiADOMN87HO zI#_Mc2#O_@>kI1l>gx|^Yg@#eJFyw0QYV3@rKK17x^27cBh1mA5S;{gi?5Tk&Barb z$RyXCaj{oZd$U&|KH6E-pz^O3nYWMT{8c3XDtuU6kBQ&g@iTbRU-I3zi-f2R;2otO5x5S z^a1?_KYLHwmB|Pa5TUgc7wNv%k$z(Ts^PmKh;7@9vecl`ZC#eB?d)oMIUZJ|sGlcT zEM7-0ojBM?fQG`t!y_a_?dPbeO_jSwqR9;9lgj%B46L ziYuP-?ZHvU45-st-L*jj7uQU9EVuYg{kiuRSj=nKgZYCrc$=_LsA;umd&n|b$Km|V zaYbj~tOL7fT?#w_K`ZD{LZ||!5<=oyDBV++4O%XNQ`WZYJo0ewR&1rrQ+mVmpBP7i$z4v2i>rgtC8aT6YC3x&GAw=auGj@#%#nF{%X`HRWj$cJcj9b9aH@BwAKp!1j;k-iFK;WYQ>V z5;9>>&m7@Q)od>E8FgpM51;=u``#eUI$}LAI7FJ5Z7_Bn^@4%K5Z1pIcn0CYOAy^2 z{Jr@AH`wDa>%P#}j{nS}O0JfQFEv;mk8qvV47z)_RZFh@<8+247okl^{xTG_gYkJ{ zBSLe$6!69cI)HH+$FbMwuRH1Py0jex>LodEbg`jrvH`$Om*Na zG`KQpN|pq2t5GVN{T>>>`9$|mSjs`oVd#02z#_N*44Z#own9Fst&9>lRt%j1g*?o| z?3daI6RJihA-)Ab<1yfoMXGu4Sc6I_i1RN6ukkwerWY0-vQNyY05meYb@po|@K1{m zQ#b|wgyxKrifTw4=au7l&IJAKyKahT@CYCoT4iY(ffBj%G#%kka3kxYOwY1w{*8r{X%vihH{yUwj4JVWItV``3QZ_EDGJsk^f zCXJz(kSCRap#}JDVe`;y6@BeP@>AW#LMpt(rMNc%1D)(YR5#%SNzh?}HXnA)9Kz$E z0yQYi#)=c}!#!aUJgNAG_IX{=giUnIjf&_z5W4NSm(7p!`=b1Q&jbumpRhGPoDbBk zmY~DEf!cm6AB$N1F{Dkh`a^BPeTK_5zTADVA@n8rGCzKbIMeVx?7PWm;fq$Ga zBXX>^>27?15=+V{Dlj0MJBcBDDxq~HwQC2*pTE#5r{H*Q3Ea;5UTPTN=LD#;7St7O z#xq#77aBTOLbDwWek+17p6-JJ(&DH^ps72IDH?45jFuqoxPQ|2+Ya6t>+M(Hb2)-+ zTI-6{9|rllz$v(0j@*y2W&@^Vp)D<&ib)9E)TW1&;9$ z?NYiA2uUx(C1G&`Jhj$H_pX)pk+84#t65@W~wOgt3wzAIRY74s5o1N2ZG2RlDGTX|M zvz6vx=JMf48#u#t{GZNnPyUUC@@IecCq9DzEOGhw|9*!1UeVaR_k8nfFSMbM>Cagi z<#)P%|M$=T^7r39QJ(twCV-$g7$NGulE_QYm8spKQlDRM{60}arpo&zB--^IOr#m~ zDnRO1mgOt@XVv~5kG|v=5XQnaz1~I=%bW+)yo@=G#I=9c zLj{I$sbD@hx3#>;&q)WALijisl{{#O8t4_YXBb!88^7aP>>UGK4aeR8X_&9F|2@cUh*~9 zmhF$$8(+`)$)2Q0UWC>_;T*ezo>x%IqOdqQmronqsgL$l46(gnzR_@{%;lQznvP)_ z%U8qs0s*?hPb2a~wU{RI96U6e)>U?7PdYp+Q*~r$dxO_7pLbUOm8%3g_O3_$olux8_Nkp4mvDlw%1W%SD2Mc^>BG@O5Ng3)^ z<4m2Po0#^U=`R^HiFNXdyG*`Ht23oXtH?TyaEOnpcSR@F6FVwf! z9jI{QJ`0rMrbA*~DL-4S7izqMrP8Z2dzoh@%_gOq^T&5)Lhp@6EF z7!tp)@SYjKU}FQS;jFV(j(~Fcw!${5SZv(sx)1*D3+YO2M<;YR?p<^2&o!HmHw8NJ zNZo-nfPdT+Wg(_q*W=5Z0vyfqeM5>!7p;#XZ4T8gU!ZvEG_TArLfP`$nBUhQM%^4| zod;3G!FmYxRwHYF$*5h{&%xf$HDhDF(Xj(~&WOI6Irn%-B|Smp8z-hq?RESNR3=qX zc!8(`C`MxHF(v<5lu+p3l3~q4794JSgeN}$Fu~pXqMED`(P`LAh<{{q^M$VfZoRjA z!UX7A0w|JJNeg5P4duwBOP0FmNy@`oQPvm?QqvIYjinVM0t`UP;Rv0RsY<%ABX>Xq zzz`Amo`d9Se?`C8f<)xpg?G~WE zXRcDb$Nib)5`-NTDaRE4eus%--yhF7ZvB9K$psw`k$thzN&LL(Z4|zmCJRgHo2m`P z^i2s^y^2MK#ln#dfKFWy5YFU*0|D1^?XNmV=g2Jy#Cs3jClr;Q63O4k2lI~1$@xmH zr2jkPl#aaJVf%;48~a65*F8oLs1NOIieB`i34$@K}k!b{otZ%H{LU6 z8F{V`yc>TC=UdwxugAe!@S1IxSwGa& z@qx@xPCOf2NwRRUW8^!WqtG8gJ1q^sV}d7)f!siKe#YLHHv~jC?y3;IX7Ed`A8YVovy4vOZkAzZ_y24wWSr=unL*Te()nnD=YyhGwqjh;y&t*u@FJgvp1=v#-J4ma=@j3 zMfm4%I*^3a22ZIXwCruCGjPgfZ}1fjFp!%4ZImMrrc};Hp~GjQa`|DzitE;^%e}sB zK+LWkYizBS>QP-gdvH_yGzoF_4vq^U$2>A{bkk_6Et>bIvZ@t6%;HyOCEsHntu?H7 zxqYmsL>DLUqhozGQmLa;dVAZZkm>&52_<-1k~lYVh1a!!ww9`-q_b{~Bu_kc>IA(* z2_d_7Rxzlx@@2^bT8xX{Ks-V%Cg7&Ncl@z#WT1RF%-Xbn9*+p%}5%PTeYN$shBYwmDVyJ0yh$6K9lv@v zQzPSNMr#01i#lVo6?R%T1Ga*^zFk}p0)Wku7eUvvC0CHYpSH!W_r%zc5&47{!v z^5`}{y7$49c1eOnw;l38f6iz!CI-Qy89@r-UZF~+oBmclB z1I{uCS4=twQ&MQ|B=?i)i&WR>h7ZuB^T67-Lh=N>2lwE`GAtSbBAQZ*QK}bH+q4Cg zUq~g}r$c_{+?lHp9`D@M+`Rm-YYd_rwf(-|*OD~Ef&aQU*f@3&-vgJjfhBMKn?$?N zv-nO+8C8|5ih#yi!2{1EUCjuUOOo2>Di|Cj6h*Fc)?^`mDn<7;&8Mk>()C*ZBTawM zY~`nQw^$8dY|GrMBVoj?B>{Vfsx>yUa)`D}0KDVYuZudVmgVr3nA%^_QM`094G`E@ z(R?%yw1RDhE==LDE&*$gyhx#7@f^Xo z7Ezwr^-5L8dL3MErpXd3xxRS=jj>0hx1^pc5)FG_Knhw<>1mu8~o;cB5?=c zf-zK*jKy1`!AvegqQtOzk0B0oSMt=9(p{8R22GtAV`jBnp_C4q`H2a=G;^1fqsFGk zibd5VA^a?g8Y8Y-Y-~`CsK|(aaFkx=nIlN7hMC&%Ah|nWk?N`d-!TTxaRqBuh82^q zIcx6`#giaS(5W9rX14NkiUsU*u8(sIdMK5{bWP~bkBcHRz}f8Iz$SyAeI$GMXTScl zf8Vc7Km61E+J735r2lUL_{{5%E{%o%`n2VFu45*V>iQ+r)gAZV+hDoI`7DwVaCV0L zZk~jy-DqSocgSXOol!FvJcM1DXZm#5^XkkIb^~4Xw+-f8X4lBL*7bR^(uX)qJw*)y zhw0v_0YMCEFjLn)BI)s=a1TAp?j=GI_3$44NlYJEfLz;;g|uf9P65RW&9d~BiZaaP z$d36h1Y8!W1K{g!ENHR(jY)P@W@Lce7W%a>Bi z6t|1CCy=WcImg;(Hq=UEu<@&3FjYiaSNpPDTX<-SA@!Q48@iz~-FwAQk^4#ulgFA} zJYNtI=6pe6r%NsGDQVQS3%!Hb`RCUAhcJ|iiW+30k;0}NKR%T?RJi5;S zY(OIADUqs5LpN0(?J&VD9z!XvV3M7JkQ*C|&4C|8PAqu^B?&!2EXHY_B$!8z0$Jf| zw%1yLT!ApE+{mUV{M6QnyCFta|U+%dbx zX_k*4C8GgR^Xh@zZaj|ztsTC*U()s)JJIoU#IExW_iT<_KVG}(MFawWU7N_c$$(V)D$ zGSwaGmLs^jBgFk7+^Yo}Dk$3QypAQ{(W^ttF1aP89dZ$r$+$iTtAb+a{L%eX82S$j zwq#eJ34S-1%F#;ln?d*}I)1B}0w(VnUU6Y|j>u(+p;uem>_L3k)O(U4q7-4YSgw0k zxp=prW@|uM7XO`ecUHaKcl)c^;$*Nf?SfWm>&%l`I}%jB)djH)inqR;73Rks;xzK3 zGpY7N?mkM`x_V9S1yL{A+Rx!#!P)>xhstoS2`>t^{y2>vk~>x)_vSrh>B2#Q^{*{A zrQ!C2Cpa2BY1pSyyG$d1Nvd|OZ-2{TSle@(kHbUkOnVZ7%f*Z1j(^bJ5xk31mnwhTC;M4(h#*vo$5&Kmni3vnyhv z4#W;RKPPOjem|=ck=?dGSa_o;&%&VSWT8iIs!vH+B^~L+pe1O2kMB!4L3#RLk7aja z@s2JgR~J_LVY)h+uG^kiU>X;45JiUiT949cM2S8<2ge6jb$4f#ENHO3HGWKByXALK ze2b1!1p1NBTdJ&{`V|Foy$cTrO8S*Y!^uL`zSI@NlC@F z$Z=Lcx(bUqK0Q4o+M4@Yz!9Wg=am5SWV^=w8T|j%e(kAHQtCXdnx&Z^aeAuQRUFji z&P~_VYuX{KAYCrUb+4LY(EWVl~g~m*-0MTE1keJc=^@$zC*S5Bu}s3Lj`eJdzD3 zs6_eB+igcGhnHG87$4Wb?$eC;zJ|qG_%b%QEcR>!X=ZJm-PX~!T;ye{Gd~conF3v$ar}^JXiNm zs^k=5;A;97;kR9p-YcwPq8d-9SX7QnfK6&j8IT66XnoDTCMm}8~iDN+`~9>D7YK&Q6OZ=c?xfMPg3h%I@#;H zH^Tnaf$gJbdeF3=;wH1}RV~Sfd|ZY-md0cXv?_5mkibq7mbZQ*&=;-&Y@X8cCS=btIu}L@qzmlaU@DJ_8aN za@tB3l0~luFQLRwRir$%COe5NFyPtGJ8`cBrnkqqV$oNkBJf2wi+4yzRY zRyW7rm`r={SO12sCOKCcEgJuOQ&T=u9Q(!>Qb<%lp~eCMwJUhd3 zg*T67wRL1a3*(2tCJoJz_+5}(bHzQ*v<{B!Zh1e$GFzh){t{&!K*`Re*N*>2dJs(+ z1N*#2CdGwC#jiqh5o4RaKieZ!J7~{{+Oq zV9}?}CKLei^!CaIi)>>b_I@)W7kS8QD26EAdjY*IvyB5Tva)(*3q*#xe+#(=C}+ZO zo|v&-xCY6_Frk+Hc#7&Y_lPiJakA5T=D2vC=3YB&V^$;Ag3|(!nNTr4U@#80)TbFT zEc&|3Z%-{f7vna}%(HmHd7l^scPi*Bi$@!}3TIT)SZw*vwj$H-8PQpX=T(<5nZ zR`ffp-hsA(N*~#=vZMGavWdAEAYdx$VqHyJMWZPoK>xi^T)BDE!|6cP4m+1{lBIz0 zeTJ&=0!_e3RgZq|YV%FOz3@_f4MrqzK&vC>$|w^1L2yBp(7>D98{EBqLqku8KaTIA zB4;|q54B>Y)t(Ug*ge^bYtGuC-3|^|$`jaeIVsNhivd^D@MW@YU&=8`KElY%nHHy@ zPc+EOp?_1GH_h0#D9L+g_4lD$00J9&j(tf?SQM7fh1m6a>zBPPy%IM{3J+!mjK z#~U5ly>OK;-2EQbVNKYgh)s)~G|Gu$q)M83N~B3hA!b^JNaiCJ&ffU&+wnc|(ZFCC z9WiskAuVS!r{n_4_P@yf_&MM28g8_Vn9-%_*Ey&jjLRn9bdN@Xtcvi*B1vf%K>0ki z#ByU@0B}EN*8U*amSKt%0Zs49a4WK~)%rV6BUdB~q{iW^K$|jl zH2Mj&msYf`pz5I84B~RAiGN-|=NEj`pl7?dPHldd=Sn&LeCKBYRhHsmwaBeKNjVgf zGY^oxZ-yI_CRl?3Iy6*8^0dB9dR#?Y?@ zhqZ9sGuhiMyp}NgWBZ`Nk}IX`UU^%K#-}}zE<=rTJpS2THzu}qxj zNN1M8A1jD6cgiz)8>dvlJaB+hr+=b!-QvsE9?K$vkvCBW2RO=Y{)aW&&;Knd2~+>{ zDED7SB|HE3nr&uh)qZ98Yo8Q{n9X;mZA))&+{nB5+sI#0>-1ANMqtWsgr1J|CEM%U zvIJF{WiZEeH8Or;$l~c|)mLtE3YA?8XqAu_ORVEMdSa>?RnuPuCU4cYBmn&5X`Vx~ zY+i`+G#yB#ToP`yKW*~{8DAxrHP|bh8)EVF5qg<*#8t7@a|IcHcJv5nD%-ccO7sB@ zbcz_5+#f0*fKW&VW-ay(?O`u|`m*opF6sm!tj!`ih;nNtYtHphFs>*QS&4|LcV~?Yz zseQ+_yZ6N;_qKz#cdM0#Mq>KJAF2SM0~E}idKPKLw6)bNU42Xg{69Zv5JTINuC;oU;nNyu{C7J4Usdi4K+DpwU{l-y+ri7)rcK;;uh}H!P*^Lgt zRM`d!6w0^Cj3bvTwqL5QAcvoG%e>)x?qD!`XEu)FgeMW;&RVecY4ajSWi{?r<@qBT zjU<8r&j~)Uj+=dT#EODT6nX0}nf$Rf%FN|e^%WLzS!)qN`FV4i$-b-7$*=fvVw{n5 z4r`tGbqd&DO<$yF%Eb$1Z3tz&-H^HlK3ezcG`c?Q6<#Zfgu9Ex$L1i|yf>|A*ESZ_ z^SpHq8T2SLG9m-x^I`>(;)loEFPUTZ2RBY-dHE54S zuO<$}qSlmYGS~x^O%UdV*?Yxle_{E-!v6*L=vD zD;=3*%6^^VFKhFCX?C&(&}Vig1=^ zEg~Y>LKmrtx-h!hBl5{ns<EvCP@fK zw2IiF?MF>@?&Nac_y)fnJXgC`Q(QZ7UxPDM@r_8&0@GoFU733p=1S9|toc5IJYLMya-m{{^aWH1*`UAgKir2DXot({EELMh>+(BI8ssqAan zX5qgCZ7^a7(XItiwf5%2(7rAO0{C0$g__^7s=H3(VZqj%`m1xH3I0_dW#a)P`{U)+ z3&zqWnT7ldGNn6{#57}sV@>p(4dW<265D>^-d}N$;BWtsUEHc1u`p$wroF+c0tq&U zX!}s}O=)($WqBmfL+z6fy&aj0qiag!;Xfqrj)lHER^VdQ-K&;m7OLkXFd75F-bUaUxyM-VvC@8&(V%3VV|oo?bQ!+A-9*m&)lRz zHzuzS#EID|E_7~30gANw-Z93+hi-n&Rf4mWIaG6pD71aaL;%WTNLKA$6o3j#lEi0! zfJxU@<>;O&$^r^;f%`TiHsBkBf1>YUxzF&c1E@f*wOR5LvV@icL|(ma)@0~AS%JHR zb-oFZ8w>hQy4b0EjtJ&h+xradu17^1h*KRGo|zn)nC$1VP-}Er_})Wj}!a z=F*yVe}?{B+<7-3DF}BKM%z}UzB2Am#OhC)&v1HzlG$LWooY1I)|$@FThnaFjol;Gv4N+>t3Wn+*%C%L4QILLz5#v75gs# zU6?$`id41UU1+tG#zUDM5gri=if^cD5?xISycd5X^fFRnr+J;c5zt z@g5K7{kD0(#4Vpkbyr_}gmH-4WCLV*fCs&tKm2+q|oY5OozVXK#IitZZ4>S!n zWBzbAEIh&_`B3yta(>!m?kZ~Kkt<AE4!h!!n}@>5+!|WP@)D zp#0%oQ;Ea0)4>mNLKxZUE=%W<=%vF^8G7~>CuSU}xgC|*`;j2c@>L9~ zN5iU<7ha^$B8@6O(etRO%EZ&6n9yYSyD`GP*}~tYf7FY*8iRVoSovR!y^UK_ce?lc z?9*rDbQG95-6KO0Xt#SyyRD=TAW=eKEK}%Qim|6>%t%OLM-eEH#ajqT2$^n1=@bzi zR0=UrOO>_=QQksWS;-(3gqR>k2#}X0gz%D(ERvA-x3jvR{apKc_O-8l&R+n8mEZc^ z_x-&;9~&R_V1L(!f6aP0Veq@x=%4O(_GIAC`4evDo=(lXvWIG{vV5;(w1MHSE3q@8 z3oSrV)S;}l#<}Dsl#kFT32u!T&&sI-6$4k?41X(P)TrHHo&ANv|Dv zE>ECF%oM7MOC_n-bZ})4pm|S#ut^12Jp-snL3 z>bpJkoT#yq#xYf#TqRoAj2fx2LakT-Qn*&sY`RzF**zRuo1Vn>I!Mzy7>FbOAL&YM z51SyG7vS?IaRRf$1T8!kl$u!0=0;bwqHKA6yV7~SvV;tm#*Tcisr~ zoEpH}=0>>YF;)_kS+F^7p}Srf90scrdM zjR8=4lI3~l`yxJ6h@R0jJG%{h-$PiEB&Zm>>h3ZkisJFDnJ_gfxT2WF4lR?ECbj#I zQuMSn`41f)3}|-f_nAJqZ^354!u76IGP^|Zqc1evn+2l4rJuDS5@bv%TG0I2wA6qj z7A8Z!m~V~>g$qJVW?ps}`X_z$>=sELp{)QNJ0@i@aMX2{L2cvSeNW&ba72>^=~AoJ z02HCCC#2ap%^V3r59&_`Rv@-Kk+(9ahl1IDx4E!?QlM~r1g*ps0A0$5*m-KSls!oG#^p`bOX*|xd!J!Y0588+0_I#$uXbLZ81(-8Fb ztZM7dzU^l{afC>t-E79Tl^jX0qGuZDl9_n~m&D2GRE>6$)Iz%}+s7Vc;5|;wm2}*< zphMY7X~C64+XTL>dkY;>B}Jo$GXN#a1n=c8SR}3}EQ}fm zZb+fEyotAAXmby+-FaYbI)|!byDqx2k+Cy9zigZ931g(mOuE*E=mW<8-tAcAHf@dd zW~sqSLeR)YjKUfyr?u)03P3x1A7`;`CzaDdigZ5K+v8`^636y}u9$w+uPwgnZrt<| zoi(*`tGKUfMH;Bgav67+pdh#wx_MHt@ov{C@w3&F9Fy}26c}=Gq8G8nP1C=XJz#8A zHjmaLEA0e|PxtN5lKZ4LUAe-y<7dKUcIzutb zp)byDj`P9N$1zN!=kFi& ztxkD7>W*~&I^|oe?Ukl^E-8v4GNk1+uzW$*1D%Pas+jpR%3b{{7Li^~?Ymu=bGdaFf;4X%zg2}HWBChO)EV#L&IyxF*nL2qNARVqFf zdxmOi8yRE7FkgMP!kOzQ-(FuB7PIMS+ewb-I(zWZdGG7dz=`FVF5c;);;-9om&j3l zAb_FPp2L;aA74fr!V^mLCHdedlKy0CF;F#xQM!vv8)S4h4UHDg?2^*2?sRZno{5ElnDigRJo{CHW4zhe-46$qm}`6V)1wU%%!(nB zdXRlgIfl<;CnA*`^$JPFT2KpP5AitCu4-e^kZE2o*|@n3x~vUa>j`ClImKF%%!4n5EW2?=&(d zcJ@T=erV!ADtY{~6pN0soIno+NRd*8*OiZX5CTcC!G6e`fRuHCj~H6rXYzXHHwB%Q zy`qL}gl-~VB}UNVB5@PGKPR04>#F+bQE@Z2_qx<7UBc-|z*l~KWRc}Ol^$Kh1=afI za=fj4c%7bN(|bq4z#b1acl~=5Goo;8HTW$usdVXxUe~|QM)DE<1_EbE%S9G5#O86A z)m-RA&(`N|=MkY!gWokUcitCYjkTq(@PK5K7UX6P?X!H~ZL0{@#+W6nA~RIii}Zz2 zSg!1iC$ga{Bmnl0qJ3b+UR;AuVG>R|wLWxjMJnR(di2_6G`gqz13KeEZM#pqlgBvL znblhD`*qwECU2@w$Ed0DbZ-p_yY{Fi)c#hXM?Uv2(QZ*Ngdv~agV473XDsF+y&LuV zybY4&FSB5ur~+N!c1EG2B%Kyo67ud7rgSKkpwqv5o~@A`l>&HX!FgYGitT5~DZVIA z6L1<+N=4nNvCbm&$@AU@@Ze8`dWQb|#>5d=w7}XBjk#a3&;T#@c}}CbI3m6uH5i~J zDzpAET>={;@YieZW^`P&JdvqlYeY`d`sdb z9IA#MdS#P-muWMXaM|W2-DeakYB{b?&a^(YjnOY-&Er3_n#hrW{n(Oa%;}(#)Troxs9f>kVRB6-EKgi1asvH%^M>d31DX}`>}6_BU^D= zPStoB=@@B!-3F-y8m!eYJiYdr8Unh2RE#=S{;akpehbD7`c}KAe-rmq?cxaobq{gd zCoXUwyVDA%Oy}xs%$~rpXohrdd00Tq6vR+~2MgzXjN@tCH1k8aI1|IU5rtggqh`=P z(;xbwbh$%vj*)Jz!q~!+lbVKl(u2JhS=IDLPQWtH6S6-EUH)k^JdFkPd$yxl45``A z5B#&&QRr~ui_LTM(oY>H^*0#oH_&M9iS+yo;oTMQr1i1$&nUTm?12xoIO&DxVtSH0 zyVFG0uy(ZeAv?-*nHDirziUL5)MoyTi6bxQCo;SQ%i$*QOoB$Z6J>i``^-C`#E3^N z%lr^7gC&+Y^&?FQAL;KoAk;%&khr^Fu8oyBjzr}Lqa0yF++>>!{FSI7Fc*V?>}I)c zS*cKIYdCCbG-VWVXydfk_uzz`Ju%Xy>XA#X{rPA<8dc&BTn7;O@N5JaAN6Bs2$f-2 z{!d0Oo3#PyS{B5CcctXIS`Ljv8x@mK7Fn{bV5ON_i(h6=;K8ODGF+6^h{rM@lZ5en_jlcsB00UK9)+jXcEN}kh-o26@+ z>2jz*5Qj`}tv<0IT~;eKZ^RQ&Ava2QLK;1Ce6frnJe|)rUsr+G<22eM>Nw53vg6q| z2QaZ+YIH^c3?-CATCSl-NOs=y-_GV|9Ee>NlvY_Y z{^RhZ@*FOoOH(r0Lr9Ibj%`8`=wamnDZSk_@zL_{`npk5@Q zkDy`uwux!Ur);yf!4%=G6p>mvS@nytmAZJUIyC*JZo}$^5@O-6pefu+f1ugU+jW#R!j4SO+BdGzC?*Ol zqOv^`*0~A}M(DwE*c###>~y1t$@7iAy%og!!`mp1thl+qbz$*ME@O_=EnFCbZV>mQ zLH3%C?SDW}ZJ9#$8$g79^{by7Zf^iEOVeDra*?Me_d^4+=?`L2z6#RJ&02QskC>DJ zj436%u&DZ6XLj73nAHY(for(X)w3`7c%4OHSbApFyH4Sy9t?$fK=W*VDUM}}#{a_g zPjP8zCo~2FGuqd1g&+id3}O zHP`7E*I9zDDDTSl5-lqH0s;Fzgvt^PqhXW7nFR!JH7xLV0Kb_OMD`!0k{hLI_vqd)fij$N5<#pYfVR_Z{IE_cQUM z3EK>_R)ja*)w?YHTB+T5Q!l0Eb@Ma7*qdRl>uUt>v%digDhAN7v^MTIzSq&$5H->x zN~p)1nrLFtA`8(D`)Wq9u&79d;y_a1b8J(k-1;*#y6)IGGOMECZUXu8SPkJ?f{W#) zL9WB`_=6!)JuH`Dgsz&+MwaHxtdTRNK4_nu&SVyBMNKN}V1Ox^)N(7QF4%Ba;g^h> zxG$k(3~jy4E*7__5kOZs8H%VSv7k3k)2p8B^K6`cfLSxeSGrC@y6>BZ1cGNQy z`H1lgct~*kI4k8qe1wf6aqP;us4|O|pT>SHT&G>*9_@VM=9x4Er<@%xq319CtJ53S ziRFc%t)~<6BT{T;+-lU;^-fT_K4_QTO_#DOQ1uOdchXWSan&ZFqP`#~2Imsz8BRzo zWDTwNL&wR@)uVh9L|gih{QekJ!C?3V_zWe`SS7GX(xW!C3*|e;Z;vk1%M`I)EsViF zMnB3-53XC|W-n{!ai|RiIp+N%>+y;s(S>mTTZt_a)eD3h{Ub^>0zjdq0il&e2{wgOrY}-(!Ehec{CWgWtZM{LRnb$`Cv9Py%L95N{W75zoaA zSG|XC;KqJ0I7yZBvlEKy_o4ZgMXbC=cDxN6{0z_}yU<)qV@D!G%gWGAMCg@RfFRvx+${@U?mGfQ+=DG6 zzs}6!j&yPLCtD*gv8W2_%VyeGOc_Ju+{yME*-RP*#e0dI#$L8M=3r zzoz~5D63|4j2v~Sh5Ave8gkV7P!uPPJ=V8!BA}Q{&1p0tcpufqGb^4DWtLVFFbK&- z*4OFYvqJ=2WKBi~;s4Jtj`Y(ou4j0?Zjs_Pno&r4@tSf$C|hc{56-25(dXKA1-|T! z4#xfsMwe<4Fg{<~R4E#!U+we>mvj|hkyN`e=xCI6?AxV=3~LfZJ&tC0m8>fKuQ5t3 zfl_FwW`xrGvt`g;gH9}IVT5fQ9Z{u64>H+xB5ZE9LcYL^vS@X_g(n4CwD);zJHOVn z;@e6`jML=yqWgiO^t4g|D95tRHV)>v^3EPDdtyzO&MMqFf2jQ``dU1^JKGk~=fWoL zb;Yv%!WiOuu8E;ReQ5?z+Q|tBwaB?`TmXlG0_%bGO40c%q0(7~^hsk{`CxBmR2QOn zL9|CeRVhzNrI{Mt7d`5B9qtYM!M(-Tb!evtXL4K%ONOvq`{wx72;CRJAsq5)$VIx( zpVyFI7W4O)LZVYC6Ve(HVUz+FOOPLxQ0<1{>$<{k98YKdcCkZEXO5%uR(EAzpXGER zc7hZz(rR3mA4|GaPut2)S(ZV#4izOP0qot2NdwNDfJfdy1d!^pl3ya4n6}IO?w^Hc zj{27kwE$ynRhGJ{l@6H`2D{{9vwAS0>k-xckDY)-@elE~LF|Sy-i14;PRreR43)tB zv17NOM$737mHzc4%i`OyW8>0?2vrR1_#(nbRCR&vcKLJ3Gp-+N&YhJzw^MN6a&H+A zOIrTtFwX5GOCGS3K!$>s{R*qk%g{^qDP}PDS`e_MOU( zsOel7)%1sT3x!^uP^6n+Yc_@DU)5FlbT?kV^k#+ELcP3Ioyv^WpjhH|#Y&4EmE>uk zM9~}W9}gdC40BZ(y2}*d%tf!wlwCsm4X1sx_F$}S0QoVQPYS-PpRC#3N)^fkLJ9t> z8`L@t5;_Fw&$!B{cxLQZ`(kSd5w`sv>8GqD_JksGRs8DSFh+S?{7aQw*8v?p2W;!k z)qN~<>;y)&-kO3}^wuyqX;+wEExngK)Jsr5yQdWEo3WZY>3E5p+zG05kOS?XYug&l zsE~O>T){9gnrYeRO(NBhhY}OV|)`jH>za#_iqNA#eqG!3LPUY#7ksrQEk{! z-5)n<=aQDV%8P5;-tm&Ocq!X9^da-95POBUmSk&gu?LQv^c+!p6#W*;nFubr+J5ye zIOx9JR9~Pq#f94vZx;X98i}BED*9WPBF*$QsevT*(%y5D^Dns;tl1i1t}zrZ1uZ$U z-9V1V^HarK558?O(l^HL3Yk7{pI%oT`T#Ydd|j-|GqL>VOMv{~*l-6g?F{W>iK84B zKa!9&n4nf>=<1Kf+Sq_DBf{_|b9}Sw3fDoJ(7qVV5=}ZEt0xK)yGEkNV!FQ1(J<7=2{n`2T8pcj zE=kkO)=ym%1zXMO?{Eu>`1i(Z?;k(%T_h9Ik3UlfM`5_~?|t-*%(*n5O06ANK50<( zB+CoB3$}MYmLiA_9Xg>7N@t-@2Ui~_FEWM9=BPHtM55ZuQ!TBJ%_TXp=!Z<-9^Z#A zD*q^S*!VNfi+g(UhxG>&OSlvDC$oh&qMmJz=WryBMDt97YoVf>jnWp(4-}2&#=`ya zjtx|CfsW!zgPJu^s_Ea#eTqQCSO_W0j<+=gRwf*0XFG4OM-XITBDr@-&HXFP1$Bl* zd0%a16RVjukj`>q6AvrD0QYX8kBBe>v)Q_j94w;-j3evKdovCGh<1x`LA2mvEU!4L zG2(#~X)nY7Sm8So75q@`qh$rveTP+fu5xUQ8XdDOSF$hEa=oWb#KOTP(9Xm33O!Ed z0NSG81Kc$2%gn24&kiV#BBi7LC&efwe-nv;sQHMwwb|1gP@ z{_7-;t>XuG?tj#g007ipfJ<AGrZVeL&{U_Hs(CFT$sEw{Bt7QMF&SX#eJ;Q(&jb@^6-0owlHnGl<#={xmRtl0-iAv;mD2jaD4=B_zV4!-NLbQt~gPl}Sx$ zXQHwZrb*fQgqyXrcCovlXy;?N3gAmXP1z`R`-~!%U6%#EA3cWBkI$9%iSma^oP33_ z(H^C}ua03huYf&SfB=~OjYz)e;Y77n$b#Qbv|gr3Je6lMz|$A(=AG(6VRoZQeK-I8 zETA-SIOTYU=8rV;n}G^$J-cgpY289uW+k1-zyC}4l&kjr*evv&yXx7Nq-7SRy&>1V z<6CE>YF;(-4D_Dl-M0c*3192W#gf#12|8-BL-Rn2)Ux>j!+gfI-0i9EKkB{QN3KKu z@xp5K@jN|iD?cMJBV`U)<(~!4CizbS@xZ>>YL{6@qB%-hZd(&>p_b(_VuxdgA<5_6?Mj`~5YaoiI6r$JzI zRJnMLC2ax}{cn7GG{fkUGVNyW*tki|ST_0G>uW1s=lN^}ezcPhL$%Rw(i*FO9k8ty zx*rY;ep67}%rDmR(4I@;+Ru1`P_gRd9&T2{r5xs+V9xNO^QCoI*PlzEIs=ap&mHae-ytKz|+=JGUm z#)%h6y5YDokktk+VX53lVExp+Epwm*$Q1zkrT`5t>bJK&c;>8{K+iNapcCF^NIgz4 z3Rxzx|1UTsAjdAxm*ggn*10$;zG8U&P(C_H6Q%LCw7?e&8eJYN@fStME-n+#C!u}= zT=kTBVM5Syn%yfBj`_y?dkdHl*C;!h7?O2fCDdoxwLTro`Rba^2mzB3t>FmYi8cv8 zO}l?I{j1MweQx4I$tF?w$IKvpV5}0-^K)q~tX%FSny{K%0D*u$EYF6KTW3_I{v#^p%BjRAKrO3AGoRV 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

?m8TYzPl*Gw>vY_5GukEJ)i)?exkxJhp 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

I6Q+&Z4#S~oV-GMz(;>zZq|Gs{M<2{+V}l;kYk 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%0D&)PYj zQpFFbB?&loxmVrW5aud@tNqHqR1!dV#e6Y=!3z|hsI?d;A4uMgWJFO4(5kETac*=c zSI|@nE2ktTJDU}lO)ZvjS|+DoGJTz>hY8PIlp6Fomg_CejwRNTC%p?TEllz~avd2! zsN|4+qh<1%mIRUIeReFlwWKmHHF1tz>Fl64Y6&S~dcSqH-1?l15Bh2k;p&O7qO_|W ziIG2+hW{=pWeiD46;G}ZxTtSy%4rFcP@Lpv(oL<0r=#XTPsKBhNYF>c}Z4egWN$<5Luu{XyJ z0cXycS#p(rbSWzjSMhApw>4VE(?NNnBp{;pgno}TDOtgmDsL2Gn{@VD6l~6Z86L)O zPSP48@Nq$R^&rQZODaxn8H>t~66Y4)Rh^QB5|n)_aNQVcfEk^MQ=By9kz-JHP_s~{ zT4h9?$!G7 zYNyoUSras`MVz%{$%WktowRv{6#&Sa=Qya%QJHgql5YGEs>`&b*YiRLMXDK@-P4cO z8kD{6O1gc-Jh*dK)xaNKt^Rp4=!sl!u>}9w4=XsLFC#hU+m(Fa3Tr+cNz&8Mafc_= zR6^%2JdO{e*Mue{4TYEKz7=tMTrNsQFIbr9Qg_tz!6sUv*n@a+v{VF4wX)y(YC^MVi{y>8dAC)mXN*j2#hw-oYv3ImKG;bdnIV774(H8u( zb(TZgy2fGKvl>$6r5h1NQcRo{O-sH+DqaL%ILBoaE;RAwBO%ajOx4xElD(}4u-f&% zJ0InH{rw22#JKk!%3Zv5#xtSOs!l0A4o|b{&x6$Vqr{)?0XqRnQuHNzHg;<*a7)@7 zY^XnVXLrtSWh=S>T3H)%{he@yvpK6+e^&XR91na)H!K2~EXO{&;+uBTlzo#ELux5? z+1Eb4%XQ^0{dTOp^_}-e-|l>z#-u029)et*^AE-oMzLzCd-1`z@^I?8E|&Z&ts;{+ z7~Ppf+$Zn$g#Nxw>F>Zwg|pa$PURg)nKaLZXJGZ_8%TH?-!i=~V-jh_Q9Of9_1rXX zb;?b8m`g9Tx*%4|#TKoh&R?r|dPYg3M&*}EaSl6;%b{dElcj`%Dnl6*6A#X%-2lvkX-(Hh3)h}V!4Dqh7du##CdvoZ2=dUe14_}z$3 z_oM`g@qPUTY*_bCtg7<%#=iLSx>Z)AD?&lVJXCVJH39i7{;jMUU(5aR)rljtewTPp z-UX%G%@!&!%G}o~6!!UO%lmlFS&89yFh?=%Te)&cREp-b!&}^im-I-!B2gzhvj1S^ zn`#BcRD7C`&H|g*DkW`@Ywfi^9L>?Uxc#Hb(s+#+Ym=4c&K=8P+NM7)%o(l`XUMGB z+lu*Ftu-z73;s^K1#Maj*lD$=dtgZ#6RWyXU2kX-!Ox67Ed?SmLNhk>$x-KqCt*oTAv)H)%F}x4(9AoA!ViFxK2lddf%Sn3+6fS8Et8AN0=;8X?#FVlkUd+ zhMg6T%G=`We&oK2v_3q05!-G4szpI9dek$pVbonDXC(~WIm60dP34?c)tw@9z0K`f zf;e|eZhJT?3WK%uRe?%vH8dy42!nMMveQ7ZaR_so@3ZYtqgad0$SOJ)2RVFlqj7!` zX8UeEn7^6#zWtVzC@aJCgEx%GHKSDBA7x)7{G;hKZ-Efrq zYs-*X`P6AE>2lk0FWxzYJC}%Asr^Z*f!$(u@gnWE%zGpDXM?4fm>ShRI~7cK(7bB!1C|UoteVWMxsP@QgS>k=_rV zOO4%#x3U~}$@7z|nyPF_7;nX~G;flHvCGq`E@$fH6SplZI=)Ty?Bl{VTb!~y3B1F; zQCyQ%6s9ZgikC=A{D&Q@+vM%I-TyW6*8e7x{3Fel&-zoG_Ww#I*)qMG56f1GP#k{{V#^s#EuvRC zTI`+SsC9BxgdRcsv$q&7PGMnI%QcZ8c~!bN%eOkN3UvRZrVfYOR)^Nr&N>QmQ`DU8 z3Qx=3#ovOn6A15#)^`5c`Yy{xn+k^*={FCGS`;()a1)5H$%@{F$gLN;GVaoyR%w_{ zCnrH1z~1N}Y=Ziox>S}LK3f?j5a_aYK@Iqi@@Q6Pcf|DJbs&Gw41--_jOz z1hxOdV+o~Cie+`BV8n~~Z=%Ko*|sXY>%;f>VIn0NWbjGwOhAB9*j8J8LFvTH8xb8- zX%JD2U1i3X@UviST-Y&5C*%;EM)`&)~>CLoU~$bW*3x( z)C`LDpy3&0Mgk!|2odL(^xPiw_WdEBdK2u&m*d=R!hs0r(Ip9GkisF@R1ON8zQGmY z3v>AN=Mu?II&Sb>qjEa4Qq+|T=ZKK2V#Z!p1(LtKKqz7rS{y<8O8}%jEXnCadyIE{ zb6FC9zDhV~)7|7Vao!slY@>0sj^bSm)+@+CPdxwsB<}sgn!5LV-!s><<@Qv_%=ENw zj6l0PPiaSm*`P!Tfw4}py)C32c0~<8YL#CFviO-r5|Zo=Ep%&9yFnQVAzCb{MZgNO zNJ5fYDhL=5BLqm+T3}29gtbBv^7{vOb)5OFAZaJa5^bYg4% z#%`c9^nxx%H3G`%>t0C4byxVI(Db5CvCb66GPApjED@p2dT_ZIKC zC^3w^7KJmbTdu{9>H_cas*)?*s}H0!;!a;>T)d=3p^a5!dYKF&>9f4aCGreh5AaSA z5wlt8XkMZpiPSfy@H{%XaZN6GQsNL1#_@(N>xcY`Xgu`S`Jvg;FXj)V0*7Nd6V$ez zwO5Sk!g1~bQCOG9G^sJJpv$iS6t05ey6uSQ-i499SYv36@_cbq&F>--rml3MchwUY zhs1kHZKK{Upqz_M0%c9wTuT1}qwlbi;v4Zv7(3U)#Z7`Hx^KpM50wkT;1IHy4&m?5lD7x|F7GF_G$b-I$N zk5kfQ`d2evQLzIeiLNhyMqzU)*1246l5zc#`8YbF(7-8zK|-<+gnF{eo;?k|cVg_S zsMirDyp?xJ2~NVW4op<=-j7BfHU;JF-(_3eODH7{IBRjb-R-?aJ*UB?YHLI;aMlq! z17Q!_th@Rbbm?3tirYNc_PH!5s8LiWFsyDiq%u&^`Cd9ot@~(5h)<{+NYrYfdQ~)n z&uf2t9ZDQd={v6N&jb9!AAoLne?Kj?teYaJAk@_v6&I3XYsVI!4RE&IPp`OW0qVy5 zIl6x53?->;-{c9QJQsADAc6hd^+)6wAi92`DI0ZfekN;3;eQhwwstwMgWIWS;)Q6n zX}Fknicw)tf$fNzsmO%_V{05%@jJ*l_(2PE_hg&fM4H~$?;4KDA6nQ2kCBPxw`L2o z%yfWC1I)7DU-MxdHD2t>Om3eB`wXh5APH(%c@$lMd494S-4$a$KXRWvbS`rbX>tRf z=ue{2!D?A_9Od18cuE|)zx)mW)?rDBAwt@yH;1lTX>vk2R~1}{fS7>4sv?j&QoLib zZOXCJqA4L8jgtlRyh9=aWmZ5yA=Fz}qp+<^{yjt!gO>wazA6SVHueH&9n)R8#gZ3< znI~u)biTdjJZ|EOfAt8k<^J!j+nGh3Oj~6r(AJ*?0_Ai_nl;8EWFL#}c6M`|;B9mv zT2b7OuI7sSP#!X$$)SKsJ;r^|lHCh#H!41-hiWYI7MIf4lU+SJfywom)ds7$BQD?i z3jq#_(502=VsHgK;z9=(1A@EQ!XK5{aWno136*X=Bi@GOGffzbPuO1#e-fsEgc5B8 zFz8c2O{38M{_iP=`w_k4hm|{>0oSD2RnsIdUzXfX>CdrJ^`a_}lI~a?HFpxa@5)_3 zsr)(Il!It6w(wFdiR2LkSlZ68JTbHI8OK~?1;PpI;Jsv z-2XF&p z94_bbL|6Fa(WQ!Za*`psgLnzn(mULTHvMA8H1i|6q{Bq6^N(Z!rIOI}@;i!8RdOJg zU4N&Y5d-|1e0NJbt=DOcqJXAxZ|f0k_S^+#@KYK^FSTyj+%xHNY8E}(PDBYyDCJ$W z1==FENLx#R$?M1+LDQr8GJoN0Zv(p7D%?nk{&jA?v>eL#CoAEKx^@)scY)Oo6Ra-l zWu$x$5x~|i%JyOL_A5rBW?4|EEnZ}dl?kQHm^RtT1K(VPo|M@-%X!V&VFRaCe>%iGa*0|Zeh)2SGsc$7Nky;@ct^$cbiIu6FI#p}tKU9UyeLY2>F1 zoDcJN#^@v4cjbd;t7Ymz6#% z=odov<^_N6<$AXGQ;OLWa==|KmnWnxraHIIY)3EQPR7V*Nz2GBywO#Y?$+PEOzMF~ zo2m%$*Tr(TN^8#%LeE|W9S;Zj9=bij{*L>cuOj!&tT-xRW!j)8$nN^)Ac~$lWjl|r z&Ez5(c|qjvCKd3Hx`Cn0rFnY&AlpasZ_X+hh4qBx@DLZ1-k>cqA78)y=!Ftj?FA?* zDz#5ui+=kro`6Bt(3ox*9LmS}y3P*-u(pYnWCy58lu6w_XhK)#aHmVd_uK^b3ZgfH z^E9KXk-uGSS+`N#JefMHGrP<>|IO!q;aoZK+18Y24xP5TxL~QpsSjp4nCKT&z}(2X zt}j2{rv#vV$6IFib>dkwrnl&t(K9M~10b64EdEhWkJ0B*>gHQ#~lY{%9+hE-ZTK2~*nt#42d7)ZNFhXd>BD zhnR-0XVh1K%$%Xr@?YP^F{#Nj;RP#iLA1T=%MGpzTc)8m;?MeTI?5jEKV$-84{~*p z%+NO2A=NF}?Tl#tu_MKjoVK09+9{@zs?)ZRJHoixJ$#u^Bv(z$=&q?|l{@+WA5^up z|IMnJYJ1ao!9P}B{v5r7em0hiy6W->jJu(sQ+S;4aVaYIlwI1%zT?veGfZRb20x~5 zL3gRps!Nd7WU*!_zD+5U9D#rdpsbIfUR<{P*(KKJloc#k~H-x77x-5t(h9`=DCkIFIF;Mi6z(0IJmWIB{cBZ_;t zX4HpCjTPvdNrpa^RrD6PTcTo9EY5k|shn4u7%{2+!-;`j$Z^QdmB@5EZyrnD8+7@@ z{!c^qe4XO2e7Fdqb02U z?$i(6j8Co#LSC~V#O7~@ZLbdba(PXSTwJwn2Ztjo)PW--jmx5oI5Z;b!MVB?j7GZKR!Obf`5(V2Um0hJLuOm zJJp@hgx3kO9;Na9hg(b9<{xdctJIHsRyHL8|4gyteAVWAfdYgn`ZhS5*}rI?a3LKe zFY~Z0_89fXqne77y}~(gNXn^!n_HZ$e&n3~jsnyDZBka;F`d85U9JjFNWs2NMd6gN z7s=p2o30YM|LTwM^jiQqi8vr^@neb{FlXpGMM0vN)TSpI)drVt?k%N_!-A6B{JRwa zwJy@?8ZzSuZhtjjOM7#)8t6|Y;nNuaGl4h4m+V2NE7&7P^6r_E#N1A#8s5g@`gHQ8 z@{G`Phb*h_n9$!l5Ogu~+$?@_bidb@>3d6)!*yM_t6pp^?Ut&!s`AbA%DM2I%(2|( z8ole`~q?|klv&v!RgB_%D@ zYYOTOLyLQn+#tsY_x5Rf3)iY1R7qc&RIn2o9PPEEEtDm~wLWJ%s#?6+=3wI!bi z-s30@%5ht+O#Ot3hKlbJM+-j8PlW3=Y)C13c7VI|Lt)oxuNo*Ema~1aPa`)j5-uW6 z@*Q?$d+5LvN(=T{qbOxFNrAz+zT0?s?bx_rO~p*@hcJ%#V9=BVQ683BO;dIldx9j4 z9L*i!t zhv7ls!$QGKDz8d%doOAI<$??L1|tSjW~i>vnvW8muE181+>(V5LV1@Th@i_|M-t$#OHYNWd3{iv(zF za7(l{@v~5=q&1i72A%z4(x#lBjEYRvP@VB;j}Acu^5y(RRRPSC!O+03B2n zSe|;5%<`f0N$t1NRYY}MFf^p_jk*U0KDwAnNgZb2W3AcYx7u{M*RoVmp)p)^I2_M_ zU{O!pzQlK1s>KO|g{({2Pa6Q_+&W1N{kTM5rfBqtl#Pi!#j^T6Fyvu|=3%m~v@Mmr zm(_5h>^Lis3gs!(1#1c$zWg8y9CX2$%>vhPTWqV<;7mpXF&5dnAL2i9k^~cJMT!*( zf%L^)ogz`SgX5O7JUGBfa4mf|vCyxSel4Oe@CSl#;CFok zK=R)0EwU;%lJ;hns$Kso&rw)MwM1|9=lbS3q&D)_53?)hJRV%?mAylrWAz8=M{?!F zMa?qh>dvH|+8tWe8GnN8a_ZrJnJyymLa5NlX6BwE+=`2j7old~VAfU0wxw`cEKHUA zT#E070;Gb&lL+U5jp>O}z@C6T8(|T(W)I`(=h(8HI#8Q>n@-*`ke-|m%#PS+IS?av zxBYrl5E<^{7NvQW-w_^<(OxlLND=F-PotVq=D^mcRHJKIl39IM84mdC$#&O-zZ@3$H=}Gs1SMP@i4yaCwIHzIgvENXrX2QyDZpU~bqp$yuTJZ1Iz<0nC$3Tf-$=U^n?0R&BWE@wN!fl%9MQdsoIW3<)L$1zbp~7L zrLUNIn(d^s1L%SPNEG@b2G2I&^Juc_E8SDt%Csy@;VN!$^{gaI^sbG+7wIyZf+n(f z1PzVNV`Wkv1vo-`DD%=(5>PT>JkBX7qOiXF_qi27Tj@^>~R zB@xWfx0CfeNW{~e0n0l#TM2JB##FO{RjE&#LKmBL&|6RtcYH$QEx;n65ZLI{?c7Me zXQy8iiF7)6w&#kYhD)IYT+AcM9ie7x`H}A#WfEy&x_h#uVUB{j8J*gQ@Qa{>@Ii*& z+P)bg7U8UX!r%~u0&eJOi+FFIIJ1G}hDScQH(?c~3;tTL?Mtt|JJ&wCeIk0kp2iN1 ziA3_qV6Vki+dc}Wzmh~8tj7Zs3iCz$_TF4=t^jyA`4e1D0)|e@VZvD<6ZMK}hz~YE zZlMNU-LzAoazgG7%b+*h*BYNlN(f&P(_MDHHgA^rA zJ~TvcvOlnG{m>@%VL`z#P&*Lxg&JFC(Bc^{s_1_ z6+TUUtv5vXP_`$4A+kpE;7m19`sM?Ern2{Uq@~naAd>4WaVe$F8@S%+T%$ijx6?`^ zny`<%&_N1{zUo+WHQ#3|dgk^4A#(0cVyf-M_0CEqBU9y`#u-Bl_|~P-EQue|-_mXn zr7@(Abp~{0(yyDP767TICF{9c-|pH=LLZVvl+*dON8XIh`X#n{63Cx6h0_^oB(QFj z%{6il-_G0@VLgyGTzkql{lw^DD$9LX-$jyZF{M1?Vt(9X7{|ma$icYxKvdMY8 zYT`5#1F{*NoA5x-lT%60B!vBLwPHl6IMlhnHLZZnAA1S#;KNo}KQe@g4TG@W_o1aNcqG$W%-|N}_ zX#Mwlw*SZ*S@r)~ZF~LrU+?(P8jM#oeoy)0FF(#`PW<-E4+7`UZaZegUQ{Ktl8)qT zJ@Re#9N4~joZ1Y1lESIHJTIG$C1GFKn|<^g@E-tcY;%62fK4RYO*Rrq@J|?1_)t8O z>=|+cKG|8WJ{X!nWxN4OUjDXeIu1Q;waDQhm17>4k_U)`^AZ|0Tf0ov1OKBcW$TIwb>t{-?1p9U7VU5bcE7=RR?)B&eOCe?$c(m#gHX;3P(yG)UlQ{)R;KXrGq&5u5Ak^_~7UgQuo_nk`U7&>>MA~u%TB@eIKY_VmPL&q;A8P2~tdSpHh^sj(W6tNZIPnUz*rv zDFo#FQuTNJR;y!N6%IPQ8JiQT_7AorsQqML6c)AzG=l+z^cjSIRe(v8oTateNHk z6z6OC++(}ZTP;ODCJG(VbQG>O$N?ITm#9SX3$O3)bH~nb{Nbm~Sp6M#&Kp68f9 z?-9u=Mq+mV{B=`+ zjx4m(hB>9Z+y)fxoJQ(XwzBd-11<@0YQ%S>8Q{tVrTpu;{m}a({@H>ZNu8M+El!`4A(?3Cud;O(H z!&viTVv2ChZ>--Io}j{0aB`q=&Od(-aSgtrB3b9}eSaZlh(4Y%8kQKiBaI&ooQgS8 z-~A0FZL>(|_;UkLCZ=R2UldqlJG*1L3C^}l?j=&xW*HYSOD^j3GX<`%JAyTa8s2YI z13k87wo_bjB+8?#R2_{bY)Di(;wrluV^4bWPuFlyjd*0Z|E|xF@ds3NA02MNK~^_f z!lS_u*UZTmXQlvWt$~$W-&=Jf++4yh<;heF!K1n}rc%L1dn_WPRwW+m(V<_#g zl1~Edk7YgJHPev42DHYCh=p=M_L`E5rQA_WNnZnS1V;WiwQb6q!J?G!0Hdqv*`={@ zA(PQIXyRJ=*XC@o{h|2^j^0wK0jw#u!Lg0Vpex-kf#^{auGK%zZZt3YHTPdP=f(4@ z>xKEKrgw+^Z9wx{l-7z;%l++5bk)buYfwpILvI;D{`Z zf=^^9|7VCsZxIW#)CwZZdh-;cGO4?LB3(WeIMHwNsYF3u43 zeS^|FPmj#$+I7=e-js4*b8v<%7DZ&2#?Y%Vhg5fGr-kR`d2ZoS9Un(@p% z7sHf-xtZ-wk!8Qq;hNtN)^f9lfW0XtoRJ;uH5`9dUY4dD7`|SD4~}d3QZnl}H#2Ia zp63{?+o-=_sf6Nly5+v1sg35QS-K|Z@;rYvGYl|r=zB;RRs{K+eq_4M?=NhRxFg$1II$|ByY_V3cn#- z8xtSZCy^K5rJr_Vc%uq)BA;?NTef!wG#>abNx~UsJITy^{+;+QB@E?&qTkw*uZr;M znwxYe)EA52T+1tq4-W$Z>$Wea4!Vf%k*_5?v+zgf22-vh*HOx%!%CWG6An{zQlT~4 z-gqQ~dgk!!ZSsMd08({_r#__e->M!Em6U_v=9=S;OMJHPPi?23f4PNKL3|y1w}Ilq zzCzl$Jmy1fvHA15uYj9JPos<6XTNu)M>X5zRPH2P6Zke_ME-lOz}CsEe>~XlUX>;` zrx0P#vkA$0S_=S*QhNH2$D+SWLkW^8$K5@;4BuBjp6A*{hrPHG^QZfndk|fMM<2;? z47V91l0=2rewfEp2(3EhHAOA^82*c4k8vxh?-FH1q*C-+ry(|tzL0B&n>4e0|HQG< z!G3{Uyj62^))S z?UFqRbOcT8 zXwKthee=QJs*&Ny)L}$FXmyUmG7-Hku+_0A%>m?VBk{6^SlQC+@vMlk+aEWLUWxaR5|k4oWjvKdI! zqt$x=0?QP$NQev?3K}qPs^CAxS0!$lbQi{dQ$Tz(FM=PvqH>$okdse$c;#W>+fpZG zyF@$H<{xZI+%kTv*$`GjeaBz1-|pLCWo|^Ir0o*uO17@Yx8E=`qfmX}X@hw&mBJga zZvp{XvfTQ3*(GOKBe?!&&O_US{a2}uTM}pXvmoX4PGz51Kxc>M`2*ZiMcwx(@8=5W zh;v-0kjVXYyV)a0$1UY>W+`CBN|8)b;WAO!DcDP;fSyLl6jZZ*JEP%0sk|Re`@7Su zfdF>3gchZi>yG7PV~*c|%xh$E{Xrsi{arH&CH^)qZ`>~B+4QdYn$1q;>8eP|FK`79 zfABn`bfro-zcHKHIlVRQZ#9$p`W?NFdrTnTwM!Me5C|P>X~G`ZCgbVAuV4BN`kP?} zn8G~m@Q<+`+x*j6ZMPqB+$I$AnNF3_t@XppCFU205J=&~{Wl?q`sb--;uR2|Ij^>M z16QZ%X5i+1$%eYCzqUh(>g^vUf!1Dw6Jjm3wUAU%v3ES@380 z{|nD7>lt9><$4~>rNN>ZzW+(f4R>GH5$@kr+xL$*0grG~>7&k-6|3AC?|=jfOV`xn zS_1$&T%QP%>AAvF*21ASqNZJR>yh&QY3C*}FS&06@>SCIT{#NEXICBnWQ8SIPcdHA zECK*f*VFNVg=-scq-v;f-&$$BmGqj~+p--G57(#lhHO})y zaJWY}Lw!w+==p<3r5xj3s&-f2h6|}UrU0mFD3N0|`=I|_>Y7z{&6U zyF_^d#uiL*B*qR`)X*DQZ(mzmzH^$=V=b$8uFA-<7A#LOF?@!rgFY_n&S@NSAGhlG z{+4QM4vnk6N?|C3Tg(+qLj($<#_Piibn_~B3SthtbmP2m3`a~iT#{BUbJ2$MD*u;b-~O-Bcc^M5z+FQx;)jL zqA<(0b-6hZcu&_Jm@wB$a+;Fdj3Pe<6MU~gO-i1_All06mbx}}7YGN4&HZYjo3C4b znb$)e?)X~%P`5w`j1PR5{C<`Ec0CVC=hnC-%_2~Ixv={67#~?r){Vy|(%bT$((qm}g54;y| zcIaDd>&>TEu zG#cMgMI9I*#=iLK6MeD-m{{Go9ijIka-AA;UbW0OTUA}|TLVFUshKTL1Zg?jS0xtr znER@*-@+hjs%V~DUj_GP$L)Z?rEe!XFBgIakGjT@VTOII^Uy{~PkZxcMvCg%3T|2x ze^_*f%9-m~Tl>jWQ0#;D6Quy8Bp^04-KOS*{H~1hG%`l8fKtR-9ZNxP=T{4Lm{*^*AIoj=0vr{66_T-3bS_OYEN4Tw(7qZ+|^>UMTiaHNdycCCtXTZ?-f z>uHmy;KDS+r3+`+aSg~LP4X{r9#h~uT%jCT)R~?um}SjHVVM^pB4kC1e?a)>j|^AO z)!x{670cqApI?9-%`Nm6)GeGIAQhcOkSYS(IH=sV9#sxQ<2~~mCbbjzTPU`)%l%e- zc5A~BWvMYKlY)_37tsN_SpU|(@dnO2i{A!5VRI?L)*FirT{BcTHrU;aFYftOc6sX< z^$gdD7S`^ZlF++!De&C{pTysK1v;?9GW7>X6q0`G2(%Z@-K(@R&Uj(G+q(s?&e_a`jhA7vzXLtca~6(0j~f<=;O~*6wOta(q}a^qOz(`OY;VWmI>{{fPj30?l)W^@O!9B6f5foKb5JEPX%3#RQXU zOIR~_iKQ!d4W8;H4~N2aZL|Mkf`(bk^iBGSPV@YgT5)}QxQM6wo=z=blj&%wN{PF; z^sz4Sho*3e7L@&Z5IRO&Z^Ucjrc1*JL0I+_F; zwXczuX06Q@8R%-UGB`}ad*@qYvK-Q2COqrGlHQLW%3_lE>jz^ky3L^(=r815eiJqV z!{1qZO?8ykF9G35)_f}Pc$7WIKKSNT+H2*>!Wo5tN^y^fEV-)s1V8f<`bgsmGQji` z5tCRDQ9mi!>;?o?jwEI;-%CHjQ%rR5iHA4f&Qa08L|_ra_`JQ7u4sG=h61Yz4`2{% zVyz!Clhq&hD7|`q5(tSnLU|ZUY|I4LHm?&m`bPLk1#F)bU{y`>vXZ=2Btl@amob5jQ0VUMyz8wl3z`W7Di`c|29K~U#?|OKkF^He@Wp=`x*mCQ` zuP=@gI_THgsi*xq196oaU6ikdQ)LXiH2E@dmK^ll_OI2mQ^p?zmZ@;x;>u#0cd)P$ zp#*`%B!6?zoire|{yjBml^N`HTo}%PU&3#5AD3QADpu|3tDY>MiFhi7YZd^dZNiTM zW$<)5+6qp6JkBdE(m%e6q*Dn9NmCg*D0R~ZQ9Ro?3Yx6z}ZFWL$!iqF2D zKNELz6b5yK0Ls#uUZ8swunwOu)5e>R@m8%1!#rV?&YDV^*EGSfx6nnrz{-DO{$byC z>*AtR0Y@oLAE848k%h>b>Ka``3Ey0U>;bF2w6LbXBk3g1!BZL8*yH6oiXeeVg|gGv z-6#~m-D6HzHKh`~PxDT!IM)sq6A469e-IL}t6Q-)e?M?AmeG48027`@&qD=?2;sB=)TZi|cTsqwXZH!*ubslA<& zQE0(6d581}79A7j^v))S%`^lh>Ok;VQ3djrBO_FjwmmtDsdGsbpB;$>qx*Pt6HE%n#D znZK9b&+*!`#0TLjJQQ`f>}t}2IBK|>p@O?C&+umM+4@KXxjwb_UjdPjc|qVCbG5HQ zRCRQ}Iv-Z^V@p5QRg&259SkX@;(qPj!U`|G1= za5D9M!aa%vX8lW}-fGPz$}w9s)>g`!#9rcRj1-8 zhpk@>`qEa?ymbBm{Lh_n5yH}ZzMrE59px{xAG>aGrxtqX18#LMsn#6VPybbs-M)Qf z?@)F#UxU;O8Xie>l$~a0---SaFHjTteHvtzS8K<;%p*aBN)!*wT1jdIU4)}mlDvUY z^8}nEe(C@Qj0s7mJ{8;HT&=Lq65H-6^{)dpNHK5Dc)jC;zY;%sOT{}Pq@y+dn|JUMlt$T4{62w%GYHj#m5B{I-ZK`biCFRyc| zy<~7YJT?tLFZlvQACU5u7J?2zCl4izP9Ye_DQo3d!yghuibDLA!Z zd&k|u`nQQzZR3BE+ur(b7Riphf7`14uPu`8|HC5rBJ*$lmD6_XNeOKFyY~{n! zO>HGT#rmZm#3Cpi5nTX|D=g@dYt8ltg>s5tsFHGOTYJE*NF^_OV6>3c=k};o6B`#1 z>>3kvWBv1r)L;3%`HyD6QqJMHsIc*UVW_c0jfo^ctHF(Yd3R6}m?xGyxn1D%K1MeY zg>O{^r&&2%o_dD)ysl~7R`%T3aQ8u>_qnA@VW>;u>=3|R>azMD1p;EjE1(Oy?+tWK zmbd<*eZRrENw7Ia9?W_};i^RBzFa4$L~a)fp18;aFzzY!T{P#AqM|f8$-dU7lp45xF76Oig?fZQ~ILp zyX~_qzK0Vh3bQ+&g%z#3;_b^qG&;)qVd0%zYL-|L?Pb;fJcs5E0gENh86++G8mH3v zxb_d0OtVBvz{qx{Ehv^YOroYS`8N@3)os;jE7P`cl^ZkO7o6AVY!S)@g3PHhg5xfF z_7ScZS2<^66E$);-sx1N=%yOtIZYDSdXS&1zA`ZCbEQU~ZENVt_dl3>Kjt9oWM>S; z^ULh|J<8dbjftO@6RHXYqx!$m<vB`IMUPOs%y|uKjI3 zJ|Pisy}EJ61`=^ZmiiU?E}C1XVAeTvqJ%9vTK(?H4fLM`Z8r`vn6A%~DfUDA#^2X@ zZnkOXz>0c>*k$rlYgz~L+e0qf?0MO%{VDNL_F1FA&d`VrS~u#7k_0ezhjL*b|B67cxtp@|!H*$@!|ootKU-MylbUx; z$s^)xlZL%gHNrl_8#xHl1`I3n@a6u)av|{gj7z%KB4?#0|1!Elr3dPYHz%8ioCs@} zx>-R`jrx-0Dx3NbR&_S7nkmJi_$GVM)Z4dX-LO_}{&K{x3>c)1yDyq=fu+n4yn-A) za;%#4Y^S@d&wWL{#Y)nMip)*pT6tK}r0So=Rw_2`TpBBVKAC%(=VYN$sj=8fBz+;ne<{f> zWK#EQ6~4`#BwK~2l(-QDy~tk!p!`dDgoo&behE@#EF!L5FJlbV8CSbUVa1mcIi+&nE*~)b{q8|@hsz}qT{9hBPMqf;u*lL!fMk`ca z4<#vWX%}9rP|C%C<1YP8iI9Y*MxTsNyE(C2hz2x@M1NFr*(K5ZMsZYLJwPz+2rIkU z)zmOj;lc5$0eAGwE~V!m`AT)JQf)IFlCEsh{VhqMi-9rDMoP8i^I?oFqo^Ehsh!t8 zQ&6@GLN1jq7Hm%C%%)0xlbTnXx3l>5s%G4_*bnkGL&SqOTbd07WH(WFq0}_x!HlY5 z(IWKd)o`txtEhWd^U-ayeKu^(#nVph$Y0a80oBaNuVVBaaU)!APxh$6m8*nDXIckF z+YDxE;Dc{=yQ}okr--5Q?vjQ?UX%5^K(H4uA2vd5+s_Kv=MO6I7i$UKv&i!*e1ICz z#O?4doiTgEEn3PowR`?gEf&JSPSlk|O7pcUr{RnolbZ=pmZ9@9=_25Y+&ePd`>Ws! zTSiF{X<5$?xT}JJ?!r!&D~C(PWG)?3N%z&Yv)9p)UD50MlWBmh1fbJ)Z~u~k!w;K_ zT#*Y=+1qViKe124FJ&qbBP%2_L4z+s--Mxgd-R=BFE(Nnj_&T?)u+fNMI|-0R0DKx zDe6U37@-t`pB&=aUW%EyUNXLsXw<*sj}5UFW77+kh0jd*k7QWM>~QnU(}9RWBV`iM`V+8rIOv4VQuT`_$`SU546LcQiiX$ZR9RzTY|h zk-Gwhj+0^lZ!adl=5nmmFjf8u$?=frQk!|r^~Q5BZN=CFx)8cGpC+^@xc;5tc#d_k zKtA>MlJPqN5c^GAwd$$1ZRiNHK5Scp`Xu#7j_4%|sq#KV1F<`xRby>Vw9@2Bnm?=h zFjn8G=1Nlc0#-bMp6Yvb=B4bQkJz#^tt0KmE@CQ#$qHU2r6Dwq z1S*r-o?&F~8Rufr4~l;#7Dbx`cLX|Z-)DB~VMX#MY#Py*E?mI&AiUbgM)sy6ZDr)a zi?#=|g>m?IBZHjDsa%fKCSA#TCBOc=eAEuJE0~7^yWrrb+urX~qhR}(t$tnj$f*4d zd+S+PiBQ+R|K|49o;b}#^~XXu2EBf3H)WU&#X-CBTx-PETkZW=09{qe_0Bb2Zf9)Wj1JGTY(Q^oo(0~JLsGPb~_ZhUCPN7HI)Mxmi(oZl1{PXwas zFGEnLS{hb#9xid_`?B9lO|gHYobSzdR|GX5Su5~QtLwa<-V@y@&*MAV#NcItRY%x^ zc>k2}7^ouU(dObwic_iWT-Bm30xa}ctP{V&eR;Y4@yy2yXS^8NX}dZwHOn=8l4wjy zJKdD3N8AS}1V37{d6~abk$AV?;=Cd$AE}~hQste$Mi`yns$!k~CW&}>LE_a*-#arM zVr*}1MC?Vv{f!F57MX%>vX)G%@&=L$;9c&A@K3n}>G52JdeK-%$y5INV``RQ0$|~; zFiL=(Mc`<>CQNCY`mb`!p8aWlrRAPBu|tP9Qpdx*#El(hyVFDWBYlYK7vNX4tjaW% zTTc`?0@ksZz&Q`wNRWOXp6wsco5?!Cw-EO+k=Ny)YciA)ST)novCiL>SJ3aRYp1DE zE?-TyC9`Qz>Rje%fwo)pt4;IrXzEBZfe!@pW?s6eB6MO>rqwvUwlY@>&uyqdAgzD8 zSGpD;_e_<|=yl_MvcS8g=?f8Yj3m_foUNB_$|fDJtT{E6*lktvrHyo?xgJvtuP2W+ zLA$ZQ2)^Ey9&_++pzdTRw6u{z_9ABz>ygEG%>g96<>1WPd+C`6DF@BHwOE8s%amG?$E^ze#tU!(FrG@5VojLm8UBwg@r@T+EcRpOLf8sem zF!ONrrz@yl-$&et^bwerBv|vTQD2nA>Q^(Nu>8nyklQ!00dT2YaoMx%RLRRQA$-$58AoOa;( zgQ=X8Ru3Aq{oErMyf98MQ7L^uiVgYmN<;Fio%x*+P+Yd)NJ_*|zkZ{e+V>{-8j3G} zN18v@RG;tO{!f2KNP|SLH}LQEdO!SM|9-FcA6YBU{HwK6^QWr6ImP^k+4=45!T@nNdkkj0_jJ{#Cbsr#@oJdi`lL$=S z@X=~x`sgt}amKI5#6Mr8gkJE5v0X|l>Z#j_aVjc2*9c5dL-lU&c^#@#1~sRem23jY zh>l(I5pKA`x*wn-tM0g9T_4o;9)tP_fJG(d#Bf&9RP0pt&55In&!*=X`QF76u6ZA4 z2MA-cYRG0^@5a6sMl=c93&#lf;QDItx%q(o?RGMgkAF5G$1ZDg(c;9pjTocq9%emI zeIw6GX=mx{jR`%Y5K*=-Oq-y1#INmJ&H!;Ztl82@#qmPD>_@r zVf&Xm3pcRnZ6)P+6K@BlxJ_Unke!RA<40*sPZqiztHn)C0y26x(Nj3JC>+fwbP(c! zuTdmGjiA;gqaRLJ6tdD91S3rTSI8EQfXqJa})g@ z<+%3uAm}5j?)9jmgYQ_EJyTYgI>LM?SaU9fVF}5_f4NO=oyCw-^*=^?SK^58o&e-k zwVhzPrs-aodg>b9Hbb355;!X^nbVegvM+@DUMEyAX4`S0Cc z+P`#r+CxV9C2hD7Zr}$75ulSb`Szau{R1aallZQB;S7~%^*VARaEfg+miRg3VUy*6 zN-=16S>#(!KH*NT2=_G+G~E2!y;kM8yoh@oxTqxPb;h`IzY7z+=zP-dd=L zoUQzm{i1%@#j;Nj7QG8|&y&XU2~T{q$Y4!@cW-aa(^GPbti&K6@Yf|-qZQO``r*je zNlg+UBK}41Dp|J}oM=K3J7S7dlfsCmAd(WeBM1?tpC0Mu{j~thkE;K_IeYi8Chv6b z_gcGaWOpkt?{+#2a+;27%5*F+6*WK-80)IEZ!2kEW~9ogj&drJhhsv>X|=R67J)ig zDTE}oSkew9Q9%McBq>Efz$9XX2uYp?2q8d7LK2dPkkkG-Gw*u$nzi=4*R}uE>(U&4 zd4Biz{@(ZJ+wY3JT^9p)#eE?_FQ z5BGg$ul9mY?T-r>Yu9G?+En~8XO zh4Xjpx*qU0YDK>3ACn|)D0Y$0<5uL?!5gYvNsfDUqK`pZ*@l5f0E95 z8B_V+WE|ERwr7N}Rv|wnctK_e)Pfp#w9=*fqzwesX%ZPnskhth>eRfEoT0aRM2H2C z6W@@4(;8G$c60snr7Fh|znUnUHHqmavnvWzr2ak3*NL1e)e;F@n2e1t^OM@` zw7B~(T8~^t1qTOMq}U~gNwY1#dxG5caCUUMOY~k#i1uX4O{@Q{iP1@Ea8$FJZm51V z5Gs2&B(>(WEM?_OjB_XpT`j5CxsTyS<`-s1_tJzHiIiVq6zJ3*(1AtIiP}#0oBmY4 zeVi`Q7%!39DVyYW6o|ajY`icEyGB=uaJz9X@HvZdjI0^qG;t7PS|4ht{g9_FAErKw zXLLEBmHJr_Qha~D2q7F{dcy+0cj+cVIi&;P^xJMZND|OXY^qPqx6{_4kylo@FdRWH zb9Cw7AL6oy!Gw{|`}L?V1aek-4dbu?)Hb@!VwM3`HEu5ze(Gwmr_=u?@OE9geN8Bl zCu!@NyxS_$x@>C|I0r<{h1R0b=WK|U$|QtQOY|CqIXzmqVP?@9T6@L#mJ!d(>P>_$ zCdFQ)ChnL^)vfv6NagU0{A>|emEq@jTnZSE>4b;6vV_q&#H3VT1czp~Kd{gp+s8Y| zky2c!*}U5BeOoen49yOCyvnP{eoevm^UcN~w zlOdXe6MgSutACMpL;p$I?O_R(Xk(XZk4Tcr+dWBjTyMQ$yN=?m`^jvpZ-7o;$StEd z##;n+AkRpZz4A%jm)@^U-v-5^^r{qq#Ks)rmY|6~_r`98guT3QsG;7#A6)Xlhw+}3 zCDlZb?Ur}bUYp~Vr0EP)Wid;gEzg5r>BUGec0mN`Z#V~VfffBaZt?_=sV@*qAr_;8 z`sl*3=J=|TY~%e<%31_Sh#ZECjo@JGU-g#PdOoRSeAZ@(?xc;GegEPIucqRJVyGzo zJ8YpKHJC3OG>eQ2d~a=SL52QRT|;ZbV3WKihCh@NUpAejf8~>@GP~? z2eX-7L+foZSt|`)clWk*g_%b@@t|2COoBnd7j>O4>7#?VVt-T5Dl=&TNg&G%*K4MK zh?RIh|6KNCwYEHQ5dC>eC!7QVefi#fd?uRTy#xBL1=Zvg&~hqk;X+$xs=J}p3ObI@>bY&^Gi=s602aSAYFOLR((1-$LRoY35-%yeTispwPGKxn>oP z_kjhMAqsgfk93=!==uYE$qF9TM8qN~KnG_EYnK{)9xE#y+#o&T^~ck|+%cIl+QQ9m ziqe~7?2mNYAc2pe+HNW;w6yQViJ8NTSu5W>xU*ZNk#>?r2|(!76jUJAlgfKGShSp0U5kxT2kE=2J{|*bXcj z#;uXIg>xcNXKuc&SJV-e2Q^V_2>MjG3f?x^S~v1~;9JL3Sw?K0IAU4yvN3+4fF^>q zD}_7e&!|BD1BMGO=H}hKxZ;6;*sGuw=`-`0uDYU$P>NtlThCqHk}vK_kaos*!t-b` zvZBLDea^*3-ySfE8v5j@c*vd<{YP-Z5@G&6|7)FZ!^QQ9nlad>_dBwLQS2wm?t0@X z!Ft*0=%9j6@m67azU>s0j#?1!s$p6$)Vh2wyt~>|5jZI-a+UIS$2B&CB-M{~); zkrG_Uu}rd~%bDJGBREY3LkP&ZE`%qCe6Tme-aIM1P z#w_EUw%Xq`TQE>Wc0kyq`3h@cE&)WoB9t70FP7csDl~Vs_c-jf(8tsP#?kNxIPp*t z_`FTQ+6%)lP7H&5-#cw>vgqUk*AnJD{rP?$&$IERIhv7300EDi`70Q|Hy4nHO!xJR zTYVh+;HaHayDndt2pk#S7)qioXm#taa~ZdI^X^TFSS^7sYz00_E4S8N{yO?0 z7`dzEGhmT~|xn(+aU-|^5cZNh|%(Pi_qSuH_dD3T)l#1 z>jJ!a0(0!lVF7K?4j1)yOrd1spJPG~PgjKSC>M_~fYeHDqN$UeHx%~t0 zeF^5G4(R(qg!tykW@>Gu@?>7>ud***CrMKmA}0D~B6d{7g@@w}KA$dHvL*KXmu6fT zt7xR2Dh}ME^>z5V&A7Vh&UdUoXI9N_|IoYs^nn201;T7L%@e)53oNphbJm7!UGT<0fgB6aSrzNn; zFOdVk2xT}lUHagHJ(|0T&Uw>SXd*Vprz`MW=bjF1`fLxLG=eOMuCvsXH2Gh%nJu%0 zI4Jsn6%?t;Tm^HCtB+t=fzKBBi9oE6Vt}hm7nrg(oB6^@mt7aw=pq$%Q{fn=oA>W- z9CSb?T%DRf$E3%!+@2ntA$czMw51kr-Xf%tx5odI8)yH#FHCY-b+=->4rX`Eo{{C9 zttb^lh6WEzJIHZ8fE^ZM&l|)rmGk+|*DuuV|bX!lVHlB8BElU7DE98TKSI#=ipkL|*gvY8loVBghPuMi~&V(@Y4qU|X@;&hKzqz5YH3=bdk4)F<{E zcbP4PJI9(8>8&@o)gYzw9Nvt_Bkgj&h4Peh{{`8UENy51|1UcZZ)Q~gv0;o#erCsk zR5+8wTuxnFTGL^msQo)TZpAa5og4IILZwmcrD05ai}A=vIRVT#54ougbp6UcIq{DX z+P)z~pnVf60&W|HRjYOBX=DsQ4oy{9RvIfw<-Oc>g17vwc((-V#si*{;BN{Il2o$S z;ZkFr<^~yCeB0gNc1ugrghdgetB0tMH+sY#g*+~uK4z|=>pxDC9In!w8?wwc;A+9E z=NCEz*|ELFe2ZCQotZ}M{H?l;xGa_nVchS93mOHH%zjlK*;rB^h0T$$m1FrrJX&6u zbOP0`9YLB7Gc3DP^Dm-W)?ich8+^?pawOC1+W+{RXKFG8*T)R?SVfW7YCx?4FByAV z#X}pOC@~AM;}js44DMnfzIa|%11C=!Rn1x$@0A(;Ov~a&*FJ{wB!|iGzB}I~u{mtw`dWD=3E|Yj;$wjWX#5cyAmb`@M z$JIYECA-(^t3k`z@F8i}Z7);AJ!h-us6L@Wkn@9D5Njr;@3dD^c9K}qG38Ha6)pPB ztDje#V1V|win)vyiog*E}2c*h+jIscbPB zp%1{Qm9bx}5|+x$tDc)Jg7)mdYQfe!#_?TRqgX-&Yj+X2A@S7+vF0JO#9?ySp z;|iby(Y)P18~(E!cNsm)^uA87Vi(jlx^xXOM?fgMFHk z&Ckp@bZh0A87Ia-$kyMPag%QyQluVCFtVN)-_k@vHQHKpwmMVV8EMJ9$j{BPu4@R2 z>}`8W#@|$2+Kr4sA_vQ0CLxHffc(siYwGb2@SRH;QR@UJD)I6T8n*K zAFr&p`kpt&<^3_C`B>F*v|(oBE=_UZsKEtrRnfCwk;%)`}kI}7Dsw5tX*_!OG zIUX(9Ilcg}gL~K6hCfgDpRbxN#PktIoXdM~);YuV(P@O7T=#C+2rxS_ok1wjRlk=% zWVa_JvGDhZQ_8SV)5Hr!*52m>m(15SIWX+7`t2^=8Q#FV2_msu%P2PiZUt8M_f}kv zOh#bbM-}|&_OEc|cPwA|wol*9Os~N|!Qq5-r^Ok9-Ut@#6+_VvjF$`zoR^Cd6c(x5 z=A8O1?<;P4baSd+>LxS#@?S?|Si8@Yv>LR+u3uSAZITsvwpwo-&+!yj-a_g&v(;yq zRl}q|w$7kZ3!^f2r2*fE7Ed6Wa}9OW82?<&G;TuG>-oQQZ#_ugJu7B`Geb(3j14u)mkf=wluH9Nx18@CsrS;so^PII|FsYOFJX({3U((? zK-XJV5eQ_pbHn}Hup1PTca%;>Mg4flG!$@M5qIV`BN0KIm&NXxlAy=l;C6$51$t)1iTvyHQAr~au3)-EpI9qhGWW}8 zs6jC-bob}^knX-~>j%n%#g0Az1SbF@RdnY}2{jA@Z{biHGcgH{V6~@iHRX3d%~ike zp2u=U65f)Q0_Z@g53+zfk;6E9sNxak|0T3ZFt+P`Idh^n7P%uWc+;W#O}{q zB++!D_&e{M<~CNidlJixX%9h7qK`QjRmRG@k^8c(~Be3tA8IUqXYkcPZRgFbYY7O?;{k@dgjqb z*~4_%f9=JMlrTVp^FsCF6htPE8KW<%HM&g=k}8#R0q66_0>~0hj3~+PwuX}KR*sC- z)NbAXz%@ysimR;N`ovpw;w)(F{6jAeH)0_9D=BP;#@tlr#@UwvgBN<dXrJX$zPC z=EZ4ip~vpL5YAk;zoO&?$WTGS?UG;iH51ggcMNuAv+D4%MzJlY+TS_y<}RCKOn?kZ&Ys?Rv-Vg)fD!1={xUb}6ld6h+{!=ejdv(p?_*|c>or6|I+NG&c9$&i#wv=vW_cwtN& zDV+ht3}PR{vX7A~k`3-(Ci`0zaEIslthcg~_~6ST4O@y`<6!OFm`Ra%@MqO1S0c_L z>ED!9h{d}^ycL&w7&lT=hD|oSMeT;%tDLbQ`a&PG=a&=D@sq4;>u;A;)i^>ANS}8qBx(b*U9S^iZo*62ZSsJ+^>& zkNnEIIyPp|HTk-u#s#MR)Q!!zsl8My2@JnKCaH!nJMsbAq`@7l+CcV&N^c+atT(Na zX}tH@bxUuWzVo~8f=|a|$?XPQjSgJirj^}5*b%_+ra521sU2*WngP<~{Y$Q4mUXKT z%X|refbOJLZ~b=H9D*(&b^N*u+uzHzJ1*NllK@h~veK5eUiZ_2?IH0AArr7I)`!nw zTSo+@H}%Gv*w%H8bf?l^*X3AS^W2;4WSEU07C!r@##PVrBZ-u=MVtNi=SqC1t3Xt8 z3%=lNBYEY;=&8}IktAv<2Wraa?Xi`+rJDWH*p37OuzxYdV!`QbUDSxYcQ0RSp;M`) zI}u^L!iGr;So$_77MB`*Oo7$)fWHkfC+)9A0;0gY1me9;P3nVp)(a6>7yk=>Ev-T~i4=t}-C`B!#JXY;)T+h(Cq95EYTpXGVXCNBphNW4~ z^?FXyi>HU`3E=F@`L1$PS$_XMEz|0(!37&L8g3W{PUO((`T6LbrA@2z|HPqou_j`M zRvw*WzRA`zH%jEz;tZLXCS9Tpi?D2C-Ol@f0k&`h!^ckRSCe1ND1@S7@BOm10_XBq z`m87?mcf40RW=cnSiAEFHkbI^vd0&-QGiZ==Vdov&P%9Ly`rZ`crtFXVK#w%O~%CK-j+TQguuVyQs*x z+{v`phWWmCuh9rPTQ*J7?n>l=7eI)J1?pWhl8GKs;LoviRRI{DjJ+@o;AHrEb zT6s~jZ@rg;;j)rQ?Qq5$E@U)StHB-uhZYF zoibc#{&|YnyX#4%8HRf>xoPkmHhIj&+Sod_VkGL429ffPaP*GsLHBgZ>@ z6#b26EnXnp-?F zwc-}t-O(tL^tZN+qw_k0+B7$t+9A9zuf9&1dbGm_R6Q}I6B7XN4Izy*pA65jT=9II zFkyng*vg+?rTk2aH=AV@gcPlS9Gy#O>Rqade|*ja?kJVk!kpkosPVxp`&Qi4CphFo zxu%}0lk`adPS_ zaVAbqj@*1jxnInaVr9_Q_ZG2e4%fmu`)G03B9SbqTS`aFVqtb{bT_V#I6Z?`dq|UT z12vg(p1O!{i;~r<7TR=SvZV^#~nsdHXQ)9OQGsSpa z?z<*)Z*j^Hi=1V;Y2)^n6HV*D$8=eEbNWO{LzSsg#E;jnTItET0g%E>*luRw(r!+V z&K1x|xDblcLXSPDe#$7S{UJQ>?D^82mCfqhCa{_>I&XFIwpjwqe65UBg>2-|vyCO2 zz9&765V87!`U@sR?4RX;85PnujmB%n8@BiX(NV^rO4vpj#%p$8K9N??(I=KA(;scs z;Ru!i6`-YvshF6e(JTK|*>8QuPt&OC9K+@2uJ!tn>h@LyP=!>~ADj=4**~6sw3&9n zR{gZD=rojn)bb)C(x_CZimj>s)w;IirMSihof;o?a++7- zy~+2c{nDB?4CYejom)RRap=OgMa~PUQd|F=f%J{z(&1kEb9Iei@tnTaM3HKmpiK!1*DTRmt;sg-Wh${( z;~v&1`gTs8Og~?j$}|TGt!OvBicp*SGbt6v?h=mc;GUzz>JCg>?k2gN^dh%ZavwDN zbC6(&Ywy*RtgnSC)zFa!>*i%sDttw{T45fw4Qb9djF6wsw+2lFk=*4yBEaE%jSf#B zPk&U|7|SLQ$!9tuE{TIqS(kQ!k|8$WM{xx}X=LtD6k^elZ{O>a8Mqd6!Z z=46pP6^(+oji;^R%_fc2!qXXSxSV`cLXAd?jnmvo?wM%p;B}T`y@X9=wCX>!Yb1og z^R)W#+*mCka5?ZY9h+&R56fnj*Dbp2mcq^7cnft++n5R4Kf>)hlj!={Ze3ePhuoHDqAlW=`yCJnOib8e&0~=?c%a zlPjNpQAu&?csl2iLMsdx_p%oZOOqsk@R-MOOum&yL5kZ5c(ZbMm)smvFxTNk33D?|7j=Y#RaFqU;KQFN7tVzz@vFNyg{nnr@r^F+7+%pwlNqde@IRMG- z(&<@voek>`0{6n%sstd@^fz$A1~H9ZSq*c7gckBc^00B-_6Vxo4d#A5w*4KT3CZvm zI`C$W;X}<>OK7}$9?+sj-brZD;A>eAs4$Ldr(Q?lTSP#-6XY5xix9X4`N;*GMo|@D zJ!`Vn%K!+~r}}8{%cz#pD}_6xr`i(rf4j+d6?^Ve52P-vljYJcasW04mDTzz^2IQ) z_!RK$TCM+Giq}rltl)v1tn0D;bJlcIA8g1V2=NuMn?gh{uU@4Der9Ufw?Uzw2XVx` z)5jJhnxDxRL9rrH6+`^o{4So{sbhI48}55zQrJyHYB1|nB%%RoA)aN+i*ULR_fA=m zXgCDiiNo)E%soynu}hYiV89ZZuq;|x?Hg2ZCnlSx4Tz`@mlm3v?jW6IToOUdrWp-< zfZHH!v#grnL>yP%fXt)5~lWaIjN7! z(Vg91C#;$%5{#-i+<7g+_5}(5uh1%>-yZ*0`b{PHul3tM8m|1e|G7vvv$rx*{io;N zQTlPj&|gRI{pe0d^~obwFQaku0k6aAMFRs~;f>K+Au~CZTRk{TcWS$_)eEN~=~23A zJv(}WsvCTNRe-pNlc*I6mE4v&WgxeWJjg(8n+dyx6(d85mXm~=21O1=+F98_%88_9 zD~=;Rfd-9XQZWwQITQhfDnDT$OQY-`6!+9(-njX!tl8k1tEjO5CR(<7r>L5sc8GoE z(G%_FV&8&0A;)6&;aI4n3G(9*YBeJ5@TfEaLlpC{4vsw4eVdAgq?Hhm4bOgTE*v4X z(G$tmt)U3G2Rqc499?TD8NC8ybF6l$|486^Y0E1K^6VxTzm|64qjsG1uK!a0jopLF zsuzWS2uNX?^|j&bbjLJJ1cY3z)Aqpr{aUZH%$SRQ?GUc|KklI=FizqaPi5}6tRs>N zSZlTs8zIEkZ28l=5YhAqY>&~wzY00h@C9V6w-io@iP!Do)P!Cikh z?`gAts%*=tlB@lV=}AGpz>JSI|q;!afk?bl&Kzrd~?WX1g9&Kl(BRmm>ud>7|Y(c+mB< z{&3P6?^pX|*+T2;juWi#^FMRtX31oEQOCy)8k><$4*;F=mQ*v^gfTVWd6(ZJux^^l z(7U4ie5&oYJc~YGNTVAovcP(!no27N@F1%tWI?4;ouzN~#)94PBZJnhA9jSkM!zY} zugKAENP`}WsB?~17W2+wrhfMn7;eZ7B7HW1ClzgS*R>oZ*E@2AfyyP4$rETEn4Y*k zT?Qa`(La;^Ma>;(8qvb@Z0$>FVD%gnA3UM?1|3-GBS5(ZV5kZoqCj3 zGVF>w;}w9|z5^ny!Pr_BT9!;LZ*X0PS|o5scB*6>amV+{zGhBO+t;A{D(|3TDMjO- zvxQ0B*FhRC^aCwn{)*>uNsGhf|D9vbfE{b0rr8KOwI`cGWZaV7kWkiqib?w*E&kr* zX0QIWoWqrkgwMoR_mm9Lt8r~nftSTRoOO1hryg9RW?P|_zg6M)S+ACWRK^8bfMu{ba!km{Vh;U*lqX-bz1DpEIt`=)UQZB>hTx(8^L7UX*$E z+od&n)eLwxjsk>3ka@Xc7wi{jOA{rIY4My-9q-A#q>NxDsB?Rl3UtRK?;TwbtD=Zi zy1_5G)FA*Zb%K(n&hoJCI=r1fDoX3sz+Dp8&Xs-pWS;xBe-2gzqdRLyh!(|y`y3Fr z+_`Un&9@#lt_Ivsp!hK9onb>NO(>lX%+(kwd{KjzZrtO9G_y)v-PSygIGIzmjp=*P z2hU~0l{VX^@VS9db^EMj;;n`|PzvgLa92_9dGfN-5k-zolir5MV6!Ei=GP=pb>2oF zMRw!4iCC0MUu!fA0P{`)-lEVtt!7HZIC?3J>5@lAB7{`8c6$ATCu4_#XrA%O_yH>Q z4CCM_pv{$4KDU^7Z56p=x*9xnBwmR|(@QG{$9EDd>1i7dF_G`;5z#kww>v}DV3#F? zPPOTOo^bC3U&hhh&0{Ed3V51o9wUqMPw1sM;V}yQR39jYr6Yk>PUNwlo}Fpe+VuyblPf+QNd|RX8=n6@@6~OSm^ap=&gdah9gbGFCDJ z{q;&Q<27WQ+2??yitT9G`b7tbqgd5ej;^k3nc*Z>)MsMn>dslQ<45uj=#C$C-OU&i zU-BsSOC&JWZ(m+y)f1k`QgKhjZv;N>S6C2S+Lglc-!NRDac7yvE~_T>bLv5!bJ%@> z6PiAO!v+FJ`lM1YODw+|8uRecNBE>StQ!9%&QfV~*mh%cegf%W=*XS^_lweKC2cWc ziDlNK;C-lcV$>Ntj7UXMVNV>nqJ4Ziek}{4o44d>ovT#1$x5#r)WMEc!CgglK7r9B zm$_{KZao^f*%rv!It0T~=P<^V!x1>gdhn2wL5-aN@K^9l3Ist5t2@I$>(G0y1_@Nm z7nPq&yh%e^I3e~qO<>&i&xsbDZj`4u3aP2*2wW)CEZb1SawnpbV+aq?S7@p{pO{LJ z=!b*Uz%NcH9giDVMfK`|kdGTsM_)wMZj%mC zi?P`mtyBznmB;+nHn5;5Y{SmbMa)Zb9w-7^p^v~G4&b8gY*!G_#i za^%h947~*sQ$@lH`?xVNH!${vuyrC&aTx zE?V}nZ0`oZpA>S$)Y!n+w%iUa2T(63pbKH^$In_*z`#lLlzntAf$XXMC~ea2c#Y;G zv)*W{@13^i{Y}laj*d0>906seEziGm9o?*}J_-PemQ_fC;i6<;yrKxP9oMRNt-5Hb z^Wt^rs>qE1R%MCpXLS}NAxgZ)C4KR>N%x`g#!{F@eIQkPmpv2sK&_jf>r){+bLQhP zh%*`S;Mv0uc0hel^I(6*05*p& zf^wrbmWFDhAHY6t*{KlmQ)bHhbdKgqL|tFvU{4=2<>xZ`ZF-l}SL5Fe%q0^p_EJ-{ zER32Gb0rN%Yj8yky8Xh2Jte5*1^z=$n}5HEnxKug9&a~wk2;T_bVj?AO-=hYt%^GX z>vs0yKsLN{+#UZw{YHJic0M>dX#F^k1ZV|ro%6L}XeUJ9W-vF;0Yl?XZWsM!eE<3DiQm124^VZm1puYTD-I$@cZf(?nj4-OBYIEf>b5@WjT2fBK zF-+GWUB+AKp}d5J`%7ThpL=(@whJi7a)!nA^hHqw#bsaIS^PXyyt_LLVJ=FG^LeC+j>ihbqgqOli(WPYZTaEoRIgI5Nu?jbr-3hwmGc|G(-}0c zk8IZcP;{L-HsKV9hU#%y#}0%>4Rk*@5HvyBE3KH8>84G2KnFS-+;T~YsVWFVALV$q zkezF#p?slK4Sul)#9eT)2~q+AdO=Ckybj4FJDs*MR`yS)@}fI<<8zxS!=Q3S6w4`S zO5OxA5|&U!>&Qkw7;=gWq1>>Wlh2eHo!S;?wvr`xdY9r`aPeuvcY~hDRfOQMhdGR@ z7842m+)-H6mfcIQm8jpy&LLrU=SD*6EZo(FmWk1otZYS`>{`1N1Cqsxmt6I__@IKr3RZj zcYd{c`J?a=o|rDNh$D$#l;q27-^gmPKN!2p8sNL7vbqZ;les7ISMKLiOI`O@ekeFy z>aQTM-6`kupV;zieRpo*?{MCdrIb(37wCGH)W%gXs`v^@by>bTx}h&)Tes!Q&gwm} zebge_qQTH$oURwwEyqy51)$5t)a0h?!4SC1!NiGScm^3lvXm0X{xs4Z$P*hEo+g!! znQM*qxCu_k0R^)J$q{*``cJC$u2n->Gs$lz`$5vxVwKMi9XGuKD5_b2z&-)M$KuXN zN#95#l$W|ofz#Z@=3E6pqHt-dt&|HczcKJnG*jpZP;`?2FnjqoM{bGs_loWx&R&-P zZT6C@+DktFW(b(QJOh9*_GM4rfH! z=I+1hw&bdPfiHd6zdj)?gdy%r`8OxO-yi6pP2+4fT}~=?O-12)5c2Scwph0n;)qQXan-J;Ec+o8g)e=z_MM zInkuA3M)c!vgn;v4Uh8FK(k4F(RmMGYv%Q~moobUUrXfh>3dSujwbwzmesWNk?bnj(p-0GQjBhEoL{Z$ns0=sbCrTk zmj!({myL(jJpwRor8W0Ti;TWgZ4ZN?T-dWRb_#nNa@!4HFu#t1&b>78910A$lI{ah zVm#gP;3v*7kcCAskUSPqdeF_GbME;DnOyNCz13P~q&h-mLmyPr-fQtaaa`66V_Oyt ztWR_mrfYC%!Bb$?pxj~k1KK}kTi?CMP2rTNT^3KKWt+3Dss_s_$e*p_W*lYpi6oJ* z^M_{!TqQ^~eLoEtaHXf&%-Lz^*}}M?kbi@w2O-8$_C?e}nKz-GI9qv9orcy32Fn+! zeA+RNgnwA?YqGA`nnR-Bkm<&aPaev8go>X*{%xj5vV- zN3We)uT$;Nbgk{{W#~>4d*qn`$6UUUA>DOf;;hFtRymkIk^%!Rk+Lwp(J%eIa704W zzMNTBeK6GaPDqHdu_{aB{=jQL^2Y{_HCMUConc%ueqtEL)wj(r%<1aILp4jWVvH$< z5BSG}Nqu9J76~((L*Ek`<1%s)Cotg9-Iu2KR+KxcI1+3%{9+JKe0FHJc5zO7OKRy- z5;Oast*&{hx5_RyQ;iT7*E5lAcLpx0GDS>KKikJt&^$=6P3%6=%eICK>f<4zh! zX%(fhJ{%(EeZWdj_93h8V5LfG5i86~^}b*yu;4hYh6->fWBZ<2aHk5#b2t5iejn4Z z4^{pPU1O^U7Tm2gnUZPG*b}%I@FLvbCF4fi>-XzO%-Pt9J{lKvpqbQ3sPiFDmkB09 zzZ{*M0eu0gvvQ16IILQlTPRAfll=Ge6gK2pv{aeaeFG+trRTI;74qp9s6pm?`rT&S zrviY#L0Z2(Mh8nl8%i|SwK_I^-1>-0au;rlImlY5vpQO0sWZ<`O_CMF!SpO(!R6&# z&HIiFfxvNFP1_jk{JvK$Chnp;AHdnsG6+)XoJ$!ylj&(Ua3vNEerJ~xF70D>=?Dgh z4pY@H*GFs$!TjwLr5>4A^>#gd=D_XgNmHiG#Wq5S9TXgZ1ygj4H&{5#eu2SWs<7<0?|Y0( zuh%E)D(+_**YHM!HKIVox$K%8`bp!5)&Bj;K8NKOqEw7i)DL7@KuQBk+^|6`!zK@@ zg%-RBU~gLEC}}md5q1ZU9H~Y2r)l3tX?J&H3$I6ZS0%P_M<+62t5pWu z?)wUlN(KS>-ut?zb{JqctrY>U&ZfzdhSUGzze!A^VMW-I?hQ04H79Yf$s1w9mx##> zhs(98ljDmK*RHv;UhayA8W@s>M6jPr#mXVR%}g_WE0$_fSyo&&@ZUB&vn|`lPBn0_ zYSSkpDW4Jms7637-qmWdxvP>7{^GwKYtVnVvwyiZ$P=zxq$~4S&ln@(s{$_=;TxM_ zl)odyCCG`qaGY;^Dd<$6ZoR%v+zc$(C%;5J{rWxVVU1d25kCaM2}ittHQ-haXn9da z?%;8ig7OGw|9-|?pXgydHPTDTLv^?b{2P5JnegOQjF+jt%*ml|-ly5uk?Ru=P5ulYDdoC$p~#jH>|0KH80q$b zJmblf@A8Cr(vSp;4rm80M|LL1#P5O;j;QyL)Tf&W$BZzrI!ai+`l4Xh!4k*gl5P2zN$?9GiBGmyy7>Ag&g4rn61*F8;CNatW-) zdtLfZ#lE>3)4j2E?mUsxg;V=_R)GChwetu3mR#P9)~Yr*x+3qTiCmERMt_tSEUv*Z z54*nNA`!Uali27BJ!WBROF#}+k>`g{J1&M*G_8@$i!%7mO;s_I z#POI*RiO1sZ~{|6zHz+)nX!T$h2-~guVdBv_vv6+e)7Q!)3~w3&ZVzk=vj&_5}1B{ z+63%3R6~F4$-s0kXOohlqghZ5?+;j}C|+v5aYDMh>6tsBsdHNp+KF6(fDqb5JXXYi=)U`f!z9O}_R)YVl`!)cfW)Vd*k(RjoHZ#=0(3`%^%L@~xcBDRd zt1Wrm`RGQcbU(S};?<(T@D5+&K2pOhXTFZv6^?&}t-mCA!FJyzXE{`BmQkVxY^~1I zJ_WReHdB1n57|Er)u_24=^SSF&YNj&*?*VHs+ShTeVVboVj1IZrgAP87BFXF(k1K1 zv(&(ws&{+;X1-lYtbPytyjrA9c;E_f`c&)l~J zij^*oCsb%Q7D_&wwD?u;fQTP>M6$8W*(R60@N7mA6lKSZn?<9YS#g9Rnzq!H$$>KGx_r*qf77`>dfw1d}U;r_BV#~$|W z=-m6}*}KHL4N*GTM9w2R^~ZRJpGYe`seukzaIg^t05S9j$C zfuG_9rIrB{j&9Ned{UR`W4w~RESr*g);M&S-PI(}(M72px5t*KbGd*WUZuPyPMdOo zd}=jt-!Kc3s{0Jl#*$_8@$=@Av^0`!b?ih`6{j~iUjlGs-vwcFqbQi=vt$aI%_2+% zePybfCijLDojbXP&CiOcPGOO??$bVu9M-!l$c^TC`@!P6M_#ETNoVj(`VN9;KVB$k zQ>o#|GzGIRXrgETa?Pe^74JNz0p{B)3E5x)g+0KB&N?e&r4qU^aL@B2h6H0dMriHi+_$D!AmLR=ci;cQ53g9)p+AjYZ2rXK6ZCw|Wn#okKdj>c5aa`J@=-ptF?8cdt zPF^p2V-;$6dq^eiBa~xX`XHS8;!*n5unj{6JxB?%jxhz-E4S0b=DO-n6U-^pAU}|5 z`a}VM1sxSri41@WsPJf=^Ck6z$MMlwk@7A6EnvRA`bL_$%dFhV7)!?k%t}No?m526 z7$HI>i91aU_78y(zXN^=1%>+vb>sWVPD`(CAGwU&sf(j7SD5c{Z{_MH@T!Mq|KZiQ z_SC?V+rWLBEoh`zf0~}S1ArOUpMX6S=L^ow9P6$b&Q!)qQ*%E%hLvnZOwjdP&Zp@n zfp@bzYVi2HM15ZUq8=HJe^16Nl@#%3(1%@KhN_l*t!NDBHGnoL0c$TF)uvo|LjA7) zR0My?)GGo&zU(f?Bj;lsL&5=c7;|guJf?VLW7pxR3k`Hn90269rpI;jubk?}#cXF- zBO1_O;gim$#Rg*$`RD=*+qTV@Y;6}N;>931LqI*4#zJ9!DB`V*&1Y-a|CEjU$o-$} zxI=#(r?ejXd-3+aAE*3xJMQs6RsKtQ$ccA7{sJE1U~PPa*VV zOi~lzKcq5FU^hqPu1nwjT8;i%oopD{e<*_6@G86AT_SDwNBj@>`Fopq^6W&)`xC#z z^-*=ZBfVpcVc(ps>DN3plilN4-6owKNJewpxy>y{`FC)nlT6c1T(|!r^RT~+uTW@b z?q*7(`BNB6KP{=5ZtsENL|RRuXNzu$7ZnK=o7TA!)*r?>4H3GQbZRQR*=^pJDeTKG zSkU!ZAZ8A|5Zz2ApqqQ*Q1>;pNoT8h)tRxmI(;N@x#)12GpjdPm?wmZEAx}_R*mFQE^^#quC#;3ry zy_?+2ws$BQyBwalDz&DiSyaDNlO~6$3sliV@cvm;3A8MN4)LHXjfRS8E5Q< zl+aSOo|(>mqmSe*j9ON;%KGFFQ{N6`@bH7@RzYb}=Pcxj;TF$M;iomqR5wI;xT+Je z?PO*k#C=*k#r>Ik9lhO`DMKrsD@stkt%xx5kyV#aDf?E_irKz>nBjhQ?^fqgkye7t znZgI95VUccqvSH*iq|Y?2^%4Kg#wP5OzEK${olk|sU2K<-Pi)Al{|FCwo=EBMnKWR za8kyru9;L~C-V!{!$U2;YVlBpb?CCme{A|B9*f{sJi&g&-#9HFtDd7d3e3bTOMpe4 zwhfTG(RDEt3I5XDQY#8y@-#J6^ueCrQQ%xlb&Hxs z^snPb?5nLVv~qa5%R)t|1zn!cKR0vq{6XLsBn=Nqpp4W7*^(%#z9YM+qkNEyTCeCKpFNSQu%OyBvdVvpHf6P1w|82tlAub`yoi<%M<;%QTJ&a z6&BH_I7g}cbX&jwTNNWE&!hLfH1<0=`JpuMlBrbSe+ZW*2okz*l^!pk#>WbwQeN3C}%)qU5tyU5i{vYn%KCH=m&G)@#y0`2#EwHZRYOTgV zyLzT9YXvJxguF0aPG!2QP#3FGMUq+tq(~llOUV1_VuaNy&@NQOkfbhJQ$;`x5<>DM zbx}ZpB*h3ZyKcCZO z@Uma7C1{D^pYib^8P~FqTu!+Qt0FVAXsE>iKl9#k13 z9ce1MC};d8#s4ieKMTqv3}?r_Z|;oJ+S;zWLpc03qz{yM7-|^&(G09|79^kI;0nH+ zzAn6@YoV37B`4nOp`WP!7_SU8T$U#77r&jXn<5O`nZwdz`8fm}!{aFUzck+j(OWce z{rzee?NTAGtY0rX0CgH?tOj%N(Y?D6snq?E8Um`BWqMtKMcG#0?vVl_`P$OXMR3dB zL+@Tb%wna-D=Y!i9K5k;KUpA?8`)u6-r+&7t8BCPR7i8Vxq%B2Y>z4i?H2w`c`+np zeZ)rhAQH5TjiXMvAFs}o3Er`G<`Kz(&UXeFc-GiQ<{zloS0r|~Tn~527-)f8ux^$( z&Qtp%Q{D!%gTIaHXVAh!TC{K`(@y?4yM$L&*Lw@ zMeWJ=(f9?dxb67DBh?6bW?QZ2nxxZBU7qU+ZmgZik_KcjTtHvhiwpXvL2T8^=a&Yj z8Ahp2&A#{$(|5CL;!IslW|O#h^iwK!E4+#yH!DNiQ236qqY5E?dG(H)@>6bZu=q_e zb3n=%=pUgxH@OrP7b!C@Nh7{eqXaFMI4<)>mM<&{l(!+rw7?kX z_1x)wbr_mYL)z%NdGqLsX-)~lQUme4yx82^zt8-qmHL7&D>l(Rv_ZNc93$54;`ye! zJ)H4$D6gN)i20r22(ZVGg~4I2l)l`Jvdp*>>n&w8T4Y&6y~1RSlhwuAwlkWy#4!=pXIV6+7Jk?MkxJJctEM6QgvKFv^@ zn19HP%RikI?Pb)1u7j!m+^08o&D{*VDLv6(l%o9LTTMc$e!D%tHgoi+Rao;J$4F9; z>h}Rv>rs^@xGP7dXDfE8b08}6mV*ozrb?mXzUmoG!&^rBI4V-SWtWYL+b1VxM=XSp za#SyODSO)NQfWE%#<|+YiGuY9MmD;J5tY$z$gNpbZsahrI!D@EAH1(^IXAg{|vNZrcp@dcg8mnWj$5vQ=r%==HR-Vtz=?^%4Q@_Z}f!I8Axmy=+ zv0Rp=)v{x>%k zSY~X{-;}s#)oV#Kmej0T{MP3;3qrUm4SmvkLo5^M%(R7^U6CE*Rm9a-J2`ch*eh*N zsz8r#^Ln@Ax82y>Hc=)r;MD{H>}bt0Ml@Hzd5sggLS}fEtv3wCcD4uR8F+geb z?KadqYdDO+oyCHi7PkqQca-RoJOja#`^NjTdip=8rp>i7?s(EvWN7KZwrf(zQ08iw zpiADu_c=Cui3eQPDcmQ34b=*<7Uu!F1T7vwus!mdk+?zXO}CJ+v}(}G_l91B=3>A2lk?_s!iXw|N^l#d&l z4HixQOW?KzzEwLKYihM@qhCEQyczz&n}}8L{p$H@zZz)o*!0toetU75R$NjvD`#1z z7B~<~q6w!#cUGf@Jp0mpdG3z|MF0^+?};h@wzjZ23lZML;jP;&q+u9xP~sOH#{r8- zj!?_7>xWOPW;Rp$v7u+&9EfxcC)LMnSJVo*S)JqWbw3$QLdub&Wwt0bVx!`fM``S2 zz+|R5b}Bq&UtZUkRBDTVH6UOzeJctW)x_um8dkbHYk%V)yZLOCgB;VggFpKref-=kZGBd)Y#J@pPvCHHc#b(xwN#lQ$KQ3;I z*wK?>)z!7{%R=ho*EL^^3>DG5yH3|j;GX7b$t1nJ)>EJ$&qy2K+vvpiNmO)*zx=>8 zz=ergcfX+XcFmXDPf!!|mMSWe7%d~vW3g1iACrNPAaUt00+#<=(MA8;zg^M&djZRi ze+gJV{GS7sZ(}!tfMw18y4N?VKESVO0Sg7mMcSjf49#r7-G}S-uD9qdB{03nYoHHG zAu`AP8dx!@goy@LFbBhdwthRZLYzmM-h9yt9ZU(}hNsRl6?V|%JVVS;NR%M|z$JdA zp8AYI%0ti_R39(;mPG1>DgKTmbeFV=eB z<}Eqizl0_-!dUV#)~S0oo*@3$sangXw&JzJ!717_&@gv&!)8j`dUz$h8ErN5n8o5Q zj2jdDq%wG}`(3CcXsaNx$}56WBeEZ9Rl1B{G_S$^xQ5@AWp5#oSXK-`;0m~XP zK^QtZxtDyDRlV~{R3FZ`e-B6Tc1V$DCHYNY3)cid2R}ef9kXJLeWEAYxfhc29IXhTMNe2+0-WO9Llu8Qx5`HH|CxGzK zhuY_xE7{Q7WK!qs9r~q&JcPwy+F1~f)gj)4M3#5|L$jK4%wgz%Ujx+>&I^gUV@Qv8 z2lpcTnIRvjEpgHcs8-QS!Bfgz=Q@hg65lk+`~22VB1Sz+LCx-BpQy|Y>3b5AGq`ts z3l`Z>!xc1T3wAlW;5r>~ez-}6XKwIYwx;MWM~C^W$z~k%{4cv{fU^D_3>s`A{3)nP zc8XZzFyc3pBWLG#DOQfFRJp5lzgkN2JF&fRooU%zYQG3K9JOAo)bv5O>sdQraB+B> zCxAItwb&iGo0ml1l74v}2JUB&Ze$O=o{ZZ{2mvVy&}C&E(`WBPJQ2>VBHbnC*XI!ZUx|F**H8e_ulmB3GE| zr7Al4F_!(6xH<|Tu0UGrWP8nKVT|SE7n6&ucO6$5o0`yjxcw-erR9&&Ur#6cM`snA zwBa)!Qc;_<4R?7d@-)4m{29<}hlP#^Sy%)i&odwX+$j+>AVyrUe6C+|yVkE+PaH?c z&=ddI$V_dXx0qAwKuuy!Z8RSw{-~`T7HR(G1_oX~49nMc>ly215w3TV+^}dJQPn>M z8^!x55xz0%DG?T!K9i~WV=sgnC+qVZn^aw7L5p6aYG91)5lz+f1}v7v?oM}Qy4>X1 z&7?mrb`W6v8G&psQ2-CQ=BGh2ZiAFdY+1cYY28m*(CMWm%@I$QJ(2sEkgHK+j`g7y zJtk2PSYMsC?oG4}329;UeIPrnB_g5OCz7AgzP7FEWJf_iZ#$l@5cw{_Hx zthii)L4(cr!^{;_$SJR7@jP@0-8D>#?x?v1gKtyc(rjtkMSV<2KXp`^5DmUoKo!2X z<=cQ+t{H83sTYEG&bik&^#Q2my_L1aOK5TGg|q7N@qJq<$m)=b{kl5Zq&KdX)eYDW2{X92 zC9ZMnTENT-c*wvpN}%O9Ew-Fy=$N@TgN$Fl!1GRSV4;1YI}lk0I;>3Z%CDhSl{q-7 zp5`Ocr}y?y59f6Y0>2har{^a10Yj4Y>SETU3`39e`Dy6MfH!?TgM=;GPx%Ux72p8k zbd%@)Zt~pBbf>e%@!bwjh6pbiw#?4y*6&if2ov;r^y=-gYAmm z5VW~s?kB3R`X#UqY<_^1*sqdC0zI%dV6ac!1iaX>YM!=X=CZ_ApY*^5N8?~pE%mW3JIRlon#s1 zLIEXCPmefz%ac{AbIJ6B5&qEx{DINN|}1H2`tfvf7HLRNn^Qh%m&)>CwyK#N#J&Ib@GB&XnD2j zN$Zvhf!ggZX|**ecCyFJ!C$FVIx_yi?BnA>7fpBaxMOI4&iOLv!q3XniF25OcFKhj zRwaX27dSgvrMIl2YxrpsbY%T3WOn%Sy+gS3(!4B_G2dYlM_q~04*|07`I^HtGRStH zlZP{)$g`jLt|haaUDGhMd7Yn{A^nvK9meD`V4ctsD8aQU0%39+pZ;|pP;B{d8I2Bk zZ4SnDr{#{hyczg=Q>J$Nm2(}T4oX52_4!H|KEsJir#J);lykOXsrOjP(AZ>uB}Z}2 zHE9XqGK4(*imNgyRpIxSX$Pd}IWf*H#OoM%_Er_IVukLLXD~N#=PHcbjQ3w?SFeEG zh{db#3gHp!YZ|N*S$2OjuZ>=}Kjcg3l)YY@*Cc1!nh9|P$*as*H8w8&5FQNE{K z*-dO&+nkUN5&T3bdnUC!sjQG^?jcLYTz0mCv8rzg9?46QfIV;63vYbQn zOB}ky;*JUhdzZyZ-)Go=bf@l$aM92G0}=<_xI_d9eNWEGyCT)G(8ZEe^6xBc6e7u< zxp+q34;t$h-?7I^r=y||W)D5jG4r@f9!`8I=C)eDrYG>N%^hv2|*$ep-95|r>O?a_Y}d3u(922qZwu~R>) zYU@{SB0F@XqkD4}8XF$7{WeMY6E`QWHIqy=-qLhwYUM6w_(9X8O3DVMK;Y zXkS|x0tGbZ5k$VNg6vL@d(0Br(hp}EG6BnRFE=io>HMIhWZ`0)W?!wesl76zH_G1o zEBgH6y?14%P8(g!+sxxEoD%JFxDKEWkgDILxF+evp~Nmc_ZYhOdp-PkxI|Pub}$)X zA*yeA@8+E-kMD_%dS*Y@_q@e!QU<=`{8w)2v!OAUXG0r?TIB8BQ81D~KLd99$VY2e zLAWOM$9Lzt+4LtE#w(0VXap>0OW}7oR5Pa>2evJ9G)el#3D4kzY|HoVom?C) z&n79>F@rp!$TAH?C-w7|;ovap@l3yh~jz1EjcT$i=Pu@)nMnYZhD1!gftvcr%8jC z^z@~iISK07t>UIYYi5?+S@&2$3|91=9!kNTf3vyL6dfK3l|YQ{YK}mfkm;62AA&y0 zm)!ai@DfmXhH#H&m^7)|Co3AC#F6p23)Kl7ldixut8r6$W zSmYV@`|(7+G@%>4|HCua$cRP?g>b!*`gG3|^SQcLqg%oS!NRQJB#V+|FFBu}=Yl6< z{cmQ=VTc}l$qCE^M~9}EVeVEfj@>4Y4h2`#^Yfq0Kj+}krKXEu4F}pKy5k|l+~Ah~ zW&+Qn3%#Dw#N$uuj?q-EQ_4WFuUPoXZrZEDHgWdRH=-Whphz0B4N{U#UGizJkD84B zGW9f3PFXvE_`d;>VJw{ye^IQLx4^9A0L>crL;oPs>}PjtMm6uTCU3TFqPFHTuc3aB z;Vtk)z#1$@gW^}C)Jo4SmNPdLNn{1;3mnW%j0HbAZmDU&omR@swS3JzdEQvAqcC|I6nc;UB6s;ugiYaMH3Co~) zht&UF<2tYdsZx_x`So8E6vQ-HnUS4QJj4B@sgpkEaLn)-7B|Ulg?t)_eOS#JBv~xOVnC{rFNq}T6L*~=Emh%zef*|W_qtQFWvOoCg)gvrg+qS z$y#MTpwah5B3$yPJ+DiZnMKCT-Z88VnTZ^_N+^x^SJ zRZ4sfFqysYN1$x;;-P>XmEW0;PE7dKs|6+-MBHjNS#W8oF60cWzdS|I%o((I=@d{^Qb>}%V;p0KYTLd0qf3T&e0ZF`g5)i0;Ol#qKb3wu zX?8n=o-(!Beuw}<7`sKS`d9;U^70Ksiy?rV2C+a!ho|N%r`>JWgqgXg*n{Zd0M+z`rE7s;WM`eBhX{` z?L~OU!v{7)?l!-8fIGKioDz)pw`;dc%d@M>6^xvioDWvH}F zm?v_n@S>+n!AxTXCxwbWKGg60V*H~?!TRdX8diN7FUMSeJ^j-1Y1qds&s0+-=tHia z_|}N$I`m{1P1+y01|N6#GQ}9rq1x<}sw@e)K4LBx+EX|tN~(^nmFRWVJ;Sm)aA7OO zb+Fc3h)B=4Tt`%IC(F^}xN@-zR5Q+JRX|es5f0ZjZyn5yC~z~^NxgBusRkW@&>yMV z!1rAib~cg2x??Ln>1p@m!^})=ZLQWnEtN(-jwfXc*yTC9PQN@Nk)F8r_z=X}6+5HQ z)G#L+UOmdQG1}GL0!A_KZye>9Yor3z3>{&M-X7_hFcY>Vvwnk1<4ZTEn78sCjZAUn z#tgBm>qz)I#899hl@(3*SG+NamLv8QBlQUCD8=lroacEN~ebl#;D#rsU$==y} z&n_$;ztWi(0J{^kO8RPK%xw+Ah5btY48|CNKhNFPXV%m#k2!rg9ZNfEo(f=FcGQVy-$OESA%sPTcRwq|^BY zi2MEoO=*7nM9L0iv-js(v}L?2N9{MU+Uw~KHAohqu#M#xw4-A!1}t7VcQdn$;QfBw zLCS2(g37f+H!zQTM?UqNIDz4gOdJ}00Jp1HG{Lm1Uc^Z0XK^w|)g*0xY9NGdgRbqn zyrg4t$NBoHw^_fZ*lbo)w|h^Ac>s%ayDwBH6pmKST(?lY6(~YD-xa1m?#U_5x720n z%m+(YFY`XlH`x3nsWh;Zlw#k2kaGHu(b=_q8eOUX;xUYF6x z;+sc?N%M-=V2Mf&y5r&IL0uPSM2-&lD6vTHHiX#K=i)PC>{6WNKJYeCU)oz0ViI6 zF_1-bl)1#kisdg5#COm+Yl&Q{e?bMUOwL%_G?lj5_Vp<8a&hd(2R$sIz}{EL9Wg37$d5(utkucM+4L*?ZB4CcJ?S~Iao%?wvx~H-3;V`8rXRpI>&1#$Ms4Kq zk-)MbJj8jir>%!JR%igVQhec~Z0!z`;Mn286u<33V29FD6)52lR4~!;VM!O}x7?=% z78?s_>UYZv%~)wgZG3R~3*9PKAy__K+HET&Lt2*`qh4DE+-%EE9cQ2F%jyrtP?AJy z$KcqR5i#C%xnNoIK2Fv708Co>*kY=7k=Ym@!&P=rw8Sqr!|=vNRVf>{DnZH&?pYKJ z`8xF`+|oWpd|9+s7pKXi-0Fy#bq=Ab5Jhds(t|KEsjJe#%CX0J0P*!sw^%hFnP^kd zQz&}!9#KxapoUu?CoAlYn>p5$2N@P(J1-z$YKg@?OQX1z zaI|w#fZJ}BW_Hp&#&@iF;OC4x?7!aFJ)*6Iw8^V6IX*(AcQp8yHO_8UpA_1iDQ)X8 z`&|&%E{WuqlOwh=SQ=TRmYl~I`6r*dIf|5It61gPE_h>F?l#~>^9Q{PYt* zG}nb*vVT-iixq&$D}=qdI<5$!j>%}lwdCQ0a57&$CG zwrVgS*dt;HA%f8>XO&JB`;hhHZ=xe!nkLnJS|T_B=J<~n!yb3(r08SVEOSXQY(z(= zDCvr0ZIr6Rl#Zv)0j&4rVgVPnJZvvK03mnObE_B7vX8QyUvxO0+_=nSk=`*nsC}A) z+Ne8IpP|ZR&D<<9d!4a4mi5Zgc};u0B~a>PKsg2i@{Pis`$Uu)J3QqtwBh!%<_#?k1NM-D+`ZJ zObi=NYfGnUN7&W~w)QT(YL3vxS~NPkR2~{z&9l!hSxL&x^f@sOa#&+g2j-*y(hop0 z&j{g)v8DKh_!^^>iC*xYF|&&EBP}%W9sK$zh63 zXLm90ET?I3bt}|4T=TdA2exay=G$;d|LIPmh*ok0bu%*C1F%b-;}9txj0MV51>!f* z*w0lZ2Di)H8;)F>I*6TPv+h`&=fw??XZ{qsK6jD%nA88flsb~2df5ookLfG(NW&rx zzimnFx~r0vWujENq?OZyAL<q36vxFZC-rKfRF|fFx4R zI!7!d6A2J1m&8lNCF46@QXy}>F2N-5Y^cS;j>_@48pT&~sjupfowa@3-s}|?E-{j_gJaw>o zz$7Zny`wrr7F#N8Emw@u*+?iM8k)WeQY!r0MQYb+=njJ&9^%FGX<^KNZ~N>Lvh~t( z*WUB2Qe4K!VVqIUe3d9?)3egzKRQ0*oYP|>edm{-_*>=Ig{FLm-uV1S)VX=Pcxac6 zcE)A4`OQB;W3|nf=0Ea*n8=cXvFm6|9JJdPB7ybPeBSSJKwYQ&ivix-f3D{eUVZSd z>$?BvNapGPLAb0rkq4IQgi(n3*MDrSKikLrw&lO=`h5Lm*N5?t*UsaSGaDl8V&yl& z*O^*Ut@YHc*!*OAwfE;(ZPsr{Q#fPVz~3s>JJiYcsQG>c%Jk=$jrUy`rN z%h_r9O4M2Mii%}o-(n+IN5aFCE3)xI5mvYk%vs6d^Yr9YE^FyM;l_Ne4QJo6z8_k3 zu_6vDF}gu%6YVYWJ?>%jzyJy=Hre?7G-eMGPoEe(;c(q?oK6}qyjj+4l>pIiU8k)2 z)@Ih8&Bst(>_Ksj0s}7wep*%Q8Y&cN9F`eX_zZBG!~7|+W*v5|i(6~f(GL;-(iTfB z3Bp?bFLsy;{T4|nAv~YN+p&Fb;~*~!5!%3CHey`! z*oA%zhb0B$YR( zDmjJsYx9TKa7nGR)g!%2Z+V{B29qsK$?L^^2w!c&j44oQ+~&twu-MwQCy_aeLpgYrn7zt-W;>Q7>$HU3ZOGM(J& zz1}9hqH)!V6uWjyrxHU;)KHqDVt50cvL|fw_ckJlt2HCqu3McQ4xifC1$Vk?y+Z|N z!T_^^Z*@V2h_Ze@A<@-j1g*-*b?8nR>M{#m#3jPY!oBFGM=y#`_;q=_yBqUTd+}%@ zL?*D8vB^IrrwehiTidHPeEtt3okLbe{uAd6kTpdlSY%z+Hfk*t^EnB(Qq}Ydc5|DNW{?RI! zPM|nLat?lb@}4zn3MD^HV@^NnW$)$^2&LdDX!xFwHmSV>){4LeZEufKdAwOIl@Kxr zq5XIctpGpl_;KkE8I(T7f!pNBH}itxO|Bnjv}yETZ-oGmr8bbsChq3uq&y8x=$bOk z%{}n}>o?~~;9?q_J_wJvF!VpopYL*SoYjE^S+04lj2iRM7@XieohHG7abGYTL(7~w zuLD~>Nr5vpvIfV^q{wVmKVJ((FTnCfdR)M27>w5;d)K+$W^49AB3`Q^j(9y!@`tiH z?{Pjv)!pru;)HLPoF&Q8+4q~(?w7Q$rGES1^o7sYEPKCiFSiE6S0{B%ye%Xdvzk!c zoeWZ*H@tVf1KtO-l86JY5GzdY>k6w-U}c2hAk#TOhfa&+MAxst@5~3Qw&unYeYx;= z&0>1MuXkW`OolSR!Nv~PU+izPH}dJ|&A<{6424?O8%gTJ2!ThWS?-1Na|$wPvBHGb zqP8ieRFph8p5MM>IU{SlIC>pj$SsAS6=q}dC6tWKeJm*dYC|=qr!7k&la)^x!Nflp zt$#T2;HC0sxCQ*Yd$YEsG8a*QklK}9N}15&l5>9y^!7#v))k{K&{I@kqhZt#>1@r1 zgEju?wa3T73Y6gIX}}!d?^P2=3V+;p6a~)2#!R;^RvL`mXzR#t1e-Hy$SK&aj6Hg}yfO9R>nYraf$K$^E`Tp3*^QNkXsa*bbj9xP)?=hlP&$Yr2YIRo z{cS2jB2Ktb|8@aqv91cn4y3ssJt%OrI3k<``dxn z?z+dV;gz9q^_hX?0@j|;J=$Z&IlrKKpAypwmDLF|eo2{ej^1`V<#=EGWNFrNDwlWa zmVw`qx8dph3ee-clZy=xkvB$A(tN{}$O4Jc#FxRVzu`HCKJ@}<&QFk= z^K`#x`UQ$p8z}UT`{-bosePNhX+TzPYRp`zhm{UPc-G_*vj#j8?GL*AM#|@C|NMmf zs?vf-XC=48vum$J$|S)W^-^DQk%*955c;eRi=$++=#$IN5>4@~5Ks<_*t-G$#oDy~ z^W42U)49;RaDYi~JBHj$<$0!q5HK~EmOzplyxx4Xy68ebcdl8to%ib$Y>mhSw$Z#| zOq%y+`D0>kS3aF6=|JC;TqTE#d>e5&+&6mnMy49dPY!oPc8$^}&1|_;iWOSS zTiTFAFw2MGEpO>J3~M%eCjO+J1e|hD)z;iT`P<*haIK_F#dZ6bfS~v=?d=Q-l}2vR zO?n4)Nuk%dZ@?dGZT3EDe_H}BMF)4Kd|c)CxQ13ecW@W<28`Y*k6x${vpFN1*T8_I)kk9_hH!6%;ODs?_p$EIL;EUUNwZo~0%Nu-@T%H-dSNp;Ejbaj zndu?eVH(0KMvH*C$cfM0ytP2)u8V;OXP=#Sn-^DK=%^g)YfF9Va9A`2G>-3*5%p9l zRqv*xSxHw(LwKfM0>o?Lm&mQpJ+Zb&#eFPROpO7%vZ~R8fh;Ai&$7%-U9jJi7XUd1 zkms#D$Q4H28bIfNhA@fUvXFU3n6t3_^>;5auk2% zBOV8eJS+9%evVc1a24229>b=NrAW^a;V(;?Y$*%b^RtT$U?#*oBVGRj;;s?-MywSP znhzDgEPaXTNGE^X$i^f5P0!_Q77}BSPQZbmz*9)3-2Or-4 zxU-|_ru~95j#~OyITg?OFauROdU;;B{z<->kYSY+)-+e^kZlYd&q*A9mYu4tb6KjOo~kuR*%BaSA@Xeej#{w`dy zrMPD0g7{tFcjn!goPnCT_Wj{ckimUQIz#DqO(_|WA+~{aC`BKs2v`=%@_*0D<|T#D_aUS&z&r*dzmuvfdqQ=2G}b_ObWjBEL(bj z5z#RB6``OH^&xk_9hvQK+=LkWtW9@vaEGOv0`A#Ny3B3dS7{s2R+oC4to8ej31J6){X;0Bs!<`CB26}o*@u+mT-bc{mo?O$aW!f(WNoQL(IGju0?E>E{l_b$ru zW=-k{`9)EGyZwEgs+N!TLT9dB5vtAX25#VIlWM9WTN-^-q=Gkt`-TcR`!}N*fLk&+xaV%H()Nob-Z(nx!V#c^CJM``x>TAml z_`v{u&|;aSz!5*SmmY{Jh0L-HsClhyaF(Bn1LkStxrUhI+S0}G5s#v{ryQICHMg=Y zpGhc+t%)9a2ngr8=?m40+M*Hbm&Lk|7VbR=*tQ)OMIWvxe!{5PbG}ECY$@(Z@wM3M zWdN60^#Fxw!zZ=`J+d%GX z_NjadpZlgJT>TRUE~oDU%cRP$lk(8=;AWXU?By#ZdNWC;o=n91@=PU&vrwQR;Nj>eC&v}r;&Q7<;QeV0T)9@=pjJ{tASp3oms41A!n zEV1goZ%jyri$VTvdq4-PMv8}&MSbQ5)65|^lv6+XcO1;p=xW`5{x%x#QGZ;j$U*9q z%R^=T(!n-+VMl%g!}rj%3%XxGpXB`scToR{Siz}_V3t7=K(XF1;k#r%OHdp51`@8V z7-(iWXwJzVbbWELzX_mC{^WAVeep;7Kp-}2S1WJR4K9~Cun^y{c$Erm@^Qzfjei^Y z8NVkvIoH?PY)Og~=Y<4%M*YeJ@7I<;!r8~FQ8=nZbDp(V#av_iLM_8h{rdcjhjZ`g z_gT-*l-}4Qh1Was60`*nbYBMlm9GTXi)G$0AOq%J$m(BeT!*W_+R!X^0nPbA&d46X za~$kute z`4O>;Va)3vYtzdi!cA&(cz$KS(3S$5lo`E8qD8IH8~s$QuL{V{+fqII*wy}4%lsAV zwxSI9{-mCdJ`AQ8?2)&w8Y^;c7;qDR$Aq?SRRb0Ttm}gvvNQBYnRCS*TXXv{Pcz<@ z(&U_kp)fR}34*xGTn8)G@wBgR9w ziT(#G_xG`H%L+(yXTitg*G{5z^LxZQGiL~{(N*0y&aq{@u~>tz`6}Jo$Ey`lVT@5l zhn9BGR5{f-^;M4wbK9P)$fcRcs^^S-6(iM_bitX}==oWT8#JEy5}rNM$L|At?<&=( z@pR^*3t7quDV8k6y6lG4oG0!-fSWk&61^P2Y_;)P78FmCYF>=sotVX}TwK)&xLd7Y zJoByp&AR5al1plU?8Na&zmTU$#{+XsTKYXUR#xsp{uwph$P$rQEn&<1k&45_1_ zY`0R)nW#dQ^w~sYeI`SDMlY5bN{`DXjhbG0{mLcryyC?rHMJ!#@9QGVj>eAaeE<}r zSsNox=yAzo>f{U#3n74t{B&zl2vqQ=M(A`e-NrT5 zy-EC5GVa?dSW!}Ti;Mp@pd6Y8ua0GNhIS@XSvjarEVY6ERPo`4r*t9dext+O1p`*w zd;_}=cV<0u3AVhIrtL3ht$bxsU}xWu?nwcPUF~SqL6k2AxJcZ9G2feynu~fP1#F+z z-IVKk0*#+E*KwdNxdNU&^n_00tV8#ow^(f0-pC@ydWCf~wvMm#&ow)SaGq!1w_@7h zoD|Pc?&}9_X?r&p=2Fiz6l!hKa;k89vyntxtPYz9uD8b1q#WPFhKi!R?ChAuH$BPd zX>h5XDOx^-)|j_nTz&@53N+;^sn_5B_u6hrQ9!ere_{w&~IDd=LeBl*(*z6 z$gQtc-IDlZfk%?NvQnk@f#+r8iGC7376`Y|GxC9&CZ`!;LCjj(+>`TL;ea&=@?R5A zjmJ}aS+Hkx`A*#y3mh@8cpRpN`q@HkTjK~l_~exDF;W)`TZYu~dH1W_4e?`ISKx=q zan)Tv?AkRm2~6l&2=Jx1S5v-EcDGu5&h)t_2fp_IN*l15Zej6xnEq%WJT7k_MT-Vg zWUdTVRN=eeP)c?+1WxAUOaPFm+;oQau}A>4ipJQl(780^qAy7u^<#o0_>IZpZ}&hM ze)<#Nl=&)fki0473{4hNBR34MqfdmZQ|w<8N7L%#M!i@H-G3#wbZ$DO^IW&f=_ji` zw-=6UTym5K(F06Hk7P^!EKJOKjR%?b3t!C0psqvvfDqNfYDguZXBD?PYxp9T&2yoj z+N}B;E^mHA;J4k@vEsfXDIfRBq|xP3S0Cz*ZHTy+)jIOlHMtqOFO`#4eO#$lo(Xbf zXt-DP-?_X8t0T4`1Mo@cg9P+7kF7~?h-4=P?VL7s>6{?Ng?Y|^^_BPrAd7@Ts`sH&dK_DWEBr?jNZ9y;z5 z$f&Uoz>bOXGf5Gh_q1U{d4tH|Ui#7+8IO4d7EU znt?1YlZ-F$uC*v2gL%Hm1610mg}=4xjh0PM6UzHc-2?<0R(>E}`t#Ydr7QC5*i%b? zipkHkKCSj$0Bj$^jK2gqrFX73kg6d;aJx|>dgeO@^Brce$VJKw?+Lb8N8!c&JnwJ8 zTmU+4R^#Y)ARP?sD6}Xg5JPbc!j4Xtr^mb56-CtY(g}y;qiL-mS9s+N$Mj<6Q4e^3cGTi z_+_A4W9i1E<% s^1aUDtS-s(`d@tH1HLTdZC-DPMh-GB(}tIZoqNlyK?XuCc-alRE?@|MG2`l64vXW*qy3*$IP zv6q7hy~d$0U)OS9@8g*BM4?BM@g{t{XC+X?%0OoMcfD&-S{0{K&6!(l0K*?^FNhq5 zURUq1UQ2$cv_8vuf&mxjpn0V*FY240uiG4%p(LkLf1c1|FcznBt?nw@!-a@Ypu*CI zh>$`v-LG{o^%hd;vWyGU(_~hyalBC#Zg{PY_0w-L8gTw``|OwmWMJO+*!7I<_CshNb}{**4`hrL zc#`pA7V;8y`3WLDedv`mIl58X-Hl$X^tT_7&}4|^@o?lqK>oxJ43p{tBs=g;Tk9`V zssGCf8}gqvVN)?25>~;ie3ZEmWEn#R*u@}kAIB)JY=}S&j+G4yIy$Qx7~`KVwNzdM z9X@O}vziSv_(;URTLnYXty(u$xixNEaM(v(7)lq2wVg^vU*q}QM)_SJzTzxD4xbD> zp`pQ3yV8;=u(>q!iQM@fDfF2H!vbZFxN#$3hK#4Y%$pxYf@xHd>Ti5o3p8G<>CwJXON|j&Zu7SGF zlS9wpRY+($e7!Zb4;!rU)#Wm-h$q)lsMorj-Rsd3NTRMvM${t(8Nxf<8Aukc<4&vw z5>@||TEGC)7kcv3u%;rH;ZxMF{NSp}NOsrZ5M-MqThV8mG@KjeTAvva>8baa-l6af zt)|wxgmFN*shnHj5Li(R_@^fX|5BG7?5ERFrQft0>l5w`{m~4~;gmx}_dVTiBWwYU z?F+2SsOt0OnUl|Uf6qerNT^q2x!#=QTYWNbMCZS*+SDqZtH?+@2MX{_t~D74u*g48 zj7 zAawz4Y23Yc{Q!jjR?B(%>?<^J9N(Qx`VURms{VgIVZ;1~Cv4z6BGFlMhq(UEWfpHM z0w!##|I7(n?|)#zW_Nshv3;}VC+I%?Pv%S^M$c99J4kzLCrA^4f1a>$q-@pyhY6ea zqtpz+h5~jbq@13rfG)M-%>#w@GrPczBsSZVJPRR1@Jt0pTJ9ziMgV39920EKny$BtW-4`!JtMuCV*>OfOCn6yGoVnwZXD53oMMyT&Jr;-}d5s!up z&A#O{YTf$&qt*V-Rn7gnj6ms^=p}iG z20?fNEZ>u&>ShL(aj{2x$dYkW-_N`)RBKDj*C;;I}P4Y7RQ9eGL5VKMc_Dd)_v_vNKgw_-&7j0Y~XJ~y0?eJ|p_TfQ5x4f*!} zo3nS1YwFJP|G)d|j()pU*x#=msUlFPyQNlz7L+J~u#Q`q`KqKHt5mt976B=cBLs5D zeP@}%Ocj_8DutLZ4%JiATqX@_k!3}eAT2|StOQfLP;aRTke^9iIK>3ccEInoX`|9N|+$?E%CHL`>IsL6n?^F)#O2m3QUtf98!E&^l z5={Phcy&TX%g;2H;2ubWy+W+($RfjEU_v<=ojV`@>1gQ+=No)Bf`Q1v99$EynAecj zzP;c{Hf?|KXl8XD=vFEvhYFv9<5wW`F0RG{7y4c`W?SVzD8257af|$JH>IeSQH7E- zDQ(stP6BfnEcGMGqU;qbzPM`e9OWPnr!OEED6cMd6N26=-7`B2ORLP*>0eTYh%~}1 z&et33xEwnJiMeU=&~_p7YjoxzB{8d|5Xu2X5Ed-$=?q-_FlYhoa_5e-6kL<}SH=>M zi1j=I@f&)cDJNJ*#ISZVFLc5!sc|pvl3}DTF{7 z5X<+KVrjCGB`xrjU$?V`@G~Eui-c}j=izDVxQ9FY=2t&tR>2)wd1ELjA*?tSZ$!IlgaD>Z;L%CQp4P?>a{UJQ$hXb2R?^v{YWuqCyVl{2UT#Am! z^60qtfl7C9D~^P|p52H6HNAJLTUQ}y#9%f*;dg+b|@)TTvWxBNa@PDv%^Z~dIpxIoKE+;bRzWwGL9=2YS)Fb%q^2_5375^SU^Jy zkZM7GrW?`?BC}p)$hS7^EoKI9dP?Mclvr|07d%N~dy3ykU9oGMpM31MakUIQ7SQO; zuzBcRhdMO|>BGCUzMTqqqL39YdqC%brBs?|ylvd;P@UFea%>Y8-xFL9)O@3osPBs4 zC*uvinzE3}ewkEw)L0W7tQnvg2`V9Ks{lRYvN!Jnv(77uQ-qc2?kw>Z2CX=~s4UgJ zd{qT#3RZ<@0z3nYGlr)8Zg zjtLSikxiL(*BNCIrMgM9zWScCm;UL?__D~LM_ZmTvBd>5tU`~#?@_=vTEP?J~<{-ZlxL5Jq?Q_ z?6Gc=2P!paFQr(5u#kI2y$sK)ZV`CWM2}HdR8OpHn%e+bAj4;~cYJ_FIK`8Z2k7;z zP&u~18MKj2{+hLPoW^*n*xq4zqKQ?dlFkZ6j^**>`dDw^045@*L_`J#u(E7F4l|0O zWVOU$sW9Blt8vR8A^GS52@|fRfUFjW6dHSh#OZI+Yf{OTaXHyDj;l_pZ^d^_oNqQU z=K$Hkz01Dn zP1n#_qp`RcYBVdn;|W4Jy1HB|;p1P#9Y58t)eyoNUkn40%{vPVrwtY0MxE)7Sd2M? z@ ztHA;uF7#gdWJ{!dDf75G?VCuk&(6PD0O5Oj@AHbY{^@<@T+}s(B$-Mv80HLY#f0g+k--TXagde=S&>H)Y9U%EMWr<$ohZ1B zlBXG#+E;WFIMVihJ!i-fwgt%SqK@{+w~lCYtkjX=8w7HW>K?h4F;vy|`MVrsg?vkG z-$3-wdGgq`s|Q9dtIE?ToUDJUpFfG~PXpU0&c3U_DDav>>^>Ym$|ux`^JSDT6GW-gAJV8F)?^Q*Z|K|JMs$^ ze?Q_YNj-!q>9R?-C8hqQIVGb(kE;*-gObY?>2IXxBa#2bgLu$T#0Rxf&J zj#^C@y#|~My{^`?=!SV2of)trGw90||F#w~024gy}R1mgkORbx@% zN=N+LDpeFouv{K!)5!H;iBBSR;X6Y_z~^L+A?ae|Jnz1z#34z6XDri{QYm4g&U8%o zfr4yVJc_w+6z6Kgd9@6BVJW;UHyqDlEKYX|&9?{*L?a_v(SDA0iULfhs;gyXNjP_S z{#|}^7IAW8Xv5+j%jaJwHzxeP;v0T(@b zG4G8<{1pX*$;!BTG9Ud6lBW+UNd;S;uyl#;v|L4Mj)t&Bn32$EfyD;pnA|d5rO1qD zKTvTin<oAf)>SUo^sd^K(@x{kw)f>(U`&C0~p{CH@qe>^wflyfG zb!_9Hi{leiM9agRIwUqaP7`ut1V>n!-XR4UI11er-)Te%*9$glLO_X(1q|Xvl4Jfg zVt8pt)zxW77%X3HxDUdo%2Qj$js}-%9<<8>(y0_radpVSol5R%yt$zqiZVqgSJ??H+}HHYFqU z9{I|ogr4%1C7ei<*OD)rH7t`ng$XaSr9IqWf8_R_&RCw1>-spgH^_I^q??ppSmiC8 zInIczOmmxMbK8eREvi^fDK+rQhTj~U^=oFiNM-CtLPYnH+XQETN-XS&GxpSZ>WoBM zU81*PA+35+q~AN{N*02Q$-Q7v(A5^{(WoH2aijEI1b7-59;&Ei1VyM#;F*kM)m(JF z*YLT0ZDqBgz0n?aC2tD;!Y5>A2q9g&J_qvIkKzxqzPj;4#Nv?mA;Yi4M@s-pn@+?h zPurrdjb#fH$Tjd2&hI#pCo8o=NU^6&X;o%S8hSd{G>EnN6VO|&xl6gPOqZy0+*!)N z3trnozZai^vtc2Sc<+&LIG1X;t-02Weo{3^z3fog-{5$#D|j?g!jD(!SyGy3V(rLA z5M2u5UKq=KC1Mj3zQFJlyQs<(nSILXKX3Fk@B~HSbEcM!n}-$f^N~qH z3n}z>KE&J0&ZHz4gmMdK@@F#6a29oVO>9KB2k(~Nx$fH)RxV#vPd}QykGUtCWQy59 zDk&5w`Kpsus0dcELzN|Dfr$BnDEHY>rZ9=k^iX6y|OD8kL0P{VgX zf_)G6%)XF+lkk$*&kT9}(w@*JDkGF53Jl639VDE-RZ^yKm2mJr>ksI9_;kxC;wi=V}%uM}nC3zVKFR zGwv+b!fMm=_KcjyA#oTq0f%+z`7%}TC@3QaHAq`ao#8u#Gjsq2W^V&i0Um>~kri5% zIak)xp2)~A6rUnjreFox7Jn4IX}7GKX5imiDk^(%u#{K85SvUN3k%Jo_D}B+p{$_e zb1Ud*vV)zpLKz0K_9SDDWWE$fdsF7%Imxr*1HZI{F;|Umy$_L=gjS~GgcApf)<|n+tz8xDG~E}<3ab&!m0eWnrvT*(Pyr{oSf z72Lq=Pp^o)Of2MQL@BGFi-1BTWz5z*?G- zVeVk%LYHmN0VZ(8YD1R$n+sF`6wepr9*~?%uunF9VSXU{WtmDh*gl$xD^-;6V-E&T zgUQW}RT4Hjzho@VkXx6IVGBk4Rim}CD-@)&&D78kDvdKKM!-nCx3aE z`|s3~<^Mj+QU6Xu{>P7L;nw~~3)@;gJOALOw?;B&rxn1g)%NaYzwmd)2QP+S(j@5PV5VCMM zmi#m5g8+A?P)xYn7+uJIIPbWm5$W<3yL3Ahg~7Ei?4KZK;tPbI!un-*#Y@uXHF1Y# zrCWL+8C^4MM6Va5uQkEBR5SG!=ar~p!!z9cGVIuYl5Om^+hE?_t@%DmwOJip@KyP33XmB)i;8YOZ8IxBB7(_xeFaAa^y` zIW8!OrNZ}E$QN>g+`i79-WETraWT0Hu zIJu`VoahlD$Ai`Tv7#SrP54{TilystHNRBz65V1pneN_yCIt7D_!^|gLtf+W^Q+vL zYl5edeW850(PZe))`60N;{fv+k$kb-mEtg^aptrbhRr3M1^gx5qtEpW0Sk64KQ|`b zJ>9F@$CkOAoqV3Ns$foMC}7F#PKm}gL!)c>s$t&4AAvA#8LyGi+j1mnpvL#oE15p- zF?=ogDB5wkr>WH{p)(7ConzAZ^M2#>^2H2vH%^|P8Y39BIwXj`oxFTl`xAIe<;8g5 zVq{(UNjFwji>NAEvI6idf6Edn6F#3grvf-+ZMBRp884@nr&)-;n?6RUVXw5mTl-5z zm>e>5zs+UW7b!xGFH zbKS;;_Y(YuhaWS?Al>BxLbTj3mq_vyY3J)?Wue&q;rc)j(E4CYWxc8YV_w>FVshdU zs!wq(dW)ywUtq^~`K5;=Cufw!Tm2YJ>^sRFX&CL6YVJ2W*8_Cgg8E%X7IwHNZ+ zo>e@jt2_279^_`{#5im>tv}uVGbB$|bFST$?u2d2)?UHv6KSc6Lz9SD3mJy!WgXD?2UtYag~{1ElRJrzq2?z|UbE)bm!1)fY1ecX9cf$VdTmj4X>|rtmk0on>597r#@{67Cz}tXyW- zmIXeNA7t`X*z$I)UJ4I&!YX?O%Hy3lI|YURvDLCo4${YM@-2~91tYpxDf(2yS$t9! zYyUCUT3V(YePf(eUXJx3O4&HLS{ml9!}k>T#ofoOP|b?AXGCzIsAUtDu4Skw4Q8ZQ zL>BPohEQ+~%5M9zx_dK9|ugx-pv}rKhz#_`|;Tf!o)VE0y zTZgw#8TlXe8b%$6mjMvK&Ymea+)Q7GwIF1-y7cz3ZBB2^{K;G4^8s7aJJ}SRf+D3} zgga|GuA;sw-A6*7!YJ4D^mzEJN$3vNO|&C!Zhk1howO%LLk{*&GY=lx=^%TA7sFF6 zYadEJ76xAL+%QhfU)|m#1l=hcNQS>DP=lu|Dz8}I&^_wxUt1bHAxRs-;d-L` zSDh~=BleoF*5PM{ce51^vLoMZtR8fXPPE!XRqU`a^lsMi&gXm4tpW&dcz$!#x_T)k z=J^sMx^pDfrb|y4bL4yGfiV09l*tSlM!2`Vx}yy2IE_*h-I&+OK-WwpnH>vvz{-z< z*CO5yoxZY^eD*%w=edB_=wL_Rr6GeNt%GJA)&7%xivZ04fuv8lAMb+=< zw&FS=l*eW8cgm;WWsDJiPh2P!ohdj2f2rIUwtvqP7Ro6Ux59!%bT1?W8CNVPVjqui zB-Z(7X?F?C_#Rwn&ni#cN4+R!l!}A)<`G zjJ39yJ^1}kbuu6!;g~510+cIwIFm&;!2nQ{VS4v$6CvL&pWV-S8KkuM_|`GNLV1xjJJ|} zMeXw)7}333-UU7+kG^4r%nYTA_N2TKIHJ%hYkMnX)v@*$ktXXAJn>!VJ~FSp7)`E3 z9vFsbnw$fE^5Tbw3ZRK_JSl$6ZSX))s=U^+KUVp?cVedFN#&0{{WCdYJ-6g!Nf9oI za2B7k)+EnHPsHj0^Log8^60kk%>4L~K{S7M!X)adA76_#Dyz=h4$N`RENoVm~b~Y z(&VoAhdfH|p0@jc#nm#g-$qFadXG@7hY9*a^pA6?(l2TTSYXva>3HS^t7|>u)6hbf z#~v@FKfI(4|8*%CzgJ+#x<=VD;XKN@gKl{F;Z5{lUz73*QPmag0LxmZv>PknD~)(W zg8Uv(=3s61m!elH9CGGas7&p~1k*}GJv(qOJu0yts7L_f8|^q!PG=O3DxfVfAiNY8lp z70X2{`Jgz=uW5IhwTiWI#@K=K+-;|m5rY%vZ=4@w)vkYJD(ebdjkE7Q(uh4iVcp9m zi~5snQ5?|V@f__Y@kSb{>p^*Sil@P+ksVVE+Vl0QI(WwR{pjc)zo6bJD3D7ppLo}t zHb5EsuI$A79#v~5bVHq`tq zVW)EONZ_p=e;}ogCkaen#KQYrFVBzFrm;uDVW0;CX@+HPZp$r7F)MG=X~AK9N=%N| zuKngR+daKXU3+;|JExODp?%Yxf!uyhZb-IkGb{Qu;QP&Zv`Qp$VpTu@Kr|2124ezI z=-iD1k^>Mh_S4`7ykEQUI%lQAz}nS={QhtuI<;{p8X-o;)M<0ictPkm%irYvYW=*~ z&TFAt?botu;S`CxMtws8IxeZdQWRIl2oT6OT;6~*U)Fb?ud($Nm6o2rME^(-yFXJ~ zazXigNv~0<209<~W6R@K-|5Kd!iU}llq53JpLAnw+8H|uo{>(7p^;HYPilf&;V=7z z%!j72(vxHg(rT7?-crbpsS)@jieP!L2=YI{Vca@7cDgLB&e7E0yYs{_)#Dg-a?Mj~ zy*6*}mddWsRM7ekufGaNo8;!y#_m7lyDAir^s!1{lCYFzKaluZXS&DvTDC3=!H#sy zuzw}(C>Og)&QhGvedq2Q@8lmpz}Ww;f)!A2E67o-U%3(O$UQ+$F**!ANx)>!V#9P5 zLo+z#n|vR{2#QFe;(cn{`o%-Z~v`!lJ>9KNvw3>??<;D`52wZ zb3d=V6Zlo{Y`bT_>VLlacNZT$XNE(a9F~j|AqL$8NIUBrY*aq4TU2~N?jJ8lmn`ee zEK#-ZqNkSHzuj;0!ThL6Sdra%?GQ~M_2v8vbkkKDaQ!Swgb&ZkF9TU+vUcL6FELeZ zXRVAAS=*mnrZf7Bsy-nEOT2J%MR|K>G=naix;|+o!)IqQ&Nh>P5+R|5|F6)kHMz}h z;Qi2+F{;d~TJ$+RmiKv};7qCP_2gJseba-7QrWcaSJigw^Lf)%#&z^xpqt@8LpRr0 z&G7RQ)6~gAbQe2}pV75TJol%oHy}X%LFihnbj8923PrGiEegp>B&EXs$P8xvyyD!7 zo#-!%3=vMb+zc;+E7r@OFL{--My`4BsMUTZ$G~M}X@5?$W7u?QL#v#w=H4&LVaUYg zxGa?qK$5^BMP62fTHx;?VR4-RMT90GBk&7wS*{LIDIhT)wJD0-)Uz;eRBG4i@b``I zr&|3i#b;XdWe+oSiB|QER^^6w>6CkIV!GWKARSCD7j(ai)VMjnc zgNs(sgb_C^zE32}>lNjkQd#5R3!zd*xcz-4?NppzcVh1?UMob~l4)$UOA!mR=z}iz zn7AO?{iBHA!<90D<-oPO3`re74&miek&&VfsHJOQg^z`Tue$(!TUBnonErrD z+zx=m5S-Fx)n6wDdtw`JrW=*h^WX@48D~(DojE*uz~i-*)V?`+96}70d*ezDjs z_=r)!ui#++{2%BW;%&_;WFhlYYCGNW5%~ToZ3z%ucYn8C5lTKNmEMtP9qZ1CQxpm- z{kRy5XT2+-t*xo^KE*kyHdu%MK-Sg$b~pS@AW@DuE>8;nb<9?Yin^KaiGW)4*3cv#!*B5}GxCH|B&ucud{ZoEP^iFD<0Oh3_?DH~ zY-P&a#PLRF4*&ACcCnCQJ~udN%lJpdoh9+#N}qjwL{|Z__)*5i9JXjQ*ri|;r+2PX?}u)k@qKHbr{SJp z$?q6{Bm35){UKx^Gu6Ng@TzJa&_t7qAm?`|@|W@3YPQ)BfKys9 z$C^=PNp*ZLp#`2D<%%B(JR?|`K&Z8)O>2>V5Y8a5-10x+H-$Ys+#0~2Crj=2mvw=) zYk*ur>*jW~dd`is8l>KdSt^$C$)LHtcHA_jEeaX=VHx$c{AK+1ct6<5cdU{#39O(l z5SO2cEKJ#h+dBE{C5m?QuoRvv^eNd_)ydX(h;0rgg?b&BGG#y##B?&U^e`Di_Mz*4 z!f$FFE2Gl|j5Q_~@)NW@Xxl zxav>%ZB%pPQ$s6fP{iD_0j=O36YS-#Li=uy&?OEthz}eh^w`B#=t_ zgDOW&a$b1JC%+C#XbUypp>wtC0v&g1UwQA!yd=6*^QbnWybGZxFd+%JyOZroOrXZI z`W3!_!^)h~@wOxF*~ML~>U1rpIDs#;2U5grpK`fvYUmf?5~D)=5a_ceMPpQ7`ksJ{ z9s9bMCcSQ-%2wm^cbPh45+YX?i@gZ*$mVinPI0px-j^_wYW;WmhWDI*Lmg^OMAC7? zZuS30-x#{AS|g>)ZMnsKaoH*_&EPfDL^4PuYdfHZvpg#&FuUmGd8}QkNs)>V{a=v{ z`r_uVfyx=N-YemBBzEF_CUJQ_`^B+=zCE`$P6uK2p9N8!~wQbxw zOad&6rJW-}!l)l)2!7ygyZ|J9YS}7OV-9LE1%guJ= zhJlJuJMrIm+d)LZZP!`$CV1Y)yd)rj(XL8~w>QywACRA=F!-$aYXpZ6brQ3VyntG~ zSKDdv2Rgq=UX9L^vx7`{hW&~}#ul7m8DOkNIMy+0=<9TqD0o58QUP!z;=6EIH;Ap> zc$9Bw($ezAYi1rPii?#-{J2F`(peF2x)tqd)$#GCw$vt2=7?u9DGx6}(}M=R6%C`C-lv|fsPC;9EgDT4;%txm&@5Y|katlmBn z+k+{ps1DWczrfoBp-|BDHW|0#0}d*KvDB5kKDHT-kEo;NIC30vYe3f&NSwhH_xXr8 zYIGN<_SP^d<-pUL{xnT2fR(lVcf4(c#vUJk(Jf3wPsAU^LM5fK-W2j@g9;^v?mE3( z!5Ia8r8(EMzi18k54`P4(QYr6s60HkyVI3z)^^&1xP-*p2(6l7&O>A?O$M+wZBhsi z4(U@ss9%%{ttbA8w+(bg;`KA^;Qr`I&BGQtZ$vkt8XtJX(0w37)6f}!JYzR_A%&lZ zIx4{tWL`C6lHJ7awP!MKqfc|dx?-r*cVcfX3FbBSz^1&?ptsc(*cyMeHes?m%N^cM zP94P69)Vaqx^jU|-zb%Pa9<8U94)8|HV62tBZVr#ZHm2;UyxgWv^P5WBn02@Ly=idEsG z5Y`*WmUvb(us42d@B&Bw9W_Z8`;7@x547tk6t8-M@=7VzZt|PObNXI{agavaPDCF& zY>)pEaNCar98WD4a%!qasST~(Nu5*=VPnAq>B>a#p<2fk0obRSE9$Jv+!9AE_2}<3 znm@*YDurQTajhHIkad=geD53w9b4rN_`dQ3dHwzI+I}QX7hA%*15v^za&SF(RGZf@ z1ucf+PNh=U6kh9>9&Czx_8;_=N&lj!EdSYmp5p$`dP?@65!}@my5HrUX@2FIBNDNc zeJg$M+?JMaKmXNV|36UAT0Q20*q;GL0$kdP7Ag+QqU{&*N+iBsL;5ak_Z`WTf z&r#gXM+Q`OI1J-;Olm?rj`VgDG^IidD`W?PE9;-#;tXB#hptsdH+KV!B5LP(TU&M_ z(=6U^fPX1v;WX$0Vf1Eytgf6xCq^f{fN=8QMcot1If^TWEZ{<%gsrZ>u3BCA!xW=M zvwt#H8Rbttv02E~oIrcafzE;vBMP2w1EPCB&a&|_FDOH}g>

06+0~_<2$<@)aD9 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 DWoqi; literal 0 HcmV?d00001 diff --git a/testing/files/root_file1.root b/testing/files/root_file1.root new file mode 100644 index 0000000000000000000000000000000000000000..967f8edb2102cea3e397b082c0511b0c0f2d4635 GIT binary patch literal 536449 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

sE%aBwsYV|R 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 Vc|9#jh2INQ<=`gvk$H)7YQXuJ!Tbz`&|Vq% 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

`9w{D-3WlmEQ7&48)c2u1PJ0Pi9lorHF+@={!iU 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�T(m&v90S#L-)X`LDz*ydld3Z1sMDbc6cDUg?f2 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 Ch3Q5B literal 0 HcmV?d00001 diff --git a/testing/files/root_file2.root b/testing/files/root_file2.root new file mode 100644 index 0000000000000000000000000000000000000000..17abb58f5e01c36af28edf5b1e7c9d5c6dea8802 GIT binary patch literal 536449 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 ~+l4=f{$q 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 z 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 z⋘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

`9w{D-3WlmEQ7&48)c2u1PJ0Pi9lorHF+@={!iU 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

S+1<2f0b&~lS%TCk zLEjYI8+y62wy1BG`9|)LC$@Y%VJbSQ8|r}yy@8EOkR5nIBzHRrHMg@hFC&rT;btl& zlbyI;sTaMgP z10M%G1pRqSlIp6hctTsGc|ZP6lhGqV!Ja}SQ4wVcQyC(iWioCjC5uiLBAE3)R_)Ly zxjxBH*^zK7ecn1&pE;FK?^yfU)pNUKJn2XC-JY$0he5{TA{{S4QN7W?Ed!8pP%SyEgPG)Fty91nkEyx4BlMWLCV zJ85x3(F0)%y50T`N~GyVh)3;P9?)Ye$MRF1m9shx^2PWoNReIg)39xBxH_l___S%^ zt>l{dD%%}M&X`d$hzu}HZ(Asr0?|y@8vf=NzPxSE;GY1(%)M_ywlZO5BJgGK> zC;6Rs@Ix4cZVcvAdgiN}u#yxB6oj%Ia!d1pUptTB+BYQrkLtV54F>0kjVoLCWgH=s zTcbV3o2XA!B+SMT9P^wVAWOM<>LAdjUC8$yMH(sxa@FRA;Im)#mf<+A{(cW~vj;R> zC*U0i?q`g$n{_GJAEDY_{kEWbNprJHuK{9XZ|nJ(gdcD6Pce$jvi8I@w&7M=A0KR> zw00O01fKv6BnhTV@7ec04YjJpqNl~?Dn1X=>=1$ug1pAZ$6OfgeN7ep0F5@T+tTCq z+rCqpMj)QZH{FL4b#wA`7L6}~b^Cobw8*nkv3PK_9y@FBd0C4!IS*`Mc}7VNeWu+k zCo9E=*^Q8$MrR)I+J9d3jgy=e&HZeNs^Dv3`RRj2rL9+>H{}j;j!nRG6Fz zrQTo(1krfwT=mLX+mz!lcMQU%Ya|Rvw*Yz5m|M0kVP+w(CnhjiBnj~!rU`^wv7R*6 zV`#}_&ZL?~4yR<{`-5wwU59J2(qT1Y{YebLy}ocSy;K`dKKk2PY}R3+cQVedKaVy( zz&4qyf#jRixYDPJ33gysCn{56e7?kMI*XG+K-pwkOkXT&_B6YfTJFdI@EUboCMSw! zCg#c-ret|6Yp(6ieo~2dEvrQ15&J*oRI~&8TV~of*G4^@Rc+gG;6uZJX7 z!AN*$BA;O_2O0KxJGIR5YEh!@LN-KFX!DR7YIV(vr5h!wOfsot+X+IWzKoMUw9Pz``1KYqF^1s(J5WSMs|fLgW*71E}qoC=-GZ4w%nZzT;OJ8#9lk z6M_$SyLQd$ibg`y(t326MoeL;i2=+aGp`%Ft$g#I9WT?*sA9@T%pdclqTZzq`FQma z-0X5}3U_qQ(+-(6?!}g=IK{HD`bCzrwY<43`a3BF_XI0E<$xNIi8kz3Tf@@KG`6J) zEJ{0AwIQQzoVe>)hboH-H;lTAQX|k$sOFBLOAkcnb%N+!!$)BxsnT@A@taidELQX} zttxF5Q|aZA@`{~eBXMVHKf}1`E}Wu)bW0QHw&)iX19li0&=YH2m%$+=jthOOn@zkd za4;7#XzXpr47*7^lcmK`)2GWEqUZCPOH;XDHgRwiAz#&RqluHfla6lcnTi@-W8kAf zd8c`gg0%Xw`|-}Qr^)Id3vV$b&Vz~^A|pmO{v;K)k((u|R4 z(wJ5%7NG-5R~DWYK&0r|tURnHB=K)6zo;cHDVQ(a=q1AGjrtNCAuPo0d zyx@nuxU)^Z8jemk3P$CzTKoE)`H_4zGDfjMB^2a$$4ebUuEQv|N-BHxZEw6p7`ytJ z_=qS1RID<+sGT$-fh6DVD_JsGj?gj&d5xMs!(*7)!EdC+qqcgN({1`}e!Ot8KoL)= zi*4_lDq#dirnIC}v?@CF6}ao1eEu}sZNpcJlk?uJ#j*{mlMHh{qW4{F2xvHcnZbwC zO^d&pnMLNFJ2of_SbA+>RKO3JbPYQ%v}be*9NVcV)Jv=2d{{-U~)qOE3KI<#mYz=gz%2 z_s+|u{~R_GqSvC#eJB4BdzNq5tlHui59IEb>qk(?CvjKm#>tyaqqBjSk@DcD(f^(| zgO$Kyqqr$(v!PFWjG)y@I>xaf@$_mBGlWM>)h;(8idTK&qC4#z9`V>SOxJ6;i;}J1 zRVs3yDgrhTCCeLc%p7@ppj(l4dCy31Xk*?Ju_Xs?b$FhrytWWY>jUn1&;2*3sAo>^ zkrxvfE|7yT-A8N|is2=n_Rgr2#`+@Sub9kN11XW?CSDYkC^8WeiOQw_q#s>t8 zda-SK&Ot1m|J1kyQt5nFRnWF@n2hGr8EV6`e*&HW0geFjjF%sJ#Hy(ISrQ0CS}4yu z>oeOC5#7rv_wna`WlfHkdL8fAE@Cwmt7l=Ne_i+vg;{KO)IrS)4?W|QPq(^nm*nK9 zGG8ntdLg9YX}$eNB=Ep716^*a!#;U_2CQ};XFlsfW0mU;z?&GU8}V!(iCUnp*WoUw zO@}BMD@z}vH2EJX`Vl`jgviIJlE@*mU{*zilCPi^AOg+pv)LmOTIqKqz81RIR>pJ1YCJnypN zA^aC;r^qbqAJZQX)1aHdPbnXdDJ6^`_v`C%OBF}{0`2_Bpcm8r4BK5(eBv!56H0R% zcHWgajm@k;<1@R6nfbh5g&w8$Z?)1HP37lnmFwmv^{Z@i)41;<{@ob7BS1zgY(+eE9nXE*4)+Y8YRzJMYE?i~48=`Tlc{%V|*rnx;<=D7W# zcMb>JZ2u$>1zOG5WpZnhR)ZI(G45~(?n+*fF!nBQydtMz5`M2U^gPt1H(KWokzH?$ zZ+PbXABTyw;6{#-$_tPO$b${Z?kj!mG29{j*W5Ak&6GUu%HBN%#iUx&t`{6>8jWI9 z?~_+a^c&(!yqL#E-zJ~45IX>8y{YaIu~Q$6LH7%{e%rmVyS)!;i1hOglBqWU!g0V>hV70Ok9~k#d*GxtFH1>A9?nLUA%VY^YSh*qYE>lf{-C?zL|Trf2tp$Z2fOSB_k4Sk z{OPd_K1j!jje0hMPui8eee~f5Cw=CCG~cD8Y zceurClFe-L0Fi~)(jatNs9XLlKzfR8{PbhpviZAtk(bIlkOy5z=L*h3Hvy?GwR{f+ zwU@}Gq$GKFT~ZRN7`Li=@Xp|*tY0WvnwDmNFopn`09mDfs8~=kg5-g~#+?@zlSoy~ zi4v6;-Cd}VRD0V>>_9+Zi}-6<%yThum`~=JI3aIYH{N$ z)H+QiPm)XB1ofa=rt5;le@+Y2egO!M1-x&kP~|{OCL42CO)iA-9NCO#1k#{wq#yLl z%+rmU$#bBEh$1RBs1K)>+ysWBWD?S_{>vf!>+P5W^W{?c!nF?l^~zPXZ&kTlh9e&g zeFa*6-y@**+QLrN&V;QKQ1{03ey~)?;A0jgRL3YH%Z)?-tV-%XnNR}qB|-r8|xpdhoTVbu-p;Wo_9aYlPNW((#aO@)x|^P!y!xYl1EWFQr=kn zVp{Du@tPQ`5jT3{SRLw=;>Isi?;cvRA@p#d3PV)s-|_0f%AoD!l z-N^UfmkrMVgUVi_*ZTx`kIsC=@D$D7>do~4JEM7?Lgnyx>5__L zY+vywdbD0&*^*WiLeyuZXB_nL%(mG_CZHTWsof|1ChyHbk?z4P zIgxtN4s~@1yOT!}3h_2vtuq!YI}dF58HS#3ER2=v+u5qQ9K1}`(%8jMDdA!kyjv$2 zTKCGfVxL2-&_D;GpbcXO#=QBw`p6Nw4pcW+x+`8^M>O$KV<^uP%OY zd>i?&3KO|$egfKIqkNc$jGuwT(ZikCi}OnbktYQLNza6=tPv~J{Vh23g3*jG|5*b4(G^laKeXu`1(J{;Efxm;Uu zI8BObokJTZvZg!)*nh*~*mgG|Fp}wwMT696W|IJ|fEG%g#8klLQ!=@GB(a=VfrS4@ z-p;m!6(Z7+ne7rL6IJH|G4M~{OujvZ=25F@XByX#Dsaes+Fqy^6fj0c(ulQgi?3+w z<|$OGQ^$j{_s22OvcgJUcp~)GIbgb&f-Q=M!`9klIj;36t?Z`{P zuM*swKT~Z(6KxXxI4W8~%${k-Zz#)+<&7I~X>&V&3=})`d-LiaU+1=NP2|r1p#Hcv zE9)8qEGWC{PSqNC*HwDc8OxEN0`HjLXi8=v2o|bOx~vjD+-$f{dxL@1?2zbfz^U(b z*BXc?1@Nv64PsU2RPN8XXHRR5`~&lj%>St`Q(8;P_JTk*Fq?ilgB^5tBrKi+wM9#c zM~$!Ou&e9<>7;JDsSiS7Ausc(K;m@k@G?w9ohxPrvFSYf_N&TL`_@snorqc%ri#QB z$oGllHLByRyf-YGl{&$|G*9CHv!SQGT&~jsX^s`sD=^SLG{< zhVvO|#m5eIofE={!?*dOj(ctpy;aD3c701F@)^(ro6tvrYB>Z8QB#2Ee*ctFKC<9F zE8oaV5f|MQGtM&rA!k;&PE1WF`Wro9`QwkV%~w?o+3k9|Oul&q2TFa3SAd>C!)S=|G z3j$I%{ihGTWx=-B72x2emXHtPT7_96QKZMhn7JTQk%e{{s7%z^xsn!KozcE|kaFNcSp%#`l|3VH?d*lfUB@3%8V$#IJG7g>tw_6UG*>Ix zy6&QFE7vc~<)zT(khV?-FSW}yA=CMYh(2HJz33_Xw3>uWbagOStk%fC_(RLp_SS%( z%5t?Spy<1-NauQ>@dy3-PpI8AG8JCERhGK3HU{UG>bdfR8Hg*jN`R%RyWwVb& zP}_+iYZuLQIoDC+mi~iNrlg0r(%L3D0m2@l?v=;aSU`u8+klQzK%IMxtv6Ro$HQkn z9)<~89Kl<0^EAt#)b}iDKF?X$X?RfPJ-E=$_L(+7G>i0DXAkYn0*$ zB9hJs;k|OA3ybf+r;{#yU4VOg(!~Iq-Ia zuEQespAG523@_wL*K!)%^{p;f}-hif|+YahZIxSnFP<@<8famoqf3F<6jTTQxo6d~`kKWGVT0 zn*H*<=}Jv*Em;G!+jkQlTo@?ff_b!{d7IHRpp(b=KL*<)+fbtW4Z!Z}P3D_DwCji7CC|I5Ftb*!7@=YLAfY{WDLq{EnaTtaF1#3@XNiLa3(!okJdB+>Hq*2BH4k zc~2hY^rGcv!iiqP59rq*xTVaBJe4qJ9J0XrEd@w7DLRI#a5mG_OTx_L`FfHc%!#jQ%o}BdK-l7&wbp;%n%Ln5d{edi zLV8?!dW)bvW}%3Lie!6H66rj?3hc2Y)pBa>X&2De&FJ;VF#vsye;ghyt2XS>CAF4l z{O4>xcPd-dUb|_JG#l;4ixGYOVLEQ3sMZR4cPRWFr!qt{@;$6KN_J(Cz3V=Z1|iCz zH!6w}K@bRSE%0*502#N519t5~5Z&{(`hGzPRxWq7nwvtk>XwE`pb8KEOPgt$?$?nx zwily#Lg?lsp1|4oNu|U3vInYEnPfHr!8R zY>O`D}PqW&7 zJi($hu6p(s{uonA@U}S;dDjzXqJLrrH?bu0=CoU0!`FP(v3se0Hdl#{%WIoD z&913+bsBn=%UGt_--2hP3g<*(DB$tr+4%dwYd*+v0@;@Akfh-$@ckN;jB)Y_u27hA zvb8jo_!CYV{~={3*iU(p`U|kvvq2++KX%reO<)g(c#io)8S~}o4U0u2k9zC4YGr{& z}IqlMJ}g;+?tovO`U(qnn>%<3;M39X{b#LJ*r1v562Ogs(Q3&3Xv@Q5mlWm zJxFsafm7ORs~Hq|?XBxsZ`R73S!+GijVkdr>>73_Qc^kEC3jzCrxD^aqm!*=OYNAu zi6U358LNrqY2`7jhyFo^6XX9^wUGP)eK0Fm42x!d38?28=87DRnmkUv`2lW2STD8k zy{q{lXvs8kf*1arde*i>QJ2~lZIxEwbOUy`>J^!WQT&JiMOqKKpi`v@DHxJM;LSf)+aB^Y}7s?7?9&Fx^zp4&Othx`;Kp7#9kTko& z2IX-80V@;Ek$l_#1D@Yy(c)O0XHH45|^Kt>YUU96k;aU2+SX4ji09@^#Xe-m4<$ zLM5%PQj;glV|w2rFxaOKo)Uqtr_NcYE8yjWL^Zbx%H_9to{}ZPo0NFUIcOi9sb^yXhC|^l6&eW*wYYez6s^0B74c>lzQi~_O|#T$OZtiE0ynd zDwDQ!NL2sm*#|lPQ8sRM?pMcns(_3c;f88b7b$8jtLFT=NM7$v9u-QX7 zQn%*ifibzmHENuhaXun7x~`x&WBrM#IK)TwrFhNgS5Q9oM#ZJ{CCaB>c}(BTA354~ z<}cg%$5Ifn+jZHR7l<7QRxum%e60fH;bxii_xOP>`P@gf<5=g&`C6MQPl!DGRr8af zrCW#XTbZ^e(+QO2ulR?!6S)UMp3#pP91LjQ)h(DZ<*{aj79NLA;Tk_Wm}^{D=cF>l zS=mX%`cq&6-fwR}88j^)DY{Cw8iRWqpa~PCF=_AFbJ(~rX#E>C`ZJw?*14uzJ8Eh+ z^s3a#@XZ7eil5$-DP#mS_n;C6E6_$_`qenMEqrwXV(IQA5=8^R&PGX@l14>WmG6;I zi0gQ)FJj^$pnXWrxl60n8C<<%>IFAIb5SwO&bA(gp*sK)j$5ZejJnWL%Q6xZ7F*mdsu9YT930(SrPe+WgJ zkjpkWNK=38@*D~b!cp9h$ELpO9ZsD}pqL~!aaGU*Gm3yV$~Px0N0v@88dBCUkl(4> zuM;DWGoJE7Z%HdSJoQ?aI-at;Ib`n@U5}M(LklGDt%B6hLSIp$lwOb1?Dzn$TaMKt z80;up02_AeV!2brLqG}rl>iK_MAD@gA!Ey#;O6Y?|@mMxF*f;}-mqYZQXbhirjI!gTHqty~ zVp|_=^D@W%BMr|K_ZR#%IhLYc-6IS{`G6~om6QLVLZ~hC>iM437>*W%Rc&#(z_D50 zX;6W*$&C#DLs0$(5J6gW0d7KbDWOV&1v(W3sqO#NJ@M=+W~Y~@cB{B-M#SEBZV+po ze94Ay%4lp{IjSZ|dTJL-(^IfnO`TJRLep68j%#6dNUpvv88co4*e$+6e4RX`EXkLA zkhIE{@j@I!I<&}mBm3IJ$vNw=tX~({WVJBNSCeOBQQH8Y7EVivu>v|XBdwM18ztyA znr#z3m!KgnYusNq?Yc^+pbvSj$QDbJ(cCZD90>9X?G5#igeGbx$mInRNF}u(D;=@~ zCV+2yK`&YI&ZJiUX#GxBeHes_LV2p~4-TbxUydi)LFQf=pt2kd8q8Gf`jzjdL25~p zJhPN5$P#_iFP zUSR0xM~cNma%GFBtc(CGCbU{CxBOL>s7h@$8Ljf?`sxJ({O)Au+CQZfw!;Ar7?QQ4 zo@L+G8`KPt>o^r}Ra2H4ar8?jQvB55PXR@bSmt=iwl#(=tn_qs#0Z|d%7c4>n3(NW z9s_5^)Oc1dwHENAHlzPLIJ-Ewz!pI63FN?`&(c=Ci558A_ys z*zCv{pvqIt{-AK7Wam~KgsrR!R_KuLA)0#ZAe0F%4D6HZYS`5%`4-;6JUP2T!mXxu zPq+vhF5%LG7Nf3UyA=|afinSOmj3UsZtVfbC^WWC&BT%q7C*yp8%G!x{6+@hEm_HdGf=?9fu=U2{|)oTPdEVQM*kB7_wrw0+^=^R|5rHof32!4`ws^0 zF<{`1#sBM^3RJ-z{MTgbKNQU0_{V1q+;`6hXL*EZ&=rV$#`4NrGl8ZW*JGaP=J8Jr zo8YgkaQ3wUB=U6){Q%?0PRMm2!r^z>omsg@Qj*f|K9iZ@?GsGmcs>_1Qd9;Wem6AX zdV`Aqb(PdVLtNO)hg>kFMXT;hFq29T=DK@4WgECXF+^ykvCf@mtHDql&vtS(Vxw={ z42xIFXiU1$%x5%2s9+VJ6j>;UZuFF~by)N(l;#Ok}Sw8OB? zc*VH)aprAtk9sX%_!^ccPwPg9 zk%nD3at!O2Kv`;gwjWD&#e;^(Cm>wpe&R8m*OX7CK}Tcqk~E)D=tc#j_Hq>)DswQBP_0ws{$*@i zn}NZ0&yvP@S=skp@nlqz)_$Ix4P73b@eZ(j%Bfd%q998iz%Ac8FP#P+ca1@Xw#JPZlReY!)cQt4+ZQ~Q(mi%BJ+-9W+i;1Ff4r=ujH zbWEjfI7uLmsmgs2S3X1kBAvo*08W`d(5r_O_GM$Xc4%UK{0G;vkD{fMe3v`G%>+BX zDw*Aw)ZHLA1}8ZH$b?_ZXc}aF!%i($lV_mFWx-Sj{eah2oFnDh(jmf`)doS)$S8=6 zDn^f{NR+mI8)b1`qd<@ep?aVfn{Tg!`u)IeLi;^IDtEmH_O|9elHj!%>rcu*i)pvJ zi&LDH3>VBvmh{G$!9_&S-kJY&8zU`wN~t-UF~8p zMSY*IZJ#yoTOyaD1tmbH|FEEe>}GyfDz!bDe!Gu_5>s~K&m42LDqbM&(BOzPP|Uh| ztFt7j_*og`X72S^qG(*I43@!KBBR%}QEWb%_q2qTp(Wq^(Cg^2Zx`aUIVHylQsVeS z9FY-uO*8wpAPxvzqF}a1)55DbzdQc%nHCxuy9ft1d**&XIi2Pkg%}ouD@jSPG$m6V zS|qe#(3Miap~=l@_F^|+EFr0~tXvqW34<01#CDz_86^uBsk8RJl37cxW^Yl+qDfPS z%C@(67_}@SqX>{dyxWMHlSUK~VNstDDD?*+6k5e>4DgvLCuesTf$&aE!Q!+THu(bk zblazT`%1cjLgA7$S!;wM&hbx|<%XVq^b~_1-WpKY%-?zYYij19pvM{a_@dF)R3_%N zAr3VMm4FsDK|+EsGi1T&3YwYD3#~D2c^O!HvQt(DG@w93+5|oy{{x3X!{E~x;jk3WgFt^xdv-KB%gEWAg zV+_)AJ%>`!qXEU&35&@w?lJ7+`bRXwHe1c8e8x3l>y)`(>QiBz3DCyoUFAo)qZ7<$ zE76{83dh)~yI+(#P?DsZq(VWk;IA>}(?DMCZUV0I)i~f~qBU-7Wt``vMm=l)wqNW+ za!5-iUWiJ0S@M)Y?_so$h^R9U<}`BUrxy>LtR!y@%yKqOGHlTRtBFB&8ua!$luKrY z)1JJgd>^=HjCB_xCdY|dBjWyJr_6m^BX443qiY%S+R|UVv$o2T@ppn7o2wPzAVS2T z2f>2a%b<5)yPa#}TcujQq^E*BY{%Qw)M2|pO&&WpsQk#?84wA&s95RXdGo;0&=v|x-1Ft;y$X`}_rll#kW1gVHAhoZ>fMu$H}L69kX%}+TljQaYfq*) z{5fxJ982vB*;=1z+DRUdj-Dn_k&}5;Vs1yzSVd%{)9Pi#bmIm4urM@1ZMS_rLT)0^LBiYkNqvd;7eUK>WN8-p%My-r@Gr3npQ6HAMujW?J)q}ca z<)L)sfJ*X8p>5JJ6#eQvk%90N{Z;k}d#@J>dPM#PCP@b93*&>C-x#Zdq_pGZ!=Mr& zmD{KtI#jzdV#>Qd(5j|Ao~iG=H})|l_-BYt1Nyp0SjiKf4hYDtfnX=|jqWEJfJu*` z@F2cMOh0n%YY-v1sb4?e0OAkxZ{B~-TjVD73-KCoCDg&A>DA$Gai|Ee2@-_SoccJQ zJgl7}oE=XP=FV5huNw9?NR9dEg1T6jb_yQ!swv1PVUE<xhiu^GyeUKn6%cq&Z*Vyzf(mA_WBgi zXf^p9vE)?HTQa+_r1j2VU8@$HeCAP~rMalX|KHC9x$yUWr^wW5(A3Ovf?H)yQ`?Zzho)AkUhFQux5G7u3b=Z7b6)O>VXO7mT1c57+%; z`1wA@uOt3%v^yi88#i!*=<{bF-{ogw$?T-d985V|4t9Syqkp8CokIl?zd1KhCK*>H z{5pR$Y!sSIJMID||~I~DB9bh{-$!nt<$w&-%Ktawk!#mPw~=N;!jLT zjd+M*fOd>0-JQ9TK82SUKEh*+en*D~O^);zOdiIX|VV+W0@^Ds=6nZbB z7-mb)^4jdS8?DS>J~R7iL|uYT8yIMhy<>!dKf?XQtpZu!!2x#WmxNc^SR{>7LOZi5 zUwJv5h*C2NOR$kg;GKK?Z7VbtNCh(PYse$m!h&GJu)g4>iWk5GWM}O?qT&Kg-i5;?8+n zJHAWoQ?-a?a?*o@V=`F)`LgA+=zO*+ax9?$4!#Xr z)qR5O@aXTPDZ<#uTKlnEp&r^d_$LjuUX#>k}@T95`B}@ajV9~qvuK zNC>(oWEgg;#&A4q9ENKS05U{|_9Tw9BtA$qW-i9Y72bel)0=fu@RLOWQv)&!0%E!3(|BU+3e4YZe{c?FQ>Yu%8MYc3;Hw&%>^aR zKHN@>?q||OGfsIW7`v&sNpo}7vl^Ihaw){_c<_l;d%_1Zf*tvWj_?=Jn6vLBoC3HF z{#&>W`_kXWZGTTWdHz4#a8E$3fC?xlX;DtYAD&nwzx?^l)_*+o&zGcyw%cJ|G}IN1 zs3QADC+tZ^#3m~kL*O}r=zPCH)$fTf{kJtmZXkM+?c`+ zB=>mY{Q}@J>fT|$227sV((1s-6o!ND<-fg6Cpv}OxFqP&);kleB9E;yF?uvbHw-by zgTIuCTr1$h;3q+2ff-j@+tft=a34+zJmZa;s`7Q(<4tsPeYbb3RnmfdoxE@wlAOu_ z_Mooc*}e;fqwRsSSvyW5z@sG73$Du?Ph-lNwbE{ZRDMNhwN|EH;3h7RZJh!JPA1K5 zWRk0g_7qBj9&l4*)5A(R)~9&8sixM;mfp_G9i5Smr3nTcWOC0R(8EJ61#cFs4EEw^v^coWyEp2a{f9oZ|kZ!X%Giwk{40c9W^=z9JV;l4Akpi*WT0df>Co+JN%b1=YlbVonRd|@YayATN zL0S{PXR$4KSy{NTPXG<+*4+1(naY1wdO7GoyAa4t0=C$8MUO6YMZjl_ zk4SJokaflO*20?*8C4e&vk`46lU#T{em22zB)c2>1>5rM!Odxy<RT83I{Ky)m{G(xx@3yH>AkKNYu3-MNp(5l(>occVFkShLY z&68Lqqgu&H8ixHRw1wqe4Sf}FZ))=RQ0#1|~ zeO&j4F+>6uyI#3PrE2N?V*e5JV0(vpmz0s?(}t?7)DcA?@Hh=Z0(-02N%A9|F;mi@ zgHB}lRuD6H?gMcn7>Pa7r;EC|GB5&huFs_>#Y=_6fXNlGI-+)vjCDNx z8MU$HYv*P%tNy`6kJkh$8&p6K}mfL`a9B zD;<52At+t9e9&kEyo+|Aln7}GnBpP(s41N>$_F*g$D2ul^7D8QyuTwt9vv=pnx&2(J8R0z}mu&Td*W`hdZW7os28p;0`ZF}$X%w$`|o%>&JBx6A3;GMT?1 zrbN=T82Y8s=ysCt+r2+v2PxOQ*YhIZ_9Q-d7(U>( zGxldCU)tt3ac_bC=T)CxaiA3ZiC=)HS?((abz?n5D)-ouPihgxGxD|c0U^5HoJ8{f zZuVtFGAy?mJJKI)mMmTAY^o6_vM9bFbFkrQJWf*#Tf5)_+lmE;Ma~tW#XL}*py%wx z`gdr+xO%+Epk~1J2a3W=V2TEfXl2WY^zK?trtVZOl{ZSvov+siUb9a(v5Ap6tEG}J zYq+A0INpz5?wy$~fz?)IM{yliCxPFW!d*2$FuAb>?$qL>{wztui9OL(5i)To7t==r z9S8eSUr%M*$T!EL3tB|`CVOkF73SIveV`Hsj39xkpk#ccFden8X*c-Y0Op`MeU;LD z0NA`_C&5AWX)wY80jh2(Ob8cDbtLHQWS}i?b}5ArsP($WkSdF?ihkD$h~O?9(b(%| zM9-iaLPNbjOs^o6;7AWkM`XBFAZtI^Dgewsk6xGDlmXk)jqXmUR$R43bv*OyO8TeQ z_=o8Xnt*)XX&7U6MmTMzb?>%hJM<&^z?EnVdyBIUMu6@v7kqpnE?- z=Q|v+icwqXsyB6M(q@6Zl8g^UBi_gUiv7OU`7@KJH$bg1?tZ)BGmg%yP{ve@Bihc= zPBCW1O=6N#c3!^Kc0OLnfQ8YwT$xea4N7#p`Zk)09oO$JS*k*F_QA|B{Xkaep#;dZ z{lu~LhOA=RQCHt<1@e;aSjfd|Omezb%FV&w3os+(d=jP&b-l54MbUvO#3 z&D$*Y30Nv3BMiMgg_w<{Q^|D&vsEJ0d2o^qISkpAfKIcZkwcZO*G5Um!~<*y89>Ngw(b z<&~6e#tgZfqZaqd$RZ5eKYw1KA89y+-hWc4C=rW$(TRyU5lTBC zoy*~XxpqvCQ!jFeW#@w_EEpCMjGs>7WNfnZ32VKujHaz3ukUicp_3_TwSiZP3!z-` zCG+Eo%?B4qG|TP4MvrYrW!9iKjQ}89Q)in&Ed-VDaXUZ;`Mb>vv9@0V7GoK-C^>Tx zmtN4Wcmd3JW*Th}A$Pw%E5Q;1?^Kt2!vCu{asp&MAye4rMAoNE_gGg#EA6lMVLV}b zFWKj~oq_`$QZjd%>qc?1npXd$Kx@bNGE2j6iSS|~To)Z+u+~>uZ@{*n5{)zUe6TZq zwLqd7?mVx^Po?kV&RJ!kA;~q&s=b2`F8sQWwPd-SY|I4M6DauE{E4}NF>#jfGKT3D zwTSrF?DAsr7%-sF9vChzB468yPq`)sSbY{}Cv7R7X$&kk(BK~Ws(l>F2Upb66++E7GuE%pYAk%B=9XysL5>TKTNaGHHa9NE~=WEe{y62_>j$Qk#~ zx=#USL(0XojgCFE$a1Ks$|cg z+y17Ed;PiK(W6ogTWur!Yw&#nD0Qk2iz#Q-x(l%JO!d7!LBw82us=`c3efmM?rSfA zoPRzHvfp+Tznf6m`#K9M(TF%^5D3x`SI9hY7>Hq7daVWvJb2)PQ3{s6emzlSWe+hD zq7W-*oBNk@o<80-BZWPss<_wh9!XHFb)=W`4~2l<3XzGVi>c@pQO+919iJY<%cB1z z$_HXXu_#NV7d;D!VxB)=x2skQf|Q2Z&4E_Z0C#Tl_Nl?Zj7oQ=ksBbR9n!qw(Qly% z_d=_+^*pw%y&1)fl1sRzx|NHe9PNJJo+kAU{F7g?L3M#`!-!!qJgv4XpNa8RzI+I` zs`hSjIG7j?Ul!#b2F(vJ5W|q3YVOSmP0dJ?41-Hgf^h`qtLV#erZ#;M>_>R-cCH#z z<7cCGQevvcuTPI7S}Rc;wZ#L9R|aQ?7UN6Xf<+vLcfmfM1Jq%X(`>}n+Q9}?uzSp^ zJ#{c>KU?PMqWaS%l72LZ&F$!#JD;vV=JqH#f>R7FrDYy)$>nRc>U6qu=FkTbGJf{T zH%;mc?{`TUpmVeVXq)7{W%;E2YPOQ^V|f)e{mU84V5Z>eU13b8~YY(|i~ zejsltA(Se;m7oORP57TQlz%1N{`K*H1#f>>LwW8$n!F#s(DwQiz-_jNMXtw{`Ie9D zz5Dx${`(J2UzaMHww_f8xOveCGfH5UjqW&$!r4oI2AyLj6Xgk^zFX5@Yh^TT6E>%I zXIt8xe%)QZdEtF#0}vi8PS?uH&SVx!mNvrTYUfasU^GLGChrhxS_SRGrwpk|VbAfm z0G919kc}JZAEjE19$;KZ01zJk`czRHbURd=`~Q(;BmO;>4a0o=|CVJ7|0x>L_bNU8 zAgTkmp$m{A4Z86MED`Em{m8AfqdQq-zq2kkC^@r^D%#ahPh-l`GLSeqhYpt+R(%`K z0?Gyn4+JI?@VrVO(2`ORD(lqk!ig+ zeQh`Y|G~0_KL7hH+tvS*Wo!K#EL-%_{{xoI|KxA7Y=6?}O#bhOkU`h`!orRw_tT1Z zk=&DteF=V$BZkQ1b#qO%z+}rKsm|?hdKL^+K^p2hR~Ks6qr7uz5sbEo&jcMN2-uz@ zYP2~GT`;BaW{ZbV3BnhHWl0yPOjbEq+BJuIUR4`Gx87^n{);R+TDxeInFm4}C zXD)Ggj8Je7l&+8*o7#*t!(J0uQf+K3q%QKLYNd!_n@aTBJpjit=B?Q;&lHuH$c1vxWw<)%r-8%&@rSK)w-zRG7$E6rwhi_khjyZ5de zdg?zXCzX&~@{Qtc(!nj~==5@R)&D`-+qgA(=lTBEZg=E#D=_Cc9R_)t)|pa|E!h<% zNCH{wD$`>nG5R#Opf)GQ*2odsd z6GA`|?t~=di9B$=?AhJlwR`Qg=Q`K#FEDZ^-~0RieBSTZ+jmtII~Ryj<~t^%aA#j0 zKJ_~;V>DVhi~o2sC&^n9l;Xo^`^?Q6x%=RxJeY- zVuR|<*x=;5UBV=tu0Wt)F@jaeMzN2++K^)el}7O?y`Yx02D)Xt0jL9WmP)YXY|x<^ zm-hg>@M4Pbg$X3B=#>p&KtXE+$)^k@O8&Jdr%;+HYX(VE-mGtNg6Ac3CQq=)b4PZ9 ziZ0*U_MO3*3|s`6`irwvr?gJruaXBmuD`3lAM|GhlPf5mYgfC(T*3G+O7G3tUl#Gv zCRHOeP`J4*XkQ!yRTai;erN;#UF+@cL7!N;@*<=%_bg2?t#{HIZQMa_R4fE|Hs4Fw zf0DCFko(!$xst|IJY#N}$(R%QWcO>P=j0S#rLP=Uw29<+kPjr?b<3sjOm|%hEK`2O z&)JsSDrC!?^0Y9_7izT zCb{SyC>r#-olnuIg7RWF-8%BRs8;|q8}c^Ws(Cd4K)OEfU{s0qD*H-qpZmQ7=%3<5 zGYqoE2a^r0eUP4qw3@4Il?oS_u@yL$@B}^JL+JuOrmb5&S#aGz{frb}2h(r%(8o9T-WYvJQGr6w%Ty-5AY&M1t1DRN=!(~lI{)QbH5XcfxOxMC0 z!`_B{dYSF!!H!j3c6*Pg@q(HC4{~-%K2cFPyjpk>DO z3w%f3>Eq~Io*7}|Hhgc4|L%N^O@=ktMG%Gx8CG}BmTrqBr$~K95v&rqYZ3^) z`Q7=1+i!Dp6ijJW_kO4`wDyzjc67%M(SF~nbrpJJE1_5N&SbPw7sWK|Fd(EVa~@~2 zbNOGWJ!;~{t5yF{1CjP6N_~^A$4=MlrF-r4IYnc)a2BaKbfEpsSUof?d1!Q1mer`A zdKOqed1_oP=vWFXNcY9FeuptklT$Wttbi`=4+Z-RT0}3x*D%roh{A*`J(EUgnbzci zBG*zn+XRIeG?D!fd~yg0sxYSovk@Mbzr7{4QER*4->55(B`lGZQ=h_5zi1dvy>fH^ zAEsc-R^{ zmgkF0&1V!yX2w&LgPExk4TsJjJ|~21U)f$j{a#t z3cJj>D~0)Gg9a?mw!FFdD9wv2#2;bc9}j6GjOzw)bz}b z`&yV;9~?ETEv2wxQ9bD1_>D?Y_*Mmp)HTLP7;7xsI%@-0K>v+VQnN25dVvcJs_bm3 zQfC3>#po+_a??z$HPg@<5Y^ar!{O&drZ@ft&oNf%FTE|cBj3RUCa%hTeQ&DcEB6u1 zYC;&Z{&)ercXFB;Z1IWJ{nBc@T4ff5#X;?%42J%kpr&kA-9J0`6udrlB!weoY|NPi834=Z4I` z-qhDuG6sCWJkq*6>dDUbJTsk3$C47k%d%t*7(kI8d194nY1bo^;>OQ=a~OomN`*L?^1Sw=lb6pRu3 zwGF^)K!pGs;OHLUWfn^7_ZiVFhS3hu^Vpok#V`B^%>W%_IzN0E@aRkuiAe4P3r^s6 zgd^z4^RHSPBtCC3t;pgva@l5Tv5^V@n-D}fB@-X>?Z}13{Q93qaTDzO9)Q27=Af+^ zT;b)##h|vh{y~CBh;~$_Pp|IV;8fAN_m^y@+`B|=1hP%}?{;o){Igv9**|>sA7$JB z-787^x1F1=`ZxJ4e}7!Hxw*dY&xNXY|J#3mXaAEw#`uw2(}%(yEpgKaiZ)|Il$2g` zM5RQ}(hZllDRpS;g|39_Ihh+XX(WbTLOi*79;>pNg(uk_0dLd#lk*31H04;fL~y!K z2aK&fwlA^zutYdUy)FxWOTo% zj&j^LX|nN{w?F2c>@`~Z)K3v@QLoI^Cwaqh;|`QbsE69$l%B%$_y;&kWx44fh=az3 zm4C)4|mrP_kC5m7u%YV`1(ijdG;a|Lihi@E8e*9XaBT}o>G_`qe z5$oCA@PnxYJYi#+Nb=daaj?w_eDcsf4Q#u>Tf_Y7=vXuf5Rlr0 zbj<2Kro{_N$f3&OT`fWpv+~FQ$jd83NE_`(@^}TQq?_T}Es@qE{n|1CEs6v>P^Fq) zm5u5C;6j??+L%_^phHK{S9DNO$TFKlfq7EJE4d7vCy%x^&A4BN6iCok|ckl82i@k($zcRLsC@qOVK*M}v`9*$s%4 z^u_0cBVeBD9(8V?(Mmg*Pgg}3#$E>uUzNdO{b_tM+idjTax%}$H|H-h_&V)fX~*h0 zyd;rRAI46n6-D97Ni}=rw2rc+xhl*F)@H=WYQpL}MY7`camA95C!__Zg$=o~;qZIc z^*dUiQ4HS(Cb7Fcn$E%Tr=KvsH&;QvnNUlUFRgrYQcSyfNsSycmjZ)mu>(oGt4TZGI^;5PbTDgj&*@)@>& z>H&EGksG?co#a5w@%sjihLy^F!6OF%yl%9bcmaxq69AuPkliHNDX0887Sv&mBWUVc zy(BJ{(!!5i=n5>Zi!Dls1gi$*81;F1U^xHE?qzgapJo^a32*yrTaH(Eg4Re!;}eFx z&Ni4fR4?_?L9!!+%GRhEZn$E8J$R=aTrSEJ1mWp^Pq&`16w~rwdo#KVo7V4f}?B|Us zj>-o&5I}1?cp`@V2B~^4L;F=D#F9Qjv;`b{kGNaJ>9x70$o3(MESw)}A8%|78CgF% z-4hEPBO~lCV1oDne(pKWijX*Zi!lF{n1wfFnSia{FOY6fpV%wiaiy(DZ<*WkayHp_ zBC3c`a=#PN%}sg?W!n6nLZBEyNwkr0{T-&S9BwtXkoR-OkX~}_a+{!tA|*S1AzbC= zNwO$$j!(k%nG|NfN>#BqzgEqa?8PPkbWaVV#7*MaapO)qsVG6WTXMgs-&@WrdHQ@8 zrbGH7yjz}K(^hjRyJ4^yToV{I05fq(T^K(%N~h#X`;jp%2Ez}($`!>Su9_f#bkfYY zNp>-MbLRejsEu!U0ssD*;8fw)?0WLhYU`-HE_B{wUG4%(-1jbeSnB^2$EH;dT~vVy zwk%$9*AB4VYr7k@Fd=B4KVLuOZ!&OON5quWBq2xsxWR1r9g3v3&lxvtk2q`x{G7cB zRce=c)xhpPG0P8CA8t2YN+Pk~Hjp`&!4JA1$K=`%vh!uPncg>1<$UI6QsjZAsX!yn zwp&#>NNd?>cxgF)pQjB>R5eYWm;Y1HIM7G^m@OsCM%s;oV0d^G#Ndcd&AOV+k!gAI zr1eO$49pHT9|<(jxi+4_KY$(s;LFtnSWn%8jo3uQFC`mCy5f|KK3XADr8#R=9Gp8( z2hfId2E!m{!`&vk&pLe|cup&-^W7*VWjd~ilz)f4LfO2~wrK@$U>!$--4{{z?MFZV z3p7r&l5<_s?lRCi;tl1jAfV{RqCOLfP6w2dx@72C)8-K!!FNMw=xY-xQl%lP0k);o z&Fm3&`yPD+X9usP43i_Tot^gc+}k4UQutd{zPxR zk5?1x+G510wnN@D_ifH->gI)g2Mm=q`$3|#0Pc8V=|V0sE=LgxCEaqQt8N|lskDz# zrr;rCxBJ<|tga;Gc_1|>d5|&pZNl=k-5m3j+Pq{_xuFNc zhYgw1N*k0D|G4{=Sdo!iVg^r=;aQs+m4q`x=YegP=UHu`3tLp4nSy!{crk_<`e9H? z0((ivNbVY9qMXpVpd%d9R)!~hykcaXHv+*d!N%m%GsAy@N=^lVBD4$5>25O;a!y01 zt|zj(VulN8jQx>=!#ucX*ee+B?7@$1H$)DzHpP1fo2&86IHH|SOkKYX)cBF);c|yP z6u02NnfGO5K4~BQetnI_=6ef*7=4+nBEOML^La@Iq`6uTP@Sks4#|w>98{1Hk6=M-TvN3#uc6I8Y`CVePylVLfoa`$gJ|qvss&$0IY&qi6CQQ#YpwN;SI)veu zOYw!-WCGKF5W``VkzS;MlrV#-P`~UF z(SSs`+GiFr2E!FNroY`=|7Q@%dd>3-_CN7^4#yFA_(9%065KYZ8t8cVU`Y^q0W1@#mscaKI^=fwDKOvav@+S+HG7rTOL5xAp+43p)yU0M{|=>r0GGb_9suXnsk0D=>cNVVzei68TmC$s~#i=)52{3^B&VCRhPxH-iZ&ujxc7yOWcDThL z$$o%*ejzRY*itl#Em>uj)MRbMv}jctSt`h>pDKD}H?kChH0-*Ju_h8(d*I#^vABq< z;@CFpA3?{^8>n}PB)=d&1(hh2W-{P@^lM#1n^2RpqDy( z-*8O5qu8(9zYFl&M;usLMA;?ym=9XP4?t6fdszFA)eJ{AFsA_L@d?0#Zu0{3 ziH~@%Iwk?gh?blwvsdfXxhR)w5LLf$!6D!i(XzMmTZl4hpsIdoZKIPaZuZ!oo?0}E ze=dU0;rB}t-;s-ZrlM3-ukZHCpN8YCJty}{fuV*xH_GcVhFu@=nVcu{A52A# z=di2Ro=vELL&1J92%t!&JHk-gicS>R(`3HtP@T9H3;5v9iWJpL9oh)JpgWL?(HJh5 zS)!a3-c3~BnC-wOrl`+n=1``L=&fcI?-cD55ZtcrQeAO`f16h1jn>^{P!NfXZ2J)m z$3bRwUbp64ABYoi$WFyn6v$ZAAIQO0z|?H$#XEe;TutC*2x|wl%b9}6Gix`?i8u=~ ztW?)CVWe6@0em+v*@wBf_g>Kh55yZS08{TeVM_|QmQNOD<@M&wEiHA5*Ez0b%AhDk z4)@@3S4^`ndOtVl9{QZfosxY};m3KT8cElXi2p#R)aEgy*$w{jxwH!L~@1f_)@Bot3#uYwQ;q_pbI7D$;S&e zw)vb(rD}m?Mtn{Y-nc|HX(ai#!_~;wUqGE?C$t#P8tw7@$Z>OgLzeGN+m886)R%E% zeSH}7lJ0;Ao%W7s%f`5FFl`VV%6tQ%-&Sv(Pta@b@&rr}tKft_c?iD*$e9kx89g&D zRq-0lwkNf*bx#hhgXZdAc4>0c2Ss_EtTvh6JhVdMc1IXkxH2g+@Os)Df1dSw<{#Ni4LfV@uR z%4|-ypJ`JN9aBKi>@Rg6_b`G8;L#L$QPttE&ktj4y%3{xnECzb8c!`8DJHX}2FlWk zm(*wcq3Dztt9=Mt@w)Xud1V?L>5V64ZC^w7!nmC;z) zG0&buf@5vG0kMl&(8527Q!i1uQmm^UTj{2QYK4VB>EYATK8JX{sg+^95t|{W(Wi`d zsqLpjKnr?)DcV#?_WS0y_iGrsDAm>OBl4f4BV{R*+B{arJB!lGK+uFU{pi!_Kz-u* z3D^2!cW%iAOB(V_{=ZxT@V)8bUYig;ESg@ct_k`F1V*}l(ST>o{vo}3y~h;Tus&uglNE_zm;k5CMr8Ep|7RZh&F_WZ(f z#w(Q~ts@n;;t)DRZ7fJ(m1S8$XyR6!sDxC=1TJd#dpWa8(E;P0CS5q|d-sQB6d&Ci znVChW5yc{()fU9pXR{PuZ>QloCjk(3XVEj5xn%m+QD{-pH64g=74Kb|$WI|cEKu0! zBz-Br*ExGkIyjQrSyFpK$jkT`)fo%C+sT;#uJEXbDB2#q(BxI7&vkBcpsWtffx@xq zT*e&NY(9?#WH@vu3yV?iV!Y8pp=^==AJ?LMXE(gg@>Rxz!%1-&N5@8F`LWD<#IUaK z;Zfh{5yCLzX>P(@f-&tC=kJZ-9fU|Xm$O8|*Ur*^6 zSo?YK-_uzfxQ&$>OMndq}SIN z&Q8>|fyzgjZS*6pSd3T5H&c*d2_ZZ4W0pf(WVikh?fS7=nj z^>XCJsU$F)vx~kbwwsCJ;O1sB)1sCo!?dECUs;L2hR?FgnsMpyi%R z?B%&ng?P&Tp|r;uNkG8#t&Av^0Eiyml2L1IoNWQx8%fthu`R|bGzH20uFJQ2J6K7I zFqIX;;J8p2uun^D=cm1sefMQY6G)&F@Tq;K=2K~{euwp2M`99Ou;oIstxG_OqbL8`1qxd9(C9HoSxny+>FqUOxH^)`s)ebm zmCMwNfap5cmYcavfW8&A)_vmUvQewQAvFUjpHP@1^%>@cqr*nvjtZ zjOJ?OTTL28cr>owrHR7e0#Z!85lo6RGeaMMGR2G9$z2lX`*Odj*O}G>fv0D_DQW5l z!1=Ni(o!_V-a43$^H95ah{7fgc|!e4BJ^QdtW3YkV`|nOC^mnZ{;aL-QS4+nu(7iL z2b+}($^PIA|FS2^uyT2zY8?@i^cMc4%AKzmnPR2ua9}CXB>}@3yQ(5G)Trw!@q-E? zA&Aj7%8MzNa$Dp+ukTto8WbI8h!`*L4KXPQV=M1_+xDvE>>J4wY89BNRe_h@lEJb{ zTyo&(H}#`Ek|@x&EbCvI1D9nquIKIGpO}5(CVmUwe^eXvCQv(k1aTR3Ek;*W)i#M9 zl*9hbne<4!gVl@kc@q4TVgTOFpD9pHYk2}_;!x+(s;B?662GnV8pvI3&~=n+0A-q- zwD+={63lQUUpJk%3^^$0z_^_~7t}D_*#?!VoN?X6*``+EOlO&pLQV#!_9S5V z4#nn!@8!|9FGB0hc*q{|J{(KPzkR*s&7=Wk!oCBYR&MuOf<~V}BJG(h63+a?)7d=h}s(MX){oY zv@Z;0ITiyG*&bI0uuCSY+Bvr5C(nVYID#c1-!gl*_AyWu?Zn6l!o zoIra#R`Ui)e)AO)KVbs2*Y!-%48}j!`i>lsrC#YKkjO;_bSkOH4LOy97 z6f+z1WsYZO85HeTd**Djz)*RE!+u(rlZZdAwagYu4Fa{nZpW<**Z&*`Zd$-4tjulP zOB~sZlx~Znq4Z*7h<>pi`^dgGR71qX%%Jt!upIkY>=Y1a6aUU4`7gV+3eSHOX#b@} zlKHQg$>#+viKlx1eyZaXzNe9eO7Fj1@C(C<>A%7@_iJB$d1y1_R^v7Uj^*Gc__Acu z#cB^m@XE~Q=tHo#cQ=C`OFI>xxE?ylnl|d zsAEipbAh4!#foaK^pS|UkBI3QiJcq{tPn>-Q*l;KC-3SC!^H*pwd+-&3Vm}%QPA%e zH+jR8I)iLHA#~Lezt|^1mB&eo@EE8H92A?$hAgiEG_OBd3&mw<%PF1YtBeIoqc2dm z_PWg?03W9loZqs8jo8a^F>rY0njj8^fYUE>Qhv4z-8sD8E!W!(Xp~H92)BH*y}YeF zTp)0s6pVZh`of}0zE|0U|D&xXL7#Ivmy9}Ag`003td_r`=q1;!14Sd#{qzR35@SmP_UMd4PL zA+g=_BG(sP0#gHHpZS*upj+dE0sT6NILAGcU$Uva?rUSOBRX{G$yyTnmN-hnvCF`C zJPoc)4|!28E&r&5UUjc%uomPtB z?5zCMJhDCBH=5e)*b}nF_5$-4Q#IE;-s0_7Iv;D*Cy-}#Yl@|eRClXDT-=)^O1JnN z4n*`=fzWJaNBG$C$XuX9L=0z97nM5HPvhApfAO$e90~2g-{E_II(A{3?nDxYArUQ6 z3Wq751}T%O*UsuawAPaj_;b(fr?8d4bhDKB%p@%NOVqP%s+Zt>)C=B@_#l_E7d)a6 z*R*`KflE>FP;5l8WWUc@_QxK-(vCU^H8BmJ)#)!wB*Vr|So*0=b$+#BW z8*;5ltH6IZC>rc`GNN2hg_7%fRzs9p#Bf$F`&XdM4tyRTGzKks4dp?JyU^dNW*ly> zX4M?PsDdh;Xh~M-1GR;?Dg@ve`bWxA*a4nEsVx%KcV|(Jy6OjmPUJdFSM#q zV@3>y}l}F(Cs~sss>p_byGSjPZQ& z-u`Bfy@g(?}tVa@mvYY^`jT)GhG_M9qb1d!(QX6CP!SXhgh8l zPq4+a6rA*9PH#2+9Hyz!qb*xbxW3XH1XR{_xySW7?if45SeM#E$PJ%wt)e+9g395s z4oOzAk3`Y~IpNDCuzzV(V~U?7$iwgHr_np59~-$Uv$d=35R=)arsQ&Y5{9) zE`Yl7g|5a^0hR(bjX8Po-D}G|k>|To&DRWA>A5zsafn`t7rP9U$?V6CwhAE5hG!*D zxH&udp@e6PwF>YtnI00eY;PN9Al-g2nOcSPMg}-DQ=5PCOxjf-0ty`ZGfHQLn$;@n ztN%A;Hlc-kL0g@ri446?5#|7dUfVV3duM!H^b8{3kL19Ks?T0ZXjWu1Bb#~yj$%&&zpSUnx;Y?gGR z9n*^31c%qW7U$}RC^LN+t28S^TL3warBpC{jw<(nkipbR_KQ_&W)-0JT!a|=ixi$c zFs0+6hO$l04Dzg)L#@tj!_@1m_A7?RFt(RKX9Uhk&sJ6Yo3qxcEy%P#%1LHXoO65^ zeIO?(y*3yZu&J+(R9peL8Gp4lm~|6vP(96X&4Y{Cvi#?u8Sy>raCO&IlLeq& zm6?M{DIdej$ZOXCzZs}9`&Vt}heMU?@k7AD;%R*A71~St!9*cguWSIvgUXWB1FbFa z?FP@HP>r#WLG#5mgX2ou7X@Y7Y4;UHT-{Y}cp==<9P*P*+qN7=>I9$@VUPk zgWm8C!W-W|>|;`m-UVx*v`udOZYH^2JPRmHy1*G5bHRGwZB@k1(ewp13i9~;MS~3> z%u-b0<8pRN1h8!L(RLSpvM{OtAVDTSc!0pPkCaX5(0RSrlh_6Y0tHtT>i%U#{pPnt z-wFJ@P`S$4{0wY>9@s}xdxz~RBsuFY2`&mI!%K8^M6<@>q~t$8fjG_~F=C*(~3FRP$TKD?)VTJp%Kx_fN>>FZN1No1mh=2WIx3io1dU`SFJ$BJDIL z&HgMvc05ulHXo&*qA?s{40X-^4SZ98hIcfk?8CQDbvqR{W;=cEetO8W@95Y;7E_8~ zl)9EwPE7n`Sid{MSv4YGSLCPHih=Q&8ql3}V7QtoO64%9 z!OkuPTPExOB>TJxId!I+K0^ae`VkZ+^XUF9fwuSeaX*QaF|bQNTY&# z;~?!UTG&9qK~+IZhHIq;7Z@H4PMqWv2;;?)u3KHg>Dd*Fm! z@qg92tP?XiDJAeJ?C^Szs={w*VD8|U8$D(!{GcBc%V=%M*PSu?!hrAx;gbY>!fG1s zOJF`1`cl~#Dn(Wwu8*71*8BFLH$HIJr&xmUUlK#y>nx_-Ti%OKiCF-}xxl#)n2l!c zVuCHvw2q0r9r+jOHW(F^3nEYns|4xXn*GhlkEUWjPU~HfRgCqT)C{@tqW&Hv+?WXS)clKa2ACcppxR&CY0{&m&1^H!eq zt-n5aXJ_%jsF3f>DUfvoq>`W`gI@*8v-SgFTsQ!3?Fs^XuKmIz)@_ik7Dh2O8WOm z(mk^ldYk4xtgH7dIWt8*GADt=X4IDB`>>CWYLA+=$6z!L8`^ghC`AHnJoOBuvEOwL64oe>{ zZ4?KJ=iG~dpBP=8cEp#~EAzgvnGK1A+b^?$`}`x6+M!|+2}KFqhe{g-cT>M3Lz@?| z_9bAX^#^2Az?un2%ws2jIk_QgIU{rrU|UiX9pA2;2Wb?QZY;eI^j#@yLyxB$C0YJ7 z_3_PR`TI3qukzWiJ1MZ)wlBBA+-27He{q}P}~laRn4_R!>d7H39AXIXEc`+SD* zEusuhUxy;L+14-kLLn}g_~{5(kzy>wMQ+xZ^ZB9%g3_YW0J-i z<(1$K6P#<*IB&VvqRDLy(@Ird!}=c{&SFTNMstmFUA8w)+u5U8f3F_C`fYg8vS&az z4E%i?Rah6*cZ4N-6GZ~l{FaQMrX2PT*|@z%ESD08>^+Q$O=PjV;yV~?Ux9K@Fvqdz zQKqANMAG`W0b*l)Rf#Z>bDgm(e5b)!cpx~bg?WyJv}Vq>Mt*ojx1niH86IUM(1JOn zwN#KmDG{oBxnt2b^KP`PeFKS;8Q7cFbLz>A<2YHQ8(bH(ESgQ{AVOM@!l`j2joG}# zVNfrU1AP2^Mj1AaHMpfQf~Spno7;Fp z2I`rI54U!;2}~Uim9L9th9^O-9SC07S@p;&0rDYJ>78H@p4r*vR5FkU)3xQjKBF|% zmYkBe%~c*A@;uJ@6hi~XD+6N%nT;5YvJhebcIu%;ef~gUc<*IsS5iw3!@;X^JAa9o z4MBY-0Yz6@x$HAsA|whE zW=hzuykbCtZZj!Q5GfJUhH0zp4xEK@8d_*KV(~kZGnyJe1!#+KSAJp`)+1LmrXKqD zMJ)XhV7Gy01Py!1IJd3eA#LMpw`x;B)PP0bPpVy6Sjm~dXaZgeejE6$=m6L zKBIpjmDvv%mb>TR31857M~*21H43%i!#nly*t9ctYA#`i z;_$)fmXaf!@L`sd45-va9$ zcBLSSa3Fw;D6uOZP;^Vb_`vhRmvtQtl8Gwd7dn1p$6~6J#l<0kjvU zM)pu#^74@#(gx!=03raQ!y1tOe=hQg%nsP#nE9FRBRg;+O#KXA^$GK`7H;&!(oZ7y!@( zS|#jpfp^(~475lX9!y`@n0IBFdDZ8+a0#@0W$aJG^P(6pDmJ6uE_ z(=k^^Od7-==;-`L9z}B4+a96wk!Lg!*(o_%4A54Nr)xo@Q4H!8r84q-m6=~^R{>xe z;eZi;iuZ^-U$;)$e7L!YVDMoq^5gy!Qnqr3y06agX!DT`YJJzbR294M$$sD>GU}{xqv}WnEO`V$}SOt0G;kmnaxwk&JUAi z#y)lZv+o(c*Rxo28okkw`v@0N(WFxN#gN2+F{e#jle1)&@n8vpgmi6*hRoN3#3Wzd+(P-)Fqu z(`%@r-98~qn#c$9WssK6&d(R~A9$?Bb|Vg%)}ezSJ(W;;FJj7ikV)|U8vjrVslT;7 zlcv{VQ<6c*tYZ&5&ko&4FjSZ&B-%HzlLQ)n4`W&u~ zpquv0un`QZzzF{(CDw6*?3UJ9D}BwMQ)Pd6CwVlHpA6b)pGBcFRXECW}g*vw;YN}L*#cf}--Sp0g= zbOBL{mjE7(w9kGpMV=4?rR-w>a#`!hG|2A?8Bae{ye^Cszua4(h<(#*Kdj-)!ibzA9l4yX6% zmqPiqKtDZNXl9 z>RpJk?}W-IKOeVzA;<%n!cqdcMq}1>ToR?hGx`T{Ruj^!I{=6=e*R{ZP8@3l+E4tS zX}_-||GD=2uWXhj|DyeRG_O_vX6(Pe^3)SXReX9u{a2>%lY15MQ-A*!YyUs|jvWaF zw0xg0cDUHFMBz|!laIhjQ4rmqMA*5ASs83CaXa^=zP7?N&woz+6*ISZKgE`r#B@KL z(N}QT`;&T{f8}i2H_Yf0{*fK2e+K1*Q+chIaGHK9BoM`=tFgeoc-$NqoXX%H3}tzQ7kd8 z`iQ6AHj{4c?uAN3>80^EY2UPz3#$C?DrJNkB8_a`BY@lbk!jdpU~0+ zL8+%U7I#aG|58GeMr%<~_^jwr4bi`SGV*4V;E+sz`=RAz%^}vWKnZtg?cngL%Lx*l zs>ot#>UPmEVP_GV39;y~3h7<;#;}g}2J?~&gJ&z9*XyaLKP#h3?K{Y%Fe{dI{Fg#F z>B-s@{&646xYSp2CdZ@;yWy4HU9Ivd$BV*}bD$B-tThyQz3aUW^lU*}%XDzb*#bWW z^~LF=EP2{vttk7?UwCH<813?qZ6)}87vo0(x^~=y5lPbx6^-@wQA3R*HRVb9wp8C< zW?)9yS6@P39{X99VT$emr48EU=ELz}1VSaTCY*I+yUo(+EJ3$)eMfEsmh_@NQ!_06 zTZ!Y!$iZ1zTN8O8=itWcvXTg z2IEJmSzfj8yIqvq5Th%ML|C~QS+R>1vAw_%cWdR3M(YQT`eupGFl(fB*s_OSh3I1= zle$kCtIYz!?C2T2)O^FPZ{NX@+|+l^+hS2^A^_kw)?ZFupZeqa5=nx^2F?kLsTGpN zv!{uw@ZwD;%W8=wk21}q`ejn*TE9O%6I+h-n|Cs_3HA)cnWq1MQECgcgW~a1|MKPaff#7Nd@R-| zfI?Jo$yi94Itj5JYMNVLD_$Fk5Ei~L3!*S30=GH1G5-mNa;zr!9TyEOhBsKOBtDw z)W{-o9l*`(577ewqfV76jVGb^#0L&8yYVccgm21!D9UBnrig(T(tp{lv05^&0s7OiE?1P?90Lz zmPsKz%;MynUeHZ@@tEse^tq`Q|>dWqtULq10HtzH+A*kA;q06TNUi)OK?wkX?TFpQ^ zdMx^Tm{qPNx>q3eddrI?q;}7WiQ=Ydjx9H;M4|wmko8<6%05S4J|zuI{ z$+%q1ErH94WjfzFW=sSgtp~nL?Twz5glBZA!RUXXy_u8?0&XMSGIf; zAbpY-Zq}0u%`Q?Wg2=cR8g=Jm?Tq2I#TBenJlR=W7+f7O1ih1Absa4Fn_=nwFjnb# zS7P)&UD)p(HEP=!b(At*(`4UZyT>KsG%hWPojscw3elFr!%;58F8Jq_g%M3pS9lIW=c!722|B#94HJGg z)MPa?e)2bql@sNgf;w@cBpHY1T0vdRP(ULG~=&XC6v5Y z{EU%+p*(Ppu{QM`b?C27b1MnW9zo5*Q1H|u`=YWUO?Br(^!00>waaej*>|id4hO%e zzxl;c?hhX4>i-a4LJgj)1GSu9P`0FUW-y9YY-l-X(N;ey@`^oKs0J!tmcurZW$wv^qIfX zZ9Au1qzHPeT^E!o-DP;3#-oL&ney~kiW_E9k{r4Iun*+F7}-x-vEanyRbmQ3--`}% z7@c1Nu6L|ziW;rn;(+Qz8R3*f<7@V zJ1xJ%A)rK$H$V9We2Y(rK||wIla{W8*qWKlvt+%V89Bt+bAjtwBOlJw_l5V1DRwR50kD`%4BZuB(H6N^V+Q$<9^*& zJ3*y-L;u#zR!^x_r!!gBZ4gANRM_V7mo9D?`UcI#Lt{5vA59Gul&x!&kz^iI z4_(-8#&z(C2;H;osO$aGy+88M-7$ z;99D{83vEm)jc$_-Sk4d0M0fMg#1xi88gGF*K<@i>Ux*o2lbVJo*`JwMV20c)My-% zghD0i1A|tHty2rqTS`don%#_n4xKSPp^c(RYXhYy$9@?LHX2#<*2GJW zTkH@^WBW&2u~?9G7w*E)waM+<=~~kntE4r=y26VZuf?Fy*NY?Ic-oOY#Xh2((089a zbn7bqEUsqm3)@@l!#Lc^*a6cSf}3jf!PhQL%mBczO5&Y43thxIjZY_(_GJZL0g3V* z7N?6Tj;z=vvvt&s1PV;EN&TSwh$+|0F-2^Nn3nL=_qlVoQb}M|w(Us%N;;n#^7DK* zTceQOhSX!!JjbV1EU4#FWWSCrVapcWV03$cXN}C8K_S-i70acqWv2Tl%ymtHTC~1o zd^R+ZAH-ai^oZS=w~}#Oa`lT2?$Wrbh&%41N-Y=s7P zio33&UKfp3zMBpxEb|9y=ulKcM)QO*uL9{=l;y8D+kO^o8)A<;I}oAl@UCO3y`*0ckhxb$TzTc<8Ak%A zrbN?$#t1GAh{~jzDxM-`#y3&!l6bGnisxwt9O-6aMxNF4x4Y56%5yH2R4qHvnlJRx zArV_)oCzdxfslF&E7Zp}&2+A}{qkQ#J6_elAKd;^`(^w8 zv|o;cne9i)335*|bv*I256RWr-~H?3(Ot)YVpsI5A2BD~kX6Nv1o6)^B-FHltV$~A z_`N)ZiwCosqP(o6I&Et$biUWp*?7&N$>}iYGdSmT^LLK~2geE|5(uB33|#V+E8Q!t zN2t$hKo{yq-EP@gS)E=kdm2S^begCM@zggkTRY&&|0U3MIZ^g_$XSy-I%Vk`4O{da z%yp3apvr@b&AUobk@Z~h6e#30nGQ@YcLTEO#Fsi^WI51^8eXhMH$)8|a^H16?H0X$ zd>^$=UO76)T>Sr(K*#)d0^R*lY6>8;cZDe7M-{I7HEc7oQJBU5ZYps6vfXkOc(lX{ zZk7-6Y$J@xL%>Ws4H5S-XE3k`q-I%7p((M(!pU!fn zwpCWT;xZMtkKYwgnJGx`kqoFDtS7HJ;7f5-2m%PBmB0s z1U1*#t#l9NAj8$n5{*aW(sWxj?k{{t@kYHPKaY(((5YpIh6j{ZUg}kvJ-frY+q(>$g9orkRd|NLANFi=>HM z2&c`UC!DY4B-&T!WVozQB!Vf{nmDI-KX%)Jo!(MZ#;Ur-KlLMiC{<>20oDugLJmWg z$EF6(7k&x+7JaJFL!4;Cxt@=WA?BOuJVP8hcPSn~TvF2wLG4;D<+*wSXiogw`Ntv$ z!du@p5$&Z^b#AB7=>DxtKG3{6@KGh#^}HHjleWH0RsIeF!4boK18@Gx$qvAPV3+8y zeZTY3W4LV3GgHv3JATbS@n0%*fDZTX6}r3stkCKI3x)3e|6QRg;P|iZbp$%j1;E0p z7I_@qQen;#_lBz8$YqT6Bpbj;h;5(mQwFg*jG+@DB zl9;XLYX>mX`7x)^7;H3He-=9W7&V}cU?MP_m&feQp4jeW=iKyOMMZ49M1kLG4kATyj<7Slq^4KvOHdTWkFc z!~F~)K%#sHbLJPrp`0uxz4wbPU?;(wTcqBRT$mH7k%2)?#B`()B^aBy4&{0W2a-*> zi_-OSZUiWFlFn7?zbJGCTY>+F3LSb8?dTafH30%iOrP)`la;pXX_v<~^;+N(vIOcz zA;%pFIlyEFT)^gq+_(KxC26L@GxE2}hAQwlRX~FpH9$E-j>^Tg_d*Zl3jfGV6uJ7# zP4p4Y)=@ktlYOk38ade+b}>b9x@T)<|D31>4cj}~LPiEi7FO-PUT5adU?YFrF=|=8 zbMOc+^0`aHTJT~i{@?Y4FfVkz&K>z`r4u03;}g!8|b8sOytu)h-HDH?Gb&Np)Y7VNC;s3f^wUxzbFn=z?#6?|M|9P3a~zCNWzLP z%t_=!B|P5&1Ibdfm7GuXaU^nF6BF9F3BSRd*E(do6lp}vJ@8l;Jo_^nh$P(VccXMD z)Q?R0fx3{zDDP*w<;B(0Z^f)G%%mwB^U624m6DU$b&}QZ=>Bq0@@G5^Fyu0sbf(Tx z7kBISOubP;wRgzc5BmOE_^%W?g>y2JI`Cr|<6Z!?`&xjaL}*PC2KGmis06RD#dAg{ zWq5@?37gJgq8oCQz8+G1AUEuVd0r2L@Mj z0jAxObYYNF5Y8#>2R*;~r^?jBXd&XFWfcY=7G;d1ikeOQ&ga;5f1M`lJj?wWN#s@FjC zUguhd;tC4nG3IY4e+=9(pZM(?kLtP84pN5cmppC9&?)O}PjU{&+k9N@z#LL}=wpYn z)jQCkvysa@s&{o?(#bVII}l<@H#rr3QectBQr53YT3FI{Fw`-<#x5G>#mPPIqezE| zEg;NRpZYCiuQ*^vJU48el4(V}>G$1VQxg6lhEjoErf~1jK2`eH^?{!gGd(T`=W3=I z4O=YUo5i#n4m5N@>0686&4Kk;P<`F2)5YK@!4wT(EJhqR7DLx3 zPhW^4W;wiIAz)Ivr$#4|^HL@Q61fwXtIH3PbP2*6dm8P3Rn+ z8lvvv#NT&dMu6k2;)<%Ki(c&qA+IOLWgAI;rg!ykbP7R#FLBfZO;W8keBfD9M?a)` zS508H=w*R#H`S`cVu>#<7m_f^hWDfuU5g?_6vNCFhkymlS;A z;SKOTb=~C0iw8n?Z%DX5j1_JG$fjOWeWW>c^3?_|tpD%qwlPCW&>Nwqn|qE<~YL zo_wmgp$bl#H+v7s=O2M6-XtCPB;blgFu_daD-49d9hA-qMMH{8r+Eo8l_GNv@ zZ7moH{4jbn=bpD0>{M(PJ9Nb%*mlu>qPDn8d7A5r`Alit^s;9 z=Cw#3?DM*AIFzzgm_%$trCFRqC~eCX5oXWSAklCAf>qJho4lf64JK9;-gCo0RQQ;=T0w zO*no1;d?W5M8RljWRrs4XBvn$VV>jr#u+rQkIT~i%6iw$vzl)|DqOolhAtTK)rjkU zLS8xjq?p}3WBlM!jD(js>l-fou*T7m^K#3jc34@? z{2o&FXNjO|LM)Ky3xy4np{%UuuW$9?8eWsWD>t4&ju5T(a2gd(8cg zRDUdMpEKAgrrj(}-8Zge|i zFL3>?6TDh0t0TYE1#Lmui^FG@%z$)3p3W@9c1@3~=B^^FbN z-jLvB;`Hb!j}oCwouq6s_!A9i7x(utDcFs`CZuhIrh6HFh;u!m+y1cvXV!xO=)5Rx z%RV?VCMt_;V|=Wr3<%|VQetVDP$>rWc)C5E%4UXe-8HujACg&ri-s@wn?3nK%Nk+2 zlU-Q?s^ur(89dm_2CwCylT)iLTDmi+T70A7Wj@w?n7o;^4OM+nfk5s z{Y|6Fl+A@_UPLlsI~dv4))wy-JQ>)R(vl_0kBz3F(8lmdBI*KB9VZERg4>{}_!)L0 ze2YR1YRL@$;~bL;N&B*t(e!r0UoIeL|Vvrnj*`IM%mszB5Y_ySg$!afMSwu6L3fJB^&wq!S0Z3g%1n#IyMu@As^1@!^-&Tl5j$1gd$*+1^FOwomE%! zD#`Ixv1a^B&-}Q5Y(loqh zelsdiUEfMNoZzqab^^V~YV z0Wvb_ig>>9ve*SWj}7;dKBkO%rI^u-eu5v+EVAEC z*h<<6fwvU}hxI^Fjpt1%w^sLyPil!x&FUEO3B{!Iz4Tiqt>R=Ubb+Kuoeq1SW2Pq7 zHv8QNRflDUi&*poQ*#4zWTv6&TdG6TtnLy8y>n`Sxw}eb!gi!lM8{P1|H^kw8|C>K zZDG}T#xeG)CPr+k5G1`Ou{ujT1Cu9>xU^BqrOkz@{!v3)Vw*aA>0!<#x*46BSZYPq zT_dMbP=`t=gRHa6s+IehjMeriM?wb(+RWFx`U(wiOhr;9t%_LgiuqYt)8&=DK)Mm_DmL zCy}xaSDU?>cI)a5^c0zr=uk=(Rk#&i&RU`LjCE^$fMyCzeVF(>aGslfU#)cP6kugmiX4%lz~?lG>#0d>;uuiM=&Sl zURG?(0{`uaWXGLJa>7Pg7awyfbO$IR_#YlR;-CW3;D@>J?*#d{_I%Fucn z79TYuPqb8}DU}pn;b$#|eivb>R=P9opo)l%qZ5N`%uZ-j6CtHCAY<~XVtqd;lLR_W zT;rk-j$+mtw8)A~w`$@_O@nAJYSg{d zdPHeV3Er76j??FA*0Qf|L%)w+ieHm^?5qJ#&$;Rh+`TEeRH_Lb(irj@sHUp&fU zE@X*ya&w~8Y5qb!>Nw7HTNghio^-0=LO_>QF7^f+34E*US(fTNn$4FzL<%xHk>ch z@Y+bbcB=%?IqLeMkK!&me3uZDh&D94ka-*R?TKDhKnP7` zC_{%NvVKA@C*_6Fn708D5;LS!E4fc|$4kvDpsd=%1wE_%H{X`FKPxp{UBziCAL;_ugP%}16>UwKwCBu!Ios*YD{$8m> zlMct{T=e1`=uAxY4Z;7v660wDfH)`7*JBMRO312Bt7X!$@}H6u4Jk31yTr41+&|~PNxeJTxzlw4pwL*d z^R|PrnjrEE1jH;sl-xM&TV0Ve3q?6gj78<&lMVydrlpvS&lMLcKcIBe`P|`DaKiat zhBz#FcSY*5#eC;rQ#*WO5jyu;CTwz6ARQ8xLMNBnW#rVv**~7>X={!QKmW3jgEc^x zVDahQ*(T0P-#Z!7j*r@$;~?Md8g9Il;>cGv*NiycidNEk+^&`7XytZW$tx(nc^~<1 z>7LLR*E*tfJ7O9wle*@NYEbZNg*taBG*zA9lZ_nX#Ay`iL8XFei8JBAaY)_6Ci?A( z&i6zH`M#z)JyxEi0(*H$6zE1Ty3dv)>=r&8-|eND!lt6$O1vvAKs(3mhfJr>aF1BW z@WemV$tN}4&YJ_&P8sLpQY+)o@OAadFG@!}&kqfkiUpvV;}K{c-A9ED>ON)lm%4j9 z8$r+}QQMw~`Szt8Qje>GkREQk%-@>3(OSB;zlC)W@D?TP>SH3nKQKHqs#6>b!x*2$ z$NdZ12~;hZ)5iXzIj!qw|M8smpBXE;|8q_Q{L1qqS6}*o8Q~|KTs`L;yLxBa>;Jg# z=sIumZzDERM8J(efzv-AzE%!Z&_%uL(7Nlo1}t=kOjZ!<=RsMcOI}YY_qOoKrpCK) zd(9-OI8eV*U2atCOs0V3X%9uk65IDpm?m>=&`m;i?*j(obe~Y6C!-3z9Tw#dE{>(? z;hCuV`J_x#aLEY&iGPpnoYVtYT;z41XPFy*Dib$aW+n1u#}VcBa(Vrj=2K}(gMzd> zv@h*+xO$eX_I0#%^?7N%K26UQLun_9`8g)VY0Pz=UdEou;gujg?$x>N%1e^BiTS{3 zD63g%;J49Ko!&$0?fN#9dg3bpmK8MVG)YYkeZn`G1^*enpsgG)P1$tVtari29a#2< zp-YM0T(4cq(#(){;SBIXc%v7SEG7z-v>zrpBkN2FRnWe|a&|!KEhA24-V9)Xj^X1B zk8j3#-X%JEb=kS!*p_97sgFQIU}*KzP>-$NB(%4V8PO<32+=6dz^(&!Z}(ltwI=R| zcd@gJn&WLNW$qu2xBUd_%~G;8&Pep|{=2{`#hO*97wtloapD1E#-g*9$}h*Q&XHi+ zNU~DSGA-zt+#`WbMM#AN;x>7{7-Kx}IC+oaGA}eK4l?fphu2Z2n||g#RMRTpB__&$ zbk2~zxfuE83DjUH2j zw5`QpGhGOPtBi6eO^Z%F+R?Tr^7S)suNaS%2qOz$BX2=Q4I+$-avyc;;*%$usg@-D z8Q($lM82G5_qryk`7oQht9qq-a4qyJUU5^LuVB;N)}>J4Hb-P3Gzw1ohCzMcF)aqF zvU2mG5}h*7`fwtSLHvayhQeG&tS{?o+#Lrau0@@Va~q!YbC^C42~z#42_Qfx4ev~- zCK5`0x`w)%xK>2hufWe66zHt&gqF{;2;MI7-L8O*y^V^-`Q&d-A@Meo~pQl{b#7-IJ8Wgrc zspPeqZKJwdppxK+_LthuIjRcQ6{Kcw2QM?&xF^qOj7K|0DxH0B{}g2G3r?AQcYor` zb=ao<3g2oCY=!k;t8n!$8C#tToR~Evyab&wp)A9Vh*fNF4o5aCmRwCFDvVMusAmnLN92YCxtZN20|nA5F

F|RaWLcuytrc9zUEsep{=+lAFi??=|Nco{#nSxA|a~9x|GilW$30O;B!CJ<>u` z+9-dlAI<4OK2^9Ck~T81KIL+y&KWMbl4 zGV|Aqz1*wZ>cGW{D{Y|R_2q@#PFA;NU{_$I&UzeJ#qNiIpw&B~=nJu-M5UCF4`{&J zMWV2t=YMhS*1dRoxJL}hwh#|z^}_pBx|207#^}YBQcH3FZoLkRO8#oh!wwm2(114C zN|c+Xg$l`lF@xD{GWJnD0eJe1Ti!u-i1DljIdH-c=9@enITor3G_d7S=gxySP?S!7 z0UBoj;-x&uo60acXV8yVN-~p$;q?Zi+qG~lP}&9DwJG*2;kRPKhZTii7Q344Em>hxKNc;{w1)6dVPstR<0cjFNf zg_=JP^^<*?4q>wJ37C-?&7NdJT}>~qu`Vb!O^J8J&?EW9`70&SzQ_Vd1VVE_H#BCnaohDA_BWia~A!#GKHNT127c{vV=nmWOM`U|R zi^sRCuH_vKgOdP+A96=mjXVX7`P!&ui^BCjtFTi&z~kGAZpl_E^)L>7p%lWLcwH8_ z*pFUgRmICiz~~^oV!e1^3}8={E?n%Tl!x|Lv$-Wzc}yk=B%(2tD2=R&J)){oYCZP& zW3sKHD^bZJ{wt|{N~A&XGFrka@qThwq2RV>a&tzIdfS~yYOs0=c&1T#8BjMN9d#jM zseT3H9zF;+Z#0_&H>qp*cza3HQPO4j-e~lqK1g#eub9LJcjl#FTyZ?Ux7?ZtWrHv=X6nI&RH3a>6<|3tNa1-5g;mn>B)%X(9h z)fW?t!wWArf|pwO#Th1D#X^dWrmu{DEom(|$O_7!x;*A7s)lnruX{&#uhpDyil$k$Z#CsEp+qwQekk02EoxXnISi&PeIT?tN^05jLM;uNkk*5< zp8m5|{Z1p~?EB-q&UmaomP(C|((Ciwt_Jy|9hsvTW+V+@>B&c_|4yn7o6*KZw517oN`cQaFcU*OV!{3228EZ-u z?o^^I`xoGIt7b$I?tE_Lk$4aYH{!_!{NB?5D{84ku&87V2!_j+fmfQMQ zd)}3e^+{G|l74^URqh|Zd9DfvR2dFZq~6^OX(pAODmb@<2oECPnf$8>Y}1{UJEicH zICN6E<)@2`im#hEwo4UT z>v0mXU~+xydpyncw;B1>$IvZ|L#IR_8Fhd@ov>>UD&dr3a<8`jhtU z7$rSbC*|xqtgHdI+)Yd@*(4frEk7z%o+jp{U~{PK&F!97M67CJ;MJJ%wOZ3bT~=Mi z6U6$&J-adh_3~0;HHdM>c_9&X&(s`4b6(g3%UuVm&p^VC2C`{qJnj^EerKBxN?2vr*JuhThw zvvtrM1{)jNoPXlT1IXA31H2ORLfYjW zNdm}{&Fj2kwWTQi%R)&%KPoU!Yb)xEw9x)RKLfB5?{^-9)BKG01W&}a%zq`a4e*P3 zv29I~({69-@d13nuujjw8Oh#Z9>2M%4U2}S)_5i*-fhzj0GANa-qCa_G9hSVKAaq( zb+$>kt~J9+dJR42@NC?8Cto$+0#`!$wF5r)<7kI-v@_QA97rki$&ZobfU;C|-ylRP zsY3SiC@QFvw#~Obs=35h2R_Gb5SB-I8F{`f=MyhrLY)b$woByMhne_7pkf^GoKnZG zl+|E;**(SwY|r>70sRs9V?x)WO{)X4aYd|Me!_7u$F!pWGk#mCz>pJ0IWB!|BKKhM zs1jkzBv{U@@%hS410g-}#mN_6v_mC|tlCtpyk>+ZylfDvB~p71f##mW$#yN&=h`wV zMVwm+fw*Dfu36w?Vs#5710(2M4Q~3LbeH=gGInPmy!4$oLC)-U^<(PL!;3BDtsh4w z42@o5@D49!Ae7sgEi6nYfs{tyJ{ew@A!Q)`1KbGpki?1@^K169eO0i~UifWJ0x6YB z09YApP_E$4aIFCCTQ+JGXBg%(ox=bbGCH}BbZ^v?P)VE(# za~Q+U%(KjNlInK6oYieQHJ`R1U`>2L@vRA6ZpZ zJj|^mCAc7TQk(dg?1Lz7KyyDKKkX0H!4on$@05t~d_Y4neXQ9*do*wDSsV!ld{clv zlK`bo&@!DYEG!^HNOtqq$UJ}Iw_PKpRR6vK(u>oX@#MrMRT@XAATfw+Z=s~H?m!p+ z>|xH+mz+<=Ggs=eCF-Tl<7Eu9yI*%L@~yhc)GH^U8p@U;K`5w(Pq&m zmP`Ba^lC;HA2Ta&AbHXM?~81DpNx&;FLD>!Gc{Oj05>f)sH<3bPd?t$a(fks<<);c z0|80hl(=Riq7pE>^4#W?oJ)gLt8qF`u5r01Pm*ZO4Zx(Go_tT0LZu?uZdXO$c8pGj zu-pxnp;%Aw^Yl4$;`=^5i*|tvNm^3e9?HR#P+KPkj3s7?t!~ox_P`cXeb1^>jes?RuP9?0M?6zZD*yOJ*(39#%34 z&6a@?6%jVF}lB6hgNrE9UeRM6svBm^S{5Km`*-97gZ&o(5a83EO!WR4oHAQn4f`(_>(%h1DftAWp5 zPux3ScO`P+EwQW{^x)aI;?30sXYmv~L%hSWlejCde3TAy2zqQxquoiNRPA{@6Xm-+ zKp1SNudtpJ4)a&KY@g%e3VKm+@=T59y%a9?XrMvKHeyK_uc9X1A)K-PoMGytuJRYr z60(p!)#drrvfX^NMB;BdQ7PB7h{~*L_3?dKwG<-pjJt13lghyya=DRs^pEy19r&x; zl+2^<+tI`Sz-;l0cXSk4Bm->nW(c@XmJk33U%IA0L)(omb$fp)UMos-o6P+0Bth-? zTy72)EowB)$?hu)o%c^GD+*@^$3$r}HD#K)xgsK4uu{v5j6)o2%b5Ozbv4txtiuaD z>p#cpWMt*MrZxird4pqgQ-d|E?%sDnrl1}M?D<0^n+WHE+n^}VBBgP^X8#STMgdX zmHUi@J)?7Smsi8SY^!gp)}+r@10e3ae5<@Rz0C8`KD6(fMecClcPQfF*+J9SLpcM^ z9X0y8x{VpEenewnj^*>u9wV)UL z&;QOx{lmLwD@zKh{%dRG|B~G5f8HKkW2)mUN1A`6e*6p>6TRL0J?pxSnb+M9JlVfYaTo)R&_nXW`#b|Czwdr;_Lqqn5TGcG@f?Bi za{W%z@>7j&PvSSuL-6j5r{EEz34CLlzef57V;9Q6@=%0xI)6BS(;=hDFPw7>oo}&) z?u7lxF@xxxT2pYR`X#d-@Ghm=nZ*_7sdF0&{xvvzmuXP*^bno+iVifaCG_88hI9?r zRv^#(Y;DOBoPD^u;Cyja8_jbumR~HiqKmzvh{-b+I=n-{z#1G^ zou^==R0&C+c+dL+OZBEo&vV(%*vA9rEv?C&yc1r1IG@tst%nmpah9^|Qd3MWm9Xi_ z1CFKE;6+3RxHU6OVRt>3H#zhg?86cQYfjtM(xsBoC;526N;X#UfY~C+EO0jPXYAhb zxs$yq&ab>bl1=Voe;7)2jnA9Mq6z}`eBIW$UAYWXROc15DAM=qqU* z1PnT!*pDd!bi6^63^+-uHLLbz{%ue@nXkkyO${*5GLf39fhnZ^;k>zJfVH`K7p{q*4Y(kbS+f2G2)>CI#IB?zHkWQK-8&5!jV-!zc#yJ0TraPv&Jd_lhQHlJgqA=)kBPy4NZ6gY1X`}8;@cx6sG`I6NE*BH>;BNo;zsW*&C?*e z&%DO)Et<Kl zJlwxV{jjsVOEtE|?8M>oy@YAUaJ~^KVfz*O5?^+!0rP$m+spAx;3Tr1`;1jQ*+K=$)#1i=v}; z85Qx}M-?W=vnNC2uV6+|+{LD(mq?(dy?rq&qZ_9Ta~2X*}-!u#yNPtkfzQw9b+kB?Iu35iQD+nbV(b*UzV^7&|#)>uPN zPe_ItyRUzSL`yPiUQ2ZR693h0pE3_-X$m0yUhc2EiNZrE^ksM-d_SL!n}M}S^@*;xwc|uk9`Vs zJssXPea5Sl4J1buEEzTiJ$;K;b1#(2rkEa@Fi|&+CB3GA{|9-tr0pl=>tEcG80O!UTeM|=M4%QmS z^1LCyGU?arscXsla2cB`;+7-11b9Xat(OHlpY7x|KAZfEcaij&<3y$RJ-ndn$S&yD zdD~`v;REc*?MHCo0*~=S8?+hNzvsgHgw&dI?uvSxAka`Jf|%=If1O8h|M-adAZaw| zgnc)@yG^(Z_%sDH{0ednxxB|NXzL*;+M%i3dfQ54IGYtHPZ#Hc1$zxi6z59rv|n=i z?BTnSi)O{dj4@!*Erxxcotr;>VP7ga?pZyQ(vGttUQm$Ei78J4_7^<^Lj>Ji^IRJ4d$H`QEi_^I_$ z^)G}|(^%^LtXFz(hQ4cM%naI#iH#;n=m&Erb>ih~E4SEPtPh0ZN?vb`Z+d?6%~5yN z$h#m@4-I%o8N|Nk^^ymFTWdL6e|vi`Y-*w4@8i>s)rzWXo}*_j^P_yfO5kq(wxU7d z{s~rwO$w%cuTFNcQX_FDOn|%Ay!rp`o z=f)rL#9G-;W2tmW{OW>Db~yZAczxGqe^_3SJ8*Dy%o7>w2arb9K(@OOrhh9|j2-CK zdE7k6V?k=Rras>eUf}*v+ubGuckL7Ks6C!ba(8$V2m!hymy$A{Vk^zQi&t=e{vweR zZ`YqTg}UtRo>=mKVw=CLc;MTt2+$fGL$$om9Q`I5XSl=UnD`@g{$&_T zI%fk(!ZRbn({Mf8DO2;WJ{Xu9$RF6LiP0xgxCane0m?M?A}=p4magGvcA$|b;U)b! zD#0pi^?7`yr0WijaPo)6PBwN*52+p;HddP~<+%Q{Og?i#Hv#-a?(L#-Omd{)Eiv=$ z_-3T$K_+)4^BEjDg!?ryu#nV{keXgW9{rQf<1+?jEMGV19)DG|_B-a1sh|j%{0qib zhpE877p0&wpPLTjI<5|)fcW~y+wZXMyE_~vWt)MD<7))YgvToe@M2qYzIrzjw9j$f z$CX`MuP}tc!0Yf6iFYI0It%3yd_5P2Qr_am}Z8S}oCQrdSxTQ^dgqDs!VW z0VpZbS|p!+u%=ak^(@R@3-vq8uv?VTClU(k&oBL{CJQf61*t;cp&~D4;GRHXpd+b) zJO=1x#lL0|07H#nI39AN(bpprp8gH->&NT*JL4qN#_o19+qu<4M-Urk!I-N|`QNyE z_pc`JJ@0$X)3xQ^qrg1V-7*+~9_}gaR>{2ui4p?a?I`V|l6KscQXpxof(RrW6UcGg z>_S@#=*G%m2+?AVEkaZdAzZnV(i9M4h!7z{lIs#e2q7dP=W}?j&a-E&XJ*Zs`}g}V zNY=W(r}yXcdB0yr-hN3YfOT(6>)kI9%>f3ow-rG)7ds# zf6DePby1yw?@?@6w_a8!Vy~CpIXJ08w!Cj*R?`rO>6|Ouc_WrEG6%)uXbqpxIeNa? zUrU{h#0Vt5RF3S}820(`W+eBi&rr^_kdSc7e?oTu&JedeahvqR56yqt{jaT$>kt1b>~|Wo z**#Il-%|55+Gx%9=a@dRC419}w*9$xF1aW&l+-^K)Bh2KRl6`HLk&qUR(6dnDX4F^(NOU2P3kuPwn_@Ad>lusjClW zg}IN!Iuj`UkZgNi7R8p&{2qRejBO_~Ly?>B*k->}m79LD$d8FyLmp0imLQ7|-tXe} z;mIReSsxALMGL=sNptPPr{iV61OZ}ubbV>a3%pZWOS;&MfGe^kMn$4$cx5%RiK~!KwBVq2|S<$CKU;QX| zH5s2YathV0?thv6&+Hxc!zm5cWu0dHfxDhdM>_X)m#`|$TbXtB6I>0X71}mNRGBH> z(q=N*yEPuD2T{_C9NyQ-u{lz^?plAF4E!#2Ecqp276wl~pBfl?1B#S#q)yO%(p*M$ zK^gB0;<=aW=?h~u^JX%nptmowY%j&&kLTbCi3;#A5_&}<= zY~hV9l$ZC@Gxy%nY!^M=QB=IVe1O8wV43GzfI%V0FkT?!PLFb?K21H+y(g=lrpY#3 zxU1w_3YuV4($?Sy(ZU+}cCu6y4Vgyzc3;F(y}m}*WdnRodJELW4XxZTpBbDgi)+q! zU-&j1=?pF}>k3W|NSJ%C_bVIuUx$9}zQrPgbD1Iws7tmD35QjdpngS%hQq>;XKYZU z`z+Y&B@vBx7WTshnf01^PWPTWOB?-B7q$FW{LS#$w!8yg-Q4=pyFsw?SZ8mg0Tw6sDTTN{c(9TKvbj0bpjnr0$!$W7kMd^-5y zTJ-Wk=|w8ud!26@)hxlam=?{oD{g!1Sg*3N-iB$#96=_}DxLkzZ=^Mfwv>Vd^?rwI zgz7Z-X=GYza@KM`TKW*quIsBH$#=198FcH}JV8%rve+C=#SDrH5=lDn1IdvtRYyG8 z$6_2|i87;SDx|_EwPKxd4hgx~$G+N3eX03SqjRG%s7nh(TefwW?(QvAy1JjT9Y{_o zdAa9NuU*qCE3Sk-NlI$VvqGb(dL@dPz0`qO3Lt6ygG>E~``9x!=pFjzhx=_k(%X@B zhhqLMY%B@Vq*$JPpDt=h^WB~PQE^j$JSo)Vo$#*QII!0yB z0m8m4rLcu|VyR;i)m^e%S||Al-q}biu#8;PAJlwZ=-t#OKTFsWfmn)RaCbAOi49AN0{1mSy+$=jrh|IBS-<^+txQy)Cq)Z=vZn~*1fZ9W{cKS z*Jpl}(+5H88K~qu%QIxG?j7>0LXpkXkgi4Qt@wgNmFb3Cwo%OH*Ah0lC_h|mp2Or8 z69$ji-V22VU#Hw5uN6FuHVgMlKM?p9%SddwPQs7|*I_Zo%AxZlQrieszSN=WFakn0 zU>VL)T~T!VE-`iEQ`r`~d1=+1A`svkkuZ51w*z{zp5BsvQr2R?%KAw3OhHz~)iz;E zT%9|8`P%;F(v!TmUea`ae-}**A;fF)hsF7GxHg!dm&A6KZ*6VR4y94UIwRNR z0hVH*EzONWFGAs^s)TR>e|fvXooL8G30R^7*FW!-@0=@}N*P+%qmTgHev|Ocnt4`- z&AWyPG#zlA@iSGQhQaYh;CPa2CZ}vy_C+!-|I$ls1W3EiCqFK~Zb`3rv`|-y!Xwlb z^0_8ujk5)-?|Fj6pBM1k_6WlL_T}5tKW#crh*mi;j=SzBFI(M-q+V@eMM*9uI+qG* zS;U_V>(MhZ8e{pw`r%W6=@ClWw3vNJ_iZ$7NL2N1$LE2G>Z4%`*E+WWsBzFD$y+f9 zYr04k2utT+bx3ulOb}Y*4Qb$#Q^qDF*A%ZVT8kzTDl)9=Kg9Bq^CCO7l9N(u1<9od zCmaoEomyIZzza)i4!KBAZ+<^AsIafm<*g@ShIg&jZ?*6|lpJqUdiwHhshdj4fY#}P zi1qQS$@&yN@{b^ysWQm_`hd2JbhSZg0_9KogsGV{awy-w#5ZpR0JHlb~b@kWr;pL;kJwuizse)IX{=$Sx zZa=rrTEd5~fA@;q@CmpAMQ#)*aefE1;PyzK{Q4sBUWY&^eZ8Pu5crb!sK9yVIhWgy zDdZm&j}B5?x~r_^dree$S4D{jtVt&BN>5!D&#l|FLuh9(DgI{p2TjGz1H1cp^~0o< z6PzKFXDMT4R&lU7uGyxx>BbbNVdjjJV^?$_HoA0M!9>AgG4p1`<9jNk=1Q{&v9`oB zJw_C=E-72Tky|P%te3&MT=;wMBwmvSNZzATI~VszKlXEMn&dk=Nkec~5&MB{h&sRg zPG^EbcqzE32QZth1c?o<=kKYgtno6+2;_Z8&bP0=Dg!zrXpe;)wfWu`tjvI<61U{D^hZmYLQtY82&5biG=MnM6DKSXouD1F?Khyvyd&TdgR zgi?{@%;Uy|94D#>p}CWfBoYM(DwhEGCb{nZ^$WM2XgPqp?h|IXgCfsUYp~ciG0)*y zcVfyZzDSr&P2$DChxFWPK!4+N*Rj2K+yf_*4s^zM3&DO<+(n8o9=Z_xLEcV;fQF1U zU1ha%M0z-q=fh_21w&`4Q@*x9t8O|8^Ni&M=GImV5t9mXRO;# z8m)1S>z4AplS0yC!|!$I>Nn3!>Sdclt%n-L zj=9hedd=Y9a8MH7zBS-=W@TCi1jI)!F&E_2yWUFpHiC{bhj$5<$)2^_ZRA(&#mze! z{@J1Y?jlS~ozauKT(8?GVp1D0Abj28nYJxjx5NkE-Wi!Y?T4NV%aP3lN%G((aj@)y zS<)9|uHGZB?crKeAlNi~=up$)8& z4>up@zCk`O#U!$+CX{CCBCUPI9grDyhuVWa-DOF9f#O`*NW9i6(a7LRF96Unf&gTm zL?qT24LJ>NGCq(jZ+jZj-pw{};-RlO=R$uQu_eW0C(hnop0)NDXWQ*S-ax_qcFk23 z^Ou8=tqFd>{#Qa(4Qhh-xl{@Q9lfSe%e2-N$f%@)aw>~%ZH?TW122<-4x{jRbFu)J zbtV>h|2*`sIBzywPwLMi{0#g~+n2Sx5JdAjV!IIiw)7uHCjYA6Hvi#2>$m@QWb*5O zADKk#Z~s$s?WL!}RI=if@ca2I&$k}`R&nHC{{BrL@ax(gGmJpO1vWT)hx=~@8)4oJ z;t09$yiI&{gj#>RY>UYhnbP(prY8;fPxWF*12&Iocd@TNrEQn=PqAzl&V7G2${X$d zMuUIR@Dr;Maii>|<7fNzzxETpi4nB${8n^5h>Q`Er;UeqIwyN4|ojfK=2AQDzbEm9mG_godrno`B zThw?YzP_Q7JATk{z(xRJUC~?b7Th`LSgG-jYT}rF2|7WDTWM|6G8Fb>d&$oJl}2&x zG9<>2Aw~BSG`&?sACZNpUrs`wF7`_brsV0Kp3`?l5OI@dTm2+-Xk|;0U6uL1Bs{vi z)7*{gNhBXW2?GfH=lV*8_UrQV#*0-Jm3!^Bd`!*O9qD4_B@N(4Pev@)8}m-yxZB&X z*Xno?I2fTe9ED~DccYZM>wa9vs&EP+j}KHHvYw<f)rSWI72JIh#fs3A{&P@q!C zRa6@i!MfDaOCOv=I2^jU_@nRYo1r^^VW5DLTA%L?)XwYh&;9!w^^M_#IPZJ5Co}=J z&`G){co<&MZ97JaoAYvp7J)&pr-)utjW2Xv>PlvO&)&= z=lVKQF@(o=qhnK^H^vH=16m7mHWBew!(S>$Ud2<6P!>*%C%bjXE26WY98ZzrB^$WB zSP)xvEVFRHwuQ4DviGN;vQ(F(KFiAIhb+5Gd>aqko<9?n21D=R8RBzES?8BGK;wIW zkDAZTbTFmPA!VX8ap|PQQ>a}~byfWJKyZFQVi?c_=e7hE<&Nf& zxrXc+>+G z&+KH`Icg5Pr{W>7<o)Z*nzNIaGjQ!K z;c~|;zLP#BG%m~B+hUo|ls6*MVLNrMMC+K~0I`fKb*+ohs%5Kn_VM8<;qyd#rdr_M zGT%N>1=q@8I&3Deidhgaz{LekEe=wS7B4qFYR^Zac>*M%5!kr8Q^Q!! zg9lt`Q|&c~lT*jc3s#N2nn#s+ymZ$|s8ZYs-8|jP98_o;Jw6MPv?2-8jiMvVlvUoL z5Mz59W_b7^&-SzwD2=0?jV(vxM|C>1!59<(&gxMR6d*22qZP7FX8V`v;5)En{f0M& zV0;DEtRup^=c@n~$6~eII=ty-m82lSJEILO zABvrc6z*9OLPGYYa_9T~Xia3RzRP^Wf2Sxb{^JKn=}%uky8b1UyQqj^&PNj~!Tu$~ zibIqqJ6w!`6uKp-^!>XyU~w42@1g{=KH~$s;NP_TU$dcx`du#&})a!R~~VW+dO%s|0#HkNc&5 zj~B?hTZ2?$xm;1b_S@N$J(cS1`IMx#xVKcxlx=$pXSI(`*jb zg%!hO9J53Ujms>+A$(!Rp}Z)4-VtzHd+<(gN|A&CXoeM#-mb0ND4OK4@@58X7c`*sLb`WhxV-?uDNr;eMg8N zNv$5G_AF+(2cUfN!2v!tfVEqukO;zrYKw`*a(LN2UXR>!q0SYJb11p< ziok4xT5R27+lywo_n=$@;(;fh1;O#-G9z@m?yW@3&!X28oA`%4v#70WpZ8y6Z(bsd zAj1}&z1|9GrO2$Q{pmtR349>wy3wrtt{+0iH|u7cnYu?;5gd`OGThl7M|z8~i(QxI zt%f7khsP7*(mQqNr6o%Mpw zZ#qlYO0_s4yf6WSl$)7%q~?waau6s3(=wl(P^+mmp2@A^nw6>tpc*PXGzr~%InFj= zx>N{LHvVK03hx%gmdD1-zew&$be&4qua7gooJwN-1$jv^#%Haw%{vv%g}vo9OLgA1 zM(+5pQt_k9WCrnbgrEtPT67S63uUAuASHC}tDFB)|3x!C6L+ay{UYV(2@Zk?8uJB6 zZR~5=45Xu(OkDN^l-aSvlYZt@_z-7x@(i}3Kx%43Z+QB_wx zwHO|5(DxaUU1~0q3`6=-*vgbwyu~O671Kj}ui#GsnLwuNT2CP)SQ4^Ib#pyiB=~<6 z3}PI|K8Bahxb`rLve^a`DTZNP+^!6p4P}wXJkxmKKLjIrwqCc9=Xx z3tBOVyF;nTY|FuvlWXuH+OnF?V6CKDCk@iC4Rz?dZw?lrJw|l6*&l?Pq9)6Tp*wSp zCv&V@zcf%K9CoLz$5R0%taTKXw`+kt{b0sxca?|Z!`E-5YT zi&%=pt{rm6OR9H#26czxV_jG5Gw!wQyBP)bJAEo$#W-sr^!)CXvaRGGAd>KcVLlTcJy~TyWHLK}yQh zwn;QK_I^#{E@RC6>#ah+Axoztvo~egbsnlkvcxjKr_Xn>oRqzLU=_pjy_tq9~VZSsyy`WWDmLHOBLFg*@!L@TbWbnWje-?KC`${)ch)9bQMJxWU(2Az?gofeGU(Mf0rpM$u;yg~J#sK0gg z>`*(~2D*zr;xY9|h^waulzLt?4<46@N^XH!*!JN5e=YYTW=b1v8?-=BqS%{G+UXPE z4jt)QJ>_J9fthJ1(4g&PmBtC-@EP^2i#~u^ZZPp2&{*}69?x}WWYK(kg>pAk)@d(7 z8Foc0CDc6kWyfg1GkbRJ9Rf|X6pch1r)H2ph#`Co_;xi^AtoF&+_zi$ff2D01(&ND zQ>_TK5ly0NdDXPqQDT<^tM`x|0&P6#@?=UXl^wV9CF)EGeV|Cm-*bllL}K5bXTGF- zElHthl!`eT?>9`hN2eZOd&kgXXuosNZ?u|LO^HilbE$`nh~ zlhz5j{gqNRFpBS?*kzX~%P$~#D_dzW-VSr$TJo<{HSY3q07B4uGx6rE;_z9eLG_P=9~67H z034lNw>`WYGa4nVVqn!lgEY`U+?zlPey(@+m3ZQBO4JI3SJ1w=#O+=2L`;jZ=I}F& z1m{*!$ToZ0c>$8TX0w|5oinDUOow9e{LY^(^LYb0jx>$DpdpNH)u{!|0%RyfOZ9td zd8e5fUoCJZ;)D`gn1C4YJOwGr@5r;dSu4%|n)1cr+P%bwJr2b-V_wK6iB9#(D41q) zGxI!{H`M~rC~@s=o4qTRtFbZc*3jH-=y0i=^*-D2{CRdRvqBDYnNQgX&Y7 z(5z$nCp-hYiH51>xq^gb<<3uXDd?_mDJcsk5;wm~_34hoB}Pku&R_c@7hrJApwrTC zo3M#dR;|QrCcs-m(naY`lD;w9zX7QFc}iVG@!=q{u0i|E_SeNeEy|qGnslS%n=AES zz@u)SHBTb4bfNNi;Xkk*4+1~rX@YBVk=wJ5Isk)-S+rrnpNOH-V(*tu*U0h21nZn- zVOyaeLGq#>RXRy;6NlRQl9iGf>dv{H?~&Ak(kYg0tg0IAIwxImoD&lBKgL#G9dWuG zp6SA~5|G|G5tmb=&SRO=BIdhiD7%maFih;iH{2X(b&ab-Z>elI6XUrcpjxrUOIUQK z&TOpk;t5@WnWZ{f?ELGnc70fNyDgBT@ydzt!U?{~ei9k)7yEb)!ISlD_x7ty^epD5 zJf2q0C%-Ap46Dv)@`dC-BaCyi1@kO5xMu)6;JY}>>lfv(_q?+#{U)1D%x?%xW=F%E zNSs4O7oxI1vUx`R^>XvrXuo~q_VIugLCMSYP{e^oD;MnYgY3Yc<7BWn|VyL9GX!Pr)iv%TEWa`*&r4D5Ee1^Tbl!#Gk z74z&>6N(51TPIS*yTlBdf>t(A!f~ow|VL z)4dPx2Wm7s9SEC1efEy!G&%9PZCz%uvipb;iJ9A)3GwxA&xkDVZa!9X_ z0-N3Yn?Ilm2uBEJXou*QOnT4{XG|y!O zVL%Ej)~>7=j9}W)kCd}>+Z_#6Y2f?k+G1_%XzPqcRLQwLUY*eeX~VU zaCx}1Y<)E+sb?2aWYGyFaf`O-QCN~uDSm%yQFoR7G`A5gK`8AuUkRZ{VZJURE$^n5 zFa^I4tsG#; z(p7+tR%@VHZt%Tc`70WtBxnXEk0SuxMDL3y9%n_5Fd%m#=hkD>_l40?Kmc?@eSO@# zrUCt!!38wff1%K48w7-X&*p@e8qqyD5&{BE_ zA(@MQ7M{6o{Ja3+4Qb4X*~K%5A)=#=i@!DnC*vA+Ass2?q>f8J+a^5{kX#(0xE)(h zB;W_E5{c#I=N{FKCp`JoFImxnojfhgkYgw!=+M$#G*>3DB2 zGq;_dNjKj9a4OnbNz77FB{Le~ISJiq5QNm{r+E9-1mGTtfxKp}?vfLOmEkia zc=T9r3)KfYf9i~U*_p79cWp_#u`s5hL`58%{KFb#NoGF4jg=z)XGej|Jchh)?`pSF zU41PcOGvLfn)O)e{YkFGE+59qysMh3295?OuNi$KLEW>Gr5mDLA2i#WI1pplisbuH z!y1jy2^2Yia`b3^3G%qn9!6Epo-4!~; zAbbzX4J8jGW^E)q2BeLIHRNI$LtpP576d)^PNB`Fp8!_Yy@1uyfu_Jm{ogXHQ$Zka ze|8Wr<@U3Oy6{?|K8SbOmJ_memCwA|FXNAGu9_xkxRvBJY3H2 zX$7VZ_6bCnI|*nIbX?`-?2>+9?cf<_X2xkVNRD51ZDgg2^7t$QMp*W`!(PXSJg)I< zPcw09!hFTOtWm{eklqac!3I7cFSE@Sx}>xQnT|rpclNm!K@qtoP93r6bn1h#;5Z%e z#9WPAZ5i|q#IdV}_P6iPotph4-!592khd3CRwCbqBxa1R&MH8+2pLVKt6`>CfXaRj zh8^w~UmZHZb+5QY?2ZoqnvO{tMTT%Z2w0s~Sq*xr^A}n)=0&+CrtpK9MVOm%3gzmX z%H2Po-d2L-eC&ud=R21~`=v({9t4ux&bbmYw0aYCdRSV%ux>u>M zDmAF6(v0*rG9HIj7D$2{4$rA6`yR<%W~O7IQiE_*A62^GEw|~X=}y5(GzM4_wUDPa zq|@8u#bc@!mU*?oHEQnnXo@69f<0=wKB(OJzozK1)rb(={4a#qu3ypqYa#aEO-TOh zUxnB=bGxe#{3679ei35dWUjvQ)*CI+sW%WI#+YYEoV*>sGPTi@wE2<&NjJ7y0CyYD z6Srn>%Va%;Jz7$JzyxtK4VIw-7}>gtn5t@+WWz`Y-9v&d+L)6ZLmYCBt!xij3j_$d zM&TaGo;3=)ndj;FeAcqouw{^&;0$~n_I}BcMs@!E5~pGT@o%nr5T{PkooHzEvc78P z{!YMFl*{{iUu11!oaVl+YLFGzN*butR0Y?kDG<9Ls1d4!E2*QH89g3TQR#}8pt1(o z!OHg+qru;KA>E@1uAuX7$B3V4?(Eg$9|OY*pw2_`+;O%k30nhYH8skobro%q-x-^e z(uH0qko$`oD?mCUN~koJHHu@%RC2p2ml}3+Jue$8aG9XR-9v$e_C*m^djcT84Gpc7 zY~m2jGZk{Go^V+6xmuRj*cDq}W~AJeSSol$h`CF;#V?m0kJ`7hSXzG%h$rmBHx%Mr z6pe6^PMy9klsBk#dvbRZ5l>%z!AM$S&#O>o2cPG_FCZI2g^Lq==$woYdBmh2K?2?U3`r>;4D&PJuipH$pc-q zTuHd?!1X0ukfemj2@K0m(KpCZ(evv)OVp#>Bh*yGmL4Nsm}ylWJey0RL!`as2)rZW zR#-Df$zETEp7)Nm$aqrZ;5~A=A<*I8Dx&&zssiIX{FfY$F$L}6Xw7$mLIA^_7k@~m zn;!827LEa0-Zx6*Nci}L;tTkX!sjD)eMUi*QZXU9mcHH$rJ!`atrb$2)Qo#nf(ZxZSIc}P|Jdg zA0?_|uxrxS;TKPQUxWF}zxL-~FaDq&^omM+EwrR5K{K1~-*`XvzHM#%6=d|nS{FO} zqmjmv*9oMdEznDt zlaA~8UD%hay?{tF_L>swUNSvMI6_!PrK_}%7sP5(ZBz1Gy8(?9BT5P{i#DDvqPNuPEI? z`IL;hTD2`Scnc^!acKQrJsv)$|HkmS0l~JJZ_J&UQs>1I>-NEu{qmnArSQGpu5cSC z=dPIfU@ZJ8kJxkBFoP)(AopTsqXAH#SHEO$RGgbSPDs4hN2LZ%Cf?g=LTtMT<_`J5 zIB8l&g%fK|nR&HOW2&Jd0w7a&v9dAs1h$6?W0DeQUIEBF`qL!#@X8Ymi$PBOI5?w# zq=7Az0YS4-C`mfzGBvVpPrTj-V=L*}1uvo9O4inPuRkk7GxgTLd{54_f^wCCoXOPp z=fx&ik=H&cI15CTto4|^i$qY1BEnX8vGd5g`#0}LjHOS|i2bc#Mn}TNfKvk!VWl(kf)^@sq3d+$$8}K)Y%C zEZ9}?oh71T&d`j1cB?Q#*p3S!-zNN>AmUlYKpFOs^^FRB{fxqzWsui(cHne+cr1p6 zS>tICxEyT@cG(qMR>&nBuza7Vu79#9G@{1_j6Q6yGhCIcS zslCBFxHk3>TSR8fdaP<2skOhrnIHc z==RXWQppHhWEnzK-OsQ@e}mK3wNBHMeZSsW1OLW7ibuA@D8dVEOa)}o4O&$8KlP|up9#Tw~(r?oYde4wP0 zM=vI^lU5yP+rcBh6N1l~46BvA&+>9enk0faK&c+vV1GX`9ntIdvDb6)4->PruMJ#+ zCGCDAKOb8}@;`dJ)2&O$-uEaJ01c<2jVUlhqSX_#*hl90sPB)R|vQ$Tl(U z)^EFeI8CsQkBB=-@9v(Vvrz~LN|;#Wg7|IWS&#gMnLpl9GTOzh$qW92TIsP5a-qAg znD=J`nAeK#J|3*{j@G$vfK`fZU(;p7n7U@!JRAq`9J1DuAWemV9w9sJXzk_VL>3fFZ)e%O zH^xO#W`3MS@m!cr-SNG)<6!_CX~R@6FDY3S9Kw`zE<_tzgkYD{HDbI`(GHH*SjQu0 z);W_f3rX_mSQ_Kl7Hb?Ux7tK_c5S`9HOqO|%?dWUkzgrZn1g){K|X#F~Rzh3($kC;3qk( zBf*n<_vxNt3lDqOFPOHUEgUFTXP#s@h9z+0U|f4)&3ESiJ-s;&Kq*?(<(Z0Mdq$ zbgxOk9CW^LU$;R|zRX6Rb|%TODT!aK;l!!i0I^SF?e|BE5sKX4|Zmj5NgGi0( z3gRB~xYkj#k-_(<#7jQ*3PaQUJgdgSWO03v`>DL4Wmm(kS;*k}jb@>nn-{xtk|kkw^1-@1 z=eZioAdf-2&|n7*@&#cXM#<`>VeRBX9OEhWDwQ1tK2|-k*74qNTa;KeQ$$E2ZI81x zabVk+5HCUQqO}&!^kKjYDV{_sC?k=%4WB}U*a&i??kJhdnu)VX14n{iZ`Fi@1B+RV z57g1r9()droRAoFlCI!Ez`ESES+dF5e^scsKj*<5!v?-tC?~%nG3$}EuMPVzNiVofl3m}Pso^D)R0=hHz!3bMZ z=U!y5zLk0$Ye|wR+a=XHJnqoKg^|g#EU~pt)()*zhuFucNWtyvf?{0K|8ohIXsh@c?0 z^wET+&TOcN8hAU(Y|HKZF8U^IYv`9#yy+L7@tXrlT>(-H;}~mBB+ADz<*MZvH%?ACNSQY%)wEPjeA4c9yRlz=sZJCg9pD+L*^F%Z4Hdh|mt2@j}_Z%X;*zx~7i{QgS* z{NL>8mkE3)wQoHX_PhTVEG=R3P@^jHXl|Y3WR;h|RU~>5fbUR`pAR zO`Jbuu9dBn(3DV6{&)B~No&VSqhSlBc{8t#m+n1HW`#bNDavgUVxrA16U>KJcDsii zao&^`-fOu$6d@71oR=IkBZ~48+N8G74GoT&lY=Xu(ow9L4IKfgp<5nhH~9RB*_eME z7o3#!6EU_INV=_6dg#L{1Vb;AQf`)4m24slt=d=3Xe7WZwKR4iJ`j zE_-O{!r{4wuRL}eC`51+gXGY44FnB()rp}>%43Xo&yc#rSjGNT$3dyrV=ao62z44w zqZgXAu-(HsyOPf`N+CfW@n{1JL2J*WEvp_tYFh4MDcvWr=Y;JpucmG*di55CYQQK7oisu*Ct+v(ds$NsMa@g#@e%o|? z36n?|Bfp4W>lOXt%dQDZ9wDbdaM^7mct2Ou4a@#jW;-kX3;12N8InMmm1*ajeQ#7e zKr%`Cj|OKSgY`!da1t%fJFQA#eWb`mY3U-nO%%!;V%ONb+6j{eV|BmULw1~0YdPqt zJY_O7NH@QYDY~0!I|Yaj#oY*2jCA>9j$#k&yquGihRx0-J$=EdQJ29*s^cn=sCZMv z7`u=@v(>{CB6;6263WUh?+c_RVx&n!dD*s82p3*j$zZvkWF1#|#~MCmdgd~Knlvqx ztqXh#@&c1WK5N-(!SxhxxwpcbIviL>II6pvBUz$t@g5WfW`^m`&h>tp=2RzW4Y;@6 zBgeT&>$b<*@jX80A#D&LS9w9WFIP6sk{d)Wg-EkhgiczE7dPeV_b;B6#P{F>9_2x5 zY3+0C`nKf(`M!6vzA8^?U7h=YnI=wfjIRi;u~#nqV0sE%OPc3s_Vst!x5LG7!q}}C zE=Ovu&PD>78YQ2?=pJ(Aq%h91Abnz1vKo^FQS*5U^>oe3x@!*%uS>sDC$U@-dt+~W z7IJXWN;zJNR@zY(8s09xEdp&Y9H5~E-hL`5sSdjcJ%g*o8CC{of zF%7k&Il?>{rd^Yjc}M<}0=UhX%jyX<@!o;M1z|uE?&K!~5qiKh__QG0BrnjhE|yw; zJhnWml53J{&iIiX_$qOqqKN44SNQ~-^riUcAgE?t%rcaYrO!tZot)FsGTMb&k2SX$ zDDfdF^mPKBP?z0sadUr(+Jt+znNh=0=Qd|-B3VmlHZw1ddv^-8P%7SDWzR?tadw`` z3S8h3_PM$_;*x}6?G>b98$Q|8*^@IQxzTKA3e z!@8k2TBRQ!4dJyL+`go!DM8ZeW~qP~#7Lc;NqN_0rh}w*4nLoclN#>g2S#C0p#Ce% zrDD1^vj%f&=Sx1B;kIHB?1prS3Rw~of{D-{WziB}XGu`knEHS&atsoC2bcRAz3>Z{ z!-fgu;&jwW5N9240|M(lb9|f9y57+nSE|tzAYFi`-Xdv&V+{Q)_@2I$myk}}*>*GL z>+7Z~?n6%uvcsv}x5;;;4_G}4Ma9;GPzwqoBPov{72v3Tg*d{`-l^D!7un28q4`A> z`MMsknh)YaqRh3Cr3+{_?4CWDXj9o~bj`|s)%^tP z{kBayc^$JCUzM?L9ra)0*l<0ayj_BQ6_xFTqk(l(C4&ML_t|s@rDSI95lK9aT4frImDldN#&F4;tCcw5`s(c1%4H$s2Gl`v0I4oNgeD4m&8LpmiKcg=RY4 z^OYp-RSB7Kt>o#30fn%~KTS3GT6z)3P+1;YIlHAn8K@)S5b`WlL)}FqwhvW)l0*YWmdrNf zz$5u)+(p3)p0u6iWCXcbn2~My<{fnErLD?(39ZsyfmXKgWgeRjD}Inwcr6CqkF=(? zgS4G~W!7_Eny%>1_*|`+f!O?>E%Yd+x3^HSIYSyID(v}VZluFFVQXV+DfR&7gOx&X(uZ zPzbmX%J26S^?1GqkTP-^FYGW~Gfa4IppkS}U1qR#)ABQWb#tW=x*`r@H%{~vQv|_3 z9Q`;rMowZk1S44lF^a^JnxQQJXI^dxdN~=R0+88~!5x=oDUieQ|IEZnc96D<$n&DA zLqi9ANWW9_fgpvj_ki+L@Xu)t_s)|FABN;Xhf6`(TpFco9|dkAVUO;4&Hh+_!-Z{> zA?N0gC&8!WhA1d$^t_=rq1ycB~~lsFEzX_IYPJ5>~T4OV|2B4>vY{-h-Oym`M>t1aNsV`C+VA$Te{W^dGK(8Sn*x6eMyPs-&5F-N-)ePV117EnrT zTvLBkvYO6LJ~J{3l0dQL$5#xWgmtDzL&v0l)n3IfkW3Z;N9p1M4vy+?`q-V{1cTvho zbO8`gyOz~093y7LIASS3kR{7oEC%v6Uze|ZI=p0WWce-|d@0P}de1de3cJd!iV}Q} zfa`T}^Pl2mT`MI7Uq5RH!T6MTf019h_sWPk*D)E^n~dOyAA`PdTO#A($3fO|pIP-Q zIWk;uW>Mp&@Pt}1)a+|@eLJw?LxU2U9ovGW05qm0pr(ZU9f!dWdd0uZPN4KS&5T19z7krP(dgqdk+Rb)O4bQi$D5r5Uta zgcs~2sFiV|s~X8HQhhbJ6LpO7b z^Xlk-`oOru&bV^#qUB1}J7d4S_XcW1eLE*&7DyvbwbIBot6yjvWs2YUze20=$(Aq4 zyh!neBHJRa^oFzPK~x|S(x7;(h)-cLN_jVOFYwyeJ!0VUE1SbK~ZNjZx_cFxkJV?p?iEf=s70SB+_w5 zkObK5p03Zl|1WFr9@gZ&=Zo&yoh8qV0&AwzG8!)JbWYK2g}p=xk^p1fYS&o7ZdauW zB<)f_1oCoALhjSWNV-Y^JE$y;kXkC~DngW72+5n2Qb33SF+zY`ULk}4A$dtc@{%j( z*EMU-nZ5QrbIx;~^Dpr55c1~x`+dHjTeHtX2kqXPpyep{&IcRdR&8lre0(CW5-n=K z`@XxvL{-hy9h^lttcAgmO% zEXjsP^9g4l{>6t6v$bW!nZ(ve5?2~u-*tI&Y4u38gZwju?3>7&ub|yAOtVmXz3poT zxPxNrhQz7Wq~>-(C_mS@vO(Z0nPrEg?CdmyuFrd|2bYe$EZhD&#Ya2l2a%JTa$xqR zEqLkebWGSUtWO`v@YQ9EYu~O>`tFKMwAe_m_w%gQ#lkC?F$XD2I=n5C8O0xW_Zo(> zOO(+qfRVH3jIFSyCNVfn!I@$*_kiiu9Gl>?}V}>NQmGa{ZA^_k|U&cm9xA0K) zY>oEM1QzirzWaq1hDwz=aX(tUHczdbW%+Jr)({~rn7D<#ofoX~AWrfUG5}EIPxG7x)!UNMQidFRXC0CW%6jZ%yyvP-1?beUDSX zS~$V){hIxy@+xvM@bZ0DSFnYD;T~sHW+*p$53kfUEY;YS4%h>;t0xU9cbvUyY5p5Z z*+7!+Od`a4H`rYXm?N+&wcnX8Odqk8@{Y=kKe2$@iNlz7ma#x*RF!l}RXsuCIj(7S zz(#d#=B4B^{4+zU^AABpl}lE}oG>kX$U(EC8nUB8P5AXvV}$oByA>!sXx@5FHrV8p zWUjC=xn z=0Xuw``b#T%lYJcr@25_WT|6t@Y>+`d1HbES%uSj>y+RVvJY+vJZdq}8$35nz;5_8 z+`8xqv^VmINt;xdlIvJ7pO#expw&{&xduD;UFp{wr(&Avy=tY4r&ET)`?IpsSe7ph zbl&dH7=cNf4ITAAXfAG)06B3}VWHm5l6*vl&Hm&m`+yzPm;@&nkxq&D7>i0ctG!P2 z#{_N_Df3#D*vv>+qLR`Y{}6TV(Ju0^l?Q9zwiow0-AjwJRVBgSpKmpSes=7ancTJ# z?>r`grn}w|rh^4jPT`lL?QcvHx_$b6tWI-28W37~pzu=5f2YMZSI$puGt6}cs_GxS z>obFB`o(WABes`Ar8i^r3kpUu+SP!&$9P_g#D&z7wuSApX#>Z({_9Z^ztR0fTZ6kd zjV;eJIRdA}c?$@v?b6mLfgM7ZThMj^>Tt2iQc&yn~ zIDrb1-_yOP3uM3KkyF3RW{qWA2~HgRGqd2q@z}iWC1|0EPDfc4?J?WxQf{|Cssrhffcvv}zDj*d!J+ z8Q$Z>AK{x?%%iEk->}}hv=MxPa0>fR#Tg^42ETbeH>u6Lhm6WN#o(a%=2lNOZW8!W zOt%*Aheu#ri%q(8-zmkSIQVeP^((H&=u2pAN7rWQ)SEpgIF;y7X|#}d(}0hCz7w8F z^OrO6lpQ@FqT^Fq8@d*^j;FWQjSaO-=aAyM=34E{vXN`T4fP}?IZL-asU(aZObnA~ z54mo3Ouj^9o$u!Elz6!a0Xh$#*B|sOtEgc=_O6n2XCS1lsKO9y;jpeyQOy_(|%e zUGCB@`8&(zAu_%Tx^)nO;?U~@q1J;n5$%$tWu3Yayb3#i+sdcuUDufYK zLygFXQ<|>GWS#MhIGe|rq0Wruu$_+8jn1YE-`I>!+P68oo`)6cY44$Vi9pS@C+ynC}FFb)v#rtr3S$ z>FJB|hgdtcgB{^w|6Qxwl+HdmenLdF~r7g!2FUTK~p=5Q3fNX8#KQ^f%tzuIiOGdw$EYK7kTe(*3( zqBUgd&-XLadZsqIK#HmH66z~Z_EvZfW|xBIFqOnj#~^fCI2f!|JWjH!I+_cy0q<7{ zQtK!HM#E=tldHd}Ud5&jGezc&bN2C^P)jq-y|hb*Rk^gqSVT!!mXtQ%VU?bX>-2WK zGNxsNgoYD$arQ~$;j+W(`NYuD!dWDyn)I0k3|Iy}S+!gD*6D+j_O~=S{deJoSI633 zRhX<&&*J-3{Tq?&rDUc5ZXEi))ZS}wyf)GNzN08>qfz-PsS6*`knGopn4qBN#;nZ0 z+Tv5`yw+g{aq-rdhD+YH4r9n>x?Z8bEMVK8+LrEZ6!UVY!6<{}{{tXWGg4|1T`JyCQlXU^&)~p#T2tFT@}J>dT71{VVmK zJF$QKg{zSl_{B~DJDOn{EnPl1aZ?cdt?0Ev;Tj9Txa^heX`gFn)rPN*3IjFg-O5iz zfss6)y$aGJeGr%JIEy2njyRpTFb1?*eq9>ut+m=$Y|GF{8OwqRQK^EH8Agl|@mXkoIL} zeGuC(I+n_IuH80pQy)fR|2+7)dwt*JuawoGXVBbwWUyhVt_}F!8&~jy@c!%=ykc+2 z4lRhEq4)NbWJ~Ak?b5`IxQ8PDdD4!#R1{nv8lp{eb?TR3wt`kv>Td9 zzeeGCvIpO$ioheen6D72WH99AZ$`ctu8aGIBT+dqqb%eUR1VuXgJT&B@243u)|=5m zZ_&s#T8d&`y;6h&`u}6}v>eflwZ3y41o&&Rfw3^Jonv5lyI3hieGEhlXLigf)Oc*! zw6|9xijIx%DF^GBMSt!N$5eM1xca8tR5EdDls3IwH#4YhE8enaN#236vLq-i$N%@~ zJl#xiJV~zb;VmolVdub55Jwh~0=I@{l4NXeg~7Tu*;CG1-5y$;&^cgnv@l`6<+hn0 zg*^2*T)z?q@7l^UywqoJa?2{UY4?Orn;J>?IPG@~SUH=q4ssfpZ*+R?oYS>jP@@!s zTf5OU94@R*eVB!fI+ivze=CZljY3yc)4Lo%pRkWo*1n(#m2*Q4V`6#BE@a#B^dDF~ zwC#hNgc{a~PHmOTo{P-a#BC3mMNF0@4BQ?|bW+g~FksQ4}Y+2%l) zcX4)8y;R-78Jn(imK}k)(X;+u-tR|V^5A?D0%3<|Ju9RFG zSnNC<|3$FTUcg%d9Lj|C$6+oRrp>W?oR1V0va!6IhYH0joRn7kVY5Jlzsy%JP&WtM zL+b=tT603y!HFnu9iY%77j%6XKC&~#uMqXz!&kpahDiIC4{$}(bv**Z^|)wT(Or}7 zUe0OA|8ZDGwCxAqdY@__jF1Dx+2RM%j6kr}rkNO@eiNM)a9qS9nUce?Ivu2sC>}7! z6=fh=X69nZ6bOtAU(*`X_v*K?hGK0F#bPMKdW(yVx6Ni9*2J?IY(?4h798W{`DXog ztK4jB-uZpU-qxW81yi+{&(zh?LPLw2wC(on4&JtM@BHzeWB6b=W3jq$hkWXEIdkh4 zlFMNUS*MJlx~D=~ZRoA|95HFXO7qk_^cr=e1hw7I3yd(J;_ab3OS9<>89TG&ll}UQ zKo&7LVM<_$yO!ruJ$QadVg(#Q*5hd_rwiyKf)7AZet;$#?PY zZ!E87ti5cWuU>OMHTu`irhgQdnT7oL8kUZ&EI^iN<(J^@*QhfJnak@ay-I2P7ZV7b z@Z=G@kgXT|<^z+Is?xQ^NuO>xJ zfsaJ!cGJ+1kJn8;_LDlXT{bAGZlwgiB4)mhDz=2xcYB6A1j!%4tUeL+>_qb)Fk5i7 zrbSiP0Rao@q}19H3s~8W8)9swKY0*9MdAJ7NdJh8@rg@NJW5gqCq8T=e+C8`lLybrpP`A^xAI5Q>k;qcDhIRqGaRw()fPwsL zSr2h@yhD9MWMd#%QM#yX&H@CvZ%PY7iv{hmd9L!|Z#0QaF3*+YRcmau&NFy*sE zuE@~<6`1(2QW>(RUg-e8%Vk3mdXn+_5qdcdkGvewX2Svdv+K<@)nGc~!N0FRatevv zw==t{zI_l0I!o-#y0CuNf@BJQeDTsTR^MVEAyxv6q0e?9wGgqnS@A((l0oQet?14| zdmE!9XmD5X_cEaBvgu+d$G|DV(yAJNI#-pbV`+JPWXLuWc|miW4&4NHY5^iq)QQ$u zgYjp2RK3~=;o)2T|kP(=1?udP!3X#QT%(1>?VcbwXvwZ*HoUeG>dt9K55! z#QAP&s>5<2fSRIr(eQ(1j2RI>M4uvQZEQ9@^2_E{!q1fV;nb-y5lFyCJitdy~l z1Hdpu%OlndAXZ+8jNBC{V_23?yV>S)BJhL7>f0hyh(ROn=S3Uho|sN{uCrux z&!9jAO{NXb%id8)@@PNDR>UIKA3++}U60lQkmk-+tSdSP=#nmJuqz?Aa^QHt{=Ewb zQ_GnhY34*ymWyWK)pXkoUYjFNM>k|cQgo0(%`h<6O^4FG)o&})Qj1P5oNtHS>o;@? zBW>J}u*H z10Blge&6}7z@#llDB*sssy_YtP99%>y*tVt3MRm?TkhaM{{HqJIgFf(i?!66%R%FL zZi@c>9<c6t4I9utjkr%sH^Q+2b!2%H}q3QzBeuyDS25d=*;bJHa2+YC<<+n{gA% zho?#qesD=>yv=#;$QTjP+X|)Ggko%c!P8ro3*uM=-vjfQ5xpg4a!nvMN?(|t|>yw+@7p*zek<( z2Z+|mAk9s}U^Wkz8aZ!H5^9ETp(HZBwZL{mNT(2{u7j{BmTPD_6?DCik-11}ml6Eg z5AoZ7glBQ;O>mGN;5IvUz3|^0)< z`Z*GbF(5Zqs0KU0g`dQB1+oTQ-9DCNSmCM|F)Y@mCIi9BEX;6|3~bw?ZeL_*+=Bbg zbhneF@HdG#tme3TUfjd%DUsRL+@OoaM}xgmLaE%0ojte!pO5Z5fy=~$eUC4piva@> z39tf2DV6t0p^9cD@)#?y+2)`pCa@i%Hfzck%UZ_AUl)4DDV=!EfRnXjpG}%8ipbEv zn$Ze8|Jt6T7oQx=*)h^b!>M`4g1YmG;mw>Hbd_Dk_=Cmql!D}+-R!P$6AjI$qe|%%j=w*l z5j#X-d}J^-)XBPm&7P8$g_+$k-H&33=7oGQ=uhJGu81R|$u5Ic6JA6aAh1;5k3Y?A zRqq^*H5&epu}JvO90BI%a-856KfCq9J;ReNyTDv1ep_}-@(%kC*ozm}ijLou**aM^%wG0XqBF?EisZ zzo+W?FaP7e{E=xR{_0QB*?+2cto);rhL;FONR^!heH&)-xm9F>tvO~d6|M_x16 zS`}%w$B_O`N2St1v(C=5P~-H^^6?YUi(w^8e=?@KxmJ^NlW!|(h(Oqb`4VA-br`WQL5M&bbgUu zSv0st9yOOvDk`@-!s06zC$$pP<({cZ4o{+)R02mUPr`w= zhJw@NKxVpNPiVckwL!-qE?W*N7`4JL4J?Q=tbXzmu``vw8GlX-BR>vSfLUaaLNP$^ zLqK|huAk_%oIjz{@Rjan&0~Z%>{~8B$xYeED|Z3KxtXtA0V;U2Veq>}<6wvCRxxJO zc@LHf(*d>22&@Ua6H5o~2z$qVqSJ%}!vBp<(*Qax>rd#k(Ld5@3xA~3 zT>p+vTlsf%8t(r;IxWPuy^~R5SIg4eYhIUrXNP_pQl$G&1yh&3Mhg3bQ_X_0aFq_< zU-vfo;Vc}R*GA{b;DV+-Zo89|U*cZiQvyFn6xuGJW{8LW@V@L~6h(_=PP#Sy=PI^2n7 zrjiohY1Dw_T5t)Et<8#?>CgCMd0CZPK5Vk>vc+mKv^oPs9Q=yJP5~N$9$?A*;Tn0g z+5k%3fRBUg+&Z*({}@>Q`^t%ryJacaf{cOD%!h3`KP9b*IP@yoVhCoLsb!x`Y1 zwnDGF@ycTul*+h|cm*4t)&2eAz(%heY0}`Se+6a1 zt=U!EGT*kLsO*(QXT<#&WpnS5SU^39=??I_=?9kjRE@N?ZQ(PW@2hA-u=XcRmYM)u z7(2^6J+ebn>#XyHM!d&>yjwiBvhAM9QFGVK3#QIG4Yo4BmmV}8n$3p13Uv>mOBSQ1 zDl3dN0bB7T$&jg`zB$DWz_FYa~~*Z)XWvEUdHV$$7TMp(9{d+x;VJ2O6eI6YYTCEQnq4 z#u@{&NnDcm*L1_-a|&jkU6%Fw`W&55U53jKlk`KaYFUSAS0QliVtk&<_H8ovd?e)t z!d)D(DYDXlr+ru97R=};kui}?$RR3^D@CN->723vu;7IT`L5rKNq~b5M!MMeO2)+e z{Z=E`|6)edS{f^(D)u8qH22xFF#q0`(VwuHy!#|6%}qhfi~PedUUF1do97xyhsUr!8u12gEDBEE3p zQ;;GPpOb}pXh1?N5ZN}kkd?v!0x@PecMKdwe$RSmgDF_$+6YjgOmqb3Uo41xY`5;y zgA0;KWjTAGU}LkK!$STYo0j!&Y}yN@^$%>C=ug?S;ZV!Jv1w@&E;x9E^le*eX9_FB zO-Jr@PV*(hOpMD&);_(OKCJZ@A$M7q31EdhQww_Fbk+IQS8Il0&h~PDqvA_wyO?K{ z$p`cGw)WR-?mPnJQ4%8t4Xq=LfiH_QYtXhz z@x$t8#?5lT;+<>l>cCcLqqfpe9kL*zS4+asH1q|Q0|dm`ic7p<5v=^J_@f}RXRt+# zZ3H>Q8TD+UB z1)}1+44t6I1rlj&dqci2vUb@^(q;fTU&gdb&~$o_+T^_oQ=!h*4t|_-0MC7HHOOSj zF#M`(mfV_6vW(hHd~hO)GmkyVSUrK;cqWi;Ev_2~@I0(4A@wUiLA9Nc>#+Td#=FKj zw%=8o4RXk!;kA;mi04(FuCPWNTbGEIwO`bKrBL5$zAh(jTSwiU6=s{w1pi!%ROYX3 z{shzd=|nBuqcx=aR`hMGLbQ9^NSpU?oT}0iMGLKk0_@+>ptsoHmG!zOXt#YY8Ot;& ztMB5)g7&PbmHahbW3w*AQIUyf3m*rS20Dr7(wXQpu6}Ecx*vOPogtHfo6_+*!X~D& ztlzv=B$LQv)^C5h_0t@G&eGN;PNolsm6Mm^45SUgu*^L`uQk4ptph3Oadc?0kVdQA zIygp18GftA$|)Y}Ckxgs*57{*3AJ{Zgt%$Sm zf3s=)U;yTwFwE3y$-TUZ>2-r&Z+^SxASo|pE_Qx;P?n!=AjJ0|(rwS|lj%V@0|2w9guD{Xm}NFB zV@+pL{M-@)1FNyNr4Sr%k**;AE7w0L>Wv4KNyHJwaHMXAWAz(bwuXf1YUcTs!J-?Y zk4imvD(s1iWcC`fuKE=xY~FP1kRvTOP?5h=;)PYKvC9XXLq3{k!hr@9R+f&w!$ms% zO+v6-yhx{VQjB#_>rObGbb*J`=IErZ0fPSA*r?DrH;5M-I|Sl1c8+OC=?&Db4-|AX zgEo#LP@foP=GCcJr;!M~XW;%*{o$04)ah6Ip=$kCEz0-!NA}8DTXr`D2H{QJM;x@$ z{{)EG@Dyi`hVdr!IA$2*b}4sq#ueVGBeJCK8xaCP>NB7pY#fvBagw&P@R88-lCB7B z6rgPLn159BRrJmZP_ePPP}FI=AsslQOCyrLwpME1R46K%p#dKwS;@Mx-aHRP$FwD5 z_l)%pr+}We;ez{&ZZ#K7wd}5ijdWQvWEI+l#x^C@AI`a4sBZ@PV|%&lcwU9JUb7hb z=jP;l(?4@OL)&B>8gNAD1(HBKD8n5I??-JbVy!)9E~2%<)}5`byq|u_l^xa~_S)TR zwMX#!7C8UqmAgIUz(}7!LD-c4d@2JtQYa<2qxw%b0K|5>T~czC)rW659Uu7dCun|W zec*WP_Gl>=&`riW6^0_2>EO-8J4?FOIV6->Ej6a3ENno+b%S;6#3j_;Mqf{aEaJ#9 z@bUixWD_&}lE$cs(l|vP3#yHiz#Q>DB@ww!h}SfzT)G5>p$;)9;h;hio4O2)#E8z4 zut4vJ>I+wtzkBQc4S?U2{|mbo|F25PfBc(2#c%)5O3BiHi--itBtLbx9bXSM-~Q`x zt^DkVM<4ySp7|%+$zKF4LSD!{C4^GKGk+5yNoL2A>88nh0r7p5x6O3xo7Tkh>#W_) zYpwN6yK=3io5p@+!bkYn)m_E{(U5)|6gtFO{}sW|dwdGCtL8SI*6DYZbm1shPe)#W zZj-D0?L=697g}9Bobn9{SIi$zJ-dU?jan#{uqf3k*ZtgMwyn+;{khPrFqbD``<=ZN z!D)FDc`6O$d%Brc&F7T}SC-v%zLcVyDSFf@o73yLhpQ{)L+jl+&CRzC_Pg5AT(6G4 z90>2;s-W*Q=s-CuTQmUWhAGzM^?vkkm3t-8Hvy(%offx9A?b>Mp(#c4IC%q=HW^h_ zwAowfJJknbK8uW!&tYnZ8s=4uNG;=oZ^9`?`8AR3j`-bFVoEUholPc(r~SArnkff@ zjufBY#jpB^V`rEc@M#U<69RkR1}O>74>P|RuC1{RW?hWEx!2fflpCgRT_^B$^HMzA z$|@r%clHZ;R&VT!wESvl+dEM?e{79s8h_p55pX1X!e^n{jFiUsop0lUKT@k}W(KJm zs#RA+ZlIfFm$7*Gm@ZY`q=19i{Il!KKt1g)fofhiqy|s1)T+5A|ADu(#$SRClSWke z3KHy;AhI-OIr=24HeQ)_=WG9qQly>uLidCpSaf-kNmZ&y6xs@|OEQk-w&#&5MKYgu}C@JwBt$hA|ESF=nI(x)FXF+otz{Bu6Au@&4sqj zu#WRTr<5}W8DFP#(NGq&r5(Bd&Nq>h9VCTYyh-O0mFty~ z_{ty7XGy#*uJFC-oHq431$THv2g`;n^UOKEPMV+Tg{jsBg}F3}TJkOq-#eXdli)=5 zU-np`Ax;>ig$Y}R`=Ci?zxKL&#Xg*$oOxk1FB7*>JQ^Oa^}p!IkO)h>imW@+%b9Zx zIboS%F`=zl^?dszy=SJ%Yhq*+4LZ*?Ha4PNmRYEweN1!TXKwzzR0egI5H+~&$)>!jYU6+ z6embH(aB&@UvI}0?uF+2i$Owl@2_1Iy*M8ZxluTb_tzWU^y~(%Dmk98z^x$WMpzmZ zeYU=X%EvJzxFbTy?DrDSN-gvtvWArmtlvwOlk5Q{`tBRvMZz4<@6Y&U#J9 z+hhZ%B(k)|Uk>BxGj?v>w{LhL>2yAX(>1rzO`e#GhVz;2ET?-rqx6ZbzT(cWA>=v{ zXFg2KEhx*FpElnwNva^uz3-u#SHJz*D3GNp%-Bl}BND z-1T2sJMjy|Xi9y0wTyaYxnChA#`I?_$geRse@Wc2N2Bf9=1=9X+Mljy?!N{udrP`D zRrvEO4#6107_|A^dK}O}C?t}?^If58?v`3dFsNOp1t7G*qGXP|ooPU>rlOk;Y4kSSR=vR>Q9kyoH{TRL0nK=4R=#n3_0--PxTbMc z;YHTPikjY~NfT)5+vTV6wUi_il&Kk^+aa&9Cr57Z=k%|ZSv~!UVPoiUUGi6KDG_>< z-qQa8sVmpB{Gq1E2!B8`9niiH%}-~d%h}en;G)rUN}MQh7nIy9!zl8+JD?hmR@SN? z4lT!LiB>5JY+Ur3rBxzp^o7u>m9^L7EK@vhDixdcR0#+$kre)gQv*7{E5^EWupSTY9Fwt1=p zVX;!!D(C0S8rQlyO}sC{Iu421lq~vyZWniA!ZqRM{$Myjr(ZtOn9jB{Hb03=@UK`^ zt5tPxx4q)EZ5n%-28z~m>W)X>E&2kQ)v#PwJ`ZNfL^+Mw_S(Z`TcJ~lC`_m(97!X& zuT`AOEU=pGxP^TP!C*t9p)F$tPEZ~RUVje3v8Ix#WJu1+KhH2Fyus4~`Q(A~P$3>7 zN463dzKZ@PTqOM@$v(tL1vY~p8RS=x9eo9@j+tscf_$&Dv@mlBZu+jo_1F9cj&;IR zGo$xayI>G>0Mk~CtqJI|FnRf_r$vo#=TupvtkT8F;5Us*Uh;zB4%2z#r&M9M2xl9z zk5i`XzqG6w&tbJe!j=949lnkd6Q~vGuUH%}+tPQQ@4}$JW@D2#RePAaI9MRSqm+VT z!_slMWiKZd_KtZ2lKmNm-XVJ_X$nj3uN*WplKE4n;cJv{53+tJFrT)zNv6d3g_R?D z@Om!@lLK;8IG+<~kEW2j?!8S|T{$|{d;m2haL^;?8|}D(J+KTc=e|Q*;33RF>nP=5 zWpfFgDRl3l#Q1}B%~(dhBy@YxdrDa(GUh0xG?wtNUto4V%8^9FbD>#&BabQL57Rum zNH1!9hqqr&KD)9#h!bc^+k+fyzeq)(ez!&;+T`G5yQV05MR{L8N>MOq@kwG3`D+7< zG*`T_E5~ka97l#lSdP8Ee}N-|bcS1AwdePuNI&+BCPtP%?D;b+lZx*ZB@J3`UuS;= z$E4qsEiU&_stJ#&GpZQ*o zI7e<<-7GhB`d^RHwpp`9eLbK<6YdFCU^>qgpH-3G+w&z)_gMOYkt98992F?>6Q$4I z;Fz{uAEOfcft{mU!Ku!UF+`88C1){6kKvrtyX?>f$ywY+mgLy{HCTrlIy<$M7(p%L zylR)X;1)iuki0 z>U9fGl%FVPzK|(w4*4~BY%DAd-x%Tj>Br_`!<`?yrGCLv5Uqsi1o6tfT%|b{LeyGB zz&y#A%dDgz|ANfrO78XyX+L%6e`n~wOQpN2&}ci$pTjb(=!%SQciz!V&TiEi%7je$ zkVY)9pXW;)w{4R48Y`4AoS00ISkk@nacA8Y{2`31y7X8^VayRr%UUDYFD&G=W3e3i zD(L(vyNbI&kMzV7-b2sgw)ACNLc5Q)HENP&?H40^8fTxXiwl?}bb4^D)~%~lEh;`J z8O`G%g!A@HMoI_2>$5j+%yC&>t&$7#b}%w8&RoeCE4awGrxL#;&JBdl zOd9UJt_M9r*6CCY$vV!JDc$`#Ldwm)ur`YuB*k5MDPEcmzRIJQ4jFDhanJ^-I<^#T z^n1*u|B(8PuEvqSF9$8Dwk))1Qdvcc`D5lL(BN#vSY2f4AfcXjeC6K}^BZ9Kr4BUM`s%IZS;*lfYZ_Xo8x$M#3!aj=kd z8F0?x_bs<&?u{e0EJ3AiUXO>{eWp`y=eg)VzA#%==)qA)=X+b%<2_4%ovwQ_!ansCNE>mZ)#B zTPZPo#T^#8*!kZtrib@S1RT1OfY7Q3VF`|75_8d`2+7V#UgPM#KKk|)nNpV^%Hnrg zX_n^;WFy9XD;A*?mQ{mxpEa(^)`grT_s*v(kS`z5Bls;vhvbl;liDsl`-DX;RXPo0 zKf$*|xvw|FunJj8msnPeg+J2pB(=h9%R4_VG)qpHe zmTwQ|lLqxZ%AC~fudkA?Of$i){D)a_Z09dxB+Or( zEsN7ve&dfn*w(|u7TP2Qrate)!gJZVQ9SpDgGw2<@leb$1&%^$u;1oeWhN{xrl0PB zjv0SVb8alw37W`ylAQ=7gwnNoH5uuB^Pq(34|1YulcN%Kb^*b&c8;f1@dIi}0*+no zRrfZ8xk}(_zw$4Y1Q1>^Urb=|0>vk4Eyl?QlD8unQIrC->S}$Q8{NqjG?l{2DT&F> zW(8(bi)Eaa$?2C&UnlBe!ZR1827Qj@dP}q8?0e9Q;#?)V$+exNtF{bz%(iqnaiLE< z1`wT)ROrj8`dv(J7Zg%ikvBClinGQCk^<{`-x$BRrMKlwnQ|VGKN+RPfqU}PMbd^OOy|GJ2o?hjQ?oVs10(C90YTk zsZm*D8uFo#dF}Weh)(o7Ij$TK_29SZ?z>^u;jL51Gx~6cYWIpXLu)~rB^RaIOsiqU z9VNrOCxtxmy%I|qLsC-3lPd%+s-IFykS6k|dwo>RzG0V7mi#i_q1+M9)+BG~eJ#a` zWAwKA89i?)UJ&Ncj*2(YKtX?T&j*E%>CIM*Tey8g`($@=v-C*p&2dA(nR8~AT%{jf z%F4r4Je%}wjh69rP@X6Wh^RfG-(yWmR^=o&6RCo3merhw+<}w1xL^u+h8!LOA@n%;1K{$-!>ZuHHji!ci?DV_u#CZ~I?@A5j!&L%VVo4_hON>>UGu_|1^;ZF<&d_naoF~( zhE#d!MnsVm6Q@Pfk}r{p7r__KaT$dRO?>%C2y`1$bv3YLZ>s^UcKz?pNBLfVKLRQ- z?!AX{7jK>MOlY*KQ%aA+)2#aQAhrD{@uz#hPC$|reaW7U-C7IWlJ*80>QCL-owHln ziY|aw)`nbvCtTrd&MMZQRX!-k1K-gNi$EsJv5&6!rkylp-{i!QT1s8^wU6&|UAarY z9V>5r=l#*QJ0GVp=?SriAXn%7gYkq>tXk?`d@!y&oO-T{CI3pR$RrL%cP0_{$-6zF zzi(6eJFrsWEcT#Nc?VJ^&2!-ySiSiM65htQOz+E>L|Sna&tOwMH_cm}a+4nB(hIFF zh}CkjMQf<@*D9W#QPQYU`K3~v!%pLJ=$j&~V0_RKnl#U&_Yz*zROQkAz3Q!cGJLfo zJ`0K@-;7*wkckTA6{l~shOs%~HRObfSFsDMWLC{=jJ%v)-LF4>H=@%$DM4a5mI@hHJzbGAs7BVt!U@O^f}4 zzte6(o7Mt$TJ7l`SdzxXs;*Sm8=6G$Gow#Sfk=$dj17Hq)cNMr1^bG&Q$wQPR^`p* z*i7?3@HEQr>HBsL^P24VMw=of@w0eKUoAwV(vvrZsS43sJhzfT8`SQDm98cwqM51G zDV!|~@8NnC)_)SiRbWjf%y21{7~N%rArhu^c$k9FyYt(|Q0ppqgbu^=`b?~7kfWN` zCr4?uJ%^NoIXhHHS*bX#)6t;bx2O1mc@BI=TiV+ZCQDQrACS|eyD`6EXN9Bkw)naq zxvwIv56@o2cALLyQBaE>^$ctnbr;E52?KY|u<}<^Ij2>1r^sAybGw!x&fSvR9*&B_ zU@d)Bpi)~6%?UEXU|ogmG*E0D!kp&&Y&+B_)?zcViq6GB4xij;oS%f*zFQCGZ|1#k zza=Hg$}s)l4I^^RC{_1I+1JQ;@h_y{Mtk+9frMl$@XadCo3KPT9OeGnGGtahb=pe0 z+_v0{cTVBXC1O@;e^P2-x0qeLNV_fb-iUqL7DmpcaOeT6gZ#TpB9Ftj^l2q$Fa3AO z)lr(&YPZKW?joG2A&USrjTfBMwlc_rvE>V>jZhEXQ5) z{N$>pDjO2UTX8JSn`B|^@^q@pnR@xeZOe*|Z&N+{xUkI@rz}qb@33za*JKri>59AJ zC6W^VVaMt=c{^_Re~rBLzsV&3NVDa${uHPEzmiF|Oz);dkN?%l4{T3!T+a)C^PooY zmxZq%h=0a(C{8{N_}o@4FXTrvlw@e(^6 zM-cz)EryFzSeVsvO(aNOl`hWmt&Xb#-9M?R!{N5op>?&hj)L42HD|lR({gw5x8Upq z!h52%oqx8z%d*j?!XZZb&4Z#A#mqh21mbJ5qPHP(>xHh2yL6{j8m809Ne~CHH#!KL zpnj(=m8FKyRz?W~x~yGL1OB5tn$_7|F+wwLwH)O68}2EO-zM4ZNV$wY+lu}TR&V_t z-y$jBi80|#w`(d!@DRG%mxLYCvXh`e8{8q@P4D7JD96HEX_?5kv;`eO?Z5C?Lg|xY zSzRd@@gn}4s4+pdtqSk@@I8K*NJ$16d=fkp5MUIx)mC3nI`Q&GM8{MbL=+f2BIK%=v6oeWfG}c1jHw~jmppvK3JSd(62;8)6AbT( zj?Jf)weHJ{}7%AEf)&#%^(+ zZ1@-z=zU$SHG-I{*dJ3SYtJa8{)%hOEmtbrG&}w6m7^2RROk8(7RyjtvkDJNUm7yZ zf3C3*N8Wh%Ab%DvJCqx$L%{aFl&1!RL2i*cgKfs{tv>8p&3m$WFfv5HJDlR+eXmN&UXo`LHD-YFttHY**?OY|d= z`o++Z;HO3Wm`4xb|RZv{F9TDBTFtQhG42@BqFK(*&T|~mvl`izIdg9`ccrU4K)Y}D= zbFoRFtVx?o>0e;<9ad6&BR&aZ=X$ufNzg?1%~At>xYSK zaBAgO;d$YHjC)2<@I6%?WH4(Mbz?5$DoiwxC)}+qYn}D95J;}#cI9+0=)l)z(xtmd zZIOC9tA_oi?(4mzB#n}c^J^LEuk%B9wu20;EX62~r8^YxK46FqW#mLNW8C5IHf@oW z#yWCQ>A@LAWqtd`3kBzyWX}uqrO@=bK;7Z31F3rjs?X$?rUD1ty;NEU)nPj=a}r@{A5j9nG=I>Lmv@-8XC zNf_3Fi3;BP(dfgbpuGLNY>RsdrNjYeEl#()y|<|6G`Li4jmQPgI$~!a>|vXASO0=8 zo$Ew#n+MxImjwkiis}T0)y;-f1}Zw=OGl}79}Nld33UUBS}jzsibn8x?T@cRiNh&< z$F===fPeS{&<*eJr=^y4Qv?-+x;mrcLQ-t)*y6JR&bIsM6&Ec)-IzZ|*YBL6B(?3E zJRy|lf=&}8u%EmBh#Uh%*Do|>qwdYmWDP0&Z(_sNF6VV{I~7g55Un;17t>BLD(oq+ z9Z@qCxlmwijl(K_2RR2nXkqT2Y;&7P)BE~e!!h|o3%lSkGO_&DY+;s}4p3=;S@!#D zKCGk0i(Q$??bBeNLG=_QK@BU9q6;w3PnM&*V(jNf?z4x^W$qzOZr~IBNi;fGEsKt$ zyt@xii9`37-vPinEGaQWNE`L$&{Zo#Q?^}UI49Qx+}L>@`5n)1Z{)Px7VD< zO9s#!8|GjlPv#674s|*F&`m;cwoDNB|##n^xW6|BtZjKYYjV?qhiu=*kTyY=D zL*_F%6i}(hxDQ&gd%^8S#pm=;jb+~AQW|@*t4Aj=xjwVnU=?@7Wwk!W58DqKyCseF~^)6x!ea zJ>_seqIdkTa;G!knl!s=n&jonlG`c$IaaD(R0UGf9jl|}PD1xxxeF+jUuQza3CWky z2x~@<7GsqIttB%DxRahjnu0>_Ua$^wWzISy^UWQ{315XBkvBlcG=`7+-v~3F8_L6# zH+pTvkq=GV(ya%eA0yq@vzwLoUJ@%u zRMAdOGDLR}FTq-Rhx^c`U(A?hengjan8wfM1jE zZfU3WI*m~j&@}FCJ%Y`iyTA;7N~7qd)-9WRCS6X=qDR|_C}9buyo--GZ7jgP${90Y?=$e}hP~xh+07XTm_Q`9}Z~w&; zFvuDj(+z_|`8Z$K`GEk|HnEcI05yp+soMul=;|EqbZPjWo4{T{^hR)=W>huux2rAd zHj0}kQ)hK%ms#h(`P?s@DPA)B#+ckmY!IrUG)pQ zvwYAMgw%7Y2gTPPZ3WYXMK3*JO8cK!1?`o(`xq8YBzx)*)6n&d`U;Sl zGn88X>)SXcHF+kyVC5}{ws(EG!F6HFH1tONS^rH(*+cz@OhD{Gt}c=p+6FtMx+S}v z5zRk#q*#*Ewo_O;#Z*#t+7@z07&p6zFB6L7s)-rhHPx(gC;$J0s+RV@SyfYQZyGQ7 z$I8o}qj%8H#&S_tT^@mPH#Bq#j}tyFMdhBdOFP+jeEML9X^h?A$J8z8E)`mJ39_0j z)(pkBDP@u)5HJCh^)b|o%a)&f33E(_S|(@9zzDY@*sG{?Ud z(5JGB-U4?^RBVdHIj=jF^GXvVCbfS!G0+P+4%xX9nQrIJW667iE`QknY3TkhME^GU zKk005{x_RsHTB>2Z~tqX&;I8Vx;9j% z>yxuje-s*whiJmhp^pgF(D8|zc{OIZ!+&^sS>;&Bmf zrnDthG;6+Z_PGUVjF#=eTj0-pQj_a~v5E{921J!pu4r{nYJjC$ zG`|0EYf0PuqfK^|`f<<7rX=8>DR!K%+I%lifG|bh24^$-7wr=+q=V#T9+t%(quzK_ zQ*p9aI0p_%IW=%|i<8xloYUV?V7k9e%8EOt^LM$+Rlx}<*w?8joD%jT860TSRU-Fa z{Slsi3m_*E2ZSwtOpycT3|*%vNEDOW^hBfD;L^>#rL=KaP?DQ}w<4g{MOs}$W*ouo zujXrMZ;n<2{i!5;Is;%P@J9HOJ;-zgd*n#oJyVjH+lf@e+gMzmPQFy05qj>BW%V5s z`g;e0E@qya#ZQjz_u4XjZ)tM4t_ye7i>;;IQZ-jqzIk3b7oL+jmixTCtk5&^X>dH~ zM{`doQ-Lm;%&!@nmeb!IkbXl7h7);chL&rR_v7uI&mHmk?#8O5q@{XILA_yUaW9e^ z_&PvP8Jn=WIt+i#OXGYIDa>A$(88w)9)1u7e_?4rO^ToXzm7qB0XFZ-9}g=E}5UD1gP1!Vgr?UR z3CYx+9iY;Uv#PlYqpX%7X|D3t%T(wR8^IstlC&!0nomK{Tuc_24>^kjL1BJtKwlDT+Q00>*$vL6q1MjbwanEa_mSt1)KGA>Vlto`zC!yw&DWG1s_D4D4l zd=yBYN$qH6bEgzMpT-wbg?XPL(fy|fgcPmnmcH|LGa?xwc%4f~F?s1QJP3SPD40p* zRY`8|C9S_)aKYYS#Ne&0#zNA?RBMfROPC}pDt+9O-Xz(DeSuvO2sr0zN!YS^e6!yHP8(I`8y|BZblXf_`-0J0F4c9iPk25*392} zzXf^+GMlEf5^R^^)W{A-Aj$r;gW}riS1#*6a}J;a@4Gpve^_ZC3tf+&%EI^(L0VlVv*XxTQ?YpIquc zK43s1Dcdd)MU=f4A5v5jb#2c|gFlue{4N|XDk3b}4!G>9l9~{pgQ^0{Q*V-4K6E~* z{Z_h)sE!MUh7`V0_rSnM7gH&z!|Z#kH9P!Pn=bcSmMSVVhKmk|;~5Yv>WSNz_-;$J zIAO4mbt(I41Av@cCyAjSm*~qBjUJJ*F|nsuR=)>^Jj~EMOxBgQrLy<38cviQX9ZHB zJcYVoO<}{AA7p`pE*P^};5u%LZM7Pl$!H+PB3t)E{6|ibU?QzZu_7UmzPPJXB&v3B z+;Wx&2RI3?rSB#d`jyhJMf3&!K=6%RSIyMu#IkBj^+}OF+{Fm|u5SQH-n+d;R^>+0 z-po?9>tE$L3hStr=#Bnd-#mxZM&9~icIBMMgG;@#cgSGaq;mY)a)C~x(eC06fTQ}sdAr7@x4%hRB(6_ z;XJT0Jy8nS6R>9^ETY!zVLbgDTeedNYEy61$y)}}lkgfUhkSMsJa)=6 zG(j!E96M5Dcl*SwwmI&3M067{6?8|g{kLFU5d-n^FXjzl2@&qB`QYY z3|3SP>TW?&?k0v=7sU~zrA12A(jVt^2gDyZgj39?ElpdLy+9uIl0EQ#{4;g9WE4{s zEJY&X&PQXAb%WTUM8B;SXAd5&-c9(m{N1{$sh8R0f*({i+faVFi(?>6#0iA0s3oR9 zilRTlsq~~!<;U8*FT@ID?y+7u8_BV((gic-!4et%#qh_A>8tcou1 zNy&pn&5z+==85PN+FK`-L7S4N%-%pYHYd{xYR=bzja<~z@{Rlk?M-v^&7Ek*b6>!U3|29xQykP zs55rmQ_=XuRVv^cX}4mtr_*la%!VW>+fRujx>u3Y=Yy2`>*A=+U<opg2p zT@V0?LVv{I*#>+bO;&xSdrDiGmW3%?#SN~Wm1K$Dwej~NT}D&TL>7;rp|N?aY%7Be z<<#mS7BTu;D<6Cv;s(}}hGLId-%!daJV0vX?RY}5gZURxe`{3!&ZeX!f*JaDvYrQt zc$za{dFN&;;qAtlYF4l+^=VV+VzUl<3ku?nPiVXaSOgRT8=bnH8|nA#^lKuKP6yBS zTyfNJDU^VVc_g_b)NCz3@;#$WA}vgJPnI;yQBXIdQyUR}5p)nf$k1EcH$%iCoRv=) z9D-254LxlU@68iuHn80A$Orc(tip7`UkkQ<>D71V+DErfM9*h|RTGXghdMxFYynO_d4qv>mp|X#6YSrg-N!qFQy^2+?dQx+42v5a6 z9wjCjvnub2#GxAYgB1yiFMS{SlkSQG*33^&uKsRE62ZFv(W6O+ur37VBhk8~az+queOFN!uAc|otFmFP0r_oyBScxPN`AmFck7;sl|L#9edUa~niA%_ zO$@P4_%+0~PSnff0|S^NY3P!;g2Q*po3t^RXb>@Ct&|25CpIsGdB?X&ho+~W+z>TW z1Y1g1MM!@z5bpd$-X)#tnRQcEFQep`t>?@)DQ_OD9t9HaR)EAG0avHOr>U>?hUgy3 z_5?6Q)@UA_sU}L_e8A6C_Wq8vlv)c!a-AhErPO%?*BhN{^k?XHT4_WR_Hh?FNI}t8 z9c!-U`)oze+&&;g&fQ5&wY|9BS*c`Xs@&5!V~7FYx-^<4@k9Ds+6|&KhSagnfUZpX zb+gn0Aoa9lJ$LKdU3*FBL$Zi+I=}YFo3UBH#8yuN`O~IwIzx>F){U~cM(*L;nfoHF z2hxUXPx+>w7(Gm7xex2RNOCQvlxJMbk9*M)E*|%PLHAkF3HMqyIgeLOoMvJ`HluSB z9_V>;D(RVou-~m#j3^a{I`_Ax6|gyE`RCRs4z%&`=fX^d$usy8{((xaKs?iK7ZLD5 zU3t#DL zo1srqIF*;@Wz(@F>0C8|$LZfDDm#LZ@Yt`jf>V26ZmCm3)*Ot^c(C@U<~XeQENt3#kKU zU(2J{p;gR>VYd5^{xp8S&0)^pQ+6n)dp7ish;>o}W14$=I(IYMxWT$NXS4yFSvR>X z+uhc&@k}k4VrdHtHb9<5C`A2ZQ%qT99=@{ej7{@VmgGK<72tUnyrs+Wkn1LK;S5kzR<34P~z%K zB|Mt$ec}){^vbF41NBP`$8?p{ZTK=liiz%1it^P_k2Vh}Tiy9f6Wc6>fSg~d{;uC@ zb&RXRL5DYEb3)br!FB|-pX`g`LTP*8&=;b6VYMB@j2P>ClHbU6amU7|oNyk;y!5`R zQnsgd!o^!(DODr?%u9nYi_%m;zc$yIT-e-$sK6!j7QAJ`jv6vVE0vZTq7mUr`Gzu9^#PYP(>#FUd@Y}QY&UwV zrRc{*p(C1(!qo;jK*RA8l_-AU_1%5$*cpyL{InUXzr)VC<92OK%YQ4rnAM0xNA=FG zuxxSLPirR!^Ro@g{w}W$L0V!v0EPPaRM|Ku)3?vdFG?hWGAz^c9P{TrB3Z>q>@RD% zUw6*_CVxZJCiQL|L`EcirkaCVe+EEz?E*G|!fIxe?~}Ud90NY$`^2Hx?ncQNh8T6I zQYW`p@RDEgN6E`jNnWam3pR#n>vT?UR5Ia(<&CHp8ANPWsyRvu`;B>_&2_>OcV(u*i|sJ?beywjHJqoy9y%ytughqC1SX|qRKazS)& zbo<$rFa3N^H1I`fJl%pFS+f|&-@d%FT@Pd$1_I55(9Un@uPuLF-PjVzk#G}76~1H zZUD-}l+5Id0&8q%cT6|I*>=gjM2gxh;{s;MMSXsz!1Z-Uu*Ois`;BU#$F|INiYtyp zd6bo^qtS#7iAqOYWmjYDNl*Ui8t$nPj|}(U^%*k$fQs&;!!0<->PAa=G#KKVIr-wu z6yU5iu#!;aQRMf{q!MAXc`;>*fnG-kaa(Zw=L0S>lv~t=k4-zCEkUaL3dBVGJf6>; zYLkF6ck2!D-NOJnf>|gVAI>10GZxn;>BkN4vx9T93y85cwRUg}r5#rCNud3)tOvYi z8uHhG)>sj-P!7mmQ*yDCJBlgkYXFYG$RDS+O?fj|l=2;5bTvJ@G&U||GTH`BTr2n{@=k)=`ai45icj8n10 z3&7%Q^gCgfh`Ay?TIxE7Mklv6cwX)Mv9|Mpr}8fP)L{L_fL+wZ8KS;#P{mKm^BcliZuStcH>HF#vV*;b=(v$(pu!{*-Uv(Dcq3% zG|c(XRc?()Wk0Nb!aiYngdOOdtL^k?s94*Ig>rh}Sm>SPt$9M>H-u|r;-mT`^5VPn z({2oJRAEl!Qx0d#_RfID1OFvSIKylwnVHYO6aS@zp&U^3TU+u~5nf$$lMaRYV)2`6 zd1dk8VL)Kr_T|(;7x6vvwPa@&{^;Cb%5~&AN?CMRN%L&NVQNk)v_{(-k7Q8K9Dcn` zK2Q@ts_yXAhgAMs)dQlEauD2HbG&hh&-VSP?bP!xx3DURuVe2vP+ZtoNIRFue5frp ze_r<$aP#PCbdme)_pbD)W}BSKorG%w-$sncf6o=zI+^v42m9Tt(!}NzA`E&qAvsTL z0YFhoPyg{)^ml0}K{DmIyGNJd`|8K@T)XJ77gu8bbU$+sqD%1TBRP)YHiJZxs1Vx^ z^Oy>uRj0hBsAV6+e=+PaZYA|yqKt@CieBq9#HP^~a_w-FW|r@tI958?FOZA3YR)YU zK&kJ7#D7hMynZrQ>8#roodl3rq-d=VE%q0>%Rp|nrNg~qVp2l4gggE4w1$iYzOH|H1dKwjk_!l2vCR>NLsh&Y^9`$7GZN7* zlz4GWK@*wpA6n19MD8S3q3VTG@RHlxRGM+3`;b3-6HT+6;>-1%=dbadt4}u& zC9Jmm5uVMlic>6VOjpJQ!6_F^ThwX%>ZT@HwH4v@mS1H#4E|=L{xZdlbHyo~V$uEk z{b8Ztz%?Du4rRwPgLKM)@5d2d&%N>JM>Y6^k?lSc!Vgfr4)=dfy z;RRy>zvs2yStJ*e#1Dzz2pcV`%h%2b#y^XtS1$tBT)pE_DLhU#1BrUHdJjNgnPL_R zkwHU21LjQ?{HOS;#4VHV!uW3rh;Qaa@S|5$Zqpia^63t*JPdqW>ZEL!Xs6ozgH4HB z#&0zn!b+&`_$&6?eLJkojfj-AT>@Rn*7f-I8)jw{sxLfkFfXQ3cmwuLARtSYTOTjG z>;)q@3QV>=O&xxa2V zd*tZ2r5w&I1*}*pl1VCDCJH+Rd#M!A(R0jqt|hd3FNzWse%^*p<^vg*aO>SJRSJ;OTR&XGt2-}n5P~7G1g<7 ze>$t}_9KqlghD>ksWQ5?et5aW{NfM-DV(_fCInIcJhe=`0^&30)z)s{>NMR9+`KQ@ zPT96G1XP zS9r==IMhbew2N*%Qr%Th z?h`#+&%g9={~9m(-*vZ(1OK*%`wxASdH*9`@`a19PyE$C%u28Ib$7j(w@7m8Vt@DE zZ+=Ru*4-TpIA&05+BT1Q655mc72P!^&+5w`tbW3R7U>8E5c3iNnhHZJ@AYd_mA0YR zD9WZ|oFBPcz0SBaqs7qR;27ovZwo>t#|zIU8mXW>7)~~>;m<0pSE*|nViCBWh`aGG zwg)5`ikDo3ZkfNoO*foquzt-Lau?@0S0I0ewsb7?iBkkaNN=^qd7cOk_XuaGuc;9| zfAFZ3W4ue%?#kP6Ar;3I096eoa;#<_^uJ48GmB?UFB_LzJn9iR`5k|kC~v^nf+>!~ z*x`yAdL!%YYirAQPE&fUW!27A89CO1kr@B)VX4$qbHwOam z>DmJm=2}TkQ<9reib1d1;gR=*zOBkRe!@z_LqTi$cpggIY{ha1bv2EE-= zM2gSAkrBDiIVor4_A}H^jOUG2v8}}N`%d#AOJgiBNDx+f3=RB&_u|bCeT!|q`HdYV zcYO1*FDb+f+tIFogKjHrHNW=wOYNlG@f_;%6#Em7s*3!@QG5<2$OT0|Ug^ z7hip%PnG}^s~fi?^j<`+Q)AAnmicC@s>^+AAjmH@v*n2(Eob|x#Nr-vUlsOS7(`7K z&2#Ik;Qs8m9T2$m?L_D0LeSt**EllFu#a^f+9>I1Z~n|kQC(ZXO>5#0i|$Z4b3JQo zKbZ=Oeb9cQ6o8Zj#D=EZ)SQstl~JBX#t0Tridd^-Dd_F|YN3w&{2u5i@ZzizAQHJA zhor_4*E*QrC%>mV;lOr@-Se6&>^2><+%;p(~C8yl};S$y;J z3$UZPh2Da?h0_D1qO%B6MPM5TmD|>%%3)}{XMV$^b^?D3#g=xt--^#}Z5W~~H6~?J zFmmf6IzSie-`Y3czZylqa;TqAx+MQDp zdY3K*zMJ5a_*<_)2X`2zOb{D$emNj}*oj zv#Tk`OG)NK0w4J~fXvG;O#K8Xr32NLIqp+bV0;tRQ>*V*O61K6DLwLZqI`Vc`h5zJ;B1=Foy1}{WB-3t*N7Mc71hAJi$2?3Nk|GS9trBf zCRdMM^UXcqxhABH>Q1>o5nxZCdG4^Du+~Myj*f#fYVCog?}xaUU~+8U}Z2pnR_OHPX_owb>#A zT`g7yhe>$vd}~aWLmJG4XFXWb`|(3rOcHPX!*2vggc?f2tTQS?Gp!8(v5T)`(44P&2-Q4=8S6VcZj|sSs!9_ zi&lbb6J_=OXx`-E8`A^J0?AvZ#T$C!{D8=a` zbci6b5Lr`QqiZPPn`@9gV6~SP*7SEIo#Z)qDkB?vyj({SBoL`kcKW&-g#x&H%n7Te zRD$xQ9k`$Vl|z zLxM>=P<&~7O|CvfW|I<#iVLX)4}@j5>|(kl<6*IQ);=CKQP4hq(7agjYWzLxJMW-lnUw^K3-Ex0D{kRHLJ zgF@iY+4tMB_wot7rFmUEoO=YNm1DQRj<`A63ld8!hL3f6TAi=9A#Dkt9l}i{j_aJ> z+2pX9hM+_p2p%h{K;Cj>gi6x3Cr2@LE-8li=JZUwY)t1GbOWWO{+c)Q_tN`0-diZL zJ<975Vp=z)qaF#T`-gNt=7yWgZ==@7VZbGAnKbWSRcM(=<r`G-}AQCb!2z+C%_BE*dW6gKc*P@s_ zCXj%b6tRvqe0q9lMz@g4|9Q* zK!N4?f;H;6cBtubN&B~clXIdI4SZw`6Kc4QzuULs465Pb0qGW9?$%S!K7EPPbNM0fZr#5WwxI0+?HqokW z{7-V*TmQ`>*^&2eTebhSMY8>WSR`L${>{H~+HO55flYt+{-OWedUVYC@}8i0J8*3~ zByhN!0w&H3-&>ci8_j=yOXXk11;UmqV7`Z(O@xkuf$1ui>bp*Lc{!@7t)!<|zx0Dx z1f?UQ3&3%O1wC@D+5VtVPVoy>Qci7a54aVn9<^#><067xV}fq1e_oOL zE5A4Y(F|D1IUE-iHoh+mHI}F`kpyTpxREdK4oU*^#BwLM3w++k=q94@t%~3@D~HQd z&oH0YHI3WKo*NtPJ}C4)w{$5CbxE8Z0=P?ER{x_wKx}vgbV2vMfv(B&)?c*mH#j#5 zHpj?=S#Ky@m5AJz>jag^?Lxs57nuOYJ*B>j<{VN~lqM(H*ZP!Fq{=y?Y)T#B5&Tnh z7+qC>plwM(Cx9)nnXhD~M@;@~&%Q`n|3bY0fhbZoZi?%rX&FYDmAQw{^p9cRO>GEc zo~+1oXll|nPB%|43l9_l5nA+#g77Xax8I+5JDT%jr`@Go;c}o@DGEvf3@`U=f<5$OXt@j-FgMCU7?^%CJUzB~feU`=daN5 z&7Dp?oP}yaRiR*1|2MjvTIy|Z*fJLGGr;Z#BubaLHdrtA#Ee(7xP1gSZnD-2%sOAl z49oX#J}7Pb68kN)+cTKv-BgED67?bfU)!Zs-)ujhQuCduwYJH%zs<)dBm%BiH_q5V zB96#Xze3+dbL$k$I%iIluti6!-#xj3{*$2X#vumN^;t5-erVtL`#R6fHtif(QLhlY zOnz!j>p*^c$Yq;7FMG8=B|geN>sCYGr~)rRG%W_tZnf@HIRYL88)hM&$t9h>%{D=G zwFBCbzm3GFWlEy!sgnwa7Wy@$Vl;pF$SGiWeEh<`CCk8W@6Mv)ev6fRa1^SnNp0VS zJ*m_g8nHp^MqN>o0LJc6F6`r95ePPSQ3u}H-^R6j*M0{=1uve-^ z*k^bn2SM6^VPzh^+<#au1YVzUN!MEBtkmRRMpvlxKwa_XWb=>{VGUC^D+sDlUy@v9 zQ~$xL&gNA!rC1c-WDlBp`*y4w*2>Laj`)=UgS2t?Me{ANlo^6oki$ogRg<3WbeHwH zugJGpNg7d+xoNySt&@m&3%CFt9-6xpGks7{S@SS!gwvDHO@xWaRXJWorBFmC>esLM zGtgYBRu@q#4=b8f{j=Cg#m1dWW2Mh0b5HY}EL18r7F&s=FJ$;HCE0~c>VB=lx4DyK ztMHT(H-exS`D*}_e<_df5WUbZL8^>J#I@^XjG;Q?YF92-Dw2e=^b8d~QLfAZl`D@b z8kJH4@Juf7=$%&vjwz+Vm82)H@tDWB&sGgk{<}@szF4aMkxQ{4;2W>sW?b@%!_$CV z#Pov|)ce>|X_d%zKp*9F;Gk_JS-)k+t~)eI%wTR`JLp{dye;&6Zl9si=mhj|g4oV` zf1XS{eti}$;wxs+Pva+Bx$Z{v<3URmX?m6aYa-R?i)j;E&63n;h05!pB&99w!fO>u zxfpQVrN1c=lF-!XlksUcCw2?bfJTw%k4i4PB%0qSj>@YC2&NrjWjDK;8b&HSI9@g2 zj-J`2^!y`Vsm@iZZH7bAl})<8B`I_rP9TM z&8eK(RH<)L^J?>U7QbHAjN2CbLB3{)c<^RRvw?u@Ch9Jfnx;IMQ8g@DgdV*bu9b5Y zb?<6Ex^1@4hON1H+NmA+YuYxTni=_3jJ_jogv;&89yPdfmGJ0H>%eH6!AuQ&@Xc;_ zl|K3uF;w1N(vZk&vVIo`_5$X^MyPH3Spoa}K?VL|EuniBd0vGNPy?E{9p0rgW^cGf zOSz_Y&;O~#LKxVIx{^p~zE>-hn9 zRWQ(9*y(cRaH*KgrDH1TzPfhyIy$l|dR>1q4X~8}blUFiUovp`VRMlyav>^vyUpt- z_G$Q~OeJDug+wN3@I~mGFf?zEzEkSOMvTJI-Tk}z6xpPxq^6c?fbK0ty@(1UltS>6 zLtNWSF*Dao#y1j;`gi=XA=YASnxS#HxeL@+;he&8ZIdo9#Iby{Z^_Hio$-6m(1xF_ zh8oe(XH_ZmhZ1_&%_;dAUJBWwaII|pz22n}Z%$llqI*}0R^gKTMk|SVwi_+5|3&_YY;vwtvKuq3ZCxF|Z_}`bQquaq-(km7DT-oMa&be@aDWJlhurbM zkAaJwin;QC7Aw?5L-tpt3q;^h41M(da zXK7Wi{pr{4_wup?p$xW1kF8Ei%r6wIqcEe(P}}N`#wQ$^ZA94jJEuQ#SHRG5QVihj z#pKsqj+Gjw%0D4F9ui$@Gq1Vccn+qm7<)h$LbvAAgcb$YzcU=qu`U+Kr`}#Nen$Xe zziF#hJ=L}i9YNNIZA(y}r2fbey<{O(-iK%)b_cX-tj&p5nmkGKXH_4@>O0k3N$Os} ziYL%heXq{ElpQqkc?D~CXxuj71hZ6qLKmoYq}|v>OocF6!Ke~0; z+`ifqr@5&9SO~|U*Kh5n46~s)Xjh(Vjo5mty&nspt4g`vIVg;?c!C8 z1!bX-ee>mQR%q+te^q?mQo9?|GUoa&t`o!vBIA8ofR{pqgd_v7@MhAGFiN~+@@eUq23D8`< zmfOlB@a|{lwxE8hSpQ|9qR2(Y7P!=n53TrUS}n~eG?a|?jY(;zn^N_N`v8UD zM{71O^H(Yo@Ag}qS0v>lRa8x?yz|!xqw`x;tkd5l5f3j&yn5+-XQo4p?X8W7y-2vf zQGwVZQ_xM;l4(`mKvDs`%l#1kDVHEUo~uwV8tW)|%3ps>%@RxiEZh}F39z#W9F5n6 zDQ#2#Rc_g{Kh3YS+|wp@=HB(+pKHhJgn8~){OK$wh=fr5jZBq$kP`(3sB8jCDY~Zw%>M2CXshkm&UW{=HuBhyUx}@Adv8Yvq}LwN`5WRP{HfnEx<4zr8*9pWm2ydSKV@9=`JE z&k-Ki&m8Zs*Z{M5#=5l6bGjn*AtQjLDns4e?vAMK z0*|YVS?ceMI}2P#*!XsKlHY&Ptk!oyxvBadh$7^c*AKyI8_C@8j$MVQf|n+3f4x z*w?~{CP91Q7y%z#UkyGtAF#jOPG<7)&j#e!Wo<56oH(};V^rP4tOu%Zjj>p0mO1^2rX7BP3&`SqTiz&*Zv*^ePq?W z9#wSk9qY1Z$_i6Qm=6VO&V?{6A-VW3x5=%u7;>uq$7t_L9P!-~fV`@<6HM1M-3wDs zUBlaEsB=gHXT>FR+Hz0!g>c`i<@hz8U|~Dte@;e-4%V?n*t9MGz1vIsmu^pc$SA+0 z4L8CK{JlT9(O(!*+NbDzd3vNuqN+x@Aq1} zYh-sTFz%fAcKNfWjic#h|sq^9D!h+g`Xw|=EVG-n0a}gGse9^pR zZyIP25%oisMz*PI-F}_7F=z%o_H}t;tyvubnkv&8rz4nMv9r9Hh^JRLf5)!t0dJ#L z717_mH$n~VVz-n zMhI&a@>7BrWQIU3sDVc-UAj-&Kv10~k#UrIyWOr%%^S%XdaFl-SnxRU4GB1{K{aJJ z*FRsXat!gSiLzOfm~Jw=qCiFJ-@|;J$f;5-k-&w?*!VI(sohS_y^lkSyZ@r~$YoS; zaDYXMU2>Q-+w!|7$XyR-N2j|)@3n+zPo~_o`rn!uosPG{ivUfvLYfj5j zR=&hIhqBPsl6sx{7;a>KVRm#cO?Z(=`4vWiPVE65SoEBz?R3BCPxaf!=@O0c5~-cC zNp44h$UDu(3!|`Wbd?CV8|MO_vlz$7nh{PD2QjAgp@!NIdFt|E>a%!8mjhaVb{ci$q*QMLngc5m@wyw#$ts_uwgj=5Cb zn%|974!_9H7J*e6evZebfbp14c&IB&7@b2*O7%r>Xm{dwF%L|7Z>J9wCB@cWU?^#(=O$6C)c{lB~ zIc`as&OlWbv((x0JouGfj09sBM3DZ5a{w1u(XZnsPw<%f0`LaQ? z$hg4w*47qO=wH<}v^ESj$!lWxLn-lPgSr_{FNpAkf_mRbSeO9MQtNy$o7pwA-WHR! z($IBxZ%bF0dBhVBngzln7!-U_*ZGn@I*2RwH}$MClNOK!vdnP3X8MO%iTCr*Wj|JH z%M%CDpSN_vNg&Xd@7>2|qWRrBpzm5xO3P%~@(NR7**e*=AMHD}ildTTpD*eyfX19;^aw z)eP2WN{h5IDVit|3#d%_b*o>6yPKV#IE%UpH(~2#OtNd3n$G)2GL9)*Vr`VfwxrH8 z9Y?3LEt3sxL+^yjb0d58*FPk*<@Ne4B;Jx{9;U;a^0EvHeXE{pR^fObSa2DlkoWRP zx9N$lKfsr);89IPERq6raHgGlPE~E>6ET=ThaPQ(bXdmB zp37ra1>fE#EG_Sj_Qe>iGUvMksC@4;9XI3|`-_Y#+Nowf#bk%=z@lN?8fjZNClYn$ z=G%Hj9Z`8u6UBz0Plc=CZIi8aBd-U(bxf6I#O8@3mL)G6;};5OB3QdpxMTi|3gkav zxZq-L-rb8U9teoN3R;mqGoR_IE1C$U2$r<<+|@1l;+_O)XM86-j}{{`Bpo1Sc#J=I`^r*7-JET%V{JgKc`hBTE>?exmHIH=Yu#mz|CdD)lBs;pC z>1{WH(^N1%cuHATF8@3t23&u$)ngwFS3fyXKP!yF{VMZjTc7IF{?YJa0sAsqHzaW! z-(9?-@xRV;kRqi~mHkY55Sbr8v|D~_;jU?+1BX+JVwMvwruz&qokQ)yZD=}S5a51? zNg@q#4K$Nzj!C5nxMAuL#H^C9l&t_k)M>Z971Hth^`ZdsA&+4Bk+@g}to6;(3QP@B-(;jxBfbpaf>(a-js;d68OTFhb**i={LG^Yu)9qqaT8iyIMX27D-5+ z>`Qw*E{i_A-|>B~Q%cc(qDp2=Fx}Hf6X{h)v{I^4>O2aec^H_eemv^AX?wvFl9v|~ z{kQ-`*E7pfDV$XkR#)YwpM(U~Jz&%=D zhp*d=tDEk8$NF<-)$H~Uz3WdO2;f~H%x2R((Ysr&Cc(bIxbLJ@0yheDo+FS;T5+fR zaOFEcy`E;+`7-0_6($`s%PAKvH}4v^PY+pO&LzG^T0vhw>{)H7-nrf*a4(^(6zU%I zVlusI&>yEW&1&`u!#iJDxe;c18M1P8>1n!9kE6FGknY0*K^@qVVk0g;ggvGI6!|2! zEGbi$5pj=um=W9ZN(+pr6hRmaLLkTa_Cd-6{%0)%jxjY@;rMx40;~KIIq-{6hC|b( z4=&iFxtr*mH(iA$Vsm`D0?&2s>Ak*ds9 zFvqz12$mK2Y=NH$#QG=(xXN^aDQmNtFRXOgb%Bj8Qeih0j&Ztq|L(>?2V}z4srhqE zdQ8jh>CqXI=WD--QbA;B@W4c# zJQaj@ah|zx8Q-)aa3{08TdMIVvDp))E61{QA*LuxwSJGU7Go}h-=rfa4UGus2aCkU zZLE`E7{>mW8>fojt9e!Xwrv1q?5tkmgp&i(j~N+54+8uIoab9??*1V`4`YZ!3b^dz z7V%R_RAn{u$Fi$Zc&kpg^`vU!X{Xk*1n@Kd>@6t#Y@eY})LnHjzprwnzX>OKrq1*x zriNohZ*+C~ZmvTyF}>gHwNE)7zZkPjbkLlvL!wTRhU|D{i&fXGQe>B5Pcmct zE1*y0HGi*`VXZNO%us2R0r5J`gkTG{6|3$14yV=Y?}KpO`9?;4V!v^h*;2T3tXYxX zdV^aHQaaD!&3HW0F6Ub)PdWErkWIkBpQPz>M>do7zCvuk4c({}`d|8$txyH=!cn zwozEMT9=+i#sK8dRE1@wv658Y%UvgU%ioH3OQ3E%;5iBYrqCcsC3_t%HP&fvkg>(L z-3@NHv?NVf6d}5Li28V=N9<9^|gr0Foj zvO6{ZBC2H#HdVjD*E}LeGQF<-kI#9gCPQ$2%utV26nU)%)Ee-TvA0z`wBd;ovk*H@ z0bg0EPizDV<=B@nEYN|U|bjHco`L6kjylznqdR7 zt%~qvZ@%7M2|+vXr<7dFXt+-41hmn-oj1E7kZrZ?H|Wu)-r~eTW8GivINUXrya9>{ z{jM$M@k*l{@>8r2Sq&kY^Ma%JvkhTr1kNvkZzzU*<)4Lxpt@YL3(>cahQ%0+8ttSw znKkkfF48}M_S>i{xViJj_UzDmWlA&RRq(fM4}WKpxWR5gpp36A*#<#nle1a8Jtbbg zUGFKaZc(!8j0t6?lrLFQBnjEy%r2x?$Qj`>i8q#9oxp$s1gI^Qs`sdoiUUW{y-gqSLVMblTKcgiZeQMtQPa3 z1OepPl3(kI3DuOLL;*}ov0P%5Gy0T^iY`tR~-=#H*B}A}x7l9iRUyV?1Cf>pe{Rs|CKoEK7v<%Se^>S9B zk}&eYP^sj|AhF7!p-tl&5_pFPUA(%rTgjcBbovzE#kKm>2w><2o$d=uv)T4_P#&gc zDsubT%TOEBo=EB&L}LRFqng8gGd}b^c7bmjvC;{%+()iwg7BJR;zyKMSg13 zXYtlcPTR%ru>Md%(DDGEHO7evh5kR?IK9^$__qY!KXT*JY98(J{0BF#06GxO+x@fQ zKf7_4(X&kN>+~viL2aW;*AR0AgtANC0!=%F?r=37uFs}_!DnYir&965j`g7%Z~I_+ zY4u369U0RRpy4a=e@uA%>2QNdO03(dorcO#c|Si?Q039#_|a}$OoGz<%#1^~R-T!0 zVhn_A{hb*%`PLyt>cIpf>xuC#O(ayKtu<$>Go_u8mduO%+$`(5hM>sawx?wLO~s|% z$QUGYuncArg6Im!&&;@{9{(U;^h(q~k<~7rD(jv9fRm>4;;!9*8@ssV@CRcp)D~nt zE}J}3>p97KkLhavAk+a<={rFljg<2HR1!l-8!X8;*prG$?lrt(UP6x3jjN~ zcb#qc^K}3Ds@XzJA92LFya#8UGh82?M##x^?}m*4vlG)9gaTdld-+3ldr}e$e~&n& z3=1_)yijEAeLir>d|i_R!w#$8?$Vv%4ZNEm61%mGaueWIU}b-A#pTFk1jc<-!H;hL z3Rix|@|AD<^xe$#8vGL+PDpoJoFV9qV8LE76#c+>$zO!{N%3@WuS zDq~j~@O^0U1fn_DP)CjN&(%!hCREM7kkC9S<{Eqvfuy=4`FKvp|9 z+`kRGK_PiZ>10&YkB3Y{0oN6AXKphR5yW{}?4C*4UUEsHp{0^{c$XTs_lMvPdUBLm zyaC%aO}lH}xk-@zyQBkdH~3eeXI7lZzdj$8G!o$orc3mRwbCVXzkG%o6vIMyf1VHN z?z^^rpgdUY=mS7-0w7XFcg~bh!!Ym`4y7>@li&zed+JtGe)rQ{_51F5ELSAqEomu$ z4wU*J3&;~WjI)O-9%24pvP?MT7E9iSx6PVw`R9X~TdhmR&&N*e{=7vJO(%-K^Ui5* zV}-jXvCNoek>to598Cxfs88bTpZOGI{gzq)gKF-kyf;V@c;KTaZgJZw#e{4LIJI39(|NOOqc!FUff6t z12i})P#y!?jVZS;|I9fYL3^<*ktxQ;1r63qruFy(Lj3hc^_F2Z+k6=k#j_q%{or~q z(ZGI9y8n`9UbyDze%oPIRV-ilQs`QsZ69x!(n?5C1nzpS>*MLkQFEUE=EPVKDK+w1 z_7$WPt{RNZ_mHIJM1tI@2<@6LSZW=2ybMdTi)s(*LtJ=rBp-g&gLvx}TOp$ET$}Me zX2!N&LnNd#c^z+e`63cp-hN~W9$c_*D;%9arcS@Ed}K~r@wA8+#>A1*89>Y+_AxB` z7`YO<9Flyi3Ge zak+^f7yWIq@7n$-1`wc4@Vi;*uX!eItAKv_h`(mY{yX zM>vAJm`dN#TaZot*(z~yaP*$spp0Ss@N^A()h!FH(`AYI))J zUDrr=D*bg`jR6qLy-?rhMKWTe(}R*)NUlNFV_F7gH=2oX*xojmUfV^0gK^m0G$J5ymTQn6!YU zZ-ZiSsnN$2SX~eJ+Yoco{#qm;3d~C&-uu)=T6U?BNhm*xyO?jCsVX{PmIuB-Qll7+ zT)oa~mKHc`-;(;!^16jm)I!Q*)$Ydi44o_b!R^Aup~-LtqG4`Wn&n)t=On#&dZ?ZN z&c2-QDmRto_wUm(t^EIy z6G4f!JAYua`JRo z=5++i9A__-qQXZB=a{aO{uL5|?C}f)iIu$qs~}h18zE|ANnO*Z7)1*W##}96pS0vr>E_;}v2Z7Tu&ZZAp^*%ptUGUV zS;|C2Fu1lwCYC#0z3GAd=mKS0kGYQNbgA0s)7)#Z+b_vMXB71-KDM68?+1VZ4WiT3 zOf7ySF_kn2Z5S&cSGB2lli+l;40u6$Da$I#`E+VAgIwLb)#my$(8sReqdzp63N?w^Yvh4pl{k_^L!-eLbr-;3~ zo>ZD)xCfJ)2G3!W$6Tz9tz#=jqAqC=*&h?HvW|SAMpvCjCp2dVTZ3fb*v2$nf7zHU zY0=ww5z7&nd~SQ0jElD87WC`PM6y)uv$Cn)-45#&3EHo^U}K7d&@Xfo@EiG8Le=5g zUj+W($yn%(KxuSr)3O@eA&~eeL+=*>mQjd%H>7CmHw>$#oRrVNlZfUrw5$d7aLfGN zj*E&oY8|J0Ob*cXujNHG5y~YN75)g*;vC3uYlR8l(yChw=0wYS_zmo-kcpmAY=xB6ErZqeNxjUq{Z zYuh+FuQRAkbF--(!u#^->y)WSJA6RZ6GJ*N0RZ0+(n#~k@Epq(&<9CJ2nJ{OMK7 z&!l*>Syn+v(F(}XxrCbW{ep9J7^ zT^Gah9ZTA+@wgaS!r7BS2=g)P|FG^$%SQ+AXHywq{Z#y`dNeyo$FzTfcVBqlGc4!> z#0Y_qlw9w_cZXKLitJ;^gGW%~zEB z#XKoi25o(B5sT(cJO&2Cxs=z(|xjd?0d?{OZiZqTC3$UiW9c!sM=Swv;b{jBLjMwG9Ycls1rwp;k zS*DvdZhtw^v<`esmxVW{Pn0xNnJPv6c>SuCo}3#1Da?fJW)?2(=Je=X0gZ$Up(ri% z*n{e)jH22f!t>6aFWp($tj=u$tNEhyRwr+pCBV$r%1BknMh-pOShDGR($feLs~@Pp zU_!+HSq_*{A$`+myk@*%iysgjWelo>ZIofWX7}Y2X$2j9Vp%f%(N-OfU>Q&WT8fy8 zi76Vr@?Vwx)@S@QjjGNuTyE}KuOF#yZ$$uANJag@`QVuSt!cwx zE_L3y^@9_KE__?$yg(fmIg!>S{5g|`{kXb+PTQ158=*e_Aw11$0Csiq0ql%R0U60OymY~x<05_>i7VU411=hVsc z^L43AbD+?QcGIf}wW&XoQgQ4q;kXX&IZCYVz_jIVlG{lya!V!mL9;&x35K}#UQNmR zTBuSD9ci#`UN)t|SEQ>I=26>_=6u5l`RROX&_oc)UEU)C9M0G1@C5SoN0p7SYyy#d zrX%8#IOvphX%`sjjFBIQ+W5cm^LCg^d`dF3g&RoE(%04WrjtCHgW_RM7Rgi5D0tg= z+A7{`(pW7#oxz67$wwvBXtdZk&7I_)iN+3IXF1kO*i=TV{zJP)LI^xhs}IkO)e-`i z125CDnKt^cY-V}gqRVb6-29EVP}juG2iE}21Bh5<=&q*7h|*!TAmT9|yR5;%Z-GsA zrBYSvSOQO#!n<3&;+B`5)6~;97Ohf42KH^{#IDA(j+?0=7G#;O@LW5&^7$8)6sL}- za~>(Q!f_YNdgFuc^t>&TWLg8P=l53i0y?pD|dIv%`wJQNxgpdd0UE0>dugG z&7I`Pi+KY_>7V)Y0(;JyK%$ zFPyDP05VN~11D?{)997eFegZ8AwMJ!8^>*rpxWJF?$=}6-vOGC41b{mZ{`?2)Qq)+ z#;fN6Eo$VQgcc3Hmi2%NfKYv^ zj|RVtYAL-^xI=oXEm8lsn|xQX=RWm7>cTo%F8v}0U}I2Ot~eM9@{@>O*i$yh75ubUlF@0MD+6NRZ8Gzrj~sh6#97(N8CGoY(b*=nS2ox zD-u;P#Lvy|;>n#lmWQ(8z9%My-87^IvtC6a8lV>9S+=|gr~7d4lm&@~L%^Ll{JzKB ztaFyIy57_AjDlT*3XgTr*Ewi{c$a2k>xrJL5XqbI1k!S`1M zh>JLhTA@(MZJARBa@)v*4Ai!nuv=I$GL&dJNw{fHL+(QYpGEw~eM zEM^~$g*uubKMtW*Bhn6!N)s?dF%RqD$Wz_7sc1-A2?5#g?8oN95mFmHk!;->ihz5t zLw(87wT6<>D=;?4YM1(t1g@91ypkZ#ZgTN!X%{|f$4T${FXi9ZJ*cdDQTT^|6sB2U z8_rI5Ow&X_$kjS+5A5Hs^*YOpx#-sp;i~`R9$Et9B#!Y^=6=gMBB_A2W*e~)LVV4Z zKdlQ9O^?9#7#;kpkRuIWK(=~I;e?oY-7Zc|==D*a@;2Ko@1gn~pIGvqHv6Z_wwx-t zYM3K^paOqIj@CwutJ_`c&%|6_7`Y;`SM^a{$C#+QOG4;3v8p?FGFxSQXr9D>R5sYT~F%|C!O(rwNI8U zw65+r!3sbBGgoewOqLgQeC(jH8R_%@&?#?8HKR=!Q}dm7`7HwLrl}0QE6UHO+J4Kk z=<|g%y0Ib)tXHb3v~mCsvRXnGR4Ub3`ett|*d0GIXx;i@N9b$xo8tV69PNfQ=&^`8 z=V)ay?;K|8cTa)ghTI_1X9IXr(I$6Y%RzFzBS#phTq2n~f#!kfiR;s40CE@oGwEN{ z+~G!B^_)Ub4_ys?3>XH#o&WOkoNS9Zou|#7_#7Z3b9d&J@Wa-rM`R-z_T-iwY zOnh}u$q>C7*A^9cS9lg6@H)fY6(bXT%aZRvlf4OFch9(l`I`5 zG_}|T<8ReZ7Oa3dH8%P+F1F{b^z-yN~y2xfvhw|A*PcRcdm(FL(8iddx^{E|x@0?<+? zC~4{}59_YO+xerSv|bI|C2{Rs*|$&Txo`XDU_~&xvv!1NQ7pL60ddQn`v%y2>tW++ z!2JY@50l;*Hl)&o(&@lljiJI9HE8L^Jx)k7tHjl9&EtrZIaS-3z6X8qTsB;3vuz5W z8wgdm&q^lVYPbWXpsojZ74@DcFDo5UrbLXRm%^AXd1NF)NOfzc*FShNb|{GE8J~vX&+~Ig zCfLZ*Z$V5T55gt78E=BB4WhMMiksPZgiIJ2F1KwdKZGPGUuUCU&mwoE1BMB>#Z!_)*v0j4|;gk7B<>0#p6= z}VC-RaEB_7)^4S+Xmp)qk)@k zfvl}VFf4TrV_Z2Lfpe?}4>=js*a-lC1;3;~5VWwmGYqs2z2|C>K*fAf`MJcKG^B+S zVxQ9l#%=$cXwm6Ld5WWuntG1Fg+k4;4K*xxB04#S@DP24rpoh)sRW6BI7kirlC>^z zBn-sjePt~f^^n$1vb$lc_g_u>WVqe&xN%ifuO0~bxB+$aMO5uJ=@7LTo1M{0#ei3d z+`ze{sn~3KD^(<}Ia?(WBVLU~zP3mG4fWkU1JOe3W;ZqG7HuAE$jv23-aO9GTOcu2 zB)qVX8xwPLX+h=rdfN1!jDxUp^ct3dp`@NQNsPTDt8GuB_b?PGeU*Na0(Zz5(+0%@ zqS}FNkQIQoe2a$ny&GUq?<$@~n30VLfhvjws^BiK|0VA)^7VB>JZt2lWgpA-ZUFpA zAxBJ&4Sa3O?a*=n^>PBb5Vn5&tThD;oJ3FAN9PjAp4yMnChd;bXg)IQjkfyUX?xz^ z)LiT6ScA_IP*&RV{5#jt&ARHN0HA1Dg(Mg*O7_JoiV)jzt$Nq0i z%UG3xd4ew00Nd$ADGQs{YiiZ?R;ZNh+nqzh7YbMZd5E)kt&cc*K+fO0HnSX@tE6h%;6_QjpW&qKw#yTcIXqO?eE_fk4D1t=3C0x55oX3v#cvKo8?V>bO2x1EW0RwI=75;{WMmZ4>%gpcqcwH6 zl5gP`+rB7;;-!|GM<=?fDkR&MAC6A-D&?9~`Vo8@_`+B@zX3d*LG${^X59}(*QsL@ zPH||c9+!3OKxouJ_j3b56QsS;ifNf{+LQ-$ptHd(mz0>Qf-v+^j%N$mxmFs=7fRLO z7kfb51s9tjB_N;|lr+ujkX*9UX&Yl@|8y!Zx`Q`9x0x~wDpy3YoPwt0O&}v-301U? zZ1jU6r??Qx4ZAt{OqtQCZGmPhS#qa$DZT|4pC)`a=!slK2o8Ig!>DR8kV0j*$TFa>Z$~FDl>`N6(5Zmo-e8k72{&c zK-^wwKHWURXqu8hWrHK&N53tV4nu(@;RSF4vl3LoK# z=@N@LlK4eQzRdQGtOomov8${BzFR7*yHGNjdm?}3em=F-b${iDg43n`3If}maz6iw zEx*=x=NA4B=Pg-E`Q&_ou4hSYTm_?wub@eQW78!=$dx zdL$eSfxBET#0r8gSGJmtMD-R-oEU~@kRc>XDRJyiBi(^Kv2o#PQt6nv)@YBL;Dj7d zFiVgek!Py^q+0JFmCW%=J`FS)9{5H2xPRerMwD&t{;O_FuG$y) z(s%vq6VgH$;=YuBbMpKBfo>Z*919y)?%OtM!hro&RHvrvpV@C36|mo;I1!>H4hI5~ zKr+1ZqVjpu)tDH6usb73%hMg*Wo33Vm?;^Z`=0z>#7&R6wl05*ZdxqqhBu$b#RgHa zRj{?bvpCsMUm1~}U?hiNt38302;mqoEz=_9@q5uDJkq=wt_guIXzQ61P5P>^A`~Z! z-dWY~C{GPEo5UBL_W-tLUT=FTvp+CCeK4^Y+oN4rU6=pGe``uTA!c7i^N~L{Kvg?m zajE*XL=K<6Csple!oO%)O=sVT+Fc`{(Ju73Uu(u(%-2evj>nP~lOB2tbz zSOf#fV-ckX-5fgSo^O!J6;IMztz|~4BSbdzK{f5Y7T*)cWz8_QWzoR;L|0+D2A38* z1!fJ(9hN_!{bRQE-Fw^=PKnxO@nl-IIoqmgu#AHI**b2hJ@ z(|`e2dYa9goraz*j2jC1H)whgVjN{(L@ktg6WWQhl^4}%XpLa7e4)yx9pgy&hxNWD z>x!*8B>D}RZY)b9M#RzK#PT9CgGs0t_*SC+YQP|AfH#TXJ zFta)IJ)to!BNuT30}kDNX?kx(xuc3B!B)dB2Jysahjwch=d`z^mM$eRv;W!Znx}fJ z>|!(32w`zO6WMlW;F2m+#02%TeM|+-g9O{ePNn}82T}-IF$#ZJbGs@w!0L)#Sk?Z; zfdgM(xh5MdSe9Eoh?Jr#x2*rBf5`mfEC@53;_#imc?F6?S0OR(q;Zs1Q5x&RA!6PK ztn_3bvg!_2s-zaN!n{=P3w8nvj?-$W0EaTR@0kU6s&G7a(?962WqE5;AH z$rdmU)%V}Bq;#jfPsV&n{cV^CBJa-Cg4HC!=bYShDzdC_rn(o@5@f!|ETLA_(r{Wt z4h{id_zNy}=vqSF6Bpd*v@o%mppxOK`H~-pYF_PJY8Z1Y^h}P{nFL{)gAIo^=FecR zW%Lo9U|!3Jd1k=jTJ~LRBZSyN!2wt>MaOu9g~RL@80@7A%YOU5$GG%*eWI@7ex`8^ zZ$wxl3PhaCuF0XFG=5m^->>X*SbiZ&#W+R%K&AzxG_b@C8^khf@{n3+!HWR)rZtX| zR#O{ccksxOT4aBk_HC5*g%KW+R*uYG!qc|!dSrK1VjFjKA``Y+Ww7nOukfg35RmV^ zuX}2T0d~_`5%B74nk;EJ{V)ET#55XKge~dbK$B8)5(k^S5hi?zn9OjvT$?&Mz8G=s znk(z&u6U?{A!$ei`?*xC9OB!|G}E_YsV0?W#bpEkZL>4mvVH7S0|%=%eKL~rDFJ|L z1k~bPttOkhD*50q{@bwz{f9gImurJO;kre-GLQ9)F(SSy@PZM(u^C4BJ3?H7oX88u z`No%mPW9>5>+8hLz=D19OVrb^--903s5KVxLlB&B#QRqRZqG7X8cvzSM6BdFbH7G6G~XT!cd z2r>-OklnxdZ(r>rTf(vDV<)nv^ZXd`qo=o{JPlzWC zNwDaEcF=NUXL3yZE*Rm6dJjo`x`}Yi2m`C5gyp-R*>7bmZ)%r(?R%KCkhO>(Q>r7x zwmG7dXl~U2|4ke+40e_+E3F?o?+WHy1=?>-`_&B8Y{6+qW;uAXp#wG}k-DI)PT!Hk zx4?GllcI!XG!BpLV+f6KXJp8+X~%dO32Y1EYC&f@+a&MeA1f}Gz-qkLrTnko2fh#_V zjlR%h7PhtoDQ-Cz(p_|B zUSdsM>r>||Qj2RP_`kYu0}yH!Q8W{2iMwwzLmdpg>D#=#Fkxy(>Vvo1lGmM&Zgfib zlUpucEgB5(@HOruHOzA6>zG~P_*dBaOM(|{_g!+9L$ziZC2GLd>OAdJKwD@t#aI21 z{nJp5nj4bNVRrAlndX-Lcd4v;X+hkl8QUwCG45t6=VD<2a~39DvVJ^E4ZNv(xA$-6 z+oi(S1u?%2o(`0?v31&sju5vTxNqzo zKv{P^0(RAEd{Tbp;FhqORU=v zrIStMJfc&7jCWXGCV@clh3a^cX+1Q^l)$)_ga!91ubp1#7)*F|S1u6vDPB-&89?Fa zCOyC>b(ucKE7{AkDXC|TLx7IT3)taR%4_1ZDF?`>Rs;79vmmLu z&k$`aSvDU(Z!SqoBiUBRPDE94dV}*N07v#+5H>f8f>}OGrl8p@!c@>#rn+fzZ#dDp zlWW-gtcdCq7Fp{)?Ze1ny}N?kXr8wpEUtUxl{%7i2G6ALAb9rUg@QJf8jeg;FzbRQ zdiF2ZY<74JOHMoJr~A^|Cisp@z4I zRMI{|Iku$_!l^GFrC$x(FjUZklpyOEQ*gaoI(xq1F5D@6aZMzQ8AUs z0H}ZpkJdR~Qa^YcADtB`-{Ri_=G&`pq?xP>4`f4m|^`1*h6u?;M~ly?wa9DWvnzc_p@VI$yUS!UBBggnr;$!H@l+-kIzfg z=hZLjk>U9FWXw`Y5q}1K*yUxYYT4I{#(-V}Xp<7K_To`(%9SV7@A^+g@Rv-zA^_ye z?s7bGKGrcL96*OLx3ibpnf9ge!tK=;G}KrU-~TsQy9scu}%c7`>g0sR#|>1#@HV zZ~yyo%73@x9{*G2zodtpc-P}^%gg+_$af>L=Wh6oJFUsIcOwwhO+8JnxqM-rz?WL3LA6*9Tzc`S-h)2EHY-*zt0VKKf>PYMrh z=w(Ii7=uo@3ktdlha?|RO#S>3m3(Q6LdjP)&zPIb=H`QQoX6k8i$rVrFuTan&`=xozG!w^?Aj(_5fhs!>;oJ{4V0fSG4}3VhqU$-QiQhmx_& z;fbqKYg(E`^-DEra+tb66+Hy+pG8G3$Ap%Sm!WyY+n$Veh2@%Y#%@RnEmiB8>FhW9 zNZ!JzWmT)JPyR6V?LY<(KX`5xlqPk~LY^3I@$3|STBA&LLxhK`IuYAWW(Gpsr^Qp; zpSjo3+kKfbwBos<1l8M$2s0m9bqSTSZ#Au$?c0YL?q~OIbsiOICCHp9d{7EO8>cx+ zF7vH;&4QM&5t3IZ;F!sj9y-zgO{|sL!L`?oEnr&7Lsx7ob^K@q6fF!VWxVQ|NhNkN zzfe6q)Z(ia4`o<~E}Q(vrcdIr2yVp_>{tAa)AF(EIhv!uOw6(bSk!6T0J$4o7ekTY zKaDZye$t0``SEopTGYNwtXCD^Y=N#=eV4*dHw*->PcsC+?z&?s-0&1okI`eUA4`Nw zWA4ie23zgmOhJV(xu#I0t))zvgojKlfX^V(YF5QMYWY* z>9;#%v^y?LF5y3ADK}lcN|Zr|9F`%qqVOe8Q$s}`?D-u9&b3sxs98k+I)22y+Ui0p zho`$NRFqoK<@x+`Ge^%K1b#u%@Q?(`NL`REx$=~Rlu*w_WkSpHp9SGE=e=ee^pv)Z ztD3h9tWyP)VILxu5BEnx)iU`hMTApOH1Wi$%@MdCf;7H7(VrW2pT<#P5q*ktl*&)H z_4~h7F;en8df!W9zmt<6N&_#MN(KIhaA|@dp$j*zYbA@sE^5YRt>sq|Ya__h&XI*PZ5hXu z{x@&uf9+I}ll?yga%1^fWM$=oq88)?=>6U~l<5ieRY8Q@PNsvB%ydjYB($Vz*wobf zDqGQjYL}ozZg=I)?{De3j(6+Nt++NG`m2Xc|0DO6+4(w?Q&HHVD@4Ec3F*JPWXMFn zuR)`(SWeN$wAs!K+)CGKC1K%Wp=84aEB_zv-af3!d(HQ~X1cfRH7&5N<7%zOK)ZUT zENcZTN`$;HT~1}Xt56rKQbm$l1*AwGc}vLq>0*S{D$p)e#E_&eT2n%%lpOF!}YbLEb&&=9N%UWE1~&0ql9}Tg@%k!HTgyack=PHk-hx1he}Nu8L#5` z8PJVF&e6C_wrHt9EMJ&~=%H*lRKpDWPpT*HFQhFBoHIl_AoRrlN~-#&1&m z-%|6lpiIJWcI^A+&M2*|?YcXJ!(T)CK#7N;hQS}rz$#}!@+l6k;LGXj!aKSaTA5pN z;>{lViRzE>%0RXiHO>P(s79cyPEksRoJXMllcjeTVPfr@=aVt32+aF>jM7PtlLW{KlGwLdcDZ7@6d z+o*m9Ej*+}8`zoHKOGRwdhr%TS(#zq`c7P`J*B>122Sf>O1=0z{_~R;_$~X>gihlm&9-xMO=15_aqW z!+%324G<2*ujp};OF?mwGV_u&;wv>u&|-<>GH+!0!lFQV8*)qwjDcRyo!(c6q4_kV zjjo$FkFJ>JlrStc5YNkt&At8m%zs*`FZi-z6Wv1_qzl3^V%;vDZ>rnF8Bd4u`pJx# z-x-bod;C}!9Og>t%iSo;j5{$-y(mA9N^|RPQ5CDD)ynrBUemSGoJk|!lqtGUL?iI5 zCmPH~V=Y6#(JE_87|;nRb(T9k+9M1`OOPL_E*QB(eG*9I%9!iZ47G{*hupaQ(@D`@ zMm^{{nCj1cdSlnz&A^+|6AeZw$`8KPB&6!M+w*HPM}Jy{HP3O3Bn7E{A5gU(Rat_& za%6h8VwXAxq9SiO$Z%n*6guv!p3yYCWu%XzBE?&F*{HaEa$UZ8r_C;v zmSb<6t8JVpSbtz-qiYyZ8U2RbnpNdS4il?$l#S9t^NrJw*b@$y%*^TTB*VmH9j0s; zdRFuf^+C{F?)S5;O;B09PK@=wZ_Zw_;WA}KG?wJVq)T=TT0w$kE{{W&_fEHz{^^SJ zJo+ZrZ+zQm4htaDPVbe-o1EVVDA9JI8=*=Oz=dH!t43FVPftf!K0GwGBQ{G@zZ!Y= zz(^`v1K<-%Xf>d*I_7$8h2?h&HT`bo`P`iTfYUeii_9E|%`=y~b@3LnX{Hv91kJj;U2TwP?SmM$!*CY|YhpQVpq1~jm*4V5yXY4xAC0xnr~!{<#s>XOiF;PP zmPBJo&8o$3eSWhbgsalfC%resGJ(!aTgcfJ*)d*4Tz$2ZQ)h|2(gvjp^!PTfcRPOD zjm>QnWg-J!O%TA2)+}R0a|N8&IH4+qRXy&T#@~nog3(MbReDZXR|$S294)}tJQV;?GJL$$epkPCpayHJ|qV+RwB)+ zmnBgHW5h(`8a&dig#tq@;M;U-EUu#8_jHMu-m(`R-KBR$GdbOAq`q^ zzLvLsr-vo%x|HZ{>zZl;;gCBm_(j68faQ{o+l}=ehI@xr?P^Q;xS`o#(d54bZd>46 zwWG17R?9Z})$_ue;V-<2SOwp&p0D<+f%c9~KMm=(7nfFJddAIxNY`*ueav=6t&p45IsRVvlffjU964HMi((@-DqeY%#!d!IW}0KC!c+F; zb&W}-w)j^A0w&Y9qJU9Nj4q&Ir90QTJ?FPl%m&DB$%Ewq9TdWG6FpoOC|g<8Tbeim;NGP`Og(y^uPVv72UrVu@`tJ*vyl%m&w<9aWd8Fyh7p>62lmKpc>MT=X2Tjg1#2kf03GxqI;#W#8f%5ZlR>j_w z%?tu^mH-+o`u;ZYJ90h}rR)LHwY|?;97*NDCm0ozJ-_nvROkF+t@mx-lH>hLXd)ww zB_Cs*x@Y4F;(wj0wQOoDUOOC|qD=!0b4NF9rnIexSJIo&Rx^)TEbhX%F~LtNgXg;6 zg-U|93KFZlA}BQ?`;k_q%lJj}8r+X-_+44{77~eN#Q>Y)lyF+YLX1}Ofw7-z%F)Qv zhEE6^fV)!r`3}%D?DcBDGH>>m?R%qB;cP$yPtRWMGp`(*~$wyh$ zJFi6b;f(wDa1?Kc6nR#X-vqXBO(1q=R=m{rwg02TB3tM|@BHu7lTX6b46OcCM?G#% zDn@Yy!2@N0+%G{8?Cm}h5d)K#MkqtFmK~uJ1 zm!k`=(-G%~n^bt_2ES!%ivDtRn9rJQ#zD{jvYQ4d>)*kk!6w3=f~sVvh&2u)elt08 zc7B&)<+w_fyIS|Fr6j)-+Y8s3md&O1i*UnH>%~e*wok}n5r(N)35aRHRK?2g{fYuqLUwE* zmzN?>(+kR<0nK(;=!lSoMG*2l^Wo2(5d~LU$v0fJ8dMC*Zi`EfU{Zp_}ypIy$8>5~Q zVS(v0nVLWLLa1@FKF_g9)kPMx=ryVa#>gJgR84QdVp;6&bXTU!O`hFM`r~2;0mh#Z z$o3Ki@Q`bM8YJU3NV&w8)ti*o{gefrURu%|@nqQ(xsM6C8a3uvA8OHK67_)f)oJVA zMB9*%7DnF(veQ~3f=fovPA}Gn+|0VXxLT?#7?aNY-GXve0Z%WxOb;7iWSjj&XZiNA1Xp%Ow~z*nB_C zTtS7L@>&+pLx<2^!=&hrnp-gVHuWvdmZn|Q$At7#N2LkT;A;g`;d@)Y4VdMc(T10L zA$aGUdwo+MfLh*LSzEk>7N=e~t1chkx0Qmd4!Jmvj~7CJ6G!(!DfHtJr)%Wi>>Y}P zjd&i+SF;?~CRch}?U3{B6g_co$?jhnL1ankx;IM~d-Jp__duTO1Jra;T=|u?iW}HI zsr$Y*N@!3n)=KTerCa3vUK&vkn-)vbJ7d$YtD{YN<7!#mfc=m#gL_-z8n>>2bT8`6V%V~y=nR_$H`1K1s@8kv++9$dLk!7I6%Ji=M8d_DEgQMzcJ|ca3Zx8iw zUbi6dYr%ASZc-mGBw4R6W=+a4^f;fNhMo*~)7LXd*rNTEuOL|g4j@i9dG7Bf&&^DC zI%^!??eJuX@RDK6?3`}>E~SfbK21lb=~%T5*>nQ!v59t?ya6%TuILRxn=9siqWY>| z0_(u$2Uv;yDrqDz^!mY+r;UmhFlgwrQ3vR6nnqE~t`?X=tlRQqh99Y}@az;$iA^9M zz8y5~BQ#`6%!<@i**qYtb(yFWBzq%)!sLU$E^^N_Y%yl+qqJCH*KMh?bCza@cXq9| z;=ixFeb=J5x26GXf5xi5*}suCmfjBH@2(DUrh)N^qb;nE;3?fnmQgMgP~!CTh_kmm zS*1FcOg~t@G^CU?qtzp)XuqFqsr=CzY$WztaYm3>q@cy)i_u5#u|~LgxHa6}yySv6 zkUt)<7UNQAam@I>=2#NF`v5CFeY1`=)YG3WUoW$SXQk3Eu9UtakN}DzR&ep^-T0gy zDFLXvDB-J=sVAGj5`Fkb{TrJ!mixwRpe=vG=hc%0ZWmW4FL;HPSF4`1ZmAHc-R_cB zTa#iZd(0gCl}e=};}6U}J|1+@bSIBHhW6*2FM}@ptUR4Khbd^MTo_?hGKh77vy)YN z%PP8tpEf~9*3Uv_hcDkdggY^gCb#kFU-tpUmJgTF=#bauU|e@v?wHG) zfxkCpYPVlG*AeQVBqULvuY}<~Lj)7-yRq-lT=stM{a|3s-!nn&2NJhSP4hbRYLIke(w)@Wf7w{KOvRd&-sF#Fn-FIq89! z&#krIKy>V^c4e9Q*#5zYPaWTwX8hF)-7cZAO_{>pDH)ctQtTqjIW)h-p-U|8s8FzX zS*-MZhW$r(>aGYE{oFqwanOxRM1auuS1m{~W!314ZiPRO7#gyT`WG?HVK*<5uDdUtf< z?Fw64APHvgEuZ)mY9@V04zbo_32xE>dH zAZ{NwGgvupIYtS%D>Hhd?7hFD&oAD4S7z$8 z(Z#&YJkG)?(JqJU0O|m#`b~;!l3pB2?80-8p?kmA!;gncM8#tVlMxo8`j+=@-ih+~ zp4g~o_H%vDTkIxf;5*KL<(57h8gqFzv|*@4-rgMrBMI~~V5g6Kw00GQYf^uFcdnaF ze}ZAW!nlM+z;d<}euqOfbINgG+cHO!q;E_vI|{xN`MRZ}BP}>MdAIdN>MPQqO*g4c zSUo4Iv-IHSTKoJ`aXm;*wpXg7W1OcIQR$kJiTI!J3_i%VeDB`L#o_X7l42b*$Rmm@ z(?E1mKW`Zh4x=8=^eZ@Ch%doitA)A(f8?9ZIl z_h^Pmle&GfqVY)_8K1jQozOAq3S6@qH>Eee`25B|Nf`!f+H|eC7T$Apk1On9zx6wZuxH}@I1QE>nTk< z{-o|0P31bJ3d_5~q#@fNCE3&^pXU0g$>=XrPZQ;owF8L% z8xR@B(i!m=#d>)Q%t{W>tZ_f|4IWI#0#5|2!D2Kh zel<$1^xR@Ob3>6tR-nGX!Q8}H@RQ?~ng-lyrOaH**PH}fOiU$vH%?o?W)u8MzI>SH zjpaHDlczzU_xLYzm;Y4gCH&3mzb^Ft-Q4B5f6iUDJp8NH|1N&D#BxpBT-BO$63?ZP2u zren2SRHU-BlT@X33rN{s@DoV6DDbbY&p%Tm0Cl0LMO$(qx@+yK5HV-yWCG1)PWh|k zPN~~w9;zQysZP+xIk3QbrDGnVqRMWgK#GT}(kCmmU|x6WKYd&$CG`;{5G_>*(HbwI zpi}5`2Zt{+(`eq(E1io2NH*t1y;9?MMv{cXN8FbLkC`su6BQU%#pjzx4)c=MBaK(r z@7y^gF_HJk>*oqAOSUtmczJ*M_%qsgmczNBkI6T81cav@x4gFmw{w3;{oggN13Qo^ zHEES!|3yJTOp}!v*%`$%+)tW1>2nUp44+|fliXJRwpn6i0cp6bmQ&&j<}k==_EIn6 z-|^^FC(6ZKm34!Le66z!HAD^^ER3!u)ick8={j z>SKfJOY)jd0aYc1B8F!sw?pVDQ=9FF z2q1*9ThywLH6SN1-!QZo0?0{@>yd~-cP*}!u8j?`9=d$9G0hiPNaa6i#B<6&Cc!?? z7%qk1@hX`9b}%dqI19pjBg9{&595{b89dHJ%-<2gm*lAU^C=y z^NR<#b34WeyO|URT{SEV~02wo+UNYrTbt^o+}O zMD=#E96gRJ7rQ_;<9t>HB!wU0aBcI}!Q6-fH*=lT8~2-P&;bbjk*W=R-(_KE6FICq zw$hWHc27Rc%+%J_YW>qvY2@R0Qnr9yp0n%p%Oeu$iEED!L9AV|GYU-&bE4tZqdXg< zUEM8U6!ZSZQGU5bDp1YP5w_^RUIEX*0OnEGfad_VQGaXx4AL&_9eqf38Ja#=COVeiN&`p6*bCWC04>Sbjk}I@V&q;+1nZGs_6x@5dda%%&`;Tsw3F z^SF29Q@@E581Bf#q0t9$yNX2N2LUlsnXw}Sh3)NeJB82l@Vfy2qoYH(tU6#&#u!Qw8@6&vP z%}9=W_tOWqUk3!9fH-f&qqHoi7NAM?;u z%F`@Ar;>*C;%??2u`FRCgDGYi2YD;Q_~q5eD_l>s0f)7eyrk`Q8I3Hyd1OdFV-Dv4 zT@WSk?PXeZ8dT2GUq_LBY2G3&;Vp#j^w8FpFWMn(p9(VeKsV6~OHNktJ7J}slSy+P zmSOzdNMV9w3`2Rv&L1FYtBziiDBuS~@B56>aW9V4q=#W*hu#oy;`J8;Su{tPOI)m2 z{sKXK2c5H)$ff!hRM5)gjI~WuX`5|dk0LJ@$9{a!!x9SYeZ{{hyf|G3<7C(oqmqOC zSoF?Xot&Iazrx?v)QZ-Vo)a7Aeb+I&NQ=6#Z>(eb0c^8gte9ogMh+hdEDORzoELlA zdT3*X22d--7e30??jQ+{9Ue^a+a3gVC@oci5)MHH6CEFxbYXtWeOh3#v4Ez2x4h7d zl~&Zo2baIltzs2|<-?`jwn8$bb-6L>wPnD~w(Qh#_Nl(C{$LCxNu+iRj-441<6V~v zmNoC=RGkmNq?L~?rfL_Njqx#DWd}t|{Bko4Z){YRvT>^tq|D%+MZu7-Q*Xj8?Nh{; zMQe3&nmo#_j+j~J5UL7M)P^iQ2qTlaDjlpGdz=RlU+;8_Rr8UFHWfXEq9^YW<+KZG zxb=ZjFzSTM`^&Fgo@Q7h4pOZshGU+v38!3!=<49|g&v%uL~luIEh;N_KgwlLFBpXf zkbq0v)%=~y$>0?=U$S#_+jP7RL&>q3V@-LGVIj8j0s^L%SlqKTidzXsI~N7G?N(`K zC*5Ow$C?Lz&bY(=>y6zb+Db^9yc(0^BUE}vgMV4$>}K^zq1~C%whpu31##_?NPamv zVk?8Ckwt3Bd3>>N*;}{Nau0`-p0gU7_Y^t!c@fi=f+A{$cWmjn)5QTxo170+L(7Ui!Euy^Ccck3h%U{Ae{Zu(`@_mO(j`u=yUFaqIM+LQb zvD|gP{-nRS)yRDM&aTKaMRZ5X^CypLIYpU;L|Y?jwQmDrQIzs3Mpgrr30L7xT_?ng&<5 zLY>1kj~j4cyVh&I4VUzv?j(w6B}Y&bHvpgdI|eglpDTvcLlyUe}e z$fc=+*f}=qj>UOi+z@%@PqFKB7nzSa{m)COBMGXPjZpoVzA}$AEYk4Xmej7hDp^@3 zN~KF$IX(EH-jRSoda0Aa8&}GVt^Jp<$VeS}-kkGNzoPTg8<_z}BIT@e#6mKW0HJb8 zyhL0wzT+ho^41&UMRdQ~Vk|?hMVn+tR3qYGuiQH*b+~Z^TG&<|M&mC;_m{(byQRfy zHD$Z-IxKR4VRl4+G26y|l=}BsEQ#(|LHtqse4f2(ai054ZtllZ2df86qQcxeszYS4 zrNY*7#TcE9gc72m>8l{6!oOXlcAbXqFxcTCUOb-`#{BoT&n_WbFD-ZNJg16yL}-NSWnI8{VoU8b;`dO;Jy9ldM@GB2miXR`+tsPp8g+% z%bF8;V5v?Rg_wW+$JY9@eavrL{@bq4*I#yh7!P^vJRUi-A;Kdyn|jc;FyAAUznyxz1HPX|siK|e&u<)%Iq16MwLlJyubrflQ+U5Ne|Qa- z)H+)|(!2DQ=ZS4F+0s^0jravlTV%^0nn%i(xW~ON1MY^ry5uAo4Nx z7>*^y-1`f$c`!Jr9Zf~L8-gf-R~YlvR!HYLUB^c5DZM@0yofXmu5BVXV}@SLwbCx zGRir3_*-0CPk-1+zzLPNV}9>+LQkMCLHj{vYOiTqUcacIpT!cbG3fz!rS>2&ihj|a zF&DiCzFeaH!K0ukz{eVBdk1LSTo9ggdT3t^O9Q zl$@+?%mnL@B&qgHCShe%sjPl4!h0|%kJR~V9saETBsN;(|CBD%$*tb&ZPF_mSFK2~ zYqxYNF|oXGRA43yFe~_07i5Si z>*o^^T}?*Ns*GHR?v$Y}v(QCcBCIUji*9=KqWFYgm&d!iF)y_jk0wH70(%*o9A!oS ztF+aF?=PHwaE|pS|6pyokj))=pcAH*4y~`=eW&vL)jYe27;YAM2)Q z#ZugYiJS0y_9&Ido7GYYA%hUwkLS<|@WYND zm;R7J=~EoIO^$psFDTyR`f)~^M*sCz2mo1X1DR~%Zf;J>)6j&jDbw8C6CbdCbDjh) zrorih@Q4dT|I_^WF89V+9axa%n%ByxF%ONw3EtCb5*!%!1;a74%$f5#u+@_kI8!5Q zaNJCa%x3lTwLtU&EN`U81+0d_cpb8Lo!f1;W*;QtwJPF>*YhNQD4X*h=R;K8-EJvP z_;$%zk{q3Vzgg{mN&8yrw+~KV__xtv8YcPCuQrE=WLXt773B}#XAmw?(d)GVQ zeK0GDIN%Dg!t}nbunGlMMhFfvoda~}v`9{L{R;ffe6VV3ZamSK3xC%vrU(3b2R6rK zC<7d9>~Q_X{w8}PpN`%PECIn#sAav8q&|!gcto1zUN}FeAd?m=OlU1?n^H6S2`w%;_s2kQZ**W?G5P{MMFln*Mh%h9)_gcvpJm z34Wdi%mMyhHF2cy$9+dp;7n}Hbn9ZJ!Pt$qj{HWjIg^H*vJK!q7#C3IuGjAEELdYA zzU4-r5l4mU=f+%}tYqzqIbgmi;8~XvIcMly4MgA5AgiPOY5+HzmoYBiqi|bjM3KqZ zqnFDYQy;#b!hIOHUbN`~_)?PHSZRp1`Vvl8?EY>&MhXR`gD7&4r+U!erXnQbgd6p5 z7jPEqs$lFun)}g%0!ND@!bw1064?62V+$4Tg&t+Z)Tqvq(812mq%P*Jd)yjc846dQ z8CWi0?FrqZJ!YKq3##`iF|ANpoiO8_6yFK~<*x~8eh7@Xujtaj~4Gt!+i3&-!mIBlCTkY-q&`au_av`@YWL?^0-Z=}?~ zN^xZq8GJ-lENjA5a=6I15tqY#qjzs)s-gVka7SdG#H zmVU#qW}|1~PwGj)Dfd)u&Fz!F{jChwO3GARw~q-3iVxG?&Y)0f)k9ix9p2-YT^eD;+U?Xukw{Nt0g5cX1fBfs=cQdHj~qm6H%L)9)caFA-rO= z2$+kU_}tA~3uNxP7fI_%0byPnA;jZc3V!bd@xO zXX+(Dye58$-1^)TYkO4O$703Q7_cj=8a)`uQsVk7%iPoj`#pI9kYfOO-pYeqVbrYw zbpB@ulh`c_nP-GK3(H@B_j1KLCs|5tAg)=A-oBz&CLHN=NWCRT@mD_LaiGYvQa|qJ zSTzqv~3adzfd zwsKhl705nQ&)2^~SCX-NaqAcCjhtF^cwRGfoWqv``=@AiVpE7(f~R}D&*~j@IF^yW zM2=riE*cPV^=?f6)jf1wL;lB9TAhkZ6!o{; z-`A;X`Dib6=GqmZ+RSd?27WfFrYf?f(MLrpcr&e~1<54_> z_3phT{&z({>1b1Xzo#JVM%F~VeLMJk)uU>t*X(2T7MvU|ho)IK z4Qw-0vrO;3>9u{wrqjoZO+pUp@>^M zs~g>(W1*t zmKUo+P;aEVn9P?$D+ zQoENN^3aanzJm1&%7)wYkLOotzvoB5Rph#VXMEv?ao(Sd?!&wd=N z)NlFr-aMW!GM2N8I~EN&!h&&sm7sr!=(@$y?r1}>?nwaFNj{$N8gk-oF z^`D3poVo~R86*J|>kSjWOZKw_wSjLS;o6FUW|o8Ioa{l@ z7Z>}R0NUhFE{EI~f20otVzYL&@;2Sza+w1Q@ePYtsn8}LcYNCTw~?Rmdy;XK-!EVO-S=Z?e zlzi|SQ3ORMWD)K;mzo@Tv$bO|wCu7Yj|sh4k>3wd^TJ`M+txo@i zPEuQ}q8fUEmt3y=Y^`P(R|G|zK4ZnL^)uJZ{^{W4gP)EQYZS1{Na^PQ-}a#lO19id zm$trG|I^$adYI(R(CX)C#@PPsRGGfb6_2)w7RX?QgZrU$Jg0%7E`r>iOuy zV0ytGdF!gNBIkwyH}Q8&XzNxrU_rpTKG-2ULw}SxSKP5Rw;%H~<83LOj%4U#=fLP* zt*r1pOYQpl`Z(ED9S@-&x52R4N6p76i34RB6aX6<1~J!j0ER+OgT7ACJDrPi%9V61 zA!w`i&9>Q%24=;3vaoX$me&KC#{2;Wv@ZpCsb-C>9cQ~SmUBH~Jan7rf3R|YAN#hf zfHZd&d^~>bBuY2GN4zt0hTs}q)qUd}TgDrUHTasZ(ye{GS`ih-7*%v=X$MV}Q=L;^ z^{6nn?YW9vnu)A>&e&HmQf)~WoQaK|pS8F_LIYfdY< zqz3q2vTu)s4(heFwe+-oAn3X#Ff*SkSruf9#oUujQ7aE^AcxP8Itt2mE7hEdDpX0I zO+?mbGPGy(Vws`zxNOp>>6O>7ToTVKUR+XBTk`V0F0$-s?5N%cKrx!NG2(~x8n%mbQGAHuCE9#~IIFTjZ*PP1i37Ow*TvOef#BU|zzO8~4 zC1tm`_-_Nsp=t2yST<*9XEK$QgZji$8~9HZA8vR`7n1HbI?P=#V71LRu={Xl)+3i- z%UfyM{&LpJR~7|!_6_Nt6rkAEj#eE+`BH$3#0?npz4@rQs5er;_G#TsxvnSB_(^je z2ilS=;Mqe@=p@cMbpLsa#fI&TEOM+@SVv>)_)7m=vttP7dG>uPrVY+X@eJj@e$bY- zcXMGb^-M#d)+Q~d3b!{KNyNqKu!-P$YdlTL@jYy)D9X#uj#+%ulZ>7Qm)e=Kg=@F_ z=Ra3KftAdn*de8o@!BYHuXPZZ!fUn1I`cwy>9N%vle!I-Uf-aX3`$7;XyWqkW`?1X z)Z}Q39dlE!tXICsD4n;J0-91Nt2I?0#YJ$1-WTnZOIf{eX znJf{jDV5|DA#0zO@I{d;;f6C-mA^(VnRAYjIRk3lBqYke@34(K)_ zl3hF(JZbrG6Z`+rN)=B3T3=B@((+Zx{bFZ&<}n8SwgrBE5Sf*|vIK_Q`dZa3iBA@I zB)KaqReB$IUN)ZSC*fm(a2q`%AE;?^nh_SntfkF8IlmPSSc4${HSyGVJhhhvdq$V< z)NQfA5%Y@2VQQ$KEyT7pj?jZoPWc`qb+NEzNG+dtzslVZKc;mBewZ9r-Sxw+T{Dxw zgr0=}UwV5r<@;oJtHtL`pL=rPYyYpb0h{R-7N3Xdj|Rfy@&;10XfQ?Q%1}iWz6%be zWLHDrWKPZm0Ex;?XJ{Xb1VF23jQt9oOG7UDlGIT@CP;$cm@NKw50v4jKk-eOuL1|j zn^MluWFa+j!|*!#M7TP|{xxwltv+tli>1*0S8_||rc*l4b-SE?vg&ht;kd>nM`;i} zz*O`|w&c&k#GKc7kZHg0#f%K7R04WdajUb2FJjp|7y7Bqs=wj#<~Ia> z+ie{y?mLq5aj#4oT^@Dyq3+m*hd9=c1eJG6OUmq_<353m8v6k3m?%G! z6w!H48#a_Th#U@9kh}jnz48wod6#D2rrHsLPcQLu+WU`z)%Vu`J|&|W$nrAD_yX@* zivlv3=bJo0rHxwnTdUq^+4MA_ywB84K%ime2jZnapFLZ;BEOD3we+W${7mc9YTpIG z_94vpOOR7~=XwLF8WIGz8#SV5zGE=oVFrs_q|ET1V2gDWUfj>~{uayypwnhGj&29i z!N86}i&6qH6vrU!=yZ8{yqjH7L@h6!a9Hl^EbbZC^H;+ZQD;m7prk*)dBI>q>q#PV11tm>Fw#PVb9b*3F00euZM35HWihmK5{hi=_9MKE9Z${2C6ldZcJLP z$i$@j9dWIa_tZX(rmRf^U(u)+x~b~4Id73TfLX_0JtRau61oZ6OTJ<!TCrTfrr7IsBzB`e=IwUh1?kj&l@yIhfFE9QyKg zE%)_4jyX>hdNdht!pD170!6G0WR`!|yB4KYaVpiExy1%B{IT|e$YJPp^$zQ`Oaw_%b2|Wg5aVpp9uChH`hzJELENzGgDKyjlTK7_K zA(bx6xG+6UX4M+U8&%i<4@1 zZ9T&=0iK6XrJ1CVZ;>?3ie*97(c^Q?jt`IZpSM(E2Xeu(i^w&jW89`n!i5#=TkPt zeSp!q`uLpcPW-PtUnj$$e7o}(p~` zA|f~Svb?(%arP9a{nB+FVV4hSFf4m^KUQv(;+LgTBUzmkNdj!^r_K+R0K{`Z61jGd z-`Z@gvc2BwvxMbZ9nL_FEo5|*KMR!`8DnusOvmA^c-G=gr>vS zTT}b6!5Uv(F5`-LaxH~=t;^ZH9xZ_+>Z)W!JyMV%yu+P=WZ^pQ#A+Z>^U?gjI?v00N>r zEIIA7t|~G%XjycQx@*MraeHAZv`1jHlNhC^sGS&(&g_92bajbtP?M-##R)3R)5RuH z_VLU%N61#Cu}t}83==Rx9fb$ftA44IgAA`UHql00{K!J|5$=d2;HPT+!n%|O&y!f< z@>$(Gk)>|c+!x(#vw}bqE(5@@TbpC2b5#&_kxmw0Yu^-Ta#h(iiqLvfyO;n zOBf?kGRQG6y=R7qyUE|Px?{H37kMh-pUbmo()VbcZtkl1x!<13!AJ{I7tof*-Fw#$ zK=^O9oTtyeLKDaF-N~f?(1fk(|K}4n%zt>o2F@cAoi%re>+f7<@wOsh!lwGqoUrx& z2PSNG$F~>TH*0=^?$iHd&J<$wTqVDQw6}JGG!gjc2^&YsR{ejNuz5d9%@AxTU}r+g z>8T3nQY+p(P-s813*1OzvpvbP5HbYMRA8j#ZX#g>V0I+5Sc@39cF$b>)c5F|6$Puk z7Ubhpcq=-)GR!ji*fmf;=%OTX|Dm}d_&y>gmwcE+wGfBsCYy0I({uom<%L2V&nhrP z=kjCRc1kLbv4u)V>pLP0Pb|$b!Pczldb?;AqYp%ql$&$ZC2di)&h(&&6ObkF0a}Y1 zE4(C*nwM^2ee=~m>yuM6i2pNBqwALU6&K#x#Kvt!rk)Wff3Lh@ICsKqK-`bw8QUeG zXp8J?R9h5;T|ZB57FB3R*gT!GQxwm*VNBp*QZ|D&>$uL87I=_pnsT+|MXy`GR41c@ z`&6>P7Z}d|WcFheh^V9vG=+mnE7T-b)M|$k%Aaq9`c88ysUaQlXvk3hq(XeJ{|C|k z`w1KJ7ZbJ-b}e)imgn_BvuyxRy^dR`OmMHU)*gYjCeyLR^%Uj0MwTw-zTTE3D{!0B zBq3c(d+5KUSqpRX#d4uxk}iI^9LKZ|ZZekUE)DrFwY%`(OS&~@;oHYuk#=W8*^>&M z!4IrwN-#%w4a#V3gnNTTY|at?xft?eARG+^@?Blzxd`l80yzgeSoAJt?Yg zW?&f?d$flvsTZUzTs+I~_->P9(YTj;jDF-FYN4&1GEh*q;28~9^Z#7MDORp^*sH`? z&%X8j%-ce>w!}N6nz!fOJLFR^?D(-SYQ%AwH^ z%jeyZm-HMKQ*WGd&J25BUK({PM%2%E;6m$j!}-|vBL2JOy8+vfZ*NwW_DE~J|2Jpv z9@o^J=l_5A*B$+KtFXUcJ5oiUPIpVK3N0v60%0AuGV@hQJ65T3Ni70WAV&z~ko(Ru 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 literal 0 HcmV?d00001 diff --git a/testing/files/root_file3.root b/testing/files/root_file3.root new file mode 100644 index 0000000000000000000000000000000000000000..aea7d5ddd111e646dd37df925b83cc016d63ca24 GIT binary patch literal 536449 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 {2g(?q>HDTJ1tp(Um|cB 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 z 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

ywoR+;ysO6-X1YOPw0&!28W}xx52oi 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

__+N&W6FkZ^UPh= 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

=#MEkMT?L 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ⅇ($DPyX^S_ur`}%m00t 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 literal 0 HcmV?d00001 diff --git a/testing/files/root_file4.root b/testing/files/root_file4.root new file mode 100644 index 0000000000000000000000000000000000000000..7cb08e354249c570129dd93a3d99fae90d5f95e0 GIT binary patch literal 536449 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

W_te~Hij(#ao&mTt;PH)C@eEd^XYwz9gluSg_U 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 literal 0 HcmV?d00001 diff --git a/testing/files/root_file5.root b/testing/files/root_file5.root new file mode 100644 index 0000000000000000000000000000000000000000..a1b03a4819c7bdefbed87fd6d8c9743ce693cc7b GIT binary patch literal 536449 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%0AL1MQT^z-ncdeokxXLB-U|M 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 literal 0 HcmV?d00001 diff --git a/testing/files/root_file6.root b/testing/files/root_file6.root new file mode 100644 index 0000000000000000000000000000000000000000..701c6d4e18caa42bb83d4aa60bb1b0a01228f918 GIT binary patch literal 536449 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

>F}=9j}&|BllV&W#`eKpv4`T+hu{; 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 z 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 z

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

nW2)mPQ@QP`LH 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ℜ6??xpmNtCBEkwPNgPp2eXSX!_E9GPZeG+Bew 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�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

#DaLSSiWb}yR^4pX@g{hua0s*b2W;#oNHRu7L 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%0AP0UxJID3((g{v&8oEd5i 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� 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%0Ad-h&<%yIc#PMj^5;AdEKi$=JLhff z_%5+e)gqS3Ne>c^$z%bL19t(WnIAX}qSbw#R*_y#2&I&K2%XB<(vyO3sWqCT?cU6` zgvEy@_Y>E?LIw(x&1ds=-o=(G@*-4fr*P(_GgYKrR^~7LmM7KYX|7W90=QjnNdp@h zw{f~o{igDrTCMs$DI8#~n6l60Biqfb4NtKF^4d4|fGYI2BG*A&P6AR4PAF*=gX}Zp zRb=g|9k0G5JexXOan#!y8PaWqCvP>eO_F+&MA%j{h|vN&kB-)$^VzD%v4jFR_%>`+ z_X)DYqra1;2xB9cCv2eo;NN6CPYq5TtNXL14J^aKld3|LFb&{>Meo*=x7oe&&CzNg zA?TivVc4k}!||+f7_K=0$PgLYlQ`0n_#n}kxfmN)cmtMAZ`Mu0PZkAC4ah7Ai1m_s zy%2H*^1nPEGXOYOgfHZVhFSy7s97#|9A<=$(7<~g-|juSM+gr&0lB#}bIib45t=QL z8|E$V{X;2VrXGmI5mQR;7u^668WIsLNYjO6vp+AomC?Jroa&k?FM_--=+huH7nC&n za62)&pGgzVIOUaK?55%-&COZQYGA&}r4YO0!6#Pj2_MV|cH|p6!e2yV&c2gy3g9;Q zZ{arVOMe@;{XOO6`TuakJpr`>DxjRCML7+Bcw&+K^5-{O|MAd2Uy>HuZiji%P**gf zitHPmuqPQ2o1Exzjtu4y2EgKDoZ8-*>YUp=vJ;)3j;>bRq=~!=Hi~Ijk~%VRV+uQv z+~bM&3xLb0dx!lRFnMB2s{bqW|bnKZYN zNvL=PzOg>8P%8nztyJ$ezl8y{b;6amWbI^hw3Xg;;1t>!7z8Sz^;(%+1V2Be z(-sdwy3OXytU)v}*cn~bvu#$4ZOpSr3dCw_{fLpC$N)+%V|so}YC_6Y;bHE|*)WKe zqkKwJa|R0sX-)i|#kSyOW#Ps?0W_prbKhTPD*svO<)8!YLLfH@*kaoiJ-W~p0iQ8G zBEkJY))m`Z3vWVXR9#5SMzp0&a^d;-*#yUt>~826Y|FC;H>Y8iPm{jS3Ocf$iXruf zsLC%{Bt(le!lWCC6;%gtua~E8e7z`E_syewv#u529Q9gL6vR@1jLWp60IsE;!U-k0 zi`o!WkK+C5j4bG&5Ds2d`Q@e5YhnNCs`#Td zPhypfYAp-D?}{Ln{XD$e|Jo_tx0S13?5~|2+HWM-+v?<1`2f?5$!a$&Yl#Oi6-K9`;pFLn85l=i?T0BkSyc z9eM5xbmL~5LI(HyJ^kn0|qx;M)7#Y@S3vPTH{(a4>YsgE~jhDWd4Gf z5=qly=$A^P+nqKrZ3-f3`A5AH0rW54TVyLTr-yB#tsWR}n~SRet`7z9ttI88BZ?SczzD;69UIah=h^FVcip0gM0 z-=P8H>hU6jngQ1zC<-ruDH=4Ql`SLEyK6a_x>LDS-Y7A5zFr@A%|6}4CPwD0mP)>? z;fgxqct3i%cV@Z-R$GxB#dTPn1b$x%chvyFOT>to>lC05JbNdR=l;25d_=x;vp-an%;p@yxF)>7QQX zAEq;C0`hsMVT{=s;k237z1x!Q(2wW?SE4PHvw4IDFACQhA77K^aLn_@tA;Ot?)?Ov z?{LH_Ms205-qfW@n+5htGCmZIcpv*K_WN4r&rF`)0JX-r`|XC$I6ALF8B;NiXgf3KO0I>x;@#zVdV6%1a}XYM+FLcns}AxclRIj?qnfh?t9i=#&+edu45 zS5meaGvsoPTHGrmi!f~e1ZKRAz2QJPL@Z1n+iSzZuMbJr!QPS z)I}|MXibMxO5Rjw=lqDoGG2tpQsB2Wu2&3@LZaAyq~R2L|4E^uL@e$_Cnn}ZDD8lB zE{6l=+A%#&y~rV!oe!q4U|2*jemaGdvB}aWto6b&nzo9(zRUTBPNt;Q23{#HgmT4~ z%#SNJA6y{OEVlz2J+>W{S%cm*0)T8yooxoS5LCj)?Eo3%?=~;Q+I|UGjAhWG#Kb+U%VJ1!2M@(5P8ac&i)P^qYYhpKM(Y;7wG(WX+cK)Za>C2#TNix7=RV2nQ zmUe_>^Gf)yppCb`F8j;QJ*90>olAk^t~XG~B2P(rB`Ag{zP4evYKv1fOZVE@f*kG% z&4;yvvrlyD5}4s}z?i%&L{5<~}O0)R=)!iph@>4f}M)=4xQD}w@ zZb-Upfyd5i{TBykH{$|&n$!Rc6-z|r3o~eVHzChYPLYsL$_HxgZNPdpG3KW&Hc7MK zqVqSo*1b74t*wV@LlMoj*c&KD3I-*hl~;wSvw4HVY4#a$WMe~nx~5BjT7rAV@=8A@jgtAckq_wHhq&;DHZDDOmdY^+b`CJ;X?e zLadx^?qAM%`gq%n6!w&=;$FXdBtfy(kzUR}6asoHL?)6hrlMCwIcpeqe0mHoi~f@+ zABYLXqAZbK^eiNbdH#Ieu39Y!QW|PE2U?H6u+j3@$wh#u1pWqA$yt+Vn-RAK|^*xoS*} zpN-l{iK!aDK0S_TtweFu77r+18Jrzjj4y2q7I7Hf1^ajoP=`rQvk_Zs2OChq?lG(O z)WM+rY?-Hv>Q9$Q`q3aZx1($Be7XXe+oR+NPBFBUmU+M>m#@{T)9KEcLmx!Q_}MGp zG^sPZ-(880gnVeJy8#4-xpN&(cSEOvBN|UGq2iVbO6)6jiT-Q7rJ4mQ#1e_H8A0y) zfxM-JP^$D+f)ao?;eXOl{*`q5*T?@Ay!~Ab<+=Z8@_zh6+v`&Rx7i*RxgJ;MTRyV) z?(Zx5?>{tsU8-o>dR8Ie=0zjSD1lWry5lSgXD|I3bdH%!lqZDxZcTr!mC>|K*qqv( zZE1J!KKzRJ?Q$=mi?NDv*|3{XM`1e>g4D<2-Tb3>Sr)WgqtMv4P zs1DqQEta^5SUEB^D2QrOG-hgtW&oOC$=yRjZ0H6K!1U2v~3MiinWW;>>VjI@94gjDVl(i zlBa^tTY1_#LUqk0^L9JJ0QafA2H92Ki55pU`R&IfWG{>3CjVTp$m}2+JY!QrDJL`Z zwcY&x2g?@v{O_}DSN~6zt@UrPY|%^q4_G$;lfTKb{Yj@Y`M)1R23_w93p<+JPb=O< za!)GuCHO&(7$T3?%{A2mlP!;=I=8>+SujuqX{hU5U8r4;^3J72FxnzM6Lgp$V0(_J z(dIOC!IZ+AEgnK82wx1AC0(GFYdw5}r)yYS{cc|B#U{jY@AUeQn!n)3+B^6#?p2!e z$=m5|`(|J8H~NrwoB73Bf`u^%mgAB+if5qq)zk|DxXX?!=nwkxyG-=&WW}mZWpRwZHmuc1AG@IEiLhA(W-n(w- zssEguR6=seH;T7O2e+J~)63OW{|9Mrhzb%yNK%>#LJScjM99NU z2mwjB6Oxc8^1%7BXLos-ITz{s6^@9+EbdB0z8-&IlUTp&uB@0g6joqc)u z)bF^A(P-r?{^QAQ0qqvq=L!_%}3>mOC%CQ)pQ z4XQU|gOl%e36pfX0)c+T2v#K<#XkCKLyi$t8pWsdf?C!Z=$7pUpbpGgD#4PoL5FHw z-UIByiz&tzCXlqES2lzJ1+5VzpE8sv`PZVHLTRR~86-`4v%bX%o|nv-Ji#K*9oY#g zx_oQfcLrxNa1mtcFV0e((mH*=N*?gI{;vLh(4Q4duAq3XUF{Nc1>?Ucy*FonS;R-1 zRE^L;;pVoWeQ^v_RT#7Rp$+_Zt+%@eePZRxi;&9Pvoyi9-brh;aR<3ku@K`Sfp6+pay{{Eo4;$(g?m1d;a=gLZKz}K%GkbepdB(84OL0}$PvjAq z&WY(UIEZ-$lGkI=G6cI>H55bQ6<)^>?^r_?)MI$e~J^$ zFvuDoOg6OkL3$q2YObGHHY&5OZ=KZ0xaN56vO(#l!{%BHJ-~b z)`wZ4qEWZl431j=z%mA?{|@pjcVvH`&r8OgRX!99gFaN9BeK{PJGpP!SO}7rW1n4c zh-m0?yw3`|jJ&%aOc_a-=f{Oo{}MNC!)Rzo7v$CN*MHJjGALU~n>!0CuzsKqX|@{U zfKfwAt9yyEzW8V5mIGp_*s6{7wQ{3@LWO4O7SaC^ZhaKJu4X88jIFbL!hA6OlA93O zhx`gOASdta6|KH+)^&!r@nh)D+vDD7@#p9kK^Q7zSlu~Wx-FKRBJ~+Xuu9~vNg(*< zcjpsszs=E6Fr``D`=Q3r+E2FI(H%QP`+cw0Rp^bagkH%zlhI0D6w|E3fRL)pd7RD8 z<$s~}sEHe|R{cW_MB0}q^-a1SJ6*4r?zPkB6ph`&S)}IBf%Z3J_0Y8Bq0v=YR-=CE zSz!I-sd2fWV=1g4-51aL9mX(CPT9P%0=l?A6znf(5xods!$=Dt3KOpMOd6qOT9XHg zTubR}6BJ_5MD|1Q$sr`D!kiY&MtEHQ_LkU2t?hz;qpm!butZi)eF{JQqG34o%FX?U zFrS9ktNYaR-tc$qh%3V6@76J~~L~G@wR1DYB3sPdR{b=)(Xc)esxR3*Sky>(@Zb`99qxUPNWEZ|F==w@5#^|EMm)gg_~h z+OSgOpq>M>>B9!WB`jN-x~UpF+K9l0y`IMh+y7AG-$3f0Vg%b`20mMc(8+X&bX_V! z2N-Q-w=uZ9VtX|;vf%X&D0mXj4305Yqy`m#H!4NpTNNZy*BB#Vtg&qCtPNZN{WnHQ&AycA1uihCva_X1 zoduK^qp#G-O*6IDOhaoxRAbu>ho2Lf-uM?h$5^Gm^tRZJdoW5a7L%ft0P7LL6OxSN%jhQ_Swg}_O|b8K0REzygSKXH zg_jo>gWBTy2MHn}+EJN4y}ECMQ$_3EU$U8U?-I2U$TsD_+qu2*&vNZ&|M1m+lx_ca zuO#i?c5b@r-{iOa{c+Xi=K8)r7pmUEP{^7r=*jYo#)-1WwsJuZR~L0ii6B!w5Q&(fy)2 z%5mSM$;M;e{+M^N*J$liKSi`fy)svyQ00NFGfc|U!QB%05-A4UI9-uDDg_! z98yw{1acL{)W~bxvH=WUGLh|+D1xCZ|3!~WV>n!dfAJ0;zHun|@oSBaNUc)S)aJcK ztY>$_52h0EgpFw;$!F)r!A3hP_xQGfqXUs14YgbI$wT`zul)Kxz}x zF{}5O7B46vhboJAwFpJb$|D0HFRu(CZL}ZB;}xWmZia8SL|TvZYs&<*C=%#Em1=rb zHm3W73u%sPV_Ic{4jn;X(LqHa%WMt>=1CQ=bv(bOc$viLLoWIE6>$G>J9joW? zl0;5@7(1O-6oo4%)$EniI?9&jsxT*5n-L?c39IiE$%@y<6-z>%kQSU4Hss2N!|z?! z?`VNWF?<`C#P0TJItRy}e!}?PTm|`NLM=_cwDQeKG419hNe=YP8a~mJgIO&wbVEic z5G`mJi*X*FyAclxvgf87x|d7Y?!2XERSoRDq2cOEH)+sq5i&D@+vtO-1aM8rXW0I! z2jl@nZs_`Uk^?cv?;A84Rx0-ej~oE-y3uOl1t=Cy0DPK3c9UeMobu~fP=`5=ps8#1 zlDJq(3qNw9E3mjOwkRPItQwGG)aT`a;ruJRm(gu~nqe3uyzQ@TIbPifS|c5ePZ;(( z+hE#Iz0^ww$(rn&*hGFT`o)yzr|~!xD*Wt1*P+BjS&aekr5=C+1Cx0ca>Y?DTtHd3 zc$mur>=W!DWnni7ZuNpS3&Z*nf>PvZvIVc?EdTeZVT9%0hnAIXFi>pIxCF^UB}dWD zHahIG%$=d%up==rM0pCDw=sA^a@ISz;95G~e|)nSRF3wKu~xXcqOLYwk?Y=2qCL7B z%q&Gen3&q&AX*=wcdK$hJ+B&ec}E1yf2#dX^==dDq%8+*2qhA2BZ{z5c|^ddTox@E zbBZb{(f}7sHzy!F;7t85oi08EPy$V0$r_Ix-j1y2+B z`O7&BhVH(57@O70C_}7iI=kv4n~W)!zOVgTD&nb-`uybFK88?qiWgd2sC#;`pEssB zDj(cH0Iludi5T`9r0Ts4?N^NuOZo`W7I5r6;%*VA*XEic+lMH!aDJ?PysGNHf z4(W^VZh3Z1Tg{>DhQVfVO<>dj%)}*iVf@@EosuipHooBn{QGNyQ-xo%>&Zi_t)ud~(0Pw_xeF+9-@E8xssB?Pn^rk=Q3WR0 zvUtf|JHU3Y?QYbJXkq4Tl0*yG^ zZdK(Vt!1O(rRDg2o;EO1)iilt{!c;UKp*vEwv;RzX*Ujn;o(sbgCjaM>uNSfrsc_# z)+5O>Fgw_MB+x+T+IRy00D267FIN*_J#`BQBXoXCb=B!n5aPB-E zKpV~(41=5vcbn`!>-2%(IjyM9ccYY)>9`_N{vGxTW%EMYrWL?}bsPzHUqsorAN~9< z&^Xab&UHz<%RuXhHJW*p^Z^ zvq#wNd-M^U9lVw@Opd&EcHUda)agLI`1)WJt;s^`#(5r(51vKiQFCW|MZL-T6TS65 zUQMiPixH#R4tdkuw>hJ!n-}&SFjU&?2Z_=GxZ{bX3%SI&97QOUbjy*hx^>*A(mqCw z+ujYl`kv}7x8p6xJH#oOG}r@{P=hXy$W{ufF1|4oJTi211hdGuBgM3)T2_bXB`NC` z*p<#UC2WFTpMu`@Viaqcf`^RV?q?ITx{{RVfz+JjLB`y-3Cq`ZbIem}^O8;Fh8_$b zHe^aGZBS19?Iu|xoe1tazf{Vj&Mv{8J_U*ijj5R2n4eP8d2S2vm5IM}+6z?5uuEsOth;}+Lb^SI_<42N*%N_Pm z+=BmR-j|K}qHAs(Ef zUi5%j38(@Ob9KKrpPWO$f4*fMFEmbVY(qs>j79j!#_$P}PqRjv4d>C~2OpA)vhfG%kLQbLQAWp$ z#~dh*R5=W14b+jll-rn7i@mT3geS551olQMP z0}|zGpIOKl3|HWo{&sKupFt$+HP0{D|HSV(AUi(fxKuEc?f>bjRw_0eYMe$SWw2QX z8id#h5vS99k#61HD9`MWIj?MqAb{Hd;55gz-MFBJSvquvI`7#QGt(XWtn*&d-rwK$ zSyEDx7jh<+g?q&?T*s`hFEJL@8kTma z)AzHeQq&1NhI~QZS-b-HMd1EbLen`Hr`~uazyR($`$3F6%{RlnSz*W94Z_#h;TD4= z`vLO#g|z%*OVKE{WR+P`leH1kqE%^RsUW9*s_2p3$WjQ>upV<81Cz~BI<>rCZ#ock6Vn2{gL(=FT)z$?XoUh3?9 z!!h-aV!v|#F2HXeabRT;WtZS%K4=9$08JV0VeLOwGaT8#oC2K3Cjbw+%@5?D1*FQS z28@#68LJ3Kn{ZoS{I0Ev1C1UVV}1p*2gX!;B($XU4O){9CHflA4~{QKvt&#yrF3v4 zKH|OVm;@jrT5_h$UaeE-qFk;)RQ)I$<5Q@TW%Uz%Y5OqLE|EAB}`zm^4C(Hd>TR z1_7oX+Olg!-rrP4=`-F?x(Xj_?qb;wH@b01C_l9&YM^Y;)?MQJ5SY`ySIIn(HD&(b zDmDq0^;F<7l)P(#4Wkc9N+QYNUvpw8AjA`j+eqpMh8ptRD6hvDc74QWa-Ph8FcmqT z!>(F;HlYFz1^dAufFhah2t#cvI#FOxlliJcb>dbm;Db9WQdBQ>Xe0E3?m#L=W4K&q ziE>tWH&K0Kwga1(qCTIQLzyz7x0+SFQ?yS&aJ#xob;S|>ZCa5xT6dE{K_oJ=?ME;i z2btA*-I{ZKAWp;~I~7w=AY)N~AO~9kQ?sEL@9-&eHG!8QtR2uUX9^O7=m8ALo&3Bwa%y{sWy-o5zrnJ1FxrhDWo(hh=U$jLoNn z$p+Hfawvp<8=YArZP?uVj(SGV%uikXLMI8>Mx!TR`V0AT3qYQe;L6&^`L_-pK)-|2 zFLeU~hxj!B!E|i!jA1~P0 z=5sEUss)xA@i|3!;}X@Rk>uYFS0i740d2x8{@jcv_Wtv^9_W4TfKEYL9e;X6EH!nf)o1WA^Z{`XF4cn^vt+a z#cMR%p47(HJvp=vnyY`=rO8bn6y3VobG~nK=aNK;|(;Nru6SS+7n;!y@Irj+UGTOuE@5!6$6u6M9K;Dm;=9N1wAJngrc~A({9c1--yEKLAUBd&1*KU zbU3Vt1UJj1wcly7ztnx)!w4dPM^ofQRfoSmKa8>ULX6U3=J%&-JhgD7n9PCg>j!80r2+1D-YehxF?89#de${*WlE zHf+9yLJy9CA0c%u1Z6=}X>yFm6hO<}^_YAjh52Yt@U~`s2#lKyrGpEg!IJrBHC${{ zY$+`>=;b54tx3=(XASqu$DMib2M~xm8ddX++&kLvZ|gU2Dv_<-&^pqh+Pq?JG-`lg z?u$d9cBg+-Ta*`Du`A`4x+3NJ7krx<-dO#xJvEV-t`pTsxowPv;E`;umMAk|l$^%B zIMbxBsOT_DDm}~Zrz4=yd|ml;tg=(xTxLl<;*HY2aJ1~bm6S;-5-`wd~|PQ zW)_`B6pMUTTM%EL%~E*1ordR}1VGfCMbBX7lIdSZp+!m8bRfP}ymx6LKZOXfKw+bk z^rie>=j<`*;7Dp`N$m+CFXLlWXDsk;Cuahz z8FO5-`8*bo;n1BdEJnGD@kR@UvPJ%XT#NFZ-S9fgR~ZiuC>P9UGD5$1?8`!@9nQ zM}4D52*Zr0xe0d(#&I$sj*Mldap_XfRGP2l_SRI_ z%aIqSlE7@vF8ZF>ZYo~1j(xNh{1s*d_v7P@aHJE=HNZgCfgy$`=C|3xIe5FvN}JfP zp`;NS^QaaoyL%d9+kC+}SUMz2<;BhT`Z-#3=i~`B^&Fd9k;jSInM?|+QeUCf&6{Qz z?s8xjrU{dC=BOoW;HyZKH75d~y?z#{Q;g4{%0<$g#Ka!63{6eRPzF5l|yU?nNS zR8|Os<3eG;J}t4GpY~4n-IpCrAc0Q6r}mkePo=f`9oBChiAiw5wrBc#r#ipkv7bKu zB%o@(uxFBG01mbg*HMwO4{TJoE&(Nup8RVUC}`0`qsJU&F@0O4x7UE->PRZ97N)LN zE>ka(+ZSf^4Hq`SxkN&>l+^b5jOM_xIL=)Obj4hT>&>B0P0AtK5TibwtH(0L+$1v3Y$3O3H2+9(1&HQGW{x#saboV*!*ewv$nQJv6JP%#>)O5 zY*sEL`-3n1%bp~|%H@Hobwo_kTlkYIcfMj|ij}Uzfu%&31Po{Fs*1=^qpqvO4=RX+ zAV%9LFQ#0|ZIS!DzH8xVP;{IjV!XUJ#H1jMt-SAT+pCtdZzNBsRbZx81zvhf2FogO z$$_Ka)Q|Q^qCnfStbb_^T$a(ep0|U4V)luf_$_?@QEkwhK<)4m#AVR67+qCW+a!8W z4*NG}(j)N>Rxi%yN$^vO0eClmra(2Vjp8n5D{I=3-Aa}Jv*HNwklxcF( z-pg`IFvF32-E`hEU0^>XsR@cLKl2K$i>@F561gmM+kPRAy&Y7qExGE}MTF3cOpn*Sj$xYHPHo%|I#A zzA%*KSPV>Ldt4d7E}2Ac>M!Q@Ii4)>LBFI!6i~9mGqTTwYQk#TE4kd2Y{`gu>!xNz zuJdM?nb<_;g_Ds5D?)G-M8T7j*_ykOc9cdWBm|EDN;*GlWuqgA^eS|cqp^CHxEb&_ z@iH%^4Vq+?4$4FzuKe_7xl_fk48UAu%ccF#Dh*p_ZmPBvqsbo=wxPf5hV#s0%8I*k z0`2iw%^M{7%~weLgbC1I*E2;k82?!7J90pldZn8{A{QCZsi*=Jsf0SAZEEaa8psfF zV3kgih^v3rk%9s>1Ji-;_bUqE9r-Mu_$C@$Bn3t(sM!sV!Z8keePAPyb{Cuo`J{DF z%xuh;Ii8(mP_$p|nX}CTL*)$)`)OfLBL2A6GFvD$2-F6<9k()E|8pF;X#tn8GPiLr zabz=6x-E)^(u<8D`o((eBm3S^4G|MFgVt-qa_ncZQ$V0i{5y-}zwFv7JpWOk{g)O= z=D%VlpBJIv;55eBzsmJ-Bh_W*4Z1!}ALH2ncR1~|o5Bolw<}YepKS*V-IUCxJ1?KI1sv5+#_ikqQnp#;ALy=ulAheGcSysIk=7Z>E$u2+F7^vxMXLBCtv zo$u3e4I{je#;IvVlT(Vz~Pl^f;bccPQS=W`PnXX=kR*BTyHm^Q8K9^-15!#^0xAD zfxvlEF!DL*3yUiGUS$vdkG7Tsea`7%8ZgDa_%t|y@St6wIp9bl5em*w2gm2zg6MgLOc-=1DSyK2>`B&~QOA5fw{<{UCB6uXDDQ1ocdc zHzqa_setG7gJtqT*+K2!&RvpxEMzhQ0Gw6a8xtB87&ic7O&VPKBHuS-jjz}igOXlk=#PskSA3(Q|k)m-;@i??6te5_TUK%UjDDV8!)-K_#~ac`0+-QsgN z5Yb}=LbH_};bY4qbAb*KF`PwRRO(Pajc1$u#lvoKB(w*AhwuIA*oAGn6GEp}DOIsZ4H08d>>3N{A9@K=ICCVsBfL3iBgl1rH(0AQyl}gVQS*y)g+lDxNvT*H59?r%MAzjKq;$O8tvu1(5ga> zHRXnjv_G?za>CEhBFPbyNV528-2r{VNu5LoeW3{U`l_Hox9236xsBE9kOL|SKKPrJ z-*XFoNxVD5#7avj6k#lJc-?d<50pqiDk*bl-cEO;`+}Y;uwI84z{1#}4E?DU4V)Di zPViOBDB3&|jkEfQIqj*7x@^*Sv>?O%UOZ&xg6)+TxKe1e+Ctw9=t>+gaJy%iK^DEW z_p`M*n~v^qA}z%}z=F*Rm>$_~yk3goG`6v-JUWvfX}Fyjc~8H1#@o9i77o#ybV5sw=E1JdxH%*$6F?QdwXn@UlC$uKG zP<<6hVxPk^JkCEGOiQR|Z|RD(OSY-LY`Y+4Xn67u**eifo=u|d6`tPurGXgbur%}3 zhJ99+DosK@Pv+=~ke8Dv0O+72#@&QjG>=?oPcx2e0HnjlIWAZCc*JDMpqvFADY-Gr z-pM6HmVw=BHW-F722PMalbl0lv(z{4?gvk>7)xo(7wFrn5@H+;Ueisq;YDu>59 zBw58i5=jr_gfExC{-sfkDSnb555K3MM(>n@&!N14wZ zaxmxCOw8s=WZ<57tVTf-3>N`h_HZzDIFyf0Q5jfz%S|T{%rzrnVA7=sE9D6cg!`4kzWT07GP?oUJ`29PTy7@rX$vmZCwDu6f}o|Qb| z=IrE$5}qyAD!|8NdPvN&y=|O3YF!Y)dW<%!SZu`MB$sb>{USd*p#LzZS+|^>nDSS<;Pm zOe=B|9A5KUoU0$A%=BTb(yR<^0pvWEQo-;!s@wxY22&^5FIK6URe;)a5n}8wQh4^j zl#YiQ$~HMO$g^S&wK}&AQ?IYuuNWS~*j@si5jZD3TUG6E&RVOsAk+RRCz(ZY&hcIJ zft;lD+F)G3roK8-aRuOJ{MFiE)=jiQ^)$mZ4=!fQ@}Gld#P_hn)m>9f7Jzz@qiGBs z_mR`~qi;Yd5m9U;=ojn>7a<9MT8gbKQ>f>oRF9fRPu$hYr1)WARMoS(joyrsHiM|J z4p^qCrHYT(bG8JIX-vFwImc(Y3Fx%JE3--U>|lWxV{gVgsIe1Hg$YB=oLdD-g?`{v zW)3E$d<-umuU!NDW}wRKU$vbd4ppwl4*>^@r}3>XxA$WJzH+j1DG6Nth~F*~8a=l*64 zdc!*iZ+!o-k4ZIp7p#HOHo5V;ndEx$ETAyy0%vT@1?zpcRS`Q!(-+hz$m8=D4K{!< zOHqZ7%h@Rrz_QIp+g`~C9k#2GRM7cG4YRK36o0!j{G{Y$hf_thF#+TJ60QI)rfpuk)K{G2F7Pqx?IIHr8;?ca`UqXowMjIrG_#03bJecx2HjpiuWyp0b3B{g#@c_H&x-2c?Fa> zT2q&!pxED@8t!6k9*OV(0F}Ug2;T7%D>qGb^9;0t*c*Q!2OY~=c6x}(*^jnbT2-_r z@Y}D7y9Sp1E1FZQIgxe%eU|@3+}M#Xlf08yVUtSmw^_kf0an=3TpJI%TJ*IbjSB9K zgS4|~VFLjNRRt{>u9X^GV0c6=a%`kUqcat-3|J5vb-UEBjA@HV!NAMIgk;}&ynZdb z?zWA_SwQtw917Qhk0Zc4P@?;+q^zcTY}|r30l8D$)?h)4_HW#XS4WKdc$aOvHrn7Yd5YvbMT=p4b70R zRO#MeRpJkTJ#;9g`|oO>03{dtcdNEH|Bq{uA^(p`?*HzZ{Qm!2wN>x>*HzojTY1*E z{`%mZoy7;ELcTMnK-LYAN`j6IeibOwCiHg13^B0j3Gk}Qc79m0+?rNHTYtJu$>g#B zvE_2>h=gB@4OO(@w|4Zh2+jQ=s2a}UO`jPMilkyN531~M7yBAhu77RP>6Pmi^VfHZ z;lcC={*7+X?3i1Y%-Li8TD%6jSIgQGDlRNDnVTeo;R#+((J{;^dW?O+Q`p&~D&mL7 zMPbt0#Jj~?QY1ZnE;(Wn5qiWMtHaW>-%ph`#N`TJ7fK^jzTA{6V@|@(*eexF@0-6a z#T~nL(ilTq?i}%r%D1Or>mQI_*zN25d-1_DSqk+pz*+1tqK7yoM}$l`jw7ke)c8PT zKuUR|MV>?+l&oFO5#49I)?!>BS6$?pT?tXY1QU8NeAo$~@s4}|N3pd&inZS<>E9zs z_sm-8ZJPVAuHLic%oO>^oCFe^QCp7h!#+ByJ!;k-gV8vUrUJz6ks2!EFjO7r6&b_Cfz1-F4=JBeA4i@UMG1`=9`}nA{nqcJIZ79$)r_ zpWkQljkiX~pjJxk>dM!#vaYwkDSiy?Iy%{9t(+1@y9XOCw6y?XfSx8X(0o&n)7 z@b_(0VO><;5ti&t6bVrCTQY*0a@ad$i7CCBj6`b;hpnod#p!f#9ST<~bJ9nmOAV`Qa7ahNd}Xc$ASq3+9m4 zQb7WxM5ylNjz!zdyV0`t4J1xxU~gK_sV6gz<7AO;a9z-{Xf~aL2x&nIr^b;qX7d(@ zLA^*0@bU8*W!N~@>}Dv8^$U8f_~fDnokkbg8}o&>daAb4SC)g!9}$cId&cY;B9W@npI$v_@V*OvGCjM7wF za!TGdS9y5I^El^I3=J5s42%_IHexi&LWlv_sfQNz`2&UFy_ca~Ni8`H2d~QQ{3T*G z1ofGWYKQKY+R;A_#j zWh6Vey#nyq?0Im=vK!4vpO)RiIo4(%p(u!FwxtOf@&ZEVm=r??6kTcMvd?gdkSI); zDPg`rmeC&a2CpGXrbMR#qUhcXleizpe@2(`H5jzk6h81dg$L5 zvGhlP_4b$08GY_17}PJaf zjQ)jGWO#ZgtQLMcYHKZ%-o02BJDxr7~x z!v~{VN{(>ChgnWCpk|Yj?9TGu({;i5?eJBBlm|nDrqmSVRl#RvmW@#_!p&!`)Afhj zm4Yb3fdDe1#IATi(JlSr1J4VSU*ZTJjVKkw#a2OhDVc+hSpYR3wiuDn zxB9@_JT01$NS@$dTnbNwgmbk>xkFIYl9SoM-bet5wQB-VTokSp1o-Jqkfopo&|a7t z*+X&3%SU!d8;s)shyaKVYe4${xyUCnJ79xj=4ZN(?7)dI^)q{;tOSo*Z1CW!sNcP|wFUiHhGDKP$Y0`q7%MpQOuT>AitRUACO}Q;ia$KM zBr>MWjjsIJ^sRgrcDhsqrsd4Vt^1z)Ry2%{L5rAAYsaElu9K}Oif7&r=w*xn`vv;N zt`*asv7%`;h)cY9b0_S&9bN<@l+%O{_!UU7O_mIkyUP(&0zo0`I606-UL zm9WPJ-em_e&>~@YFm;jn<2W*Pp5p$oM_p9msBz%8;e3}ETmRs~*-9!v(_Z%Oa1nV- z$6OsTX%K&)qw^bi6v<(4dxXwMp3y{Pr{ricKwCMUt_6)oF{oFR%EyRqVni`+^Abh26DKJee$)(S4K+46L8oh=DC5P6;=#j(%Lh z!6v&7{6i_E{?_(P znqG@dNd_Uajy>!^H<)BpP!$b2pZ|NL&>_WHMwgQ$cO`T&-+L6~fgC&S^yLNRI8an% zb8{*V{&lQ<=%0OAA8Jk|X_Mn0pSU$H)=3{4LxW30?yI&mHkc-VFKzb;Nm&r+bGSN! zZrU@$Mlh%XBm9??SjP#nTUuwW^fiA@mHpwNAbh7O#pM~L)%2I0xoED@30G%2ZboZO zyIW+;Oz=k$h(klBMI`ilii6ITk_jD>Ei*n|^Mu+l+YvJy+)Y`@$MKDCvc|U z|Ed*9YmF z3t&3num#i9%3WGrT52DZlT-_6PN>B%vTWaueD2|}3|x(3Gmp6`acWH76_Y?>@#{U) z1w<)c0(dmiKKsEGc|r`7vX24CWvwIAAipbQJpEAdx-e4wa&Lhm_F2bnQ8p<;2L%(_ zwS%2vzRdZdgtUbru=R*sVFoQn`o89#!_{Y72C&{D7B7KcjTnLg2~fLN-Q)upka@j) zvRASlJ`dK3ZN1%;1NDqm98g}Y)7M%yom)}$WOaKYV1d>mhr z6+Kgf)Hiqy`KlP&S!I5APUy)}htyk*59B+o-j++9Zyp0a?)Hst=0tWWLU&QM1$*tO zcOlBY6Dp(peBAPdAP-~;O9|u}jak=mNt6c9=pV#cO-Qru03gQr`I}KXajX$&KkPJvS#*dd-2wsXwRYP~AOnv?ZaS57ilR_N$wZj)ikuHA_#TU(t6X>kj=<7KLi;K#3Ct0EMK3x#r{!c z@y7hLAFL4###ZJ0YH;TL<>=xwRQzDFIDe$}x(gq%-%}tz9-@=vQ;|i}Rfj};LQ4+> zrJmYY+$}NwO9@RHtwlxQv!X{eME~~5$eT@qLo)sChnAByhgiP?CETU8gTt#XCrEUv zB8#P|+eO2KokeIS#G=D0q<7gH!#ds@%u6l|o~?9Vucw~=tc)tP?;w-HtXS6ZUkc%* zCu>vq$9*j0QeVlL9Fs2WhF5lXwaTX)FA7V}fkrU1)==d2uJ=07vjuG})4?TY3;Yz+ z7pIf5}OSmDY^rcHfWcd566cQ2$jT|aMq3OHcO|o1l`j09k~ry(u?{`&9L-u zC5|g22WMq%P2`2O{u`*d$@djMOJ~SueZ-yco6_Ssdgyi^K!gmniae_-wo8L=Z@n%5 zTgL4$Nv~Y9jEs0Mltr$Ual(LcUGiCQH8s1i7B+G%1y^1xUi2GRgQ#dxGG&+JRSCWr zj31?DdDXt}c2RCajIJ;eVdZ9I#V%IF_5w%Tt(89-tsgk*nON(xHVX)|qi6I|^9{SceFsN!Q{O#ri$$f00D#|Ee>r)5>W}M7BncK9I43ZsR!A1l zo+hfoi#MGtt0k5^$~2Semr0##{r>b!Y&p_z-pSA=*fS7kn*IYusV!WaDv0XL%x)$} zZj`=TNJ>%fPozgxQ#eAX#f~ytC4^egfQDe&&@M613f%I@)*p{v3Fz0ZNu1+Tzl2V^XVb@vYlnq=-*`jodA}V~W&8rm zL~9xH>EY}bDY!zS|I!n1tUnrmsz)ytJdcx6WJ@HBx z3Q@r&VNV3cx@y?Sop#$h{BWz+~(lY)cv;`+OF!jjz95Mu4hx{Fj}yr ztPj!g!#O#kO9`ER0igq1NB}p((E1~fg~X9CvkF=d1pN3;`#lj6{wB>hnN!8FWdr6=VE|NM$F0jY8?Wn@ND zBa6s&05`KgL=Qj=|C*Q~KwHbMFeZ#4KeG!84^Ce9R$hp~W7FQ&u`r9vhU>vrevD-u zO@Hm#hMmV!Q1PtL`$zL_XuMq9DMJnhi}9yxs?pDL)doybN(JsTgRx8`%7O8+FAHB- zCWY`Yi<5JDS@)UzW@l^iE*BM~v|k#s-Nn;8|^N zjinqqFc>za`;P>zrqX7%LXf_zFS|#2iAZ4BxYM(QplXkXE}sf`?USjxa}M-sH3RMF zvFPt%R=JkwUV+r>Eiaak+C3{Kikqf6w%n)^i2`^+)^m+0`y6@slr%8;)ACa3E%(bJ z>{;rW1g#_Kaku$G{l?;_wybNdMf#Y)(%H(V3HBSM(b^Y7tQWFX+auG>>&b%=FVfq6 zpHVxG7!Gt`j}6dvu9gSc5{f8|s;PA!l)q16QvI9HJU`oNDR#?W%c{7Kp;iqu9R-3X z<8m>#1TH6*>3r*$IbBd7YfVepHwdZ|+Lo6QiC9%fbZ}vYl)p^H$m``IR4+44<* z^hsX0Sx+i7yGWe~BI90Y)SZvDGltg|SFlp?WM^$*aCO8G^iF=&b+G7fhNbtzSf%G( ziP8IXVZV3OsBL4^QObBtlYN8j9+!yIxU?j8_H1S-L|Y0EN4XHY;Gb6(Ml?NL>8X*@jcKFDfA?0RkI8s5!-DGdergKG_ z+66%Bv?k{ceJrz-6w=>u5?ovH{X0drJiJbfxzpMaGsLYVkKBNI!(WGq9ECac7Dik#sS zcsw1{6n3DYqGL#uDow(f2^^(rasj>oOY$2N*6>@}p{`vLuwZ#o&BGegjK5};Q1V*w zGe!c2^1waD+SGT{p}#uKtt2#i1T_mo!BdOui^_^L)twK~*ROrnF1wv)-?64R9Q>mG z<`+k~KX{z0|3i2QHF&NL)N*=3*^q2-`OTm7iWEB0ie8mM@U4@*yH4NrLA z&+qV=YE*6v%PNPbv5uFid7I&lgGq6k=Yig+TnQ$FkvlPI_%2GVgS82zn~$$Th_`$JVhwqQh( z)flxfzmu@tUcLP&oZY+=mU^AN6cX~7%6sNwli|+E0MW4$9Uk=3q7ryJw4CvlfF2Uo zFqM|uCU9wp+RRQ-qaqW;O#C2{V4;zdnb%KHYt~r`)en>L=WD&ur1@9W%MM z%b}NBd+dWNcG+Rv<(or_#Eh@NE0$n0NyEeeE8_ci>oB)MpZ95pe`7s@{y)K>y}hF~!lS$YIgqj5+Q z3i%u?#FugN2S$20v(#G&{ejT%C{(=_vaHu5W3WM^G7%&~`_0??$M-6zhF=oSF&~nb zy|I2z(rk96_oNyO3|b|&PAy1pDIvLQb~6S#bjI+6Hi{;#4V0oB`(-THXk^h_6E8V# zu|q74?H_H$VnNnjxC=wqCbw^=YfWdYlGYIG3NLEB7K1`xFOGoYX-D=H`-pNv-+l7X zt*iL6xSF{yY;Um-<8Uiu2TW%OZmQJ>U%NCh0|37&iFf8KbP?+`KAlk7mlb#gB+7SK zoGzv~vSOFa)=@VSC@{??^@H*wrd%(_6tN{@TEbJ`=g!?qC4pJlwj=o~>3nX;&-2}E zjY4)CQjbyd9G_OPpq@*S{W`XUEn9Gd(d_}AH8O7og;>j1ESI*HneLx3*EI!d(fX3{ z+0aCO5OZ15BX(!rO2%=?)n{@eLtSC-wCAl}&g?)zQPPD_LD;1yq`%LF)2L&+b4wyM z6`~CdXi>mSb zgQB*AHiZU$l72lv=3XUn<&}$P90{D7 z5={phBe*mmDwArec#4!6-$c1f;=L{_o~Idbq??Huc~;Ng?nVPE&$(1mwd_P|zR*X9 zL~Mm|CXmDhLh3E7P#@bg)4AT37a%m}*x?g6)Q4bj+x$27%YPB=cvb&?aQjc~m+k-4 zemM?iwjU`c$UVu_@x;$QBv)^L_pgsfcO3(YUD2<8#GG(LRuwlA#6QoFP}2soDyg93 z_wp1j9?WWr^0JcZw5_$!`CdzB<28pSr^BGn;GEOV-#ro>94nAWAbff(x9@&8i-9rND_boWQ8DS*u06{3V6Rk-fgu+7LuVHW?pslf5ecFR@Z(Gn}T zSw6(GjW8w?9q8T%l?VIPUA{U$2>2ps^c`I^17yh6SYS)7z%Jf(W10d>w^#IjI?I*X zR$1wa%T(Mxepf(crXamXGN5v>p1kUSFU3(I2q27-Gi5StW@B4$4M0_$KPyJAcZkyy z)Ldh?(mj-e3|BKtG#-sh({0tbzwjN!8}*L-JT~$`ri_%;8;f2q&`I^4fk=)IEmo?((+%mZ~l}WzuntC6wCx<1G2GLv5lo(Vy1aBEa)#a6=8@(v{ z`ao$%UXOwV9mWsLXYPduSDLT(xY=LS5rv@N{5wJ~h)UOhI@EB2?|gdI9$>Z6fCYa^ zVz!#E9l%WI$DBfAu+d=sS?K6v)POdEiNJ7P9#uQNFoELRpCN!M9BL>mvOmIfCNLFUqt`3BFRK7gY6Q4u zX-{Jz@38YJC}xAxmo+!K9ITMh56m^2MP-{aAX^ItwMQj#$yJGCaT|95O|A59t@Seu z_cMe5iSixHnO_WtaR*odj=gk$OjRVNRq*1_m_|(~(A$U~J+#lyYhIq!BUqz++wT?9XfOvNyyr1co7gtZe6|=f9lcsFUE8pN&N=|0iNmjq3`^!PepYb%nkjrG!nL0;Z z+^yR)^+pNR-XUv0==*Eozf$NF&dEsXz>j5&djZhyYXOQ9p*2Yu*dIxv61>6|&l#PR z;T8HMY&wUDZpcykdPwns_)4asng6E>9sfU2=yvWI zy_^6nfc27zK|MfoHjyhQzX#l{%}yLr&HTD%7BN(?=%s^|hi@pkXPVWcjBIpf3sT2G;mpH4g%d zH5_Lj8u3t;wU<$vGTv^KrEUb4cZ(j~&WZ z??8vnMlSQH-qn3cC)WV&K!_>bbH=+;(!_P+^}^@rWNs~-*^tc?HtC?mr zY_WKI5`CBC)HEr+f1N_?^GMqfwmmd7XBC#CTI_xA$alny<_e<5Iq!zsyBzs4d;3ei zH?t;AZutI$7()*?E#K#-JEoF3(9i{?Z!LZ|2i9Xj^>wdK7lWe&Q#63F7;)TK3|*f* zeIbgNMJbd;1lNu6;L7Jn=@1OD5J+rri2IlY#_ucr#c91#(^(Q@BvuCL{p>ud@ zh`Ngtf8T)_0gkhZE2^3^NWvr=-jh~zEs79PB!5Lt;Yf%84AE#Z(%w0PE$(AGcCf3N zW66*|IokJ8Kd0zE^#$;ya-~k~+A~W##2ttImfk67Ga1zg8=tkQ-k~s;oL3TEQt*X` zH^BGQb(0@29thpNA>sZoR=5Emn|ew0p}IO=xSOr|aC9x@y}%Rhxbn+WI(r{(;ya*A zwl983Kb#g6wznGyGc`2F35UqLityRpyMzs?A4kgKPwx>kue8mYB-U}-ifLE65QSQK z@~P&ADmZE0>^&r(e*~g!KrA#JR{FConJJd?Wfz875CtG5+ zwO}NWJ7=F~kAR-E?0CEK!|2hRd){7i;$8#@foBtCx=$86S+%hNRcI;S~JT*!sm3%=wQP^hi`YdRPkKofbfsX1q|I22R zsntdUeTOPFbXK+|E3qz{uF6=vx=33B;P@_Uq~u=T!YV@#bvmXC>aX!1;dSo%xLf6! zI$yq!m(?lB&n|>n>C4ra$E2q((WZ{qPOc_~`Y~;Fk>CCY0v+}Lra%Y(D}gS{A6DRi zBdK^A^3QnOKVLB?tF#SNsn;HwFiOOdVTSCM;4Uij*gjqUCC9sXtopcaQnp8l_tNJ# z;q>)~@6FH=1*4^rO$vISX&~B!d5-TJXVAbtE=%_->s>d`YQFubaP0~ix?sdtBd+@i zdFAwzVs`h8@qm(S86*z_$itKjt(%$GpWUJx> z;C#dfB7Z?TsyhbezHk4HVE5WTn>FuT`1f<)e{I%0^)G_mor&%L6!)W9vjuQbc0a@2 z$u0WL`Kf0quf?w?zA^OYdV*0BNfh}LTq&Io6qR-3bt8b?RY%Pp7MVP!e< zdq~-zC4!1U(nI1YiCh0u6I_k~`A z*Y+9cZ8wueWGnYw6X6XKH9VcM$cMUDEiboVIDdyyG;3X|p#~nj!%TD2U}8ca_B>!Q z3XGColUCb*`&LG95Gf%alq)|a2yj;ju|S?L6gEtfdm-WF_};8->RRAIvgmQqDv0fh zJyc>k%yO>&&>)W2&^k#+8^sB`mp(IVo;3T&4{{lhG@h~BdF26yQ%>Jn7a->CsU5m|Bp(;2#)#!Rgi``?$zrqbG50%C z4Yn6pr%yJ*h&@(ksu>x1XZPa)@AXA^t6Gk%BtvJV+6ipHGlQ`q_oxB=Z?AP_GL}6$ zn`P(l$h25lLCwgID+s>AW*KefI@Q?hudLY*G8E?X<&kZA9Ru?Ea2oqK0;cJ>(d~@A z!1cRM2+#Xhk!S7~&TEnyYdZ)J5YvcZQDFwgk8#8pO?x^|?@4^&w%o}#eVT4uP`hVs z`_wud8uqTgoAGgG%y^-QOpQ&*34X3rwHW0mWY4Zd-4roQ)NW_Bp!|LdF)bmzQx%xxZ(>9a*9$a<4{7 zm?N@B6K^Hjhw4>9{=`Sb@K$uH6a+tP?Y-m-d8l8#C?T07dm=}hjkzSe=Z00)H#Tg0 zLxPuy)1#w2N`x|XlCsI*Pc)!i+~32bU^fDrkhT$;?q&EP&h>GpIgn;F7&*W5OINM`*l8ouCf_T&dGYlP`e zc4Y~umY;xU@L(?+yq1HG&%W7fZHq^l>syf=W8P>P(W)7n{Va|O?q2u6miJzh4-g*n zxG#0&If(eGne7mXDRkxBJq)cf7mLcQTUbsCp^1EHb30>O;5#0<51DDnV_Q0A>bK7K zH;pP&HW!|G5y^z@U}RfcTfA5BWME%POO_}IE90w6!U>rXihxlT-{HFbzDvQ z_n_xyUi^B_H`H4}`PbS7o=p`o=qK0~Mw+`WXwh_!)K94O_ZZBUJM+Q=W*dSN+EbY3 z5zRC8gaG6#yvM1q(C@L$4-6bf`=+wmBP-eo{LHF3T{of6WYFzzV)3%}JxFx1P6L-| z98y{5qxk@1;gWBYtlQ2g;`zqQVi)KVn#ETYbClPwEzP634TDc$bL6r zD`_JH-c}SG)&oT~o;Ri3THP-`sU~|kj9hMm`V$l;!%?-?vnTD!wsSZuEx=R%F&Zzx( zg;nDj$Jncy7_q5Bko20w>MZRHOrA92(ncwlHW#M)M-6R>ZR+r)hdGz%W^`s^sTEmw zjhsqB9V(#=vd%KAR_S?@6-kw}Dq^`S=4WM*o9)-ynzcMr zLb`pJGTK9+5ShxaG9wti-tDy~E3PP+pvxRed9kkv-6ClVc$ecjCX;HK>*7UW`mFYx zM9Ml`ZT4!~t*bZCQ)Eh_Ln&2M;a*HC1cl09BC95YxkLR-QofN9b`_?Dx4e1z5S|y# zC2?yLPBW=^KcmH1iLW_C#9(|c+Es$WW@Ics)KVTqCWp?caOO?XeY`*nKacs5naF3{ zKH;-CYlYG?)~)pcnkg{#eP;2ZbG4a~km|k={7R)dU;TX#*=;PKA%-d2;-utYf1|=Z zfv{?PO176o-EhUG zrD}YwLZ2HRUXP_s5!5qLesrUV?8p)3h!is&Gq<0u6@J{92nsUFQ>mjB@0kE7L+fo= zeAJ9Q(NdMBR8n|_pS2kJU4*4t>CUu+Dk3(HP7JOwJE2icgp|sFjLEBt_5Gww66iQ_ zjf*}widk#WA}a>r2%*lt7K4Q+KO&Hu=eIf=E3gnUkz>j;0L@X}s);K#4WhlMQTI~o z5v4IDcxS#iPM@n;%f7k|{XTjreogMNvj#jp=c+Ss_on1hsU~ztZ&ur#jZw+@Dx05+|IV7m(*g$))dQqigefm3=)WiJ6@HVkW-YaK22# zYa{L2tr9@zsOyJDMso=4$$~>uT+edf{je4!6dccoN9L0ad5&JU2Gf#6dg0!=`j0$r zs*&oRd=N4kKh-|d$tIs|i26-Iq>Kl5CY}}il`U$<9lov*0-dgY`WBhe-E%~RBZzf+;%ep`vmu$VE#JXw08~4MvcG(*(8Bt2r zx+h0fh!L)@E=)>%g6~YHmEkc_hUcKnZz+xo#h8w_O=6YGPkAbXHydR%*h{89j99## z>W<$rz4FRjM?CRkjY7b6QHZfGx|l1~Pa`jK0siI_<|W(Wqk)>jWONsv$(u(LiQ(gM z_Tj~44F#D6Whv*sOg+Z5eeY|*NPN;U>+5?u+&vhshVnDo%@W8{^UOYNQ`PiFX7%Ns zjFo>Y;*u{!1=OT zW-k?9qY?l#64#emB?JfXj8BfQI>tj9^(Ih>rp5Ic-ww((4nbRyySLCeYo4qdA4vmEku%l77ytR{U|{OZHZvjHEjnX##r z!9+(=FmzFMUs-ZkbNAsm?hdAWf%4e z-81$o$`D**^R!3yWz!v7!=r1>D+8nyfXB!a33M4k&Db!h>#e1g3^#6ePF@oEd!-Uh zIvk&Ksh4`4*Pa!*h9a%KCBAk^#1<;vsBL%b9F83&eD#zYV%t>q@lITa)COH&ym8Uf z=UGx5kQ1s4%AVl$9&HBIk(So4mPyCTe@ad?q{L+I63^ao|D69O_3mirPS*v1LSxC! z+YZKRg2*or5VHhPa^tjbbw$oB6y+>27L|WbIt*N!mSQqKS6rz4fYMFpbB9yG3Fm(q z;;`i16{*V>^PPiD?eK|3=-g|Wu*q40bVyhVom^^{ky8_A|9GOOtvNFM{L4ZP)&O0C z#iw^?n>Z_d?_@|jK5BE0gM7DZxbaeoBVXBEGvatFT1o41yH=K?mD_D4ub}wmedN2P zdqQ7a>xk0rh-tJ;>Y6jELBX#T>fEK!RCR_=Hgb#;r%|K_l?tXM&V&QUA$1R%=(i_2 z-xC?+`rpVV|aZw^p9Wt@*ot&Bs%*VQY(C>`}YKQvq_7Jz1sN1%Ch9~CyJ`;^sR>hA4q z1VNibZF?f-+m~`kJ+2BudbsT}e{1eWYw6nl7S=()Ta>V?kBI>P!0^ndPH`*@V|)@H z_b+HCP_YZ(`|Kq-+ z>%7Uojo3&L0XG5#PXB=TS~*lf7xk_~>#pk>u+SYcSwXCy2W5>ec|E1v+rlTC8t=mG zHIt~~K>bQ}xlye%nF5lhJros7Y~MFwn#{F9HwoFj4;YNoeL{tvj4JeYSd=@sIF_b| zXQJxolQL1kB_sSN{ynyHQV(Epk=K2mWp4PXOx$RhmB^DFN0i&k<@IBlPo*gh3exV- zzO>Wf>RGbd*U{G1=cV=fG(A%crJX3|=a>|yG1qx|8G9y&SAz7oSLe1XFG=1e<^!jp ztY)Qw-$qk)dJn0$>)TN3iLU@yR?wu=BsDqo3EyBA{AcunwsO2QWz%7^-US=-}Geg>iGr$Ysjb2Q$m?%`zewgHptTQE4LHi2J*#W7yj5w8fGk^g)hL1Bm zz8U9vm+0u#W#@ilTb3QBJ^~Gaq18`AJ+^w2(B3*`M57cTM58Cpxqmp`_7kW#OUc$aBhkbA?*gk7YgVCNvzb(M!))rV>Xq)nwa~A4#Z7U(f=zc@mqLZx9Fc|4C^+dG2K9l*v>2$$ z%FTyLbjm#I!-+Ts@fVI53UeK?zO1WpcN~nk7IikxZFthpVfs8INcF2GfB>B|yfdMi zNGSE`8tQ7|S`l5p0zYq1ptH6Yeoda$`JPPd9lhxMYPmVK*IN*DXHhF{<{8Sa{=mC4 z_CbYfL%YT?qLWz!U!4PXVgfgcv(>*O+;3yg8*Qf%*U&u+H)1nTk7L)G@7V2iT5I z5XKDTSc|)%qZ-@pkQd4jFVh@7I-k z2{v)Q(i2-pI&r90Lc%0(&R)at#FeafUft6%G4_nx`^jKw1)X_Vt4pET;F zLnSrK-H44(?n-|Z)RfF!6wLFetYTwpyFx*Qx43R%*zAoKyi;q#VmXRb4iqSBP}l~g zlGkdsjp}ZJN`fESUurw&s47@jkea<6yv$(Zo;;&59_<*ZboRmhQ;@MQIA!wP{fRHv zVVn9Ze5*CE71o2T!qvNEY;`VhV%CuG5_HCdvJ5vOR7Ntz+h~nzTbIO`4ua$v48j=8XO9&O7EQAj`UaOm8q7>`*#=Ubj_v$(qa6%YyK4p zw%;*Mq^>LP!-xRpKgV`pbnyxa8IoXj7r)b0Q=R7+8H!kD^6bK?0hyj0i59bbG$rG3 zpK`rfJFU7QQa#Lk7O@n`8*0k`d1~t&iNCD2D(_2;#vDTTv+zwz(fYm*xEY?+tD(=k zwN;Q?$UB{wf0t^Y?y6}O)=w}Qn+(JHaJPiUdM*C0uKJ~@T!$c8GW$f`bvR>Mh^+Am z_Eqy$S(*F5)}aY`{BZL4ZLI=JZXyG`*PLf~KGxsg=7U{&$Y@$lz9o4zLAh1+NDEDA zqx`XcG^YpoRN+=g+908Qhpy7UlKKZ~UWWtRa}r-ghff>(EbmOEm+H$5wJWxgiHU2; z%wI3|a<6i$0~af2X_U4fB0>v3QeyB`9AR_}qZe07Eyex2^*Ssn`KvJxJ7lmy1KMOO zQEr+RDkKBO3}&~<*hlpQ;OR4Nc?a1c#%~y3md%kP^Fg;E`Zz%_;Y4Bss4a(INC;QXzj-nJ{d&~SQmC*A1uK3y;(L)i|2q}*fJ?U_@YG-br zU?QfXQ9F1P$D!r@)igxWJjLWuxf{A}an}eW?EM9*(`O;#otx=QKR=hMD$oVqjYmin zYW_UbPxfg#gvr7uU`A#%dy)xtHNCvXx}exJCEgK3C!|S)-VUvv6~&33PRjPx^PiE7o;?JE@;RiE~}>Hse*F*j^s<&Wkalpyx z&#}R=`+vMwILAv&HS^$yVb(Abw|Pu=nmC=0sNFqb#>{3c>w(Bx{MJ8Zunk?kcd z9^bCImUlD^P67~q$Q@lZ@)R`YYonGe3fKFr!cO%7k8dZsC0nV~!#MPXQV4V6by?tI zKYEQ-6)zV7ql5H{_2PjsfIU^ZaIu$C9@<~c=9X0DF_|Qgh{jN&G_or8h^k7d_1NQ& z$+n8FL?w&(ucY=Vkp{ubXbG#t`^jB}g4>?S%^5-JZFeH6!RjgCnMUPhK;49N)P;zp z`W1|O_#oW8(QFRfq^{xP?Ile|NtfY!qtT1{Ak96|$+?x?Y#XEv+M}x(#rN^^L{@-4 z8fsCk*dRo39Am;#GO8K8#nNuK7wa9|43z9=mWUN8yt;(_6V?6|*v<`KvQ(`s>rF*g zUraC#FTC6cUTWbNXP9&q3n@05zB2x`q_yNAD=35N@|dTn8qV#!?j7BcoAXo>89^IZ ztX*ta=YzeyR&%~7nr79$)s(x063qnop>X@Ps9^==FqpRVfzawGsb$X#wKQl#S`W^8 z`p;VRJB^UD?~n63Y0jJ$+MO3-*9ktZ&2hDlpBtLv+VOQ03bUgw~a%}WZQXd z9+RYLN_86w<#e*E-e`l3>BvHnpx)s+r0)7w%*azcU^0v9L*Xsman%71e+SBBtSM2r zQ;D+dUx3f8nh`~~^SPBr;z7LZM$=9I^#I+FaQNHfg9sAqI!IB|m=M#GSHoQCCqZuS zQ3nlWha*uBzeC*v1KrpE#&G#B!rPzB|9+tRPYstJ{fpu9N6jram-3qrNAI;+ZtGv| zc~>^pCt00I`u&MlxqtlTxhfn`WjIKYdUrFVnN)VF;M@`-JcxW}@~gzLv7hos2%0hOT63Xu>_22}HrEU)v{?WzCTl;7e~3?#a#yr2SMaz zM&@mn!hbGsnQ9vQo}W}?+I$ngQJ6jwc^yOKq+Hi&fE>V>vtKb*`yo0!TZ6^gE>&!; z$4SJ3$@Q)8@if=pX5?2NL$@#vof3g$)B*Z*!md52gj1qssyj7k@(hut?=h_FPujO* zl=M`cl(XxwvIg98H!-nflW54b{HRoUnwXb@&7rb4w|ia@v8suIS7XN4YE1`qS#=dp z5bG27?8*St%S(yXAjTQzg+$anQ*#W>d0`JMcO9rc0|`4C$fliddX>!OTB?XXvet=6S$(E|DoKo2 z*Q#oU5kn7&vnR5aF)(&k+HCzOa3G>ZGQz(^QG7R{+P2dfhHJ50Kc=l+9`wW&RS*K& zshrYLR&{{Zq^1J4{^4-L0hvTuv$}7TTi$v@_aTKzC((Attg`jSdu@hw_o22p(o*Cv zBP{1cFPAA1CF}B&SR<~dvHFgehMm``YVSwa*bB?DI5bE=gyNRYdO*2|i^64hKVobt z^}hdKWE=iZMYe31E79W8!kSE@x%CMCiWqvaZ=5+Cd^K7Z`YtQxP-S@yK-Z(Z&R4Qj6*!mCkC~D&MP6?PW8)R5@e+Kj zE?3fIk}~~TTv<1$o&kp2H)Ieo_{Y&ZD{qFc-;p>PY;0(A{)r0uk(u4mZJ183nl&hsK7j}t*A57Li-2(48Tgf-+2s9^E2KPJQ3S6|CPu#z%S;- zwlzskyS=H$2k-^MIz0ntBzuQ>{N|=MEE=9##DQ^he;230;detq#b>6|r{t3CF=4(~bhn_-&;ELrxgwxb(G&+=IcR zN`x(wU^%nK=PNf2g!IH0CtrNg4wWdfYE!ZDnh~1tvO%bpNbNZUntKi>+qF=iYs;t< zac(69;)aR4W`U21)h&<=jG%KhxaoV+UG9s>*qwp!(s$wnIkVf^xwF0zn*{D&RVVKKw4g+M!=;S`qy-`DkiCqcQf^XZISPkpF*-3?TB)6%V zy12{^nl)uX4b#QT0-+oQa zVGKJn&oa|Vs@w5$R=4Sp``u={W-$t1*`xK$*V*L0j*qzGgNu_XZd{RNX7lZc|DWc+ zn-XdOj=ZNbSKO2XPXV}$mLPGjfF$2cogYWK~u1 zFt?JF;DXReZQ^6H52CmM&HaS@v_DV>PsrrFQzFLm0S(3Uv1SMD(Y&>1aU>YB{zYq4vOlCqMp2n?;*g zF73n9s~K5*%&feDJ*!5&9lFb6 zZf@m1>qZ<(tDvWesshP)`?U^u2Mxl2KSP1Ad&oAo>v3kW=c&{FR(NH(f^|r$bIzT`r|@_) zLdD2>EE*lT6AhWmHwqgAoqQlKGGwr!52bn z;6mxS2+~(0s>-($1KL$<4^^Z+-iE|rUr3?gWPUc~{w|@0suCnFn2}rwDQyo?d8{3! z_5lF)fxbro2~71$lA_cl35LY<(X|A}8WSk--;B`JrH-}k-;omx_Fn)%fKPie)i+pX zvLIK)o8LsMGOx9(w(dk@nnr_r-S5Fq4+K5ySRLDX{!peYkDOP@XU-b0bcib*$V?1v zMsz>K6h6bTtVXKXw=?Yi?-$wr1_q5wV0gWa#F@>jW09qSSnP=Hn|WX?Ll4ib20nK^ zaqoQHmB@v+#IkPCgJ<80H&+*&#Z&MM@eapM;;y{%Q98&W=&>=4b|-~Wwde6nl<)EY zVX&RP!g^9T%wOrUeU6JO=taTFGc}s`Qn=Wofd(bph$UgXikftXaK`#`hN+Lb%3nlF z$U^#5m*-Qck)LI50m>6-owZ8y5q?fs>AtticHGV{Na1hwOH zxj9(0sL?bhyRR&C-aoCZD4ZP}6Q#}6lxgPXiim8%N-Zxk4son4WBL=;)lBoU4lnSm z{~W86k(KkB+6+*1HfFuy2>%snV@M-&Rre_dm@X!77l&D2()rYga>c(M9vuJJ@1^>EPA4{k}iklcELajS96n};fGHF#%N z?lThhjLykjUJd)Qt-h^VlRjS!fVlJWt@7IRGS5f*(7taLxx;GQD)lAc-0Dw8N4uV75C{yzR3z&B(DnKMgXH$t|7?xaf?n`H z|2rS`5AU9>EGek^udR{)OLD9Kkz@JNb5kU;68~{V>Ce7=lR@9LxAw8E@Hdm05tb$* zpA&(l^T){{>{d<;3^t@&x7RLi>1;8(Z()zs#Y$#Pj;#fAU1-qWZ!#Ad+u9D+ycRNI z5nx7xD>1{wY51&;Z8RQtm_Xq%yE;CWC`9Ip*Vrm+O_WY*TKRR$%j8p}4z~A`z!p(x ziQkgR@O%eWCOt5=u3+Zgyi^z4R4cDGb&`1W#4iY!VwKZ6*xb1zb3f#u?77Yy z*Xv|?X_0 z6ZR*^45D{xO~IY&m&|&=yOe5Y7FV37&TT08*Wm13ra{fqLv-RRI?%9|(0`8^(luOL zfjslGwIxe%_TlP+^Tp{cZS%>fPI!UK<1He=PixlYA4Gu=w{e0MVDxWKTBLMCv6+|K z*mlbj`hx1jIh*NoMAoNuZEZVaH8Ik4&GjHd&9LToV2i+pN2Cm`VAov@I(wYS?B&mb z?~k?`l3FBI0n}q~r5oiqwvS^j6DZR9F>wm#o4R3Rglko#@tBvEK z)#bOv1ZlRbtz_u=pHn`P}Cqei7kwBcDICeK*t@D2q7Yj9k3 zo`R85B_w^~J?{%F)tf3k&t*Gf9}k$fv?h1*PI&dzoS<13YO)lKf zz?KyP@VGYVi2J&=)L?3l^If<3HV#q%1Vx7>r1_^1)=v|!*S7bNAyYdKFhzf&ucUPl zFz9$z7o4MHNZT}L~5!ArjYuF^X8TT?n37U^77X2 z@f+ITP{S_w(}UwnrtuAcTIA85#yPKh}qQ(?GuOhPkA}%`@Hd6`au< zjk~0l%~$m2nygzrLN>l?xx+KQSERJ$$~MbzvP{3unvbXWJ&QonxrgF}uiEs2Tpf0;~EPLd#~k-P_YEb9|baty@^7Oous5rl)a@zVX~^#og3i2J?A> zO7Q@%fw&G_Y?eMdc=D16mEq@)hOfg3pzs=lyh~mE3^Bhfkp=DqSrHmUjFCuu9^Cwv z!KgQGCXtw8j9ITUxJ-|1tc8^;sD-neJ3=cKFqH(5)OgAk{Sf*kY`u+TtJ#ef3%!W) zaQ_5*DS-5Qxxem`%bez*KW_g^Ozy(^BLFmxicJ;B z(ipqt)%myvgqp~C`?T_?Ajn)iYpW@%=NBuwyh)jOe+j4v^YUG32@Ig;+KQDu_9@Wy zba>bF8Lv_{kQ`O8WY`$=^etY^y-+HfVtQ!8MBOx&^qK1`l=}!A@;;eZ9oEvBKF&V%+SZf^1 z^M(M+q+hS6t|jZkWo)j9TaM%s;2ANrUKZ$lwv*TRZ1OYSMbc-E6P4cg@Pe)*yP#j^ zZJYIl53nP*AHjtSJjM@g&}Lx&o(u02Qftn+E9!BAKtr7fVy=Vzbsok2<0I;Wq|u}k z_TBjIHsLbh(-hF~E66qE@*caOt%sm!ho*AtZ7Yr8Y*wH=U7QOR>@_4&oGZE0e#z;x zhwnx%niUf>#(+h)81{X3ZvOOzebGE-UELH^$sc*Y4R17pHOtOA*kqQ~Z4*5l1AQ@(->-B-7Fp{5v2?<^Shcj_csk40!Tvx} zG{bwN8ME; z?}AJ{G~gj+5c`_fcLgWM3?uA-OdUhZo6e)F&I9t9@-bBbvHM=l=7BW=$6p@QzsLPS zi)XC!AgRGgUYe^9@u~TzhtX}?d`p=sfB{Sk54;RE2^$}j-I*9kMjL0fxG$JiUx)I zCs-LaF)WF%Xn3e8&>68Y^lh=vaPyz4oa~=-ASJV{2V!z-DYqP_O-9ge^6g6tdlNF8 z8-K(TYh^!;rP3wws|z;S;qZIm^@caCMp0Xq=P>{Q%k>bxzadY-2OZi>aw?cV#)uBZT_<2fp4=SKx=di)$%@b^qXj$;SQ5y;*Zq%mtidF zoDC!i&x{C9!}V;ZOwGUgU|?z>e_*F3MxRLG9zb9PDAU-Byu7$rx`v^Y?$^Y?LQ+FQYI+5E^iMjE&lr@keBGdX{8iD~@0d%bf+A${FBn@L zrUL(7l!D59ZaR$XxH^ae;_Dx8zr(uk?r@ltZ3ZfiuMs#C9fK1tKF4(* zS9Wc^!Vm@nuftCy-i>VQEbymzq-gvsFw!_Sd5c!ZHJ{pPwM4I(Vqw5e5eFBj%#G3n zprlA^k$m>SnpOqYvoL!t)bA|AZc#>`NGPa3zx1b?EWAJ!qzZk9ioBSCdjf@lj-&?i z7@(IG|C&Vr3^jt`c*u=LUyn?9`ZvU{AFu20jFU_oyW7cZ=T;9LL2Q@>W3Dpgf8*}m zznZ-Fyzezn*Oq&a0`p9F%U}e0xTmyRCHEF2N(gMXqqL7o+HqG(fuyYpB9L%QAjfgD z3vDT&8!Lk$M2j`H2vIqNaOFx$Q$UCzLWBrOu1g3Zgph=s&*8Z`&z`lOnKf(f-|xR5 zS?l_q-k;Cs{eB&J`z4tG*1avQcfUZC4``kced;@Xo^IJTu)?~p6Ekgf=0@>OXWMN3 zDciTyMRfwcN3mhudRd)_yl%?#P9EN z6y+!0due7=Sk@qvoLrh*v}E{xLg&bwX=MIkYY#mKLRo#4pbBY$BIXUfDIfU|NF>mg zWE_3xFICwFge5Y25#w9GG>+63$mGm&938eFK<2jQ29lbH3g+dV-Cukbdjk=4KmLaq z%D)Oa?MMH$p!@G;C`tc5Lpj$%Lc%Hk3EBNSL)`MjZPE`vH2-P$zqUTEKm4n(-)YQd z_e2?gOU=`0qcz{3WBSCF>`f=y_UGQYQvX;?|3?sxt9r|}2wFDmI?Bd_z$Irc zcd8+>a3vFjWQMQm2a_wj$u+^c-DKW67Io1A;BoP9*Bpm`5ESeq-jEEFv_8#AtfXot zXq{G-6&q=`edL{kWMS*K3~y8L@cy$0Z0CZt_w+l0n<^m-w# z#cm>LwmaZL5p*fh@@H(ScTIfOxCT3VZP7Pl%5$66n_R0LjL5=1wd1paNaio5u0EI* z<~|bZOrZ2bvh8_U6k9&?d-yprww=rjMQ*-hoBdK%Zu-e0KPGAoc{uS|f-FLKzl+<4 zCy!)heKe34E&T2!&9%=nCKPTVNgpkwF8}Lkb~us5rydU5?H1>)?%eW>`-i3X;>mEV@4JXx1$xqjP!_rMx^`LdL2eR}csp8HUn^wS`C zaqPsPA!Swfm*$Qx^^@MvCGpEMe*ms#Ay>i>~ zf!Yh(%sjGCRNO@8KdE_$7!93e|cXMV|(J^`qR? zWPH-dDO9(*|7G?+vv=4Jr!-iXb(--9?s_gA>D<>{!m2cHW!BYCa5a!tXxkW3Wu|yb zo5^JF)_9;EL`g4lcwZ;S=1A?jYyE99@VnHpykIVeY-&uWaOh9s0HV7K;qdWr{4IF4;CD99CI^`V}1-4hut`u|bjU zvtX~6L^R%6*bf(E)@$ZD-FxmVZS+T7)bd;LH^XP!@(y@)bL&g@a_N81EEMTJ z(aQ&=7pZvfb-rm-vjo>-S~SSU=1erXmboMj9k=7{MQVJ5(`yH+k zs?*@7k!h*PSVC?0AUUPv z<(@~qc1^FWxDxs#DXA^b3XP`fl_+NRQU_)!fTZ;gF7+SoW6#*2cj%iR?zi7VtMv`x~L(|cX#?n!4+HUoTojze)Eq;%?lC6@o8|VmET%iSpb$MZ&_=h zp8H=1o3I$+Rs+T{>0cft-?5PD7?nK- z2>Y^>!WP!z7^;!ih>AO(bPTi-}gClIcoW2sG9_s*`FEm}`q zpZQfz9|Wyuppx?}&ycaYcgU{_MK)7Ix)!Oo;tLK{rWm$)K1z8nW+k`D~ zb?)@#Yx|c=Px9V+Nz?iLT{JO-5Ukx z5q~nQN6*M;jO7dKhfe{fM<{92V)h~3x6!mAQPsO0p9dzYkA^K=>)ZyQ#zBiDZ^a<2 z=^|AiES-bZA=Q~OL1>LPq=8FL8Jmz?Q@pxpEt*8A$gr;e5X(!>i|o`&PD-g2B$pzb za5SKGYH95OFD$7!C3mJZYm`MTBi#l z*2k|V>r?p1KZ0bY${_#i1KKXq>EcAj0M8a#CwW`R%4lYp-lMB@7_4&v4e~3?IQ_!@j~e-TP>y_VzRAK&%$2qqvRsuF6;e+V~Is%{j55>ie7oB8cEt) zpX3iZN%TVnRB|~hljUA<)>mH@G6T`bouStC+iUTWOAPbOJd+*+>3Nm} zv(c!japsN=tKiR~a!Yy+SeuBqL%l@l-kzE42#3+v)nCVlmyZhf3|X3_3SM>k3ll22 z{oFol2_L@x-79j#C*TScxly3R`5n-L+ar1M>x;m99Ri{B^@4Ii;7i`40_U0MTy8(6 zkbhJ>I!JNpuCkWzHBsSR6(t_9CYiV^J#|?;w{F)Cp`F2`_?zV)G!-`w?C#^$50h3- zaE45trHqwX#lhydW}Dik8&jNynKMp~UD1Kq=+bQk69tRK%$pI9@2QZQE6pOr+7i$7 z7*WW&q-_00ZmFoSUIy!O;qSeZcug80d5=o%T-+o5*w3+PlJDpw4Z&SS><6|X>iqIM zoe2uzrQo6-z-+b>BsRF7zo(+I#>*%pkoO@u-@f{)4CsuYJr;7*=6heTG6RynSm6iH zmXK~tIhj!j9XzWPO8(Z=JyxJH5k$zu6kW<)A%j9LYIbtkd@_|!-c-w4s;{c)qp&aY z;}4`q8Qu$h7@!Wa&KY!9v%YAj(ir)|a&kQ3p=b`jRO~xJSIm9lRIHp>GR<3lEMCja z-f7z?1p7^K7b(Jc=tA%Zc{>pT8Zy>& zmDSD>>ETG851YLg44tKtA8Q`ugW{w4^_l^wUt!pI5aioz1gGvEsf5abq5kuov2H(U zw8k~ATgvxN3Q2>K;lmi|5y--H_>lab<~W0o^jzADYj|u9zt^Fw-#jy^mu(KU9%>Xj z=0ZQ{HG_Y{K}mS~)_~WUm1!9e5Ffe3T#!@mdMn}E2s+Lj-X&Njd)98ZkzchJH}7cp zXNU5;i!d>DMo;c?y>6q3No~M@@O6u4+O}xj5+8hfXJqcQA9^kZ2A$%C83!LkdM zrxf16ZiBWlF|vMUL`2b)t^aJ<-ug{LBa2pz0ka0mgqZ&46(~$Axdx_pvX_C1?hK0; zrC3E^jo$ve1mpNzurEuD6F*PUoeW}=>8gsY!aBmRknC6vy26y)C2-go9Qj=!lX@-2 zi=p8s%_sdnQvR}ptZ}$2{?PSp*z*H-3_zbh4|`rr!^;xQL{u`Bo<2z?)nJB%Hn2uM z+@^qNL3(^^*`qmmBFsVus+HF9?jyi5iEz{ZGxcm!1k!$%<3L@8_>P-+KI8#gTvc`!{{SuWNVAFaik|*x>9P?!Ogmgn2iJ zBjm#KHu2RFYW?xDEhbZBO52y1o;2V;)r%nw*gU4)#lHHKwq4Rc#j;&E_x;%@Z?yLt z4gN*LPpn47jk1@HpY7NG+E4hB$5y*l2ni|W%mB`8rZa~kJqFL>+}kj;br)RmAXT;o z^6%q?r_Uo9-iz2c_$ZcW+_GP&Uuj{6i>x!-s%o!w@|Y+YWP8WYISGBb*e@xVlBaumPTv(l#7&-U^^?${l`TbfRp$GW@aXPN zb2qLhk$m_h3?T5I>nj!7uglLHFIHJp?zP+UF*RFvq>Gi8G=LjD8L?b%%sYAGZg0b0 ztK&uBV1(Lm6q*&>jZ*He`*9ts!YPD2K2UkcdXi4H%j%bnq}<3)9(me`^~`fgi}`?n zd<&_#^J};w-(rwUg%-vdo6MSsNyC%8gof)al9eKo^n1`_F?~(#EMw83hCKN}fl47) zQEf;B>rzWEeQ*xpaOmdZkG`vKhVB4{fdWcueZDtPJFmk(_wR4iH-;19yzkkb&;-~* zC+VKxVR%Ki?HDO;&dV8E1O~mHB6>|VzR-24E1B^+49x5FX!+j!k*q7%N;3Xf4RuM8sPSf2kmO6;C-rSvWDC?A9T#h|Yp?JVlC^Y~b=@ zL2T8r%)$ZN7S49a-k*ZXQeBezEGwTMvg|JLZ9H&${!COF484bEh|eWuonPJnjqd?I zYCbp9!IV0Ol!?;BrIQj*p>{#lWgSwX0DeR8?5pr-mxY9m&bo+wxxG}HFftVbyxD#F zO{8^|$b5gq2G#YWdm{G3C7lR#PmiG_*sK>e9HZ-Xb9)WT?PbsAp5r)1)yldV#cyBC z$6mkks8x*DZsw_rd6|rU^VBhDv2@$9O?*2FnO@&*oDwbr!TAA+VL%g{+Y(rmJDNx4 z8nS1sv%^B7(=~C>_Ph*JLY54IPKkMpHr88*i=(ydZ2EpSfsCO^2t>ueI7LwpKa;HY z5OkybLMdNRRijf&poX8Og(PF6@7BJ;ejMN=fJ6KB2cP%!l`+Q}OxyF|u^MwF#sld* zvy)}#s5$VSiig0KL-)Ec5!$UOQ}?2f)a>igX!X9x%hZe5Vfmr!nhvDUkX8lrl8X2(Otda|ocBTa-OkW=#UZu|nNjqnf+l3c`2|bHF6x^Y0 zt`x`hM!QZfdq()c7FSlcz6l)ZT5zd?(F856z$p4(g-uDnwA(ENi!gxY<=TXCaj`5B z2nf8h<__k(?=>E3bD9}l6dCI%D~g>3-))|=Aag}S>VZD8_H!NQ36O+FVB_je4P!YE z9&n{iwbvj{P8~BZST*))9#!V?(p@K^N^vK2^K>tBP@!q`_$)}$iX=!kijFK(R(Xd) zjO}Td;o*lo+tX5@G>&#Qwj7Ng)#=a%V^9D%t4BdlfVe1)R>(S;?O&#Y@4%Av8{Qa# z@nw87K&`58a1W8ain)vImg-hcxOEY(F_=t` z*gvuIteYgFS#Hx20P0?gWhte{aPd#^m-y^2o%~^F>86}?Gd8EuQo!Y7E2~@kibQf1 z;Dd5dG2znl*T~d@N|H)Y+L;5tyql2Q2M}4B(10K1){?>tV z>7MIX>X#%9E>Xh`Dv?&h2)u@`WM>|`8RmM{qRI7@*2O`Uz0yCcy0xdAJnEi9`Rn6M z<9k4_A+TPS0%&6Vja>#^E83`pFU3C(zT6yZ#Y=Fbw@liJY1NAf^J-~1JGk94?Kr%- z2BTsN)Qtt&(`N2)w%;^Oq#HLLzzAOSF`#KKz&rcvgoy~*W%|d(M_ye5<>=dQ8t-BT zrV`qTRI0bB1YiDCFYR4<%FTp{%E8M(`&H0kJ{%anz zViQ(AIE6Qjk4g<8DcFENFnNrd$@^cTGS|}{+P8wZ=FSE89U*=s zwR)7=vzX-`fbz))2l&_k)^3?XA_xbKq==a;*<)}?*XZ)p-ktCBe?y;FIH&7bI4 z`8+PCAoN?G^?@9?xGg$UrodT38CrWb;vjuNd8{{VSGSnS;br%DJ#x>5I#)E#q2$gh z0<#Tjv2}}WFPi1vgK`as2cCQu1jmodjL_}6w-PZwi(XG`;ve?RqPDJm-hYw3d5JKB z3|n;edMl)rBD1FUrwbV+@PVZ3Mzi+2eh3-gtebIW>K)B_yju`k9vd_NBDp8gbt+xIKF<7dDv9+M0FmyE1GxltsRO8RjA%xz6bh4+xmkdvQlF;KReg&w_(0 z3&My%9&jk)O#28%konACi`*bg$M$=+#6<1c&Rkm1vOSF|iu}R9TQF;Rz7H2#FO{wc zp!I<%;P?XdTI2B9&Pn~0>En}ThYh{3Ecm-&gi^%Hyo39cA#MeeIV<0R&w0OK%1jKZOA?V-S{yp%;K%jaVe%9$ zXvHAz4y7iuEeBIhuEB?B%W67UbIaq}D7}4Qoe-Lhpnk*xR?#wlw z%&~6$(m<7P*qyc>PX&~))=^a6t_Ak=gBh>kr3=7;?6uq8ir8grGym|s@AaOzq_ngz zVkr{0PUF2EY%LiSr9zEIxO5@<le{CDrrP^)pi1N^%p@_b zr`i$!;uCDd;PVI9!c`$r!%Kj7!ixf@_Dg-5L?&m-e1&2Cgq}xig)Z50!BNizDJfIi zCehT``!$Wbj4|`Cw+j7+ES-+b-jrq6d8ii263hIaKHtT1QugkFRSeIQm%aatU{-b; zc51vz>V&Q3vIM2(m!OW zo)fSP5s{7QjZ)Hef!Az1{N7Y(9@yZz>!vzNQpd2tpNFSnF77RDv8N$hp7qd4>5<4T zx|XGn8#^n8s3+SAiO->RpNW>G;|@w?edx%O^~$T(7|+uc^04p1pC)5unnrbd$?$g9 zI`N4TJ|(L%%p%QDmFDIF^z|!@ycOnGB!tq0gi!9f)3*7yt?&NxOM`b_inQdt6;>jXmTbw2jY-O$_v}#~uaO>d z1&}nn21+dJX}QvzxN{06kzopltwWYNS)iD=gfpzw6R4>k%LLK4V+a&wR0dP~TQ9o#_N9IAn0TpGZyZ zRfbiMpEWn8VfICaRTo;YXVDc;ugg01C@pOmbVh!5S}=A;C!rmD4&ny$2GxV2{?^&E zL+xxE=q~z*$J8SsuAUxH>Uq&Tcw8bXxdmon+k^Z6wcL-GDQ&cE&;mh;VsAQWr%!-8 zbfjzbl#>MpW~QA$gSL}Z8YhIqXVkMU`T%CR!NhYwW7S7`JlCC(Mf2?y%H2>|r@aVe z*cGjmQ1jfE9isuy?Af(<2sF`BG!ku`nnC^`hVU`q+tpBom~hZ=-)`v#M#M%GT&`+N zwIb9;G>NX|RnuxmiCqq?-a~o_wDF+JlPRfGcHGXFs52$>fg&Y;&l&y`iG6#X`I7Rr zB!!|;D&}as-!R=CoqB-n9Yc$u{p#5`8{H-Uedy#E!Rv9aU+Im<{v21@7;Y^oQ!G(W zS|{Z8S4!2uD87ecmtCeTzkuYeY^A|?JItX=jVZZE0I5K@&FH|4twRV2oR($Mzy&!X z(;-6xaoO;V=z*3zsCYtsy!5G`cO-CY$-h$7xXa4{2tn)3#GA8BhTt)tu+5@$`^-g_YxoWI27BAc_Eu5I@K$qV4BIz z%=2L0R0}|(#I?6=_O4j2#>TK)L%WmDo@s_!LsyXs|0TuO%{ENX`t(g(z39iXSZqGXE01PH((S`+oB8Ezfy_Qg6FtH2YaC4y5HLec5rLx^jjOT)YYQ-8aVbPg7 zv$4X9Cv*j7mg;D+^RL6&^D+pjXwvzVXq zcv?B1{H8QBtU9B~7n1*sFwV^u%(K+so&oHD@8T@4UzESz^UkvLn`|~QzacQ09Sw6L zaSjz-h|2!R<{9{q~L9#{*gfB`?=Q5eFKrT(oECo(liCbC3%DW5F3r|GRp@ zxtN`oF*M`m)VST;JW4~Rr6USk$T0Pap_103(XW>-5|m_-sbjyDI*`@#8TRH0%-@b+L7~n>CLFM>Q+d*$f;njZjpL>ciCd zD;0Z6Hc%$?eO^gT4GMc;2Z_`~v6*z6&bnSZeoBS_Oi)v2tpcZwtRB}xZ%H?Zi z_ddKIsL||nAZ!Bl**ligdGaDr=77Ah<_0^oDo?S$dMJJTRE!v_-VM#`%`2DFx-BtF}+(xtnp|sn4C4?S@`MQX-yqj9W z6zH(XAGZXGB}X%N$YidD$fDBX&Z&==DTke=dwlJ>4h6D5Jqm=hhID*$uX5`NCW!Ch zKWBQ&`vZ&XDe8ilsAgV+jh?$W6nZR^`R5_-Kf>qSr3AXbg4MAQKO;Oo> z2J~YF7tmn;g+iZg5D@k~n-gAYMEB%K2naOc_Ze(#)r0tb*Bg=W=_|0By`vkWKPCUO z&&ts^>$z33Y8|q?)P$|b_veE&B}?Io2QW=GD{IB$s9=$niDq_~dJnNOy6YQ}NTOSX zWG?zyc;>qC^8$o7q%k9A7tb7qh>kWc{@N6rjBD71bfl1zIxhWeoAgLPa&d&>c5FS7 zfFH0*G|Ki4Gt;72x)>xJ#&Pze<;PVPC@?{`ZbCf}^k?bZW&*O5OwWVb)CJv)6x4{MMmnfU-WR*Lwa9R)J;81lZotKCX< z^|g2`A-(Qs)?=mjC%F>4d>AY9u4<|pI2xe5X7r5&b4AmS;wUWWK0MWC=nnpOBP!M(Zq-MB;i%kFN@Sf6}FE)}Eka5=xH z6_`5MClFokB%ndiag~>|OZtJegJ+zX8K=!4Ieyi(k(DaSjWMdX?|b;P36sSn12<8;Im zb2VP^t;VQKk}&#UU2Hs7fz_sm>ZeO~6- z{4S286Sp~#MD#|nI=7>SY(ut(v@5$1>#Nkzb&98m0e86!dG}neu(il+TiQ5;0pq?Q zlU*LvM}@Z+X6!`)j{^6mswlF$$&V$RC422-=sPl6Q>siU-Yy77LA^ER= z6=L7a?XEuXixBJiMTmWqx%$dmZ?r_G-av#HW1byx@^<{n)J9Lz=1T@7-PmdY+-*Eh z+?u^Dll2t#Xi5126U5ClScVE?N4+*+xV@`4mamYEgvOQ!i5FqFp zg?l7>)+p>|o~PsUS<70(mO*ZUGw^lT`z1#j)%o{JoQeg+zq#r`oH|K&qM^~t`l_A# zI{{l!F7NAok+q3&n)|w{K~`KVX`oV56f@{^mt4~r7K>7${Jt? zE8ky?27l*;bdM&ug3h}gBYvj2vsaIQ3=AuPIuFTn$JwSNYz>sv)F_|URkTHZXKYSN z7kZ&U?k{Sr0O^b6F; zG{QwXb^5wc-k{d)$=&7nO(|e&?UXh|0+9j;byX+~|5=~JDmKRk<<1wFbiB-+Wf?sN zpNA8C#|CkvBCCZTt9+?p<;%`yTDtXqLCnk?7>y61_;H&@ZzmEyB8xhtgBTjk{L$lMkRf0Xq+ ztGl~EKsS@U2UW9NX{meIYk_|sEb~00>$iig;c%@O@K+;u@ipdvvq+Kkyc`}U4|LIT zCE>OM*OzcXk`f{(Ff2bs-ylat&#(6^QIB$uP*V+CdW?8srd4_HY%Ylok@l7&@Q#RE zVa*&Rdwm&t-aFPJ<4KW&_sHdjK!O=;~ zx>WL_CJgzC>u+iTrW@E&nc_##d*hd^g(hXu)~q^aACFT~->8p=Vle8{R4%5Rm#h6X zM!lz^MixZ%52g+&tP8>>%o}@5 zIUn0aMyNHf*rG@71P0 z+WwR+{gnQL@D!`Y%^Q;-RG*$|jUFc^V=tD96{HHI$zY*rABZtIsh&XT)e>u9Mh)PE zbSF8?>4ow20(pY{gS;=ac=53A@N=xl^QsicyFf(vF#$5JLCi7 zq-hxyPOLd)=G8upsfLOOfK1)R%Er_a*d8j3NlKh~1t9b2Pm|cgD^D;i208KL;EV#2 z2DVTJ1kFaFBPOt)y!gyo7cuSzFt^{;UYi)LZ}ZJvq|~%2ft(CR5*^ z7n@*3Ui+lrED%+))?@ZA5o?WXOs zU{}R=mWYZuLo@!_t-=UlJ1&HLoA7snh-Vc8W!OX3H!Ae?GYV^#L0;F{fz#>Xu^1L+ zji*82ah@yh#ng_#(EdwCXHJdgPDqM1iYtDeD*0C@)S>| z_6G0Z+SofJHhGpZ*QX$`f~5~wg;kzND=fC_k<#IoyZZ?F>-3tjB!j;K#*k|Uo$yuu z5x_n|e?N~}ScUABOoV$MoRo7(h0^cnZqF7N4;=V8&b z+d~seB_nW=We8DqKf@CJ4NhCvI!#aZ{d#8&{2TWu9@!G32rslT6_7rtXA?q%gZ5Yk_h4erFv|G{r$vrM6cV&UeCopOw7{0HgE}+ zwEK=GteO16qg~$~n2omoUG|aG(33@acH554 zFn7Bd2ALZ6*u~r;n068AMF@K~F-SDQ(bC$F=THVuR!=v$ z-k%L%UMsr$c(BSlTIaq2Rw=f9O_vR0>Y8Qqa2&vM$XZK+G!+JVgzU7V!CyCXRuZ;e zH1}4-5Zl9R{cJ|+C=&6HU-fdN2H}pSmFBim<(d`G7${=86iVEiQAwTc1nWyKKo7ElpX9KP z1W)eWr+bDiJnUV+VA_7RaG(eRtGt$iWGyo^VTFQ|tt9cU|YA>;6Kg-@Z*hk)B^%8K1%Rzj*&wtqfNE=4d zy(R&3(D}lB-3C4RG8=i?nIy-iB!01m6Q^zqz%JeEd~>b**?GaD4l`uCv7)05A~mKf zh);7ld^fC99W)wUY~RjHlSERCW~jSoOqO$9unRQDW6h5h01RJ=H%hXF67coM0gj6~)(dvGp-HAmAW1eUk><7zo|ex$wRkf(#ck4OCkXDB955{58& zvoUyX@0_L5yV{aDM&6syrhJaSM;3c5*wV2Ug{^2RI(RoMfFuTbx^Zy{=+4{+BWz8b zdy&2RR_bxAB}t}imsIQUxI+sUMkdd)#MXiVaa;AEP!`khdg5wJ?}tLTK0hOy^`IN6 zB~-gtzCxCA7AD%!Z4ChJUWz_x$|fEDtHuleqVabA($V0wW?{7OBP`u^nv6Rlf`Zu6 zM-!Ghv!Nnt;O!{0Ew}T#=$o{yp>q138}w^pRq$ui@<-@?7A#pPlAxdOq_`KLL*xUFByL;s*7?PBPs`5=++ckPev$1_MIxW_YAMOEn9s zvL}w9^;+>C&C9I-&!Q@ z6Iv{YD7~itFiZLWwcK{SeBnPUz5jNW^63AM_x*3(wxzC-^i#IKDdn60_7DH_`z!hL zf3q{OzatWWclPno@zJr8A)-HrL9hJ2DYi)h`V; zasH6GR<=??Q$j)c-{I>dtsN_khAoul&Ac{Vy7x4h75ZGJD7Q(7i8i}TFdtgk?H+c- zc~e?=ujTSkghc3aUUJNgD9TG{liETzG&p8X4z7SoN3mu$bOfY^Zh4g5;PWG9WBzem za8lM!#MoXS>9$tsp%1GN482TBxmjLSvWYCTYF{;@u|R+%Nbu?<;kO8pdGo_KKv?3r z?4hL#hvyo;^4M*l5W!Ill0(-u5H#pjCx$91k1^goL+TP^75i5m2c=$*wJ261)M+%0 zUTD(7b`R(5NxTqYW$stv!#nta<>cX}OD~bf3hc!)Kv_yqGCfPc;P7aB14v z>uk#*Nm;M<*2gE11oF zcUEXbEQ0(CGnqRR745;Zx$QCD{byMvTIe7}ZC4d2o?l$I+E%lxdQIiZVYC1GZPWE7 zOd?^7{33p>SM-Z7yCx`kgq#AwWw(vs{aj5qEc;iP?X37O;CIz#NCIV6rk!v0y;1Q1 z$t3AN8k~I$)*nT{Nwhfcv?_)5ks=qRrHkw~Q7ChWU1RfVCrlcQ)%|J@*>O^><)EkX zl*!B>-TXGD=x(O%6d*nncOzIa(&djiiaoINa!yhjHanB_^aZO%T?QAaj;lnX;!P1_ z>_Ym?Ru5B%--8c$ln1G$ zwa=~V+m;99``*p^sywB2b?yUZnmEBRz9P8BUb*mt=_zn6X`Z9m*WYE|4j01-W4B_s z9I3TB8wqG?lza-Kd&rfO!Z^!<^od!?YD^MD&F3l9(={vWu01fkF8xZK#BxdOjlJ<% z$iYP`<-qw_`Mxj7$oUo|;b?vOH9xW5FBB${?d27)zE2&E&bGe1S+0aQ{GuaSp>Mv= z${O@io_>-#8pxT_^yR6BnVnI2-C?)t43)lnJ_-?Q=OX*J*=$Ob@}y*aOU&%U@?u77 zI>|L4RRX#}AD1fQYN$v%io^AQVL$up*vMM1Emz3Oq6RT}3IbB9nA|T*y}43DzE4eK zeUy7{7gC319r;fR;5K6}t0&OJdj}2|gaJvolb;Yo=mFE<(}Hl5ygG z#D}EN*9mw+U3SC8&HW{66Ykw+Mh!=u+nlk9WG$iD%)B`6-6_;Usd#&pJtIBD*?A@_ zaDhkQ|3PF{qj{3nki&%(i%N8o|CvS zYA20B4iF#XZ8}ou6A*c^=no3at0R-W%`v7LO~dQxc6t!0+h!I_nQM>3{~Q)--8ae) z>xSNFm419Qgx79x`;wxj1WBu#r2=LUBXxErI1sSF-YtkT<&Z1!Y^D7 z8zzv8(@`fuoOQen2(0_e@oh@$dPi?usYX+PbOD}vi=+vTG4!+Gd-_sdLOOA0+s&A- zubZy84?Qu+4yShCCf|`hVD%^z6w3UyK8OpE?%BT4i7Y$s!M1JlJM)ygnAk0&l9{zfB=IzAp7 zbk=@iXnnwHF? zkK~(i7X>eP(sq`U5#(ZFMz-afchISqwkqo-v`TjcTG_&vd2BkY_(4|TwHS0i(wf>1 z(suflStRa`THF4-j ziK)y0V2F_!HjWY!Ra=HzHYdFUQL&{DLc_6Yc+Jy_N*k+hhOuadiC4cgZjbL$v=aKU z71S4K0qf&IMFpgINz=<2N$pIL9u^Or;*S?2J;LMCu}ko5HpJC8h8SpZNZeaAn94v) z5;}zX06)|+?90d}|qb5b3IpTOhRZBr8CyT77tB<3N6$olKgWjn+Tb@@# zA>cwNzu!~Tm6jARkSC=yF*hO+#hdAS|vLE0`N&x@)K z4IS_y{Z7pXf)v8u1IkmuKc_X^J5MTn7?KAaE(K+CX_T&g6u60mJ-X*L`(ynL7q(G` zEPunm{eAcO-EDEnImV>KlIF~X9L{Yf5oV)_?xlt-LxZobP@MRY0K{2t>C@-YE@(HR z!Gw^+$oY2-mIV5ik%*Qm3k>O)I>%F#Sgnx1)bP6G2;D}r$K?Qy(bd|m({+21m#{c= zX;&2TZETbB=KWT!wtz>Ejg=sV;Hlu4y-}w@6JrP7KKm>`DVG<-9PL8%iLohIKq;|t zP5n{HYC1dl%*ZH60>zdeUom_V)|nm+9h3f5dlkPxGFbo|rHczVII6$tW3OI10pFJ4 zdaQ~+1}R}D+yW<9H+6MRQHzJxv>%=gY`q_IgU39H{`s);;@6#gvACN~=R7>#MJXrI z1wcIQT2{AkjF=JQh^72MmMm|v7|7dvUB2?^@RGfe<-2U~r7(l*J=aVr>?*e^O7J}b zuGhuQe~OcJt&|Xa{j41X<5S}OMSkhtDq00Y9zBr_0`}`)G@}F4-gghkKS?VN~NAdNWHN+a8>exYrYDSqSs3a!Q`TfQXo zBE=huY>T+k8_uQ&QGrBAgW|D{W49h8=uD0DsaKM*vfvntL}1vt=~*@k}rFwREy{X^(paMV-yOT^w8F4jIpc?(ylM=a@{BNXH#P z5@54?x<2#%zpTA`Sd;gjFS=)UmOL{GteH;BXt=b~IYqY>_7WvX0*rO5U1J5iU6m@3 zv`YaI$jdDWxlb1(=_&>6pt3YVYN@2F2vKe!ByUnm0U-v&2mx|=g%ARS z*Q_~b_S*BzInQ~{zre#o$eZu)_xXNq%{~hqw0moUmZRJ|A8deIwWW3O@rk@jw5a{= z`|b)8RW(z0a2DaP7A_+LNtNhi7Gy{TsvN@L{f$%Jdge9=nEdvH=Q$7)IUl8|rx%;D zBpV*hC!B%!7au;%)|L@x5?dolTxooL*X7Nn)g#po^3M>mZz6BLf_BF+%|h+16o1^^YZ%Hd zQAW1_M$Voyw!)g4#Ndz#nj$0TyFjhw>DMzp>j;y$t+DndsZX^w2gyF+I0ybNBf4HW z-~~h4IZUpEk13p#yqU5r!;Bf=6x7CUHg|~b0sryoE;hU^np{^?o3A$~>z_gkDk_g0 zgAO3Z4kI!XbUsU5j=Q(FaZ%_uka!q9&pltqi6l?j>w#}p=l}7RByt}Jq0+6@aNn}8 zvz#|2!yc+A(pM6*v;07n_vDqawkgF?->V3{T1ADzxRsPA_>^3cBxbfSuAYKm9tyI0 zSZ>}faxc`mO>U{RC^2^8c;IDhZrXsu4$Pg#YdvUWB0`PC4_8v3b#SgLl(gG%$=I@? z)wjjYz%X8+cLf0H7vdAG=-OyhewCB~C>G9T*;VJrHG_5fC=(O;bslWzRoGw4!8Y*y zja;B`C_lk2$F^3AW5=?i$rtJhgI`<-46(Lxi+o;uiLHUgYuvnfZ;3hgq~@*!?$a zAT9;o{!yF6;vklce`=IGd0M$xmfp=)yZ(W+|2(|#K+CeF%p=@L7zO2!a-Uf5Da}Gd z9=m%^OuEBdZ!>w)j@{)TgNw8D_!w~%Sa{Z^_H!Kq7Tu~<5mtvyU7};mAj>lS*yVOn zvKZXfdgG@#bV(1(Jzuz*`bl5nWw{+>qqhzeAPnE_JvU9@r3X`DKQbnSF~C3!O(tC= z5#Gtrf6>+H2C_4!1(%TmvX-o}=nO+%;8!>yg#k#vu)@unBnm;kHNA&JiTQc8^%~)tl9?OuWd6AnzC%%d3y%F%4r?aTFv47JeOC!COM#G)4JZgjXb|Pe10E z3q@4zZ!489=acW9<^o}nrH;YDYlGwGjR_KD6;A7|Q-V*(KDZ_DsKr2U@Z2;3yW!Vx z>!K&n-pC^+ZBk)Mu4BP`T2>W+R!ceO8tmM6rC)EHifN|zs+BIDP8kaC&&p0?S-v#T zdAmDf1SV}ZbkzT#xwugR<9;|)aUfk<+FD=eil>~o(zSRi&*|A?{a@$J0 z^Oy*l?s`X<4i-!~ggxofg|%IX|_{FxMHVs(Y6TR|D=I<9RI-7g9^w7Pil(4IJnCuSZGzM)wnK4es7F zwmi?|7|5kN8z%3c2V0rtC!rz7)Zf^)t+A6LaB|ipxs|`u(vzA+_hQ!9O5={O0R95& zuoIR~&8o$)aLyy)bdmfgS@^-6<(c!SCoh(}U&E@*apBev^7+mhb_zam`Ot#kv1V7{ z1S&{=PxqcKko}TJPW>*MHI{89IC1dL%z_8UWAnC`poJzn9c5Lt$84)hx!vw93WU*K zC>g+yj`iDbThLN*l!d;5BlkjL<9dpbj-Q$&V=G%Ewsf8oQnTcbVg|nE_&0H5{Nm9F zWhsv(q=b%N=2!1GfnIWGAG%#2JaB;rtiA#D&Ek-xB?8u_M`wW?K0Tn)szFR)lUU4T zc#ji*gl}pwkEZ&5!+P)1M(_o~DeONLXN<5K{O0-Gq&Dv!GAiQ~gM;RqTRqvhN#I8@ z-CDdK9)WEwHtEuRrxc6g;O|lA`t5Rw;6ksKZW|byT&9*Ro9>(N&xL_1sc)k#&wp#C zC&_<%X1Ccea?OToWL-Y$SAk2`uectgFQK&^U7Mv-Z}yzvRH8$r(L&-)13vcoPIxBG zU(Uo+cJzRVj!$WA=vv%5p59tFHqz#Lj-}P4w5n|a-nMA* zQxj`J_lwqe@=?|YSc?HcwhR)g&vozwjYr9)wgG}^wM5sjQ-IKp8jC!RsLa=i!52`v?+*4cKd5Jpf9 zH6kBQX}Thlb;dK|Y#wKZIy08Tb~;u!I-4$hV>3Ew-{$Ok9#*KQy@%!{0yWp3xF0#c zMF!zHJfChYNB6*Y>@xrm)EH}qr#3cLRKZ1ls#J3J9bYQd&U|9eC6;7J<-Xz7z102%W%ntu5;$ z2~4zjXG^kbWes#-Eh}e_Nhsgeka%g;TzVz#*xXakuX-{V6WTi7QmqKqi3)4AMjSq+ zr!UGMV(rupc7%(SS9#5CGcru7I=d@dJ_u?Jy4$F9m0U*8EKpWDY@I^-W#l^~!aW!! zlh9pRlFW-OBc0NGi3FNw2n_dHohbu-94&rfPsEbqM^mxibLfAPEM-{)o6gy&Y)Ma- zq;F>;pp7pDT|I=r3OlhT$;JRlgs-GVF6&lXoP^=?8-&24JRoyM4Zn;F*fbCE`CWot zjL&Dl5U_;)IyBPUCHf5i268@vtOTmozwmNpLZ$$bePKV|`gd^;p+a%=&Lk>Rh&ULE z83qwA12*5LW^4H-czeYQf}`@?7=_QVm_G;fI<+KVtM6pF*5N_#!m#9MY@lfh`nI9C zpXs${fu!O*?zzzUl2eT#+ROg2@cfnALqpd*$9p)#rd_tc$<%MgUmDuzVxCL={44$F zI!mZK-G%jKls6%FCwDXIY=5i3Fz=Z1)<#p-=^nycyVo9FY*mBHjNTZph#^!On7jNy zbY@XaQ9P5`TzM7<8FN5fU?~83rFn{&!%_4i8Gr0d6$flV<W#i)o$Herw>lr-_qpt--Q=m9cz14 zVX{g+i|7)_j_FHVm4nw;!~5eds7^J{dd z->RJYG*SStT?e!`B&-FeMpmt4ZsVcqsX&c6myZ5C;E5pd2A|PD@T%0&W+GhgR z&MAR(yTzj0PY8U$y4+`XheNfzyDf`wwZ3ZJitXyejOJR2DsR8CywJT?7DatR+LxL2 zL2SS1SSs7OcH6*BeHe-T^Wf+1^?j4SQdWbWL38Vo!G@u_HsE`2T)_{*`?F*4ioGE_ zv><+l-rG}>EuF8oOA|BV9*X?uNjv6JQE+`|h&E9=2~%SPJZB_XU2m_~Dka(&h zvwEW3uX*`85;nVeBYmKdm~`^kb~zg+^ZJ~GGeGIF)_{9QNylCqSyo+o;EfEhq!2_o zOQJagcb1HXIEw{cSuyHUkO9$C%XRU?h9w=>z4THi>60m(OvQ;IGLB#=^XIj)CFrVx3)IySzi9IR&+{kc0FQ{7?U>YH*?$;7Eq+VpbW%%HZdc*~w8c?ZVIlAyF4|KF$c zbTh&6B)P(ex2({IodZKb99cvP+!~rmlCixN2J6~nPdRIKduVY&=YYl0!i4>n+h%?g z^3>yS{Yn_TYb($2QlGuaEvwX~-4i}-Y9!s`wBIpce~px&;K1GstI?I?ZS1XU0u4fnq-DQ(8tm%ht(UoQgUrz zvGa8N7r{n*0dEO#C==Enhq+{!HplL9K2lW3#`10+Dip79Qd;eY%>ohrGGDzw-5hWa ztrKKv%?VitC!)M{fI^R4(Dh;X$j%hMLez5)U;QQ-BJEo~z!go`^#}~tM_BW@3E$O>|bkaS@ATN)E^BbdWxxc)%Q2 zl!0iOnTsJ)ATTm~O>0cwtKY^NinTcui=hnbEiN|RHk)-=6VGC>6=l;~aEzDdoAukR za@=l30ZTZbAHOx0pOQ&&d|4J~fcw%fBic-zXo^T&IR;e+9f#p=Qx@~PA1%&l8U zE{7##oic{%o(gHTp||35#H9Ty%~SKxYt)Sr)OJ5FFv5U}w}&OQ-^IJX zvAmkG_Of}tdd>aR=wCaV{!v_J7V_h3SUR?{09mG$UxK?|qs}N~F0Z5XDy8vXOdxc^ zlSk}AwqEd?4@^?3(iXQB)~_X(Q5eqqrn#rFpBk-@z}|T)m7IGtm2#Q7kMhXBniMq! zJ`$nZO+!OIUN`yJPwK>W*`TDll@j=hnE5)Y*b-LX?HTS6B!2|6`b5yP6U~3XY{Au< z7FAsb1T3hNQfo^rU}ZOMh_RLa6XpmJi2cX9hW(bf7{_@=B1_d8+6C~&8Js`?2J)|E zJ;crN4oPaJ$F?%>wHogk>wvz&E5NEhA(Wl;dlvBxk=ic++=o(R4+Y9t!t(XQl+O~m zB1Z#MVB*6{Wyqd-r33sfmkmYeNyh6(=;bs#@^VC*4F~Mct~b|IgXxS1|GxgnDI|8^ z&g`oC_CX}*EU`1|!unkck}3G{#Y@LneT#vFSP3wOKHG)VLd51~#Rr8+2BELDqB{%i zZH$tj!Ck@M%YdrOri-B*1E&Z}t7`n|TveiurRDXJA=^mg1QpQFO z0K*V1k61H+Sa~5ba#x^?VOc)yW}C~2zz-IyZ?i1%bwQnF_7wq~S{8uj5(qqqpl@9i z??v7(FBJA>IbE3Zt9J2lYGfX($deX)AvDAp_82ow&g9JEzfFFR?wU=IYs6~ zQ4l?I+q#yC3=pnt+5Hnh>bGKCg$+nf`#oSpjKmuy(!nbUrGu^8*NC>Sp=E}t$Q^+< zbxygxDj+cEWDqlvk&NZhk;IdVmjHm&XUnR zg8~sWnKn2tdq*M3qx~FP5sO%V1ZiM*Jz57qnmbpquIL<~OS+`Nu7upmf#U)D_bwnz zEoXM5nG;D_E}DT?(`_?&ZH_!0-H;7Q(Ln|^!@yiO9ZL6BzpYG5Ejqbyz8!Y2-_R+H zw7G|wDY1%QGmJyFAqSAuhlMBp7#V>-A1?8dN5jy`BeFilh)9>$7#MMoy=uq$w2ZS2 zbSS6$edoIZleQe8g!{Fs`t<8Nd3^o#?kIaGm;l3Wxq}1w``dfuFmf&~)>3OO2aV^s zDf;(&wDlcRxZdN#7R8M)=fL7-kH1tXo7=!miEx?ivIxNORcMXx1bxP4bo|B*4C1tdmF$;X_#L(C`*wQO_lk(rU)r>d$P*?9(B$i zAX+DbG&c!@**sio<|3(GM(}4p z#Bcu*p2ev*!9jX}+w9o&!hdsE3-O*;y{ka&B2YP((8ekQGa=~9;S>s*U+&nu&>|%0 z=SU>RfZSN28tecUeiGXi$Qp2U`&g1;g{xx3uvnX#3tZW30etn}eR1z;=k*tSMhCYZ)JZUFaF7bmBP!PS%cnHfgRXB18Xb zMl10AYkQ7fd~z^n$4DOyr{*0C>dq&IKmXhyo}3PDy#Uy3t$A@iV3!8|Jv76NiZi$@ z2B@P;&gNRaQ&U<~`$IJB5XYq4?sTouRdyNU4;IH$3X*?zv%AJkG&G-%Dy366{{DnU z>=1?Vk-^wdC+h|_drDdsW_HJPKZ+rm7xKlRKZ(=3B94eAy9`!McoAiQz*2ob{xr8$ zy>mF$X!t+IBH=%C1el-8ae`a??A8nS3{SS~0&}7GZP_u&JM2GTGnz3R91);rGNUWQ z@BP>XhylX#R{)ze7hx+NL&8E?R*x((E^>Lzz}b=p*T-H1$ZUpg%RWUbHj7jn#>KVX ziVE{~c?E9G_I)XOK3*B2*sU9nv|41ni>qaRy_?2koOj$BhyCw)t{oX|5Wc-`A5CuEs!qq_t_2q;{)463D7(4YMa~yddCC5%TIl& zZ2oWS89SI(8?Z#CYsoyfQHIMb@C1h<@3tJss_8v$0M6wRpMzFTO-2`29)BK4l$^3@0UC^ zBMQZbY6W58Y>n+Z$R#|Ihs%Gt8WVWg2k=N~MElotGvS;VbiICi>hL3qE3s3>URFyw(Egdf9p_T^Lz}9*^P4vcj+smRIxGW{35-w zXmE`@YA&5rRBm^K#aAv)YBg}4K%6XFtc;A{Coa{w$t2&)JyVq&oE8WeS#|UlMw_JXbo3f8r?gEN)Ghev^RPbiQ;CGA0!4B1}V$7)X z9#Cax9YcqL4Y^*X18SKOSQB<9mJZwz_Ky8TrwIpy{~MjA0d!i{pU`Qef27kE{z#{} z{vDmR^6%(0-2Z=cT8M3XC!@r!mZiDZye|FD4*fQyNcW!#rY?Jp6!r(FngwIwDjmMR z?rrkJSvWSYjn0$BY5zaaX>(9(7?M*^78%hnsl*DbL)L#%yRzGcnd?@gq#x;wTyh7h zSSO5d^mdI7RtLbf*`f-5Fe>_gCqi7t1)OZSRa$&!|oTS$84;MBYp*SxD(Ax zB_+Por~%8h;1V8Nn-w?HpYg}?vMRTH*ks#fi`8Oibq0ty_!Wtr0yF|Wz>@jHHS%b+ z0hGD{9|zaDb!hMYF|hpil@lMy^CFxPr1Qb1!frY3BksW7yc}yOKg;R=iB1z*y$NGk z^eA3OeU^j>{3ta^!0jQ4A^EP>rb{9|J2;u%lV-br;?f6-C*)rA9d22Bnl?0k0({+M zu&1Exy{?m|9YZw7-_W_mTVGS|z0X)!(I38n@87kN%Nynb9CMo|{ zI!!3jGr%!z zgjw|H!2+dY$`=B}9+Or3QaY-N5gJ!m{Mn+K;OuEJjUL zRv2pnw&F>WAyY$rbBY_r%U^(+EhvZT7*dG^mT;?#I85EnfEh)p->vQIWW&`1M`Ln$ z)|(4wAS6wE%mEbI04IXa=b43{4!>4#d?vJTU(Lg3oP_&k^G+hp$fNXiX_ zyEtM~WTgR5`>w(*n9)xnV_>`d?z3lM{=F@uKVdU@_eoNkn}V1Z`G;Y=s{m5@Lob`S$jZHRMT7EtLFVIggt0u_GPjA6mKb~bIvI)?pvO|o*4QDX3#N3eBr{U zAVnrVCkyq^fP`2evTbl7D}@0BV$5>x7&wajp7qWKQ?Sal5uieu=m^liSP=QxZr!H` z7bKC&a`r&M#%4K(h5S1V2AJ{a}pR#Ggp_YGR)6ynfaPSD}+qTrs6jp|t zj@;>-=1Yc|7?+W(eR?&0SnDrB?y@cuzzTV$7WBaBs`IO_)(pd(?dASP#h1`_G0!TK z59aG_?XTI~c?8O%Bt{I#)m#NKAACk$SGxZyko~$rRz|-2T?QS9f<{fokJO<7<&I!t z3dl7^G+VI2*VRx#`xdgN4b+>O_}%`|6F%k8I3*(!9kmHryP%!$22opa3gSovG=M?q%KV2c>r z2y%!wB-`VOVFIf$f-RM>8M1qTp_y9os51h(&F>ws&Gxrb0`XlKB(7{EjexkdcsE-M zM8$U*Izf*MB+}UShJ0US?Xs7o%>Z(~jA@mi>GU48$$J&1LY=K0{5a9($6pdIGocOd#D_TsIKld016K>Q{b(YC9v>Vfz`4ca3vw zzpFMIvd1iZu?#`mT6K} z-^Ggs?O9VR`D?nyW?hJ*A`{ORJ`O4kbP~^{Gtp;U{ni?FKla=@LnZ?^rQ>ykO-yB3 zzj>`lCXvUi-~M##r#b$drL9YxOdk#_CojbrNE?D-nR|dL{8o*XQ(n=wckf5W2=n45cuk9I^(HN7=c?gn7xeDEYamcQLdvvHNGTz;^;tL` zt!)O`xNk%(y%D>Fl(9#R8?*WvH!6$C@K!l(IZ-gyx8wOEo7VInvT4dcuxX}R5oh85 zX4Ck=0L(jKn5os0dwCPn>juBx{C3SjQeMhj?ELhgEI-{qi0?t9+n(7e*<)x1;xi3E z|0nZGazqa&muB_dAh!gh4^c9+7|}owV8xa0`swvM`Z)gA4~Q!V0A^1Kc_o@L%WPQ2 zn$D#7xg`b$R%2~TAvoS5T|xX;u76O}8xJUxh$D*ONZky_>NmD*4GGiL%=0UQMK?qr zm3r<}*b^7Y>@{Xx^(#);yy?~n3$DClSg zZ5&0QJ~7P9t5dH|BN2Mf!2PHC!zmxB)35eJ)%veml<)D6?3J^&>~07Q!kfB}IB2E+ z2@tX2Db5@X<4x#s%rM67Qtsr8E4)=lWJ%pOA_RccXFxyLI40fWByDHmBcbOdT@lzQ zK-uOo|ET7x=$#dyVq+*9S_XDzpoYZAz*?oO8KQ-wgD}_Hx(pyb5i-W-;{7 z&B^zsf980Gw#hm);E2!*B!PHPhC348kJ?tmT6@e~L~DhuJ6l_MKmC#`JFG$MwY%49 zkKpw!aQ@3HcYDZzkv@TfuqprfR0eRQP)cq`^`CA4i0yQ{q~s{858rS)KJepD(EQH& z!137a(NZp;n~ZlV3`H{2!JCP9mUOLiNGP*fYD`I4*nouV2J6^~OQ^k#zMcqK#F1m* ze(G*Jz8-46{nz1I z`PmPTKKgGx^G~*uzX(`_ypVfJ2&IH){w6|_%#J0~O_TQm;`=CXo9Wg!t%>K?S-YFp zTI-p1#bE>FVtJ9{gF z)AAn{OTLceSIrULAco z5Z=92LEmZ6fpS*1XaLF$Q>@AB{pjB+_e!E~0!+m^EpCxQ(iH(iQ;Ozs@&+nxGODU* zv$xWBst?3`78xa=*K^-q;su`PI<2ccOCs*c#6?{<_5@;7Im_&qB2sDUIAz=<+0!s#K9Ev=v;JWE{(F&m&ceWKxfT zef5<%VsH!JukEC4WLC;oN?R+OBQ%Kuf7jhopWNTz!nd+7mD@v}$+C1YCp4OKssZX@ z!qVWCh5IdsX`fe|Q(jfVor@AZz3l_aMb7>T{aoG?fW6SfTZL6gjW?REExeK(vrt3(nC8C8P5q>&_v>&VJi_s-24w29 z1+9A^SG;?C?R!I8l*O~m$8spg(n&m|yNyMtf%FXAN$fx|M5Ke}x_k$+l?hS^)ElhA zGMsa35khZ^(9kbMYC6-O5dNI^u6Kwr;6KCmo)-VrCCRpYkzGA;WK7(ia}!q@i+&O* zPLOb-lfk0C-i|5U3(fZzgM{kdU%M)LaXuV!qi`7SuQ$5s*$rG(ay(&yTS3f?urwRK04_I`_J$A(@_U&~Nxxo9Y+%FimSG&E%%Oh!GO^_q^i z$p%nKWND4R9LCdU?A*F<-|#@v>3j&MYi^^PJTVsy=QG<`PWN_3=@VOh#hqV6$aNyl ze3+P9P?j-2ZN6WUR6(43-%lCv&y*fb;(GBxp>k$&^t^)QJc8(8XMupO`_a7UDM$XP z>OJLRPJ^Vp|CCFQ8xxJUo@-z2|5Uj7jSYQ&w2^-TSsHd=9sT}+r$_~o>Mm+3kHYe} z>%X#g;una~l=}2)8THC?zd}lk>Cae@Ut@0mlDK1!M%%T`pUPjgKV8w>e+^vrmUL~Z z@aIV0$Mw zKZi?uvv+Kbgk((52bftysW$;WSI8@<*et&(oOc| zO6k`neNr7Y8{+!ovvy6$9gY={!c*<$M2g!9PfSsaiW?DYVD!zi<}Ap0%oLh$>ib#z zl;#j>*qGH(RnWbzLjHy2v$J``HQIeP0}8#AJFhkR9r<MN=xw;IdV@iteC$_mzA1hJn(@x8eB=1)sl7FDP2;M< zi>!+kHN8udCeYNk%TMELDM=0d3gdioQ?#?axq5)krB@Q6&IP%~#%o$*`sw&^;L z4}6r?dpld7E^Y;Y^_|G)Z*ZQmWDKTl^Hc}I zVx_QE&d-@Ou61>qcwdBd91^oBS@Z$jF7CvHYr@U_!Ek_1zkH-Ioo#1qeiE19U$LrI ztLolvd&O(pH1;wL6s_mf9gn_S^aV7lVY#k+9?X=9avHPkwTH{LLZ=c@m{3hPl16f0 zt2mcgU^Uxu3;Pg)!G=adTgD2Upga=1{v3j1O(j#wkero&o?%LOgQo@Z$ph!1LOeu{ zY$Yyy75z=PNcu^VeTb0?Yz99v$gdzf`U+YdGu3x8Lh zM(?Y3!64`WrmYxT6VPR0^72thwP%F}3u{d6~rSCl7g+YJK#wKs7_AqsEut0!EDFwxb zrQ>kRUQR6R9rFex`!fu^L-tbA6qejyIcR1i^QTP1*C^i}Wc^TJK5cE2Oo{OeD@XF+ z^R7>eTTNdLzscqQOd!} z<`Ozn=-xw#@dxRev5b64==P%bl(I-<%uz^bEa73l!0ddKBZ-FRLbLov9#h62rg?Ue zUex#wZ@-*;c4d1IC(x9(2RYV$k%~b5ZjC~;$-&8XO;PlU^1gnQqF~VClf)qM*9I18 zu6Sctj@{Zgjtq;i9D9BL0!Iev47a>$&+kQ%e(V`dj4XZF^JiEl72hjL8noQL&i)9F zNxvyuT<(|1L{B^4+HLl%ta2)#0oO3Esrk#q!FUbd`tF^Id53 z*;QFQyOZKv$8KNGVCdo$ydLWFe(qA6TEm;;H`)z{O|DFD=X~*0xNV$PvnxM8^SvH% zj@-7oS#Id`zaFD)vu2C>dO(LJ+!L(8be=0dt0KL(=S!aMvGfBYNqW{eDp2AlN}s*K zF>Sj(MkV$GJ4d&IQ=J`Sh#p%@&SH=r!#SsS*`W)Pv$%~c$+7usunskJc4{jzf?CFT z)h=(rEqq!biIMsghOX$dr^MBRS!n_h@oXeNm>#a6zHKUe#h%V7V;Nq4s96lwg0`{S zENDEU^)MdEEJp;ouTiLh)F=+i|G0AIJCs$KR_$6-PjhPyYcO1C>)H2YX2m}uJ4a0Y zH9B2duDw$Nt4ogywqM%y10|e=mqg=mI=iYBH}S)H3M=KsP?#-hO#y1U02h#0pay5?Ar=_KQlSHTzdo^MY6_7zEC)cObvgB@-jjH2S2-*XZM+Ha)a-%r*u*6R(NHJ*?NMRLKtS5j=YBi#ZF#mQ5A*N z>lU6UKT*znAye2K@@w$eSXdgqF~a-PkIlt~J3n?y{eq_;S_#t$;+1>3N^>lPsI`cI zd6F@gSxG_u1)0m0-0d0Ce(KKu&d`6CN_SPE(RP+Uhh9LH$m?M^!wMMXCSjcI|Vmb6x z(D_q#6?cIi>4_)2hn~f4>C3i+b{}nP)FjK=FGlt>&OTKa7cfca^x#^pTUV)CRD4h} zn#V&3=j{oZJQrow+9~N7cqc-V&NlKKNX&nYybIvlxBn4*%hvqI@a;bnM_%~1V9Doy z@h`b!fAz{af2g^CXr<|mln#E^XK&t^-(>7K zbBZU?^h3u|)iAExW*Tf^FyMocws*Q9lRG?kP`hwTmdx4tL3jiy-hfug%IjJKcxuE_ z^rS8#lGfgn$ThPLa${}p>f~7_-i|HWcz`oUsWy;9cYWHIB|Zx8j5U?+!I(*R(Z!1T z!-IC)L#`oJ{&BH#N*N;DDu$2hCvTZbXWHv;bm}Ilz6Q))Q4A1B#?<}n8XKodv zGiy+l*mc;m%$;~bMW53OUG`v%-3A!O6+;`|-oQTG%C?)2%)w_g(9PY7*1Y|N@%V(E zxxK+ryU9l1(a~5L4#QU76TU}3WL-;qyZ99fkI-U*Q>&!A^M7NLc^#hVeWib|8x$z3 zy}hHGT$xEQzPSl)JG)@x*+ld~A9ns!|1ac1L^CJr5UKbbu!nV~pid!C?feBTQQu;> zQeyauJ1las^S@tA5AT-UEW8FfI?UYrs7OV31YoBNqrCL$EB=G#oS9`uN ziYupeW8ytx$z6Jw_EW_e!bQ4|;OeUjb2R2L7uM8%Fw(tk-`<9Nk!dp9{H0Kn;R{ZqF`T*y&{W{a8Vb)ElV05CY0a>6d z-yY5<4eEWAIjPxSUnO6eW`bM!53}Of&R@hx(rwqrmBhjKkM4Q0l?_ z@EFUzEzaZ>N-1v{=db$N;>X^VN?qW9)^O0jFkgbCifxmmJ6DshOXc6fwQuI$LgiPR0j)wTE!^L|9SU)sDo-A4|jk7FeUt zSSRa5V?7edQ!CD@>NDzWiD)!s46PWRoZdH_Hh)T%C?D*0Y-S7@|Iw&X8{`~02<9|X zqq4>{!Ee*ucf+j1Tc?m`^x+QG?iFc<)`B!kE=skTR>O!p zN``q)3VGstC6+RVq@;=`R|s5GKc$o)P2^Gc`lyp+}g8t&34+5hP=yn%5%E zTC(KAZiPiJ-lIxes4anjZ#nQOTXQdy383W^CZ~bl^V*2s|2#dl1>Je7^^mE^bP?}CeF2#icdj5HmP;2quk9Ufzp1J zk<7H10zs6S&2N98!H18^m>s1JJln(gSNzyJS{s_TkBl6W&4p+S{@FUqA#Gjbu*PxpYGfFvpUl06%{wHCM~?F}~6pSrU!1D4Y~eKxWd_-Rjfa&d{B-DzM~r!flQWTA6@ZHJ88_MmU4x~()=fX3vdh-n=yp3;}-j^|nwBjh9!KQj{nzuUTCOyoh7g}8q ztL0*g)==lKRXjbTq*0^tOQkr6oyO(RH$_^(_@E;+X`V;#CA_Gq%A@;x)m!ys_-aRd z78FUo8M)#h6BWuUPTyz^V{^o7$O#p%Vi#D+teV*vc{#nhUw`~=M5lXFg2ec~{sK0v z`zKaad3$4De0kj}tI-vqpkf{>Io+Cod=~#!R*kRa{`l&|5n8`XyeIF1((Pso6&Pji zYZVIne6;0#Jm;*$@H?2JnD(t)xg;t@bK2o8?!rrYBwvxJlO5TAu<}i{f?_H@%|~Z} zO>C8tHpsR1+8>VQ=v&`!tp)6~+S5I-B#ntxU8$}&G>PD6MxT}fkr<&F8~Ws^^UbLX_7!cXhD5)u%A3ov zndX1sX_Vj7_w5|!HQDivHbqL}XYrQ4T8KuaCvOT<6{5FzZY6^@sNDxET}?_vGgGNk zI9nLr!}Thx|0IU1z?w{$;ZiCwy2}VdBuwe>Fa@D^=eLca)>ZHb9fs%inOM;vM>VZa zj?!v-4k-t7cBqiDQgK|Tqd~oIPw@rw9Qcg3w6`NnmZ&s7Ag4)pV}8TV3P`tOjd zqcp44ZjWu;ML1JKoMToijg3Y;Mf8E^mZRSO#QCvxpcQ>Gr~_ur&%l2jjt?^%x)DkY z=zRcVrA<;B=1O*bkg?MrFVj)dT28T(WaFa5g`z#m&|n=ojkL++b+;IASy6X#%Pb&S zFAd`exXIx}Ve^K2RW`$9vQs;M!4?v~Xv8lW8dtKiC{%bx9H2<=htH+PZp2$zj=SXf z$yH5NHYAL<;#itD$->y>=~S09_40|^mK7b}rh4{qVVf;ZS)K&mVc#gO$tnud6?er; zBqjdCj@51QcHHj&8hPt~lS%%OX3J;&DNg%;C6jEK-c5-f|ErT9*q-LNo)`Y+L5<=s z3tvAF|BUHSoO~Maxvg4W$d6_y$T-cFstR7NRYfLU7Y1x9ajaqe^OJ2!)>cW>uP5m1-U6|&US^T7LWMf^8WV}fj372fsXd;Bnwk_>uj*A5+pF;ZCvoo|*3`Y{`<}U;Ew`saW~QfgV+7jW zc}hDf%myV&2#j@#?QJ3Luq$f#QLFqakj2j|l8|I~XrWt++6~G`2+?9mEdo}MMG}(K zQbE9g7$HEi)&gS^AgmRVkl#PJt8>nrd(S-c%=zO!=ehstAFizRb*<0m^L~HcFRfBY zDqn7ph(lv8*<3SRa#1^?&dO9S;PdYE0p-B#*nDMZtcAXB8b*=GY4g1qv~KF5t^7nk z1rmQi9n2cb{3v35Hvt(v6qu)C6s{dr#%{l~0R}`IN*)}ps~w%#n!m9d=nTD}i&2e$ za{9U#l5yP?eke4(s8g&ng|W=+?qWF&{OGt+IJYW0-1_C#efHcG6nZ%%ikayr7~T^d zn@=_6d~^M=MmkzNAk#H|U}IVFP4-Z55s71x?uu2i;ZcKX{ZM<<-A&h;5AmZ7v}6&{qnG-R0n zTw@`Qyz%Zq{w!Q}C^uAxfbD%LPYnix+#+=fyVh(qt988Gh5fz7J1$BLW3NTw%<7hF zv7@@cd%UXT3is**DUG<(R~Z*CX;Eln6`5WpgGl-;Z*qw|1J?t*Q$)mURyvxO=tm;; zjVU~jPHtS23!aoXM1*m?Vaxg3BD!~BWG~hj8lya4+*I?sh=i#tUFco)#Kj@;UQ*krw+kre zVv|5wlQx&qzrg4_tfcrxd=kda^>A^Mpo#9AvED=Ff-pFQEatdxYR(hm%2LDD4-?to z)XJ~I^TPcY_l%(6d#XIhVAd?^#$3i#m}nqRxLaG+I_qg6kX*&>%IRLvfv?S^OLvjl zBK34u4f{>q*Lz7x8YLO$*D};!=ZEfW2N_sdicua*cPQX}zz`eC$cbjgxWnIV+9E5B zb>yPbgENZC`u2?%3eGdho)_p#q3Lshy2D!sQuhi}pUE#x1rE4-v&2b}U?pmlWD;K1 zF7@cj{AvTlIG)b52&Xh>{9Wpv?lAE$4(qgy$>Bvlq^?YtrAD2uWa{ITG@1U@j8|0b zfJmb2%b!u$T#9urmz!iu%n+>T9RCKIM?ETBu$Xjo|azA76(Ohg15F zYy0y6|L_N(8{XefOD*fB2r3A5bw`p}^Q0hgJLzat?mb!rVRC<~EV0_w~DmWAcXM2Nq8de@f7hs;BEJt_6*w2sLXAhmr+(Vk&z$f~XXmqez79B@< zcORY-hwd-G1Aui{QeudZHtNlxt5%wvP|j5a7a|}g;IFC(q>dEtm~5MJ?6hb~$VTI2 z0X^@Kh(MVY5Ksv9*3~F%E0cc@(Zt~8z?QFy0gR2k09wa%S8lQ71!3k1+6J9(uQ`vK zxZ+OX&*`BW%e=*<*KSDyKThEBMA^A)b2ICXs* z%He)Q@AzTmPG`V1X?E2#$;+1|w^RCatW>?I3Z$evR!7a9gzmd?7f>p{&V-5+k}snX z){Gu4#wrI|OJ)vmCq0EU1%=+dU>)SjoOMR#n>&sZz6v`cZ-9g0=Jx_n}R{m@&=#h%V_ck?Z^;SwN{IG`;+e;!~9z$Ys~xX=lU$zb4<^ z(oXAj8lxznY24d-1e-l~ff@XiM$t>HTQ>Jhx}2ItkG2z0!V*e(7j1#Ih%M6AQeg5r za!1hgXuix}INRHRZng?HQlfvIn=dVgGXBX*xT3Bd1^iuLwZjCf%X%3p-$MkjwTrTS zSiJp;k*HY~6l#kX8DnKaDKn-`cKu0pcx?fF;dY>yx8?FW({&x)J=vo94?qrjR|eg- z-WQExQ&%+S!r&2;H-T`3d}kFEuFvvzwA}zf6v}ie1}Gk-j(M-w8Xckg?qzeF%4j@i zWcoakjd?U71zn|JPq|YREtB}R2nKSZS(d9^yLG5<(?$mf9c~)==>q4&{GBoS$o5_N z;Mr=KdQb(xt{S!^^AOxD5kZgM%2!j$mnp5f1vO;`KWDlEjw*t77a015kiB`q-+Q^9 zE&h~Z_Jka8m&@e|X^W}Otux!vOSqFU@>$X{atm*C)ug-icQ2EApwXr(Li}~H+^y2u zbA-^dS3$?aLB5A>Pq4q^KIf~*eKRYLN?4gT=n1mBzB!1Z=T6zq<7+dyNJd@|xw}aP z{G)DQD069^UO&k8k^Gyp3Pxc)VL3d+#iTcAi_FK@Z$EmW#8rC%ii%3@lh>l({);DI zkTo=>8wQ8+alWqe0|BgUVkOxDY7%8qw-1`o)j8bh((pYufxUw0jo>`ZsA}YIS6kL? z6gN+%&g#rAv(A6>xnDR}PJFgC<(WgLtu8KDYH{j=nGPoU1r;zivaajPkM}77Xy5Uc z*?paO){N;bx@Po@irxT-COnIOl+$DMd6c@jn!2==7Msk7Fzz-;9;u-$J+V%^>KArt z4VI&k3pw}J{YVZ8spnJ=imyM~3Z@H-UV6fm_CK)-+ADSUF)W%$_S7M!q3ap-6(BQb zD7F08w{c8r@=SQa%3Ba^@A`6s>%x|4=#BWZ{+o`nhx!khfY^gvT_iKK4R%O%OLjXW znt$v_u_UK$r?7U4sif+(E#!_cZgvk}CKSn46EnJNs#)bu{{IJ6E$x4^s;1iBG+ywJ zm6tz9@1UQJ<)W^-JOblxXy_CkCwyFr$~|S5cCzpI^uY|%7`wrbsaw!pDzxenWHni= z8H#UH$|Of1U;-%XW2hIGEkF4Z=9mn%OwN{p5pG4WS5fJ}4gxLnk4lP4eGiz!bQ-d} zrp<8Q8r9WJxfq)JPDbk(EVSC{%!Do z(%IhpZ#Kzl>c8#Z{?|6iPyZjCt?F;ytNMpoQ!qYb&;J2z>c(gZYri}7LpS4-tAdc% zEC{jr+hN=6!K0+6uBmdoG5K-?)=`nbOIn^FHv?H0kzLj=eDA<5^Wo^9{m&YRu1^*<+V&% zUS*LbT;O2G-dq&wE+xI0-JioUx8J`2BV^|H?sAEjm2M4kLv3$>cF4?_qX6BVybu=6 zD=H>qguQ1(yTAA3HUsAl3{ah!=#6{F_sx%wkFVfgBl*D<-M|j|HO)?SXEfn;f~-er zeE;FrlD7Fro9rs}^NVw`Cgy^VT!&D&Sv&6+9zB{2g%DkEQ>uxz454~ z;$*LI4jhtlYT)J;C#xShr@y1Xbbp(a6?aVM?{b%`f)i4(uTxPtCG15qIMAl6MDD-( zBRu^UKu#hK2wVJ^A_vSFx=vA$C?>V(iAJ@-rJH+8Y2&b z&DYZ29IXcWQ%U%A2Ea_N_U% z_YMSI%se-XpB&xqwPpI=(&TVm7w)PTTT8p8YObn$^Sp8{JSTH3_j!3)p=adN;CRrF z=AKZd0$ntjUo$o>r@uQO{e~0_C-Tq?E!QOP$J;xfJL2=*ja5lWOZA$9dc)A-UL-fj zF~Yrl+TOyoss~llmnIeLga$`@?Pv>SiEypY*^a6fZ?-wu_(YvEz2)7zz){%+usE79Yp-zyX@j)-haqXit$+zkRndblLIjj%>sLPzw|8yolrF?Tu$O|LN$ zlBqpAK&2aJRdW?aSuH`*T;;8osn8`hf~ zVWOepyTs9g5Aze@dJP*=ik=23Ww!vU+mM!jf;efh?9JW9oZf_Fon{B zz1Ap7*-TPkaIWt*9$q^(E?84BQ~M!|BR&{3B|(&jrB>6F9mbv@2_r{yM|e4fC|sh- z0ZXA?lP)sV+AG=TI5@o>S^hGG*plf+Z);V50SxKEPaIVej3ZO8xLE0evs_Ov*AC9} zd=UiA@@}lC@GLXUpYYCz!j6HZBfgPuzwY2B7?~&gVVikQ&??wIkPIvWl(Gpq9d**) z^dDG1iq?$c<+!o{5Vp8wKOX9gI(!5%`BROuL^e=lT%P_|`{mt+LAsa7OlHkcGE+17 zD3Cmp+R@DBPAPakjW47M^FBkO`%e!DDO%Mnedq0FL^49~I+u`Q^3q{=5csfAFq6uw zlHA@)T7S9Vg1y0r!CP64g`|tA)*A7aFiBQa`nV^(NwN$30=ps*&P5WDhs{h!&D7+o z7|%L^4DGrdpQQ%t$OT4yRSj6_Q35<_pc(%2cTTe0j4TrHh2bIr8XMdatxf!_nZNaZ z3-k_THce?I*e=DXkwyNoF#A>#krAi&TqlrLszfHYdPZ|YZdoBt9j`S_4e#xxb!Y=? zz-1MiVU3I1q4Juhr+c%l*&))yzfwv;lPgNvto+Tmd*Ea1O)P^a%XHdtOPQEIxzvAr zz<@+jwp}8MD0?qHq^Kn7+MbmLe=JG(T{vD;L|C*PaM@KQH6cI;RRxx(-Xybp=zLQ9 zt#lPp9TyA@DSV^ufq{=MrczRe+4op$cKEF}UGB9kRa9sU7ab1AGay*h6Spt%-Ii)` z!eAlmQufmZ06Di#5<@>O(U&P2JtAdeVo$NGeh&A=2)qy~G_skwrwF&=;^RfA**BPV6|!w9Towycb>*A%X*{lOoQk*a54{qfTj7scMVP8L#URE4*K{6Y#lW zDS%;qy=}WyqZK|{%NBT2xHC>|HN|liMsV%;jWX*BQ_q{a6qlvvfnc#DuUa`vRE)wI ztf(5)-GZdtO$@UxiX%u%ieXHTp@<+x##TiYrJM)+{=ilcUy%=36FfZy zAOI4D{)oY|4fs5otolm#l(sT03sbm?8(cjr$r8P5n*F++n4xa6~ z;;7+LC;=DqNODK0*;;<&dq$Z=TA1#hENPgdpl(K|HX{5Y=pcNMp|`eghKNNtE1xhp z1fhT%dfFo1n{tMAUWk8Yocp0B5|Lt`S5JTlm8vDLPZ zg6Xd$5eMt>0ENPQ5x>1RSDPyU9!~xQmy>{@({h+_R>(xXq8j3Z4Uk)?L032JRH&Sh zmkFHpOZIO!x;$c~E@z+%?1@&+p7_Xgvm9WmCLCuDb%4a!0-SvE1_SRdf4;lPogq;m zEmXGTgL_bBwX0|CB7~}SGVbOt?mh;KIr0@npdkj-s?X_?v{UVS6{}qJq~_cZo{D`u zN=!0lRo)YcLpAIND-sl6`abk0-4zF{nV+6q{rhA+2dt||&bz0E8zlJ@PZt(lZefP5 z7tsml+Tj?0$)yhPKuXO{vnT<5E_ONkQ}l@5xp}mIkD@*2BjzAQNs|u^(VOfKY+FCH ziG5g5FbvcV1bv~#mKpg<3Cf}l^{k9EJN;3!z$;M#(W-&zWyh-aJ-43MAaE0Es^Wu1S@V(?$)=v_L9(tWD(_be(jMrW3zsVt)2w(r%mB>h8hX18)b8i+{3ps_eEF_ zqz%`e@=ZT6dYH;`AJ%t~&BTCgM&~9x z(DUR}(lZHRzgw*sQ7R5~?r%*iU~|aw&#h4$Xyf6}g_#PIXYeKb1C?BXc&6PhBH)9% z@|<~z2&Tj^|I@|O)Y0G@;IqM_fTNI!)Uc^4E5qdqngBh8$%hIk>lgVPMw-*P-rW7Z zWR`fmj_1o6{ug5GO8G}huF=oMAh{Hoc86BBU;O505|ilJe);!$wm(|`{hsYV@{qlpr`Lo-O8L<~t39Y0fIa`l>n>`1%Zyu*M zL!YE@DlgB=rejIi7xrc!JqP>;z#7|}-zZ=ciFT8XL=yZH#uPpjk0g7B+<;GZma7kj zCQun~fRdNLZJLflPg^Z=I7sD~$ED-};^4f5M$OhPQ#Co(s>`p``!Yi+qvwn&YI?sF zymzr-mZO5{^#{9pe%~%6L7<%mCq znUPM(z@PtVEKG++<~>9^VfMLC94iTGXXqbMLCNJR`6xMB|7rc`+ekZ0H{m>!b$8H23y&?q;@egLQAtXahL2ZgN?+ zyRBp6nOZQ#(iRqMjx-Oxqbg-nqEc;$;f2Wq_GMV~qvI!{4Ou_@eg7=7=(NI-(g$^{ zB@Hzu4s_`t4!&#K!U;Y&x`fpIHkc&DbO<}g$8wJ~TOZxZiWm}rz)>E3pX#Uf=_;w)@MVG&6Wym2<*TC}Z5~p#y7QMNwpj`RIlol>UBA`p z7*~aZ4sXWhgsT06?Fec=*%!ry()PfiFGTmkYCDD*G1m7azme3vnD zY)|cki?_Z~sz&~qmj+`NrKx~^ZLTx9xY_PUCNv!iheC74ZMdF;5=c85?$X^z0lE~5 zMO(9r&haym&1S3j6eRgs@jflKBsc*}$xHDriZDlIoeBf^#P4P~tA11@W(c>u-vT0ZyKZuC}5 z(T|BjM>HLUs||91hT|nFQT)Q|yZhX+GaP^TX){)Thn;iB?b?`@|5ki4s}YHg>YZI- z+2XdJ)=m!QXB(9LU0xl6w8VA*3ia`+vT;tPZ=aW6lt=_+Sf=MW=FfXXvWk(|U)FNJ z?wtKi{)VVc>fJhsj7a)SH3zl+41n(11#AL^)yyd0Cw0*|27JW#i9@m7jgm18G3rpI zPHwN@CBNd2l9!>9yi^evYz))Z>73rEWWo!}8&NMdBwsDf7;nk$gn%Op?X+P|X)m_{ zg*&H_`joA#JkWqk0-PH09qC4-7g6j`eeINZr!ChCrIOyqK6GT=N_2 zw}mID@D!XJXq@xU-$Pu3uc%1Y`Fr1Ah#8`fXN-m=2JT4XM+2u~j?{O514-K~5<33e z0F;R-naLLg*4WPOm~Miz?UH+m6t!8#1+6nSjiHA38`VIMZJF&9R~(7* zC@WP*qX`=lm5#W|uEyAtp8V4_+*2bS8ScO9Gi3Y$72QXNTX2xojh66eFvK-;^2M1c zz*%cxC85fr$nTp;CBkO&V#*W)y^apzw&3{B2V7(*x2Ovrn|3@~f>ievh>7@lJfAz& zCIMyc)*IrxhXHg1vrslZoIyBeEUr(|j~m`+2j^xN5Mym>?cf+nJFMiBK>K4^4|vTq zv<;fLR{pg) zTWo)5zJjB-RB8ZgifwRgBQoep_e&sp)P!sGkFy)ii+;`h*UfqH{OWpPKC0>6VSgLY zycT6QGD*>(tnx0UEM}%^C2@t9{||88;!F0wk#pUPuk~lvUnV#rOQYZu8Or||r(%Z} zfW_D7cfu|ab47Zz)O8MxPHt`RyxR9;ZRZ0|yQqsZM19|&^v=^GbGmlj zbe1=z+}9kOA&W&3*`+b`Y78QtZ@(p&-B|<#s5WFtuB2P>*%pN(pCV2YU_2pOu%TDF=qHm*9irTE3LbI?m0E8mZ?wM(Z}}FIXy} z_?&LJZ)j?xxoMWJ3A#MbU(E~y3>^9%Qic^lKBpg9bS)=Y8|&|?R>UKAVkO%2LJ}He zCHMO&oFdPtv%|x0fOtJ}I#RKPokV)WSbhG?WB^=A=4#kUqa-)xw3MKlzTKT8$%=b< zkqb(lQY0Zuw7mn~`Hg1Qsox@BB=%BbMDt%Y5wGL^B6f0F)b4{@%O$I`nev=cxFP>( znDe2l+!~R}epvm4eZukxJJ2~-+v(9zv9=Wp<@CU@&^yUn^Mt~02-n8MNA*eM#dqna z-5B1e!koyb9L|>QodJyp{!5Z@hS^RsGoODa{!0l%IiTpbw&bfKyt?Kl9SZfu;y2gw z%HqSrfWW%#%c+Ad;(O$4$<8eN(Ye8t>&SJKvgojq=Glb9)SOgkjkY%)$)KJ&{Cb;w zpeBG+-QlSZsr@Reef!u6MhkM1uq=aq>clzOJ4H*l{H!jDn zcKv2;$`&{I@Lr$c<{@pAXL>!SuX>QYUQ85f^WztYd_`ub5i)c;)=)-VF=zZYY;4e! z?Prh#?k($@Lcvn~X8oH{IsM4B2h&@9UH|e37=>OX7ZA8&nO--_DE5hq7zshnL{LM!FWr`c;ic>hnqWkyz z!$QG68QCk0ZREd*jiMYVZdm+kGa4AE0_2?iC$D6FZvocv;_k@V9DY zI5Kq@(GOak z3&sL|&uhK2NG>Lc9}>S2Hd<7dubmN$e-=xxUIebWddH(uc${no67^{H9)Q3y#Visc zgNA|z%$q9sPw`cWTPEFw@!u2>-^`2PN3W>drZwc`(;Z%U82Gl-N!c#ZPPO?5n-aH- z-)c65l~CXDSM0a@c37Dk5h-cA1iF%~>+$V3%*-fMUwGPJUQDI%2JD+aK$a}GK3;ao z8P*7{|C#g9_F(^2s^gZ#nf)wCIlWWaCl=7zp?UrQw^UL0J<9vJ0y^Rx*C`}&f8B2O z$kB02Ihd0(=j z?&`1YP@;PKhe@Ed*WiR$OKmMARa9(WuxH9qFKeMB;I9(A4kc>mT)(JK&BfM4$SFN* zne8TQOMkpOa>wg>vf^{$WrK>!W>*WPy+i@}o)N(}6Czg5-)R>78UFvmGs}7gSb4dg z2Xkq#Xol~9(sIMy*L8&Zch&a&<4wRL+*JCgb7jRUcg8y)fx^-?^|;mmfDYFuf@FHG z@RYT1sEw#;7u|ZKynoucNz6;`+kkwPw0&2Og7Dc@$3IzN3D#4LS2c?O02FyD?yyCJ z*H2AnknHh&O-Q{t%|`sYGTQ~@RNiqS%E|R~d|=_)#v7>`YTWmwZkPU`s3MW)`1{jL zJ#O2tMet#^m%W?eK5^DPls&@{w&g~kJkANjDPomfEx!;@t??&Wbg*_ON^JRuT}>q2 zCwjP^f9c`=HD2<+>uwhZ{%sHUANnTq{ztsz3m0FX_^W@Im0s)X?s_qAk>u3H{_efs z{FGF!yE_({0#Z9}h7 zlugGtKXSKvopEVKi=n~6G0X|x7KBQU7oJTtQbBnzoNQdfpH*0|Qr9%ZB5*wscjI4d z4@fc;FS!WaGJk)YZaC3k{hBf4F3xkVK>iGE=~(C!rwE3S-fE5WJP{o35zbIwQzLr* z;87{Zc$cc(mABzSDvl`tsv1h;p(7|%er$Khup`lI=;W9+L}Y-s;^QQ z3gH%W1=A3Lsb}S)EF`In?_kb*CuIvTa>%4g}uQ zwFf55wUV5sBsZhTkHG}rD^Qb?=P-!2vbv?Njok&p0b+B%TIlBMmS5)ekcT_ImOs=j z5CY=^-zC3aCBI$IL(;i5Zb`EU6kjf^em%xV){}MPv5EAyyyvtDbG{M}HFlAaLp1iO$P~puwZAab%cbAL~4{QPR`i{F#xWy0(Iw*2Etc-Jx>kde+u{ zG8Gj2p#4NC04WKG4NbSHIU&C*qdbj_5iFn-u~x@Y(A)XdLLK?}JJtXE``yG;pxBr3Qt&2Z_$ z8FpL)@<@~X3!KLk_zqVn2Nrdv=L%+7b5U64MTiJlk>Vc^{`n)r)pNBsHeSWD_~z#q zU`KNcy#;j(rw2$yXAz`|z%~vlx2;E&!_auo{Dw*G1pXF^E$wo@6`$SOFhp5uOv&~Rtqe3ma27gOLTp${!J*{5z4#*PelLwz z#JRgUSiAn@dHF0R_1c{!)MLOaz!3WQ^AtsM)#Wrw>ME$QSija0?y{Oyoa0#@DU2~@ zS5uCclFWw$KJs$_nU`Of`Uy}<2dXV|+^49(_$I2SR{JmN)6su2_!oa5#{Au>xe^ZB zT{}ciE5Ni}iOXX$kLNuJ3|(Gu#lN`t=5aAOMn7^|UgO1Ei8ahew|@PV?#zyz?rt4E z{c+os$eR;VdgSRu`S`x|`xGF-*)*d&iN$Wl{{N`15itfTs)2bIeYU%jkQ7!t64ZlD zt{%PSn|r=At5^3)o~jTB=gwE-rnnOZ=fJT%rYK zzaE5+5!V~>nz-rGFhUTPy+h=W#iwurSc`6RXa@QVd6(aWjll4C)?QN`rS(fd zIFdD=3OpWV&#@1_IhFQWd9rXuA)r#+BO*(#sy@Nbyo5f|c!CTt{Y1nh7DUufN;bOz zL6swk*~|CRkMI-|9em>94Y+euG%yiZ#4tW@@1!dlAA_O5YQh5;1e;jvhs7L`w8P(SB5Pe0mKE&u2 ztpwL5%If{oxJ+j|aN5m&hkOv6ePvJz$PPd`-#{OA`^YhXf3C2f(w8NEW0agi^V*gw zM@3z`iAx)x)?5=;*d<&*FXJ)*i=V89Q)GbUF{+%sh`a!GXK%PC>8LeYN%bRCPORue z2Q5lhVLoR(Q!Dz+sEe`c%-jdKI-)<2l`i=TEE;w&lzht z-ZW>s&wfA&^}26|LI*H!bnhZIu?t6WnCZJ79%u~W=X{x+FekR$`ta+Eql6Cnb$04$ zzs^8hrA8O!YvEKG120X!Oq?YLJ-7X9_3V`K2Z3cO+_$*0nC2ZUtVAe5ATi0`9CRlQ zNUeWQO zN{jT5uOjJG0)o=dJWH&2GM~x08uwKOLV1<%uTkSf#V3lIAr{FzhXK5ihXvpO}Bxx81t9C{@5wiql8v z5J6-ivZlI5*HFSY*C2bqYA-FU>F-E7$#d{jMmF|%xsD=8AX1_1^mR811#tJ66IM;B z1n<+l6D!WOgT+Jw(bOM=MC|HTtj*sK9E@f39tnWPGiq&%8PG3Eg|nzEI$v_6zUbVU zYT{tgxYdTC<>|@UTG;7syuC{gyEY4Z?&*m8^n-43={;?Kc4+ALQVl?G4~^)Mk?6yR z1e124_|o>8Tz!bjf!0^Z2zEK;@Ob$)oHR~|;Mx5^64V;AZi6s+6gB716lE#FPdUQlXpr(_gba82GJJ%U9C zg}|Y+@3&>|6v)hn9eom21-l)HE-tcrT25Zw@_qz zl-DD~v~EgAJrYj$59xl)4L6tHMy-#-fJ@pkY2Ll6&@z$ArHM9MKNzU1bV$v$+aK{k zxC#$N9WJ|?v>=Weu4bsZ+*jko5lgXd0YMeV=fTB7s@| z(x|suvq^c{fL%1j^{1og^<#XX{&9=^hW`34b+~Hc;m`1mV|>-AILcw`7lXdEl{7D% zKLG!8XIzA^G@tM1=s-vL%k0OlTimII9{PY=-Ak%9$Mw^HRb;nsAK5#U-OSe@^@4^+ z5*=ly+1YoZf5Z#aM1G$JndQ~maWC^o5TO#q1G83=8bKG~Xq6;yVAMPTCyAdrfB|Dd zlBrL{b~slnth2;Sp!ML6bS07{m!j0TtDuOZ%}e zTI96o6yp$N%_=IzcDaT6KWTO<)Iup+W5fbVqB3#|Rh8(l7rqLAPxY;p2cK$tDD82g zbmH;Ov@}q#*!qWlJl%_5u@XBZxQRnW$=X_y3*)9Nnl_=4yhI94ZP?y%cd-6#qE*}Y zpX9c;{+mUzBk$j~YX57CWc&ZHNWRGYn}6lB-Fi|2oBrG8n=}_H#XdTQ0RSb=~5W#k~ljAaF@EQ{zrj;*zgMIg6?|*U6bXlzi8iYaBdQ8 zj*$nm-cYzI5xFnd2`Z7>g@Pw8G69TxN_`j2Ii#p4O-{0}^(m!Dm2*bflsdvA_^0SF zx~c#{+meD#09#@+U&&05nEctEeUY^Og?a%3QKW3#6xU1BGK?}Sa}S^CAH%+z+7QM( zS&`?^)TC{kZk}Ei9w-7LwCEEB;ays8zd!MIH0Q@oyGyyq+p>hZxBs3O5d5+o&ycWV z@Y^}wD$l-4`#8JvmMXesqNK0n3H5Equa4(h?>X)V`;;Qyv;LI6DEn^vEQ{~q#EHV} zj%Q&-tFCzavJj1qvVK^2CzqNfRz!PQ^*_&{xkJEWiE{=?i@wIGbUv>AgC)}}krFVn zooNe-r45s)X-xi2#9DP*b=u0bEnMZsjQ0iSH9A{_a)BUos*K>ci=KUi>%~>h+1Nyl z9FBK76)C!@hImes1hyXJ=c=y^jQU)u(P!Hly7K)G=H8Dv$U4~>L-G7FyMB*yHl|}O zw{NNK_j!AsR(dBFFCf3HEgj}4;57C6?fm%O;d}eWk2PRFW)F~_h&M&YXU-MHJ$>Jr zJDqws3)O_GLcys1Z*)1e)Z5^&Wh~rhfZY#BlrD2^uwLwm8Lwt>`v`8_WUUpLb-s`p zmhazuP}=q-_FHDRXE4pXsSc+k>O=m&wo9wN*?vBy<~vhsZIf$%n~zUO1YECfoUwsK z9Fe7dg}#gC)+v~E&YUP=i;h;mdvXK)CqdhdLky(7y5ab)K7T+BvYIULkgw z{M4G(f&BK6%Qkyn_G*7he3X6Gt%kl)1zv(^S`41uYTc)D1Uv{f%tAhsOFDggokhj{7AyDQC{$UK+P({W zQmHdEVuRL=x}qcjjNPGJ*vG#j5Nz(IEPe1}Na3)%$L`M-*8HUAT~qRi_}ZjluT+h& z&+tYLg0um{$~=6z|FB#LyguWSuC>TnsmZ^Lu2AWLy5h~r<{>A-8m4Ym5LBbSB)Q6_ z{)1JW&8ucgu_(UD9yIm#?N~Rgm7BjD@hbxcY2)sT=38JXGX$?7hmRbqCOzBfF6(n& zk#Dh*G@>GN(|CDWClT=$Z~;6#Ge@uV3+J zpt)47E}~W*Ry3*lXR(!vjXRgdN}o^Wp5{4Os8nh!wh~ES$nalEvJ08i{aS@@b0^7G z;VC6<1VJzI*8nL0QXb(UdZAx}R2hqiYuC#dLv_a0u3WBEBnfBf87h3DT$uwZR~}U~ zDy0PAnOxw}JFg5JQ%Zv?Nl#wmF^_Sdts0>Gcbl+%u~hvdmtsM{H(tNZxa1dyrvbT$ z=?5#Q_pztaDv|4eKFaC9LEA{Oe#?$scW9EB!Q8%f(7E<`Tj=@RK0~9?3FzSjv7Pt+ zJehd>`Yc?;SInZH#!t3#-HqtSgO)1N^eX??M5@sj(C8^O0mDfW_N?Y26*D929 zG2pmMe^VkPp{da)=vQ{jUv$>m0Wg7G`~?Cl~)fCOgqBLZgw>_j8u4VylTK5 zJ+n*c`A5D|ovT#a42PsEn{|_<|0?*LR9v4o7Ye5 z)9_1~O2o(tiA>Poi_kY=Xx<)ur__s$7=@#|`*-yzvPn@%O)b>`-CK%!5fw%#h2STL zxVD#KX0DfvZzLM^@AzXwti{+gL*sCB7pSkoIfdieCS6{LWBF#^l9!`9xF&X1?)p3}z@S%(9NdF;Na@^aE){R5ykHT11QiYAP_PJiUCfT8207{J?$ z$*;K_D>Y1&e?oFRB)ZgQUUR+i986m=_JA&gZq26&EefuGXE>f?T`Z7Ky}e}ojsV1d z(^jo|s%;xOf~*hQmY_aK{gESj$wI2U579vE4rtX_n-i@xd6MSOsy>X>cdEIP)V+We zPoSszUY&UxNX1*W~uswE>P=8yRnOy3SqK>S4n9IjU$1|q_$@m*?Y#h zSoDM9pNU1$CczznPTTjH-FjG&{0W;z^rZ_IussN`_OX$@sYqKHdGMm`!E9k1{@utR zXL2f+Beh9avR=ur|1KZ3!|V#?;lM69`02LyJJl%IK4z<57d|p-f5YB-7FHtEweP>V zeYGb}b5Z@V5RO5w-`Y(XWAU6p4~Go!0>e zpO0(z?O>m0MY9k4zV=VJf1&t4-U_Zr^6M(C{Bh&>gqqik4)8n^k6-QM9XxUppt*W2 zx0OfW-OtW#LH$&*{>wl`k&BEiaH$&~TJh1eTAER4C>iHBg~bzrsQSwg)Tx$+6`hAm zocX@&_fk{r-zevM^W7Ce%}3S>{L|_>@2B@fH_G$)jy5rPSzy%>_8{IrB|HYINO`om zc#`5&YCBi8sEYs#Jr?W4uW(;pZht)U@xmD|hIZPn4ouB*4WA?$lhRH%rRov)0Sdv7 z)@)wpuT&)7?YB6uNXkd5sG3xH=dTe)=eMd@r@u)e9$t`m_0spwOotfTTN@F3k#K*b z0OEVsFfVaqhuQA*(EUgsqWT5+6)meWP36`T1&)AqEGBTy z!!{D6--l=W$Ma^gPVgwatH9lwSWt*}|$17`2O(k|)m3(O<9ciw|6vOMuV@=R*EHHwvx24A% zyc?)H*$FLeq>#PHnZ$Zz@!k0OuF{%->)9EFy{)^bRJ~wg6&JWByT>a?^s@FFX zDfE3HNO;&?wsKsi;JucK>JvFhPm~{^F`b_o>zXW^%NOQ0S}>exM!aD~pSU?co=BxWRW2h6$$~c>Z82=cLtx25mq0 z2nH{V6HHV}ACO{0{=CwV{Ay=@X9N_NEjW@AG1RZ$=%)6)3BHEn%iodak2TfjySM+- zpApg^(d!NTd%fNd|JT3Y>-|U8$}|6JtTgal|6z81dwcLdzcKUlz^>mteC5%f zBRsC3Io@Bf0cP=xb$dCjf!wjyEU#N?+3wl!ljvL-WI;{mbVcYxMgU7yhPt`k9Z}l_ z9#{+L%6ij8B~L z>oM`q7b&3^ykTsY(u#WOc4C~03ePnH6Vy<>+k0Mz>Xbpvsb(dc05YOumwbd9uCVS0 zsK}~2E?CzGwY|rnJ_2A-i8(Qxl{6JQm3?#K=;E{KIYz#Bv4m^h$JqhG*sL0|+1If<<7zlEP7i> zIo`zEK`Cw%7zkwNV(Iu%8q<@7ZpUhIQk2g2u98tV?%3p_^yh~?H0TC7x>*yr3tzehQ){XGc!$f|oi zs_5W5)@9F>6{e0b9}3o-3t?D7a`9holUrvoic99S<(}*d;l5YP@oPN6!gk32oQx11tYeF?X0P~~j2VE?)g_`hxbN23GP2TC=@3nT< z$nI8P-tBZ4%6<~u#lgSo@}n{b-s(;JEBFLxaA}lufqIt{S zG|(U->W3_iY*W{|{W@=B&+-}}vpNDaRi-sgM=-l$XL&ObPp@$Pj$PLS-bSs+ zH~nLhqz%O`@_F2f{5p6;l`F|{ua4Z7NN6j?WN_xJ-6sf7_VR1pU%fpvsmxh$&7Nre zWT%ebzZ4t*o9?#Xqn+7gx-(D8ADMNYU=k$ek|C@}%I>Yvi z5Y{T>rvxv^41rou1CLg^bf2_=pgK(=<0$oZyIq}{Hhxs~@Q>9uWfeVwd@nwEeyPceSABPrq|3&MO%c$Vs z0E-m63-9n>bH;6B^u);Qafdn z+>Qc~cbbhCMq$_JDiLls&ILYaF^-WnBb+7evzLo0;@9o9FI!@<1wA^P*;{PI)|8)>Wkpe?Dhv1x?}rz2RTxT3pJZp+r4i~ zW{;uSA&*yi75Q%j4zuXf=6x|Y;erPCLc!0`SR0nlXU2OF) z(r)NKNxMBPp%QKEQtc5*QhB>4sgCQdH*D8YymddBZS@V%=?l4K6vudrpbq32sj^o- zsr%CVwdvcSSd?Cs0+864L);QH(dXXSt&p&n7Y;Sl8~B4u9{4ccv$CX`2(sPsZrW>e z+>$h%fvPNKsk7yI@GHF-3C1pnApH&J04}hiU&l?J;4$?DVkyL8R8SvXIMy6rRg!JI zA4*w^011)9aIp~_Z2ha=@>RDwbEg%VGnc;fP^bfHT@8_S(eyrA( zCk~=NZ|Q`SK%g(*yN}OA^SgII-?gBcyaHNIWi4E2%S?4Qv|2$2)VxlY=kstrdp@+W z1~Ue6B$T$`yjw)4jXW>fM?RluR{J8Fv(#XymXav5&8nbR0^7v4pxCbcRu`8%SOwau z8LZEg7HMTtG*KcJP?_@UR=)~&H#-Aemyd}*%Ooun+Wf>IuRz26O!tp+^;4(xZ@8ywh z(-U2PfG=6Wqne0VBn9Z;OkwR(gU@4SrGp!!N4)-c8kjpKQ$}03`At!JbBz6wZW|=< zF;v@4MTM63y*M#*crj}Ri;27ms{Hqr?(zb9;BENSbxt6TELJqgmz_)d5pEk;&!IH}LM*y!5> zMo~kb92F1QlcN6!PFNz$-{*g=^KH1eK2b9U+w^`%mN1I_MA=<$JSA8!I~^TV@G0IZ zOwYHSg3?h7;$1aN>xEjE&xLnan<@e)MMbVs-tM>thu%r~@;k30kI|RrrfK>x^9?-~ z0g3lTilXvppn=jDL%y^sO^QCCZC?`6>`R(78ZI}M7j)hD_3>yfc{oyn3ptiac62$@ z+inD>sbGBYl(MW`{&_?Uxc+9V$37UYesZFIRv3l*Rp!mMKGmoFqv6E@_GPqgNa8rY zyLd(8f1TwZMM|S8`l56XeQAdlS&hC!_*;&StZ|Vi_n~Jo2T~a+~wrIYBsTCxOqBl;qAMj4sW2Q27j>y z`hGUkydb7pbf8Kg!t=@g1fxEzBi=$XA4tL-572`&@-4^0y@{s1Q)N&=s^DOh`97{-ZV zknek^txXo4eBfHboToqE@8fwkzBETO5(yySaWj7fx~Q)<`c z3lo7O!y7|Mv<0nh{dF$m7H{6YDG{qB@P#c8S!mtTZ*=9>y31cjKLjIpwR{FFl8`*v zm-cvE7JYcX~cMgblU2F3UN54E*ERMgoZqf{Y>Sd7KUvaVF2F}cLX`3j!hgh?GE@Gu;X}~&} z$vSM`YAU5zE6t<9lnXSS{&topE@3(?smdlZ2ab#csurLTo%Ftk^ZUT?{flE znFhM=bKB*e)sc~+NXE3PLxU%wznZX0_D?+~yL(Lt3p;6jz$LeT;Jq)wT+{)5KZp?D zJlRaGjZ~h@OZ`>$#p@(#>O#as-%P}gin#D_yus(wMN78Cp8wK}3u6_H)KkTQd$hg| zU$+@oH{JP;_2C*PlKRz`H=0&8B&xceh+kf_;H;-$|E&I5=;vV-fBevz078p?}f-o3_K#ue6gOmsS&sqi?V`{L%@$<9-Hn3|$b_p?^XHiK zn3mhqqcbGW<({_G;>}xxH1gK?e{$pOpZA4HF01ZVY}di;j@dJ^yt5Uhg2>R|fr&hM zDhTi5JagkRzG*|?PG)(xRO3%#vnNVdj%DdWOi`9<{T^Q}##{!!Nk>i^8WGSB7Kx49 zSSP_SjQuY+P8Gjb^Q!i3+W^YgS-r#wCkLb-GctxA1o#O!&$rmz{X>Et#t?@TaM{Hz z;-`|R%4+71Wml!}R-JC^N!7;FPOW7L;Ai~VTTuAfK0~3XyXs(mU*$-D6Hf9>o#{OVG&QOVEjIFJfwl9i%V-d z3>3A0XUDC0rn7T{o=m7TioG<9X>Tze87U`#8RsE4wSlf**(WFdF+$rngb1{6LPfxB zqp)hVE4kC8@lZyH4I_3=iJ*rSlgrPIgEHFW*QNs_}=nsY;z*#=xKc=h~3hafw)x0r7+ zYpgTVsGYx6w-J}cav_ZSy>LOJAd=ay$|D;~>Z7nZ61H+IUx-J`3zJTu+O;D{(_w~X zcWVAcRLdG{s(yp7c|?w6dR_Y;pYu#jhT!^`p&qL!@>&h3HQ*&xA{!xJTDA$FVs z#FD{XEW{Vj%WB}{Nu#P+3*)^q!=Gtc{OH=pP@d#4`MtcrxGv7|GAh0xnQ2xv!vaGlZ#Xrp;MZ+1f<+iKfy(4$Yi#fgK)y1&|SxN9nT0~8bb zU0clKl}0(_r&u4d8bUPZ1xN8`8^X{CoL>UpPz?FXKMM;%b-830qHiA!i!m5A+DUOT zYvd(dq<;YIw^3JcbLWli*`fE!lxD=M;BVU={>~(EgWZBa8DCqn4T8!hXR~;FO1yl# z-cwrLqGZ(>6Us~}U$Ue~60*OUT}ZExGs0yOZ!EdU6_@zNnA4J%5dFCNC#GcgT75NW zIU7DC?Yiw{in!-&^&HhFR0wi@Pzz$s#Ppr^O3F?WOFE|f39X_0+^O!xx^@E^eGn?FKZUEw(y!~!ya3SuOpQ$CL{C#7_~C?i&er> znR(T7vqjLJ9at^cddE1vOKTKMh+yq50yiYS8ll`wyoDF~6C9X;Ao9*>8KBqe<*Y&_ zVdR6MQpu4)VwFQfo5nRH@D2~Ucy(*Hk~=%;^eMiJYxSuSz|ajk-4~W-v+e7kJWS10 zq9r*_QCYh z>XBwUGNvOy!&l<}nDF@1;RchGShrI<4V9ttetxK+%A>>aqusce1f}_z8HaAIJTv3O z7zo+=J2P(btwV~`g9%2~6XRQ&NT^0zYtB|@N;@MhnHTxFS=Mz8L6N;}Ps#Y3ic7nZ zF-YWK8O$UE(G`%NnQ=`${z1Ozm8gLtt6e@-);s?JCr#(YUAqA{c5%t!55`)kEy#LY zHhHAhbCUHQ)7Ab#r~{_bcY-_`DdqRAZ2k7ezZslAfpO;(21;wOZ|mcg^;X~W#<;vc zCNv+bT8=i%Y`mO6eLUR+0NQ65wl~xMUtZj;fd4VNbxM`QBQaZ(-8ILfB|FC#0CsTi zI@|E)>HhOovxS&G;)rv356(JgxIQ|Kkdy1)4I2SwC#Ew91-k0@@`vp9q$C#p9&t(; z7HXP!p~%|%eBhG#x+VvP9ag{Hr8~nLcsD^Lc54~sCcv%0%KqMp%aO?ljQgm9AKm^H zuKbSWE8q6%yP4@V_$N4=knXfNL(m(+g1urW`hoG1p@H*qQG&uEb=#a%zvX?!O^ue{-DbA>46|yO^vBj2RBB;V z#;!Er`_SSEM02j8jvC{itC_}4sG5Btp?OlwHTWU~fo@u;;wP|bBW*qZm+q|x>APpe zEO2H>>5{RbM){JVah7svfaaF-y(9HrI@t5gv+Te2q5map@ms;}T>eLgB_B*GO;m*^8~rAy|1`3yBEhK26_JRj2C zcWwPZd9c{g2Y}!NK%|Q9oGGD(Vc;zsN@FG_!4a(X)UBrc?x(rx_ucbYu1LaL(oz5& zDD^=WkSB5&XAf08!u-EvnQ+Q2mb?vbn>F9^&j&NNT9=HUkDb{4d5a{PP85IVozvXL z3U^OpnK8{G$&oiWnh+XLpTyZe^C`&sEwum!)!a>aZ;%>h!EZC~5c(14)1_~#ib$9O z1S0PA5Y@6|No-n1s7R>Fl_Lzy<=D`6a1^rJ!w+2#!8$(M7RzTXd@GBFw#LMrgqG~E zyet~>3kfSl$aQ8Juj(GaS4EOo;c&BU$^1G#O$6`0*%f-=42$rJGP{hzYhpl8_wlL6 z9ydDI4n)Z$weN|%Z>sw47H&Gp!VWQ-B1Yp(b4!w6K*=zJ7)$mTkM%cosi_XfEDXCO zaP=YP!W0$R^J`Y3ytF8i;&xRDYD zXmDPrUYvr+fAW{GGOomFOD^`^(1ZK^548TZ7nppbv)|F z$^=qFc3Y1uGCD|;MW(2tvaaF(mlsE_)u*GGLVS#{*cg5+uJK`0I`8EyHTI`7$JmXFaI;!S!IG zf&H3v|0T`5aLv>Gw!^HdSibP3(6vC@KHe^+m5`zc-1S`7$J3Le<~;w+iLoG3YUH)- zD@Z3?H5i-kAxX=L1i4cY+BILW)H?2X8J1=j)gIJ`xbWmiKK!Z&@zyQ2LPXuUHsgKF zjBUM!NJwY$I^OQ`MI^Mm{m2qLxM1H_I68k!oqk>U$egy~X%R1si6f;mfS5t-V_5bv zaz(Pi{mW#3s{-!uJfHPeRuUh4S)^f0v1=Txof|VL5)b~Y8s$pFStR|NvI?lqK6)8l}aM`x2eY#5bu#+Sy#u#47w&? zchtDRw4b`M`8KteY9)c;_s1mF5N1a{K$|qUV^tf-zEJ7yqn`DqRWgnDKD%z|P1ARN z*In@Gcr3ZyfUD7g%iFZF8wfiB7~VAJD>$`-?NT#9y1akMHO#VZ6=In$ArR1=)atF@ z?wUi;1*DE&cVYW`xpv28`)3kBYFJj<($?#KTChDNJ|ScRw#EAJIc)2Q!1SixSQFd2 zu95Ck`s=zJYipi+lbsB+5yZl0|J1nZd4433a<*u*|NdNw?{pQ2N^ZdyoNXkpycj(- zx;2tSE#*K>`Mf>0a<^2oUmDwyKmhhHrdTXEovn)+k@xQ9Yb|stwR9&Uj91t&X#q>$ z2F2o1qmL=Dx*qViA?Bq0wMak|n3q7j_o<7t>{20 zdY#uSEpXPpCH0}@bql4ag_Ost-Hq!RI#=|A+l7lmli>_R!`!em%eh|9NqX`0P(1;h zeL3G%ZYs;~-=}3-oi(^%V@AUb!@!9gIz2xhy|c7wb^f0?)GpRU%+SiCbIdo{dgexn z+*+I=6Vs$iv|$mJZLHgQA27fcZeaM>Y5i*Qiy4JbRP4Q9wpQR={z{(}<-{`BZ@S7R zf)Zj;)P&R!@*g^v=>F;)VqtB&9&0?^v1Is?x~5SviWVA-xmv(JY00C~&Amrs;ZFQuSI>+>BN;qdci!Z( zl!=I7aBYiBEO)wk(*yg_1yY(10T4*&xiM5n2l zTKq_2DrpYdFjhdWYE$th!GCY&qh6Vk?Zp%)>U9VC-46)c_g$)vX<-)?8J9bm_L_XFS&l4N znADI2@My|SrFJui53G-*-Pj##JS&55OJFF5_=ak>le@=u3;#nn>t{SQ(h+$P0>2>L z!G_W&eP^&b8)=Qmv#fEW@9C?*k8Rnv8BdE``K0!bq01k&-`}rpN7(-t!rn^4o~M1Z zZ7BW?*rFENo`f^2EKYrmi>Yynn@zkm!e#uNvkU+5;_H}bE9s>8Lv z2>ij5vCtcV(&*TxWi_}%An{R#-Y)_yqY(FQNYU1B7*xxw}(c2_3r5VJiq;?8S-cK)UZ@G~!Yn*C9Y(a_vO{sDN~Pj_<*V>hIC>A0KOrlk>-=(IhHG)j}sraWS%lvnPWP=400XVcnOOj}G3?rZT|#srXm*Xm*f}Y5xT8zVNbh*>Pmj*afd^%19M@M;ff5^kU-GtN^N@oiDE zTGc|EE=;ymfqVROc~rmnQnv0CX&fmQU`=~F)>3oMmuhP4HejY0ugiVcWbQ3a8Df#M zOgC-Z{&J#e9r&0o3vW)JC~2rNRf_oW`c*4EIX3`OmEL_^n>Cw3Y8VMIdQCjG+ z2h~p*MYTVK=bb%Yy0fxbo!bOf^F`;aPTn?4fSIqAk*bi59D25~WYhPgrx7AnKTvzU9q?%e@L_`{u3RST+)xTQTmb?_#*q~G6qfSoqO1wAu-n3s@(}uxZ z>b!I72PY0)__oM-fjTU5BCSjKb0!V@adrQkwkeG^LVf&0c*;c<#z{w)S9PDEQ91Ec zw)w6Yq2ak{g9~+Q=DQA|z^!XF-)K-dK0Xp<2Pt0MG_S>!8_K**zffD;*vmh>J@@$B zwn1v^pEHoYaa=mwOMkAe5iFk5*P19&O%t>!LE)MuTB|kL#=T4>_G;Y28b#mEsgvpF z>r$EKK%o`wrdJVaQ-3C<;@DlnaUI-qlvv$?Y0KRtx07DvmP+n}W`7P63~}wfnv(Uk zP^B6=(qP@ZY)XZ%NLMS&qqZT<`Gyhl)A`n*i6D}@yhj8$oUhU03FPUIDjQ?j1S0uN zN5my@&?)QEE-=y=BR>wc@qgpz?J$@4lw@cNH;|sCudC@zCwVjn#lxH|lBc3k@V4=^ zRlM1xv08XKgAJFHk4mV~Xt8mcJIOs0jUBwsa;%rIsfj4$UQSH?0D13_uhYKg>|xA`b7@F#-OrVpGCeH1{R+Jo?WZ;zf1Aj zX_^&0kdt*iwtvo=Zt8;#83ZA|B6d@V=;hU`l)%qSE&Dbo^z$H&xOe*4f<*H(`64J* zB&uSFpPS#slRI@R4`suBPfQBCX-Exby^2IMKrO_xY_v^`RIe0l((^$gPo-QZ#aXGrP+v|i?6Gehi z6^A>oMcBR|;r|s{1@znF|4P591pl>u`$xl-|Mou@>1Os;Mymhx+&fA?ju`su=)E7^ z>8L(=YK973%|q#YiWCSZtS9@fE;r@C)b(U7zf0Z1tAH2{G}yU7VWG>!Up7ZMIw9L-jj8vE)5%_D_{Z7`jF;RDygwSuw%LvRmqQt}G5qz!L);o8m z-DOj~PZvs(+btVJWFJ~ZWLMl`P8(dNkZ@M?)07r(EQzk6I%gu>BL)j%INN7pIP7<& z?Qdnb@W!Y6a)#+^TaSNuUHQFn*M}{)nP6(1yugZ&jzoNKmO>1CTXUnBdPe(65_0nF zqiCkp!1@Y$iCWkPqMXhfebv-U3EFJe=pgp4J~uI^+FnpDbHw zUEOhl6@LC_uG}n{EHCQ#*g<16(&+)9Q{IwlMw>9E<~#55TLjikQyF?!l%G$v{g!9Z z=L>0cV?`ENuT)cM&aD*Qd(>|K;U5*%os;Pn$jQIY36{?#wOWhpkhO(n^M1ac8^&5ZiY^ zq%{~@%R%TS91?#ND+Y$NXYUfI{o>1q2Klwai?R4k=v{ByQ2srx!e!-amJ zCCp#(JT7T*xct9!%o(s_Ez~p{L8ta)Q;3XPvKtc0nolulAEd?Ko80Wxzm{{jvXSta z`0AdLA$m2gEh_M`n1{2@PW04+Yt(Ej)bh6~{66c|5|GNcKuhpvE&lRgC_KR`SvpK; zYOxE(->RQ1SOIftZ1ihfY|mTi=jn6C)fwG4J(8qfDGyp%D#MF1&wjhKMz5Ly&&E-J za0oIlSL}lQ;%sT6#4#M;+8x24Y2vv!^YKs z`w0{uCcQIkNTms-(}B4fLxnGD(9(^2oRDT#iL2Y1#}OxUsOD_hRyv}{v1!uV@EB~iq|^MG1gg&4=%dJPJU0=GQt4}r zW&vQ{Nx)kaTBp@ai5N#Og)v?7$Vh~c>ef!LfAD1NP!P>CJ{dnirJi9NJO#A5vdZTc z6R)izcT872^EVkJFo!yzW}T|FZDrtWrU$QtajgwUxr{m&EbonYLW z&^@J(SQPVJ?l`0Loo=|TYjk^SySa3`uxdV0KE!_h>m{0p^*2e^K0Bw+V?35Q0E_cu zD%-v_s(5;Xrw!l9k)f~`rHLN8hHohL!q!tH<=5-bO6w3gGRJzq!Sk{x;ft%E=jV`2 zu#u(Tf|x)agiCZY-UL+}L~FMcH?#2wnJ_Y3ZrhfI|EVBD|Y-y{sG!LW6Im+miTI7c$NdTmf=jznSpFM^3pDO5)7WLzq<&64$a4<6FK|NBCvez6;7FfT z3TBDrcSBm>YFO?>baD*gA^HkUmFE*v2@?HqkQ(?UYhB_< z7>LFD%33n&A+4Qccf(fiznb>RaJ%DiAPA!;!;JEN6~0k0Cd zfpbYyvDx%isz_XOwn`#Kyc&yqZIAjJ>brXeqJ`GYZfedg+C12hn@f(od7PoQKw_#$ zcwrwmCg$eSg39ytwCOz=2Vv#tH7o-|Nj++6Jg*2qQ6K9=p>0Qi$a zj+h!7_}Z4+q2&PTHVo~A=-UkD<~hKKwpzR+Iud+~eqjg5x%}|DQV4a9 zPY)mx*ow2r(GlF2;@XahyA4ROkq+CMBp4matwmNmR2$b8tq4w#dff3BEpdG#SFEhD zL)c}9bxrDYENb2wy9?Bpf2$ia6xXed8jul2byRJxTxQM+5=BeOX*h=I8l=m3D?OB# zuyB6~4EuBMPSGX_4ISt88pb9rE|8`(J|?C#u1NS%edy3jH)x{{Txh;v-B6>JmLRSD`;W)ih4J{mJTUsM+=#>JF@ zxV_SRx_N}rG*6#1&Ak9w?=T>2HJ)AMmi$Q5RXl#pr%U}61hzZneEt(# zey#7$E&LtMTe6h$$@v0Z&yw1>3Pu%QL8&gwS4TJWWo+xVeA!vOC$^7TL|Zf%8qAZ3 zSM3ga0HEPDsZaf`0i@*^>bC%Nx!8KBi!X!DykX*rBNKA>JjTfEe%_(_*3xT+NnM@w zNH`b*cez}M6$D+bY&9K;>MfW!F$~WjLr9iV;@F=?x&wJ)~IA`Jv;cR{%vd3lP{R0Qgwk87b)-X@v4pcPVh1 zyV#to07w)rO|_MB!R0pw{)uJ^9RZ3?@*id||K`Xo(f(f1{lnSI^1sbqa#efD=idwg zvzKR}vg@fQ(qeXw;T@Al|M}+6^=%)$>%`dpU6VDyEZpO9|H9#nDBIlqSKXFewJ-3c z@A}s#q=hiVeJTIu}NDjePdjcyF!ZBc4rbWu*_o7F5qBO zQuS+z96o(ds@lR>n?YZ$oao0SxBXQP8=UCZ0oq0awy}AWDpzCEPp`z$877n_qZvX61B_X$+T>9wpG<&83p;Xb=-`jtUi$>5_bOZ%z&!|siyCz z0Ryh|G@Cg)4Lw^JHx%-3(DWe0ILf|=S}5}-v=e75FRIhf8o^-sLX}TD#*y$3>wQhu z68C+TIBX zQ8rd(Y1|)p?MMFDz_I2kx41KmOU6$O!?^mk`Gq-My?Cf*DOQXz#qa_DcrdANY|3`^xlecM-@kct%hF=;)%}=?ba^NX>Um_T}onR|FhLKPxV&W z#b&Az!s2=+vhB{mB~_+~3F>G2mB&B1)g7!;x7Zr`1pa4rOfLGYjri;dt(*f6(t^I`*N;f1zt^^}vF= zl_pa%?HPLl7Xw~|`@3Y^h&`JJCnuf(|s3Itg_?Q@zbms#&J6Z-oDxGsFV`nlw?FO#IqQUR%a>Av3%q|_l0MTKp`sMnFO(B@S zeWKJO^Qzvir_UU?Jw0jaw1C9%=zV+!=)EBxtGUF1XQYVPZ2uCBswmB|i?;yxO_cFy>h3nH;S%3Boi78xC#EpTS(q z=p#D8yp|F3%z(qS?7P@T2(g2L1F&F|b{q}v2aq0E?L|w)GOye5f zh_FT!h&Y#BlS4mg{IJ@;U)krd{6dt9af$o@3#+bHb|BRnFl9GSg@r)}Z&$nL7dHty&|CTz9JVB39P;ZeyTAm4jm z_tXvp?54FM;MLhQS<-O&U;HeH>)*NK~f1^eWesHb1Q2R*D&Yb@f2AUNTO_pb)rssSx8%E%o&u2N7Q;q2ef znClZgtfxkLDS4<4H-Uen4+1(5JUAOFC54F^r4To^jx{}z0CfU4X8WLq^F^}X%P`l48ynI5>hJAYw zWEi3$yMOWDzS>8&gk#UgOgM6V;-Sf(;UlG7*De&<5`ulpNe?64K9FZTnettp5KkJC zV9^2XpykNUb_`>?~VWT0eB&70kB^wBMTcs~M=-g42%7a`0wD2W&P>0fZvkKo6%a;21i%qy)=;vGT-Qr@`A-RIObv3S6n0lS9}s1 zeWAxJY;6h1;VSa{5NgN8u!^QNl6i5)0rbrXVINTflL}Gux2dTrW|BA_bEyinUI|WM z3dlFEHy|@su%nRtUhZ|QTK_&BEXz+mcwrhhme{%U^$R^qu|)#YuTPtR{f27jk3AWf z?&WM!GITTxs^R?s%M`^+%{NX+mp46gCp2|#3qm`QOAru3o2ciRvs+_ailkqqyXefk z#G1O+r_NWT7S~Gfe|6smAk-|PXeQDUci(1)Iv9G>w|RMC!qkq`2XD0{uR9;z=#=g! zw_LnhG#K9DYura_nB~mZF}uR?udwx(1TWa`yW}i~YRxiA)PSwkdD^Fdw$NsZulgbT zr=c1(Hzb|I?B01Z%`N-yQd#xVg1ApJwpT1;+|5+Z#liySEKIs&{dkrdcvJOm@88U~ zONrI*fuC24v5^iwISE6d+W0`(RC6EVtyGs9VlyK>$DRcA#OQv-`G2V zvhI2W?5ax*1Gj|d_g^sM5Y$27ovdnF+oETFIl_|RErWvo;}HwNx`e#DSqEXRl~FQK4tAE9o1KiO&Nwe2I9kvny9)a45EJ?^bs-2`6s(Ck0F`qrKrSaKVi5 zt6$V3!}0IQn5B{;{tWuC%ga#Jvac150lfy$CM96)#iQDkD^IB3^`DC1FPVBp0LYi! z<#^e!bH3n1ZN1S2h&(6%nwDpm9hD34f~(6aUZ$=lO1>Huj7=~V}CE+ z{`cdQ|8B=U{-?@+Ne?;kuE*b&m-%&(??z(J-S8WGo@d;8=?A|_B*L&XnFCudE3~Sp zrt4;C@tcSwY?#vni_#n7RFZu%gxAn+1P63_ieuB!s_&#?YZq2~@3>6CkW4OSuzO&I z+GdTR^|4xIL>wiCI_(y~fISHk+kIHw^(*OE?6g*Us+`!a=n*#!%_J`2Rmp%<2n3!*}p+2 z^FGhgRgDS7%;Xs3s%x5a+q`jZv%q$zw?Ma4qplKtD!QHkGtc-G__lYGd)f95C1aPv z6IZ3yv^0zAmuk}FFm-_{dI;V>i;7&12`wEjL-UBYJsIr^%QfSS-H;Mms@5~p*>Cib zyoFKAs#aN_{9)?bfeapg@Z2gWP3oM5JTctj*(vJ6h zbFZVf`!Z!{#dAdos<#ypWrEyxMb`@M50(-Z2ef(W^tOa~>I>6m^ zwxR*mEY{)G zNs19-$jc)J5+N@SB;=hW=jWQ4YwtDJ>^XDJHP`;*{M&zQLZ09AyYKsZe?9~)F+7w@ zx)u_a_lvEE>uXC{;;pJVzRf09Li2M*3HL|}4H= zpc{ppqj8sP(Ncj}zAy{XL)mbsh8gysR8QVtNLv&nw*fP?&RaQ zn#!T^1Gl>^{*&wT4T8nB3#&T^VpHBX`FVKnAot~2?aoCip4WpaL!={3MHl6a-=z4z zrRHZrnS|l&*!RtyQCeHub$1AdzlQXI5)VTSgFl*qRnCIsQyg5um($mUcXTbZGPmT! zn?3Xs)gR-PfriV{r2XQzlXX*sVLNkJS}Z?@fMa+Z1^<`kn;?3NCa%9O#Fh2y zWe1>6f1e1KqOyV+PMgB*?Z{S%ZFL4^mv6O zV48zB7VResWO5@rOv^hw=yjEC_MQr9E;l!DA%g8u#h~57zbP+mnKHpU*3LX4Inepe00Yk&`^fwQ75j?B?w0G}E*S$Ya0}MW632OJe`LzrV0Q4g zQT+^Bcu0#jurslLIv|?$;w_4@GQ+<0ow!tcN`1c!oYujVdhvPu<+rFk`92!IfEBkL zUwEV%AN4|1^lLTKW9a;55T1)v4JRA7c7$ zc1@hAtI2E<7mt2Q#cqXH@#AJ?Xd4ROF?LiTq%W`DaZ`TE%?%d6DP|5x83Uap?AQT@ z|AtH&ARLHa(c>nUg5n}&<|S#wS89}?#S+J5-pKNWMS=1*plNm9; zGaLc-_^~iJ%$3rYyHS=IcVe7+QGOhi=GNb$DppIYmG3*erfa1+lSaNNQ*@z-M&Mab zG?Mc#6d;lflYblg`xqiJ}{NFPTNNj8>b(!Cmb%BnbX}#hKb2KOxZB> ztmqx;gP^(G?`K<^pt5+K80&rCoV{ejWy*?ZEXj#Um+Tm{f&|N49)~RNoo*@p(-rA? z^i8hc__om;7C@$*-YbzeIlm83qU}OALX{$b3&Vm|jjjNno{q45cxY@#Y?h{eHS+9% zkyN$@z$cW@YCvOk%=Op`%kLCw`rXR&xjFp-r*G;PnK=-fXD)Z^;w_fTvb0(jji>0% zSzJzp^mnC=){BNtystorSsYB$1vrsy_Tv?JmIax)y2wy1U0700I@9|;OCRZ$p044& zI)SznNLn##?HK@~9h>rK_!n1=om2Rb>+)*1(HOyOk370JJ#W7&wKq4!%>vNl{D8o! zFZWLq^+w#4PUH9_HR1;-TLVX&+0Ut!Sd7scY5JI;m+4~+uZ=z7^Npjc&XFrUK6N*T z+9KXA?O<5fcKZG5i2p(EJ44Y#lB_pEv? ziN=zeRg2&H{ANK2SEZp(dT)qj0-c$*kh3eYW4wyE`f4Yq&Jug24N4X0@oir3cKo&* zo7*PJLR>mDqnu-i9J=k_l3K_~=4HI<9TNwY3ll5ml zIsg+zmtFO^BKtKvH_++mKsw>iW_#QW8qWn+tLygLALO8sJ7EP*a9Rj`NDgGIM4DAE zOQHtGh>6BEc%)kk1%_J4v5f66n}swCLk>#(g5x+~5y=s1Id=W4)K>CxCXc|QS0s(bl$G{ za{CEtg5FX^MG~WB1bQr%O88?k@DU^~{YAj?pDViPfBUy9x_>WV+3_y{%ZLAS!18VE zMi8*9*Poz25Z}y`==E7kLfzK`BJ$xL*S+CY3PJ zzzXJIIMCK_M^=dQNYk4yTA_m}0o?G^S*F4cnw)2dISPpq%w9ioGeD z83g1k0W?_j{cYlR&iTb!@7ug3$NQJiL`E1( zKE^tA&&CtP|2kD`+0<6Nb~rdin+6)@j&9gYX}`SBvyGvP-;Z>Bdto8@r&j)xF6T>yRz&pBofPt0XD@c;k1N>7_H<3V?WiDqmic# zpAa?xccu2pD;3b=Si`Oy7LcRb8(04i}HF{@`zD>=;zY@s_>9 z{qU{3Zdt5#7O9z>d}hQX<5S&Fa~ZS!FHCsmk2@x(U+M2_$U)=^Q@vD0CqKrrzY zY8|La%&Cp$gTx=TwZkIK-`v2!>xW_a+HO5#y)44@PLdlIts|=Xr(mOaA0@&!Mm;6M z0@G(QHGk}dP~&8Mo@0}$i!5l-Yg7%4kv*cRn%;oLve@0}u1uGkJiD3n$Hfi;j6Wlg z?IjA}A=msgNXBiDa)~XgHz}?ADGNHiw4^!W$+9PM9}{vlYRs`d)S|~E>H+Jk)7HI- zwjm)cjJ^+Kr?o@`myDjBT#^TYsy_a3+F~gNdu7K8yynL7zda#ds!+-nBkrX2vQ>p> zr(w2!KH>&vHj{e7Uaf1~jX#}{tieKMq1mF!cu`O<&IDN;RXyEO}nU%3F)VfN)w{N*9xe@_qKc+Fv~Tg4KMXV z@Xk5+`ldbrwY;~ows;9GPQ7qeT|T~VD+O5{a&a6VFNFRkj_!j}=*J^Y*T}uuI}`~U z@jRHXW;w1+uJpFrA?MpEdg9)a-M=z|$db}^Z3hEtaHr#-?9aN1OD<)v~$)`ypWl_qN0}Ze0tQSpg3j zI7SJy9H+&W(+nLm_hyjs>lb+5$qg*DPjm+&%Rq;f>0S9Xw5l=(N7d7OMEdmJ9_rz| zZb9JJg6Z_!q&{FsvR+-xnv`MaaXvo{JsI$(uV;|3Mf)jVL9zlIK%8#!+}}-}o0;x( z);PY~;mHu;CBv54Iov1%K#=>*zi6YVs417fgU(Hnv`SIqrH^;N$F z)`86ruoC-K(nw(F^@Ax-8x<{J(9mb24$$8;jiQ)cEii>xx8=tSKT=)c*(sb7n?OE% zJ80ZTXvmb96{)MTc|ca{GEpZ;_C^AQ$p?R3{@Nb ze_wg~u0?NeO#|5ej8%QJe`9<#--5WnDKqhu_Su;0akkYW*uv&r$1Z1USg-6gHI zCdE$nm^t_>l}bm(ADDf7Jm{k7P9Ap*?aw)123`1Bc{*_pQ_xPiFv6;25bFYGC#&?9 zRdfwMZGw)hpM}g0U%qz;cV3#8WisYFOya03G5R4u);(Wym_`QK?sM{R1{8Vr6W_ID zma}UbhBmMBQ!}K$QlZ0`Tn4NYS^_1wHbo#zZsXIx?gNS~A1^<5!6Vtq}6 zbt22|Z|1ep>-L9y37xXni!(b6r`>MpKJH^6Jx7k6IeAy4Iu^QEl1l!ag^fZa*)tc<==(uq-Qqj; zSm|_B^ug?*=Q(B`cge$vFU8ze>(}%IzO}idEtQ-CLtB)1?p$|Z1qYa@VN-8;$9M66 z^lVyQCP(}<B*!STx#}47?&!qd zPu9hb$JVLB7Z5D%sA4aEp@Mj{smy*azGEVTMy3-sNM9`(q#x@BZ(O!4F)0fvnKwgZ zgMaRLxm2shnC4|W$?LYG=frmL0R=&DR~Ovka^1U!+c7-2Z%)LRMqE$`jD6Xo$e zu~E6nrQ0bxTJ_T5xdkZtIKGSENCkZc>}D zdQMbl>A}yn_W7madXSuKuT)3JI8Q60(lsR$@ju}ie2{JV-o2BH!{yl|#X4q?M-*A6 zf#{@u-ZC51Q1=Lo?9I)Q!e!Mr7B#dYy>f~*?s+|^C5P>+y?BkDA1@RFXslrtwmJ-b!h z6ll%NvODV@D~Q30zSBb~xbtr|SDK>3BcT$A(Ou0ENE0&M(&$6bNBNRlUjkkN3eOPk z(F~I&b^ByRQL}A;%5_Q^2=)~VU)fE2RoEuZKKe$~qZ<@SL$*OmvZ+fx&Gk`}(O;&XCdw&m2N3@^ zATo@lGvY6b_3{>&l^md1<9_HLM4J8VZq2CXJ=WySwoTO5T;?^@4>G(3o(Ncj#b{9c zYLr^(xy5qkh9ZfqKz)IOxrwphC&w){4Y<=vnYos)ISICym`e6;oVI|?CispwPGP57V3!p9dECt%=rtw`(#RM-r~U4 zGM0bolQqYKEJ`XRnO7)?sx7}NRC$Y2n>z)0(B@b2Cbh?s_R+a><9xeDLR2Z*g+t6t z$7;E#NM&g!sY>e>kg~ntCy;Vc;9p&zf2KwN>OxVAw&X%|*Vj{7 zQn$@KR6nRvouH3%V1e~Y$2>$umEA^x6c1OWPgZKdyzbI}`nXO?>LW@ZTB;DDHC{qN zr_kpP4qs-b(Y&QsIu{3!Y|e{%rN-}!BngL)xGxDFGhM(ZDln{y&o_@8<|VC18n3S3 zxpPQjBJYvc&lOmfY-dXG^8WJiXSDGwhjT+8lW*<_2v0k1d2b1B=l+oTziV6vb|6)1 z(kj3Hi-LlfCMz?tGm2-ppEPyS=Nyh1KEvWBxvl(dv&6^((r{TVr^FY`VUX4ArC!9p zjn+^T4xt-E*Dn2N&pZ|nub~nI|Ux8um;R-+=?^?*HKTZM?98Cy;&lB zwb0zS9P9V!A<|6mmFA_JUfbjxtIrgVx-VI)%m-9DfNBN* zC}~2zt&HxB($|_&072bdEH2qEs8t_pKu%u1VQ4V~kdqwOBN2n{T3jn#8yjLhbopjunlG@B%74;`=ahd;f_$Zy7fXMe6(M}))?fsB48Oey?|AsYX2{*< z7Y}gfc8pVk@&0!0c4>KbRk?zZvsTUHIZ$P^BL?Gy=^7#wI@T0RZ?nB|#jssw$=)f3+u@mzg{AXdK_0Sc7bZf`K$^^3O~Z(+UBi;xe*0!<~pf2?l;w-0}%QnRU7!e%fikka#(k4 zr6)b@o_v^@sjaQm`lqGR$j9-dYyrDGXV>YMMyp&r zLOCM`kxCwcg`P&MI%KHr{daO^3TeaBnkf!#>ZFhQc2ebdASKy5d+*tW#p72x^8#RZ zf>udijf}aiLAbDA$)CX(Bkb*3ce9?8O6n5 z7x;lOaGUy@*sQ+*%%iRW&jDwbxqYvPA6^kaAcGZg*Dg7)?=BS#a%}))4ux-$_eV3PXOzt>eKlL{2 z_Y|AWYU+0H=`asqk#6^e>V(44s+sE+s<#3~2pa3F~Fvr}+k( zpCpwAmXcEJ8xT@X|1mndR`ODA4iupccZz<)9JzS0aC2)ub!?@s=i{l~#%>(fJ_Pda zi*OMwa>r%Nd*`>a(S&dyfj7DE+ctkzTb52da(SDUyeHrnHZM`U;j(OOd~Je0=Ao&S zr&)eZB@OGv-ON8?S;9mHQ_M0B@>YiN%d3%BxSnVO4r?iSN!#l(8d-ev$dG)-9L@o{ zAWGod%e3k=sGOz0jw1WgyhU2VTL|6hp{*@nv_slH6=dvzZlV{KoUGz^!b&|Sljb}u z!}z(8!UV?{hVqJ?KS0t}9la(|zz>Mt_Zg+*UL2`O55vR`y&>Sl>n{efXpSn~$*?0vB?tMj z=$*AXIXRntg}<$-6|E;dCpOOeu48tQ7Ik6YSjY4O*k-+0G0Uip96l0Q7KDd5FZQ(c z(8dZ4pjL`6e3Y%-K@uE0JecCQJqYYjTB-si9D)iaIzBAv!u*!|w7_Cx0ZsjGd7&9A zt*DI;E`On0#VQ2LhfBL{g=9$Ua%0qM%Yd70*{S2~Q+-+e!5B)CNbMLLJ2N82yDk?j zYu?AHIv;>ZD<4}-)h;p{<72qW4vLoejR}=)CrgOmtVU)&9Fusq*_r7$2?&ZPPq)x)xqTpJvc>)-jdW>R95bOl*^!AFbWSK z0hhR|`8$`B!7FOMWasF%>3AK6l4CQ+n(`pSLTu*+1WYZlxMyh;w-SzaE(&nltLJlh3tOv~K{ylDQQcVVqsM0u(2NV&O}zl3%AsdC=r`wo{J?}g^N&`b7@3Tp9U zx$A!YNq=#xk@@tUU6E&s=#G@qc1_XOV3?W1? zdgZLrsbU|pe*8^z#7onpnommvC%_#4@nYEHE}ay844Y*xDTa;c=oBSgajcC}b(qre z)H#6lo?I;8!j^~ag$E$yj(TqO0$TP_mh+1a$CDeEnJm&fMhCS|b5I*~XX-OlnXH+c zMP{!vHpjAFSvs$2ueStBeGDkaKtR4xxO1O~Qe%gw{N?t*U#5k7+eHc- zWtR7WT|mdRX}qoiNrcbmkWqpL?Vn1NThwv*jF4Hrk?L{f_-$q3v5ARc!)a~lRP6}c z8o}1yg;&iH+E|N5N0-V&W2<@g`6Vk!xtTsE#z78iEb72~^k4b`XyzFqTrsv3zYt$z zlrqr^-ZN%aaekzQ2ELrZr(+@?Eo0&F?H{if_t=D`TF6lqrNfgmaj-YNvW_tj3sdF46#e=axd8$DC1{(Xhs>I-SnR~;L zOH&82b8OZfi}Sp=A@azi6q53g>Wgcl*q~W(MsafUYRu7m&g}HZBhsa_} zg{|d^F*+LwB}7BhS3ydJf4fNSIt|@nu){;Vcs?zR`R{F?T|%~ATJG9=o>hv=7&(kH z%9*bcGYasJK!4%t+e9&im5gQ)tTU3k%=Sz2Re3o(EnkT`OI}g2 zOzc~1 zCBDZ!j2;+3LB%E;zn{kJA>!#1gC`uWJC4&ys*61+ zu2Ep%#lTOiYF$HxB8|f`qY9q^PIH()CDyFNu61#1%{uxa;$PZgi6uc;%m2j=Q=#7? zDJ6vGlXyF}?~S~S)_xr1Wg$Wv_={Y!8epKtMY`Bg#Sq5|;>t#hYaYAMZ{e_{V4N*4 zz!r;~DJC~I^`LEGzDFv5JN0x2d_Rp+MLW@--#8$1&~?XafgBoNJ4q#{@P2Ln@ER_u zb+&q>cj+z96Wd_2rKx<))jiMZkk>=xYwKWVD{9*1YsU+&%ZU0yJ7*h@r#GIiHIC4|E4p*y zn-pJqkw{aJ9aGLre{gMsQg^Sr-#vz8yVClF;-r)z7?{WfZlKvN&1%-qu(Mf*^!Qd~ zlymOzx45>R{;-pP6Dn`V{NCw=oc!pf*pS^Zvw_h3*Ssq@!5{8{};Y_!JzDP5+MTfNuYq*pYqT9IPc zZs}BFXo(t1Q&bFZpi}mQZT{XyByqK7MB8<%v%}$28@u36SFLxbz)TomR`9JZ$PiK1 z&nG0hnv9@T8MzMKDMMXmp^LagSXsCi-Sp^1@d>{!k9T)tUTQBMO@zn<_A)j(%8LG1 zX{!g{UpW2X9P3a1!P;^mn>+GACrm5JXGqS$Z%^K{ zMoppQr)kXTN4@ObTmqpKJOvHk^U)@?cfeW^*r4t0Q7Vr&tECb`1|hT`&!H9IhaEpI z{UL+Wr#Nt%9QkHmP`t_Y3v;c6$-435FBJW2k6jgk(}uI75JU`VAa;#c%m;C{;pX}5BT*CY>vrL z1~}N*;rfgHP4-4U9laS?0)nAX%X%Y8eHbC|h&0Q+aDGlfCM{N&&|1_srId=22gmc< zcPwXQjTc9+qYJsE5VXQ6#`LshNo2C}2_u;J2cz{5Cmy_1{tUN( zpLcK8wp8XK>JL)8vP&rwT3mAOkAdFa=)k&S^aXl~3T!lt8X}#o`EantKfU(&I9P!a z{5%bq1N^;e;z;3-`;MZ(nb?@=*2PMLu^Vk2`Hf(6CJi}d8^C=qE}+g`uie{Ou*O7u z%Z)xGjtbS!jk!8m$=VfjzonHZZ zoOg1OfmB-{es0-+k3RCo2uhl7xDr_)F`D=?c=b0t$Iz!<0L}Rca&w;U7fruFacTpF z{&622>@u})vo{UM%1w=#EA_C_VF=HfJYv>>N22{fm)}VF9POWVG(;b;J;X#)_21f5o2fj{bPxij2GbHqa)Z~KZ&nvw=;zKg>$dZLor0|qnZP!hSBy#X{w#k?%sp6_=u`l)`Y9%aFK5#E{FR@@7~B%L;1xW2`lOjHmrAihi+M{MatLPmFudh0 z{f1%9M$g2b)RTZy?y1_E+b4hfTN$pEl&QFG9}^H1AEv#XL7~#f4Z2D1pe`x&I`<9u zW3A2JN9}J*z@_Nmu9T0f{2tfPs^<>wg5H49JLS;}6=F7LWb^via{MEHtH3O!KY2zP zsYiqsUsfjTuABWH^EMtmlNqMyQIr`Vi(CK5iOgkQk;mL>?+D$n>@q2e`*Ewdh3&2M z{kHmOjKmP`tq}Y?_v1d+-FawVI)r}V|{I@PaO`6rhvxrT{5DcDy8b(lr$^pDrpGM z)JuSPP5ctM^|>e3_Ncgz#fqshU{_W(dN7cs#PwO0xv2~Gd-4Jx#{lxYl?S=Ps9OW* z{Lc_3v0D~0&j@oCmcRb)<%)GqvXt0BT(cOxeMPTKIMU~kdP|PtuYAPgK#^yqe%#No zY96iv+sR|t)Ug!lIU@XJNs}#QA$xvyu>s74m}jKxUqIY7BHxI$B0}?_0+^*QF&*jT zj~m%|gum&zoXtXF4AKcW@Dq3n$&}k)C}q5sGRvE*{t5azj@ygP%pvPh9%hXhZhGlv zGX2*|v+qZJget-r0cKt}pT7?(3JB&?l_bK=zHV;VFQ4DRvPSmfsS$T}G~KjcaK=$f zA1kNgIUi=AN=Glx3)er%HxtrKG8sftyae7)IY7a#tY)8K1y_tkW+ky5u28H+lZ0)3 z-XDvs{b+m1xMuQC%lO*iP{9?=Q~yVNcsTNfb$Z0nL>Ud`EZ*OROSTl(tXvSk3;fQ! z86oNZG${Zuos_ z*S7el?yVea-PE%j^KNBJ!REP>Wpyu8CO(irkKO=#rHDzvx1ME74=^Gc=Ds2n^r1fF z4!9$;{f(OtW1qF@P7dy{bW^}Rn@N|sjr%HX19}{mfV1FlDGOf_W3rlcj1lwV?98!j z<+21SkbS0}uYZNEBxCpD)-Tu_Iko8Uyk_V)hc5^APtoecrVzCRPxpAA)jR5NEF*u3 z9KW7iG$7*Y-I)HXd+54`{Ew-$K%HSVV!Nj`SGWh-0vF(F*JA_y3i2KBp)A3Z_4aLU zGQD}Z;nyU+ilwPEeu;ect~omQgv5A`^< z&w>-5Omla7{4Kr*^BcgJlToKVxLq3JOum$>D^Au#YhwPV`9of2{`!Jw?K4`Z((LYq zdS&90R&l^d#V<6ck!ggwV<=|an%H3Nq3hc)?B(xOB!Y=pu>L+KiSpwndvB+UbsOA3 z^UNH=+PgxxuL@Qg%7czk$i4lm3`6*hxQ_F%UUY`;q|fE)_UYb5Io_;E9U;Fc>TkEd zuT$0X(O&4xwJSokncct*{A^N9Rb)$}kBU_AW^mt7A!ockaASG~%hXk=@Rj0Ci4SoP z7oP#Lo?8byPJ{>c{xY$3Agt~T(zNW&DLbCzESH^``o_s<$_r|LyAS z--};X{Y&-s@MnL(7!&{g5G&3fy!x;jNxu4c#~Z&p@R~R;F&@_UhXOD3Bi)flb&I6x z-Fr*??}~uZ(Wdr(PeIs?tciO2cJTSCN7YcT+4uBZF@i(6ClKrQv;^NQI5}JnO|xzq z*k-0?ncjQTYx|B(r;it#gdEh#2OjWmmgN3vr{yhRKZ#|zo)}Erwxl#VBfSsUX_lu~ zH@ZE?LQ!`^Svoq~kcF`CQbtvBsaV-l^or-%=MBGy{-SWB+>3K%4m4JhuRS|l;Wnc! zFIJ0o`J5d0=1>9aZnU_kUO!oY>3R;w3KKm*tX+VXw8rrl5K_sAQ8glM70)|Bd)bJY zk=lD)4z#WolyI0n(R`@k$taHH3ZELzD&XzQ4qwa|S7nFZokM+XxdA^IpbuIslN31O zr}okVQKgVsmH{=dl?~4FQ*ppNZ9LZyb6i`xI6mT06!(;aGoa>Hw&gPkMX@!}BM$-L zTsM88T2WgxV*RpM_tC<=2Lao*!=mWJ6~#{&HG9tYNRlnZJt@8xTfGe66007dFm3px zb}u>Pp&h+_1?v}-4Y%nZ&#%ya&yRqs$aVkD_`(h2ygwP;hj|;wea$|VPvLXl)P$>l z!ocP9ePEeX`E^nrS{~divxmKWr9^Kg$<*`5DUW0_8vEfDz3MgtCct!knigP$hOZu| z-}3Ffc|2caEN2&YEE;lz1>^oILH`iZb&I9l(S~5%lK`xhg#OU;!noDtu$}dhkJYm{ zL-(Sak%GNKmq?ze1aTG$Gz2^x{p93WqA@e&2sbD8C+4%^Q?Bld@|v}9Xl+;;XeXmU zE8t@2>K?JGJ@3hp0f=4AGBxVO2Dk5$2*^V_4#P*IzS$G{LyCb9RF)-H-S>?N$#5~q zzikibVAV+Rkg}-H++dnH zZ(#Tyns!0=3+R))Kj9AQKM^Z9brH-mNCGI<8zy|0>}LsT1K&WxwG{)+ECNFNBqX6b3NK+mXOnc)4}@<%xPSTzbqm1xeh_Ntg`Y+tBlxT#;CpYd?+J^eoG*_qNCd!+Ds zM_z)q0D|tz;J@;f;Civl8wO;++zVO#OO5Mr^;a93#V(*ZKgb!`19*;u-Hi3KuG1SR z`QSC82#QR|BHVK>H97KTYsX+{*=0u_6MC^CzaOH=myK)$k!w7jTPY;8>e~@oo&F1* zq_$W^HS_{6xm@|#TFo%72#Pp;#)@0(XRew3)4|CHKOHC5C}5Y7($4|D?L!%qY`K#z zZGEx+r@1}&6mSw|Y)y*evMsg%xqwa@x+}}eqy<5@T=}lyQ@X`GZ6rS;b}@{3{bOx< zIYhWgZ4S?`>=)WnV3RVV_eiv;6?&teiuF|i*?C*4XCJ%T-)fn^V%=7h0pFk0^U;UF z^nyL|)>UIg&J6=@;_sNy)~#y5f`D~>utRo+{wQ;Kjvx1+fq6m$bz@+V%DIak8sA9zs8EgJH9envYWw2g))i05&uXVy@=^427NseVw3pIv3@XE9qE5 z&{pl6ZL=E<%!>D9Vdp3;uLm@Z`2!4SUkdP2%^F)f&URxg=X%6==r+;+VCDWk_H9`K zY3?lec>LN)lx}{HcxUDe!8N+7`^Gu8j5ii*@HJnhTl;vmA}WkAs_4+t4w@>bI;Xzs zQDJV|a}~KX6Iu0~v9DsJ+LA6f6B|80YjK0d6JNr!NBa1EfbU(U8a1BITy!BzIU&W8 zg;1q2w&~;5(rSwx35EFPUL@A)J*|!B1^olIhENHGQZonrn)zY-%7@PTLmjh z%5HJ--v*RJ)8N&yY|hZmWGX8M^@*i6@SiF^-0+kxB;9Xxn7d%WYMXCh_ugvUmHxSA#}Ll*?E6+s8=RBk8OnYApe=3h z=E7X+nTA5GOO)>6T$V?c$$>sd)QD>l$V_yv-qYb89faywKHW4*KYUE zf3AQ6E15;HLrNv%wNc_;>mV?N*J_V-=7sFiW2-wRbsH?bzCkY;l#u+<#O2@33_~TU z$F$roN|Q5l6bG|2 zSt3?bD#e~nx+=Nuz*2GqJqNR)ryVH|45kwsHN=_&_cx} zyLc{m((>UZ_Wz-kDxChczM_Pr<*StY#m@B1V+{Ij3;g^bGAny!2@JXQwW?bZpDgf5 za#vQW^gi&sY&_9V!p8#PHhM-rP}AfzBP@tnOPhOgek&ZX20{L7;;Hd?YA*}+j4t1) z+hTzu<`s{_)KEWLh;3^ep$DIw@;yfCVqwdWT0ZZ7mAfH+OzR5#FgdQe>xW&tW+s6N zJqrQ8^!94X_sQ;7i_e)p_vFCW{$FVWHq$LEJ`d9$4TQ(#4Www%V2aF@p^7Se7aU5- zu7<$LoSX>&5|x|I&^{IkfL75M`xQEuhFtU|siS^OkOaRmS^VuDD8o;G;+ryG1rCxo zrJSM3LTcoO;dS(haCM6PYvO2HecY%QOQHL(QGUYRtyJnHI0-LVZ3_p(|?-nu3?L-(a}(yEUu)ygwLjtmX=s{T8d_h5Cz z7GwZE34M@&zNXwNJlqB2plbhSWhFxNd8}Ej7DLz+J+F@r>Jsq!63C|x%znX_9|>dJ zrs6@xOD4$kaNZv}SeH#&_kSdX+5m%7ZW>k9li6MgD({q*l-WbaeF7OZ_5s*2QGO;V zqVt|MY$$IKIUKAYcmH*I%TN=7q~Ut5 z1!OSKH+g_c8@2GaR=v@(>1jfFpQ)RGK*P!p#7loZd$x2%ejR&i=}$5FnbxP(z6*fu zLzwZGAgA=s^#)QkBnWOdYDCX`$6&t03>LXanc+Rb7V9XyxS!|!Etm^Hr_E{{-43LK zfgObwr37LqjzQSb>GJe=H@l*UT3$Ngu-w;K+%vA{uZAh2&X@#1Nq>IFiSG%v<+5_s zlO3W={(|pzn z;Ezl>ML1o419r7}Ln+Cr-xh7xM<>p=f=k|V_)A~((e@0y)M;TH=P34aFrn8t^yTYX z?(2OVbDk*lXfob}kN2zuidY%QEdQ=|ElR86RH`|1iw$7-W9=d7|5!`+V?ZYl6fAoQju>wyrUd%#X!Y)5S zq^A$Pk|swtYP-A9ix zhC{+Cn3az*7lJHfr~tbdasKK$aVL?Y{bpvDk)1{WmYoNo2&1P1!VFn+G z_;;&dNV-+)#wxeQZ3_?i5pW7(E3&dBP<;UTZfhROHcxqQ#G6go5 zhCY!y-y?-SlVDh&%u$!9_(^?uzBrRzMxE+5ihSoZ9GtlTKYFH5CHvN|b}1lZP3ogXRzi06PLa_t_! zwb_`fxSF^HUlnw_!%KGvkumgbC3oxEe$aDYX!zu=+eoSMYuq(Z*Lia2IlKx9O^2_y zruJcjHNLuB#uf48S_<`Am$Q34S^`PbRmq5Yq##3hhdTqw!gbt<)j*=^zfubrVERH& zej3(PJr_cCQ-YJ6I7U|i%p{J zIe&zdeEN_pTp+ z@ZV}VPoI5-CXVB~lS%)f30u|w&nIk{|L}wjoJS-&Ywi%&-?_}Z!flQ*8BwBr~k>EDa7cxN`41vZ|wwWBJj@>Hjb37`u{Lt^L~_?A=psB&V-cH zQx(vqR=jzj(0*nYxRJzWdy;1%WC)(Az(~v8M8XKb>_}*_7BOz^p1Jy|@6kCc3RZh9 z$j7PhR&;h{m}T^_YoLD6MM>iRLvus$eMC$y`7nuUAr8?^Hsfff=>R0l3xznIRbYtD z<;S?~lvEyL3zd-8cSIPTSej#kty$CccF`JFWtiW=Bs_yC#Pl*|7V^?*DdcWF1)pgjoXS$JtI*5UU|cC?u6NZxF5wcwo5?K z7TMRRwkQa@exBScs?d(Gc{*jMD4ub{n83rNYzA%Cah)kG@F3GP%To#s?hLptKokfHoZh4^0o52F9~ z6E@^8CTt_@TIeV&&+CI`+W?+=9k)=K;9g^`Jpye_relfgDav(?EM3ffy)8*r;5Mg8 zLb{gr(0@s@7Ut%QClx%$ zRkMe($W#7L6E=~UyIys{D8JdaoJOr%-+#2)-?^%}UzZUm{Sv(-578h9Pk`lnQdHf{ zz%nlOXb)LZFGyRsc$VMs-6qGPaWD56{m4JmLR&dyprCBQGa9bu|GA1&tX%7`SBbHn zee3&~w}onLiJ6?5OeI`nWfO1BITwx9*2PljSHRTNXF&Xg*90D4V)+WDCth5YL!%*< z&$}Zp={YQ>-Z4bD?v`2=T2P_{!a8nc=Btu+tWxEYS_Gs(ju6Np_nl=5 zGgV+Zs1#ztI8;+bh#KS&avO_+ToS|xAtX6RE=dTv9FmZPBqaHr&d%`YY)${aS?0fmXFNTnYnY}r~vP?&l@&IFz zYt}wZmFC3nfRz%|#n6bWz`9Gqfa#7FWTzbDR~sxFd0a+=Dsu1tFJT+~?+BanzYsR~ zzY?}Q;od8ng1*QM4Z96_fo%>Ca4nK^GH(<9*ob6v>1V!b(yc6#()ETVWxwyO$ycGI zk>D-&OufWNWV*Xht={ow#A|D&uNWkb1=W~712*aW@Slb@pLbLwTNGDG8e=%)o`UV~ zj=$o(7gjgdvoCFAJ+gc=<;>5DR6es>VpHy6t)70WCYFQ(L8-PEJKWs@?x0Hs(Jhfx z&-}UCIFA}awgTE%1UFZOo&H$B`LvZ^YH?v19xuJC^N?_m#dwFIuCoN=G7<{RzYz|TkVHu{ukFie&{X5@+|PSr?@nXX z`eH}A8Z}!LU%6|?zAh%mOQEHgyNUG~6fp8hTQ?FFQZ=nTl22e>}W8A*1DI z8cT2wq`_Vx)^%i&;V&?uoQ%$$kNmk5PBC^klV^ISiKi z5oJ;KiWOg6HF%D4kcZP3kPDPo7rO~T@0ISEorR@UX6y7XDMLgWVHW4>jdfg(oq@#M zG zc*?Ka*+Tf4kIzLyx2$vVU@hxOfZ!P$S7l;z>V3i?{mZiTw^|(HGGm$oXrC{oTOWxN z%*15Jukb?iV`BJ(u%ykRv%`Uz4uW1_NXcvp>6gsWnFK$_kXYb*6&zs; zSo<^g$F0FQK$M|eteFO~Xz>0J9`eJ1O{I4%TD`K-3}UgGwqY(sM`U?)-1|VKJGd1` zLSN5r#DJRKJJl_&oqCJ)c0qG9Diili)rv>JSUy%2t(_!z&e-Nlw^38SLcTn*0n&-%Tv0!lx&`v$@W9F-+4SP)aVU zVoIcRW!>3frE@(4%Ti9KdtEw_`T-fo6$`cNLRsdPNw$a8Jz*@Mp#?~_AV1R$=?0Nm zuQKFY8}=46gEu`Taz08dxupx9B(XikZ=|l+wargH_S?8x1|AD&^k&#R^sYml8iVxV zU0UBx1w2v6ikCg0^T1LnO*Gy%?sce6>oGaD35)Lut_NzqQAyNyMevjH2478CNM*lF zDm-ee2@ci_(2N9?5Vci+o^jcmcY#^w6~!sS%5-;@cngD8oL*Fx>R!I83I44j0^WsE zL2FUBaUGHSn=Fw2Wjz`XgZgNwdQd}S^vx50?YGI`_bwn|yG?|h#e6DqgTjO(6;MH2Q{H^~E)8nl;E zEJ0Yvy`o-*XH~ZdJZYlGs4J=`)-}y-fGm*Vv)Ma7z#^RD$;bordRC|$Ti^`Z$R>Zy zS~^Z+JXLJ(usqSks!~a3g(AoDcyfKLH*f$Gky9cf0|QuDwjYNX#ZaX0?&j6F z<&Thj^nip3*HS=Mi$e;Hy+GphH|aI0>0;ZC)Ky&yC%*zo0xNe?BL$%-9T@Y z0`D!6TBy`ZVC{-UqZ4tb&t;?<*dTPj<{RF$4l8Gfx=PB_hG9qHp`)g2=&aFLTnsgu z72fd#p&VUZu9fidFXE1$>ep%r;fybafym~ag@x0G3UH&&bVn@4oI&}ac5ud!K@ZVi zv%Uj28yJijHGVMt!OErE9A}7HdY2HVNNr9_1!SLsIGs!sdx|DwLE6<|fjIVo;r?RD z$Z7v4CCCbVtg#a`lE(>4Xe5ar%f0GmxI0K2wImK`OQ%K}92s|t5)O=CNKK6!mSk+- zmr5b|R6{kLTH-s1ocUsC`Eo?5?h+OPpWVUo-R#Yg&#S&EM-9Mr@{iHs^X~U~#aaLK zK65VWnnRLIr5Frz2DW0tbl%9|1dTXI%Y&@QBMG$-EtI0t8jwyDTt>;$3`^}Rx(OU< zd%vDD zBbQa>X%tS@Kh@8l#Pz3vZMd&+Xq-f1Osh9+iRhr3BxZQzO_Ww(AG%IA-qxLW8o_M(> zhGV)Rci~qOhrNQlTIgHPn&O0UxQgRq2e2*yOzr>*exloK$oXV z7_fv<;|gP0VTGYw^Fme|JM?5=3SE6aB`n<2Sr(*k^aKX1a#e}$>xU6s{4Hog19B~a zcParl)mD3?A6<5lu-MDo+`@h1LJh4t2#LW4PVJZ&ydP|UXR00fg^Ir)@s*?=!jyE` zB-@fw|56=TR4&@X#zib>6u6w#LR8SQ{>D;qTE(%4o7w{4Q~i2BmS<;C=gR#KQxCa0 zXQnZZ=ylDd7U`~jthE`HI!N)!WI;MJA@ZD_igx0S!&X?#1T3o;Jv2wHri)$!&V^oA z>sfTeyo}Ba*pV6Z<%)k>3mJjd*A}=TWd;tD<#`7IFIIx_fb6QVsBont{%w^iiX>Pr z5436Ida%SNk-G4mAtK;&GRKf~F>;=F-&5j{q`)(lX-cV-Fi~eZru#rawk#gSTsVqz zwc)&42EDKpUX~k<=P(whyM^Xkga)FKk*sJxM>|CUrc>3`va%$cJ3Rj`zd4IIxiPe1 zagXKmuag@TKgOjK!&-I(t$IMf^K8?aJ(mQz&<1}TTULXWdh52%Fl4|ASp%wZiTnfG zI@{jSO=d0@e}WKJ+PeqNt>|dvPlOY)63>K#BQZBL7x-L;p~8TR9=(|N#v=ZTg27~E zTs@hOeg?_Y2bH9PEl*gwM0Z-QA~i=t*dokGXtcm$gK|u6nXXb~#8VzM8*OJ@gm7F{~9s8G^Fb4v?C0b zuQuEV;Zxw}RGxDikNk)ZF<+^iy@Hg`< zs#Z=v5^+rAfSp-ighLA>ifZXZ7>7K2GzWQ+=f}~j(bjg4!atjm5qgh&Wl};<`N|Sb zB+6^am(3cMNuI)lm)X)DZm>UcdrxO9PsnwBoZ1`YJ8RNSN-wPP7S0@JL{_G`&9b@e zL!uT{ET@zjcxA(Hj?MZtvs|Py_9G#pd&zBrGe9L4_QV-`>O6HuBCRgb+pv&UJt@-f z9djiMLB`}>uqfzii}Ywz5Z<^^`Yr-IjSLS})G~r1)F$vuMzU%yy54K}+`hK5+R)x; z54(~#1%KfaGBbpbu3eu4`RqsW2U%a;_#t9($or7tSK^~3fTc|*;*+OsQP;+@g$d*u z_zCBCoXC@vS|Oy^)1|a3GbRl^oogDz+WZOVt=8P7+*hVc)H&`fW#9#`ZK2%`>rfWFv?!1#vHoWxf)z zi3wj|c#2(AWs1x`Zjo!_)UhVzw9g(>f72*z-bwVQw_Ve^_3gev-GW3h>JqWk@E8TmVn_N*_0#KOAf*aS}BxaCT@UlR1 zIV#ni5zvNZnh|evtTd*+n@UFZLXn?0`WkqGqVPFW%f`*a3i$cRB%y^A`a2)u?PX_D zk_$q)g){jx8D}_)I=m(}qT7RaOYdCw?FuWGud1gX&ECh{lT9+kY#@~s3Y2`+$tqL? ztJtB+60$(Vd_k1^>?qTl!Yj_0i}j=z>3@&iqXjeeh6WVjW=^Q#J0QWn2YY5;$iGQ= zN$h8aynbm3Mrb zPUDa`44Qz$y7YXRDtHu>5rZ0}t)uFD9BKsAhzsqgwv};I&oL?y1OJ0>w&X|sopeq%8605e6R_q{GmX?y8$y6!r z%>WjDi9V{dLqb}eyqERDngN$k3x~JDP@FnQ#b|11x=5KU=BbgU2W?<2&B!o!uyUcxw&ws7 zxMH;-%l*v-DgcV-3vv%g&L!9O9UIqK#)985bhwcz@@c8-NbPgg_>1ZYogIVotwzNmdm3l zsB{L!tJDA-iuaOc=-D~&^kfgcF20sx-q7qLO~r<}f9aCz`}}9)(Es@P|M>GTM||>^hq?bwJz4(m!yNVR zG~|E$m=zJ{LIQz*?_oa}B;v+7~VoaUJ?YfZMRXlSeDw}cC=W|Pd2+mLn;T?x)4 zI!E*8j3BD8k&qkOqy_ok>l9nt{9A=eLGxX-a5?zEL4MA*y1B__6qsU(!lnl`zOYIT zHj^q!+@n)p<#L$Bew_UN8EIatKv7G3@LNJ%84zBQQImO-I*8X)-DSO|ev26Wd~*<{ zD~!WfFky|K{Hct|^!>guW}Mrlez}~nb8O4=^Bi>zNaR>u_YNTohhxb?1%G?OB#_bU$INKQ&AXP`@;SSawfh&_$jPkc2~S4eO?oHXjZzV2a?e>!$$Oa zLHb$~oJ%!RZ*g9UDmFaB%`d}_{U_PRZo3WU?cMsk=92WaGJF<2p)<|r>CkP5CTerJ zEFA3c27ETX9PAGo?WdC4{I6H01WzDC$!l@nQEr6m2KW-#L}9oB)7DcXn?2{d?Rw+G zM55>f60%ElK(3-=FQ(YMgW6Oc2Trofy`<(!_H(N*K5(xeR0MKYgPr4of>}k_KvgFTIlK;~vA;l8>StmwTF8 ztr9x35ZE~;oj>n4PA^}~KzHNh`Kd92QL96O=-bK5hqXU}w^Uw?2QEg|m7jEDWwnT^ zq9rQ;&+@k{kuu@)nR6JD9XSj%%XJAW)%u~JG zeoFe8IDIZ;?qURW?$>}HSUC| zuc^8|J}Mh%4&So;u_T+DyESq!5+vFg9+$P@=c~vl?i@$e52BQfgR7-s-a33wabMhh%nH@4XnRHk2Z~xYVd+|iiqc?4dPQUbZ*B+$*P!gS zFRSaP5J-rsFE=tI~ZW z^eK#TO;3-9&zgkpVBJJJ;^yXu0^CV^Vl?Dn|1|U9p`8x0M|d$j)w1@X%A)d$^$p#l&i=Kf!4r}cBHzY&;wZeHHbBZGT;ChHom(J` zI}7zI0PZ03Liew6C$}~#w+h27LKqs~HeRWdNxv8}TUc0WiQ)I89m01ZkTHI|C1=lq z@~Rt4D6KD)P0`zM3jdO{I~C>@D)JPSVGZnoGRibKFEX1{*jE+uJ$1gknHx)pX7_e- zqlz&f(zqyBxPz?V+FxjHlX?a-=e{J)EweP+IyYPDiDzYdh7ztPx_{OAVlrZ{`Dz`0 zW_UMS;UGKm-Nx!c$LK_>JygXG8$<7A9q)X;7u_m=@P_9%N3E-uQevJjF`_$1Vr{zg zgfU0HXC4T{UqG46pkai2+p9auz>d=>HPMZEoeXr%M3ULDa0jgXICw4M?a=8fOUY;N z(|w)`c#RHr^j#VI!`oFZKY}qG;HjRIqenTk_mL4FXX3 zd`GgTF{9vVBR;pFwDgYqRxT`|OO#tW6JN_(F(Y5Bf95~Q$2Ob;VAWY?fKXXor>F<6 z2qg2%F_CKu`OVj8_FA)x`@~oSsgeV+b7kmg+f=>6;sHygpM#~ zh4!rS#C_C@VpeVf_F8;3L27?IJaIwBSzH|dBYBk;n_{&&pi`j$U|5OL< z3(L9YChrx2!ejdf1`$%)eX(iSH%+^Y$F3qHl-JR=7{isM`Ewhoo?(XCYPYFFXEyvO znLI#(bYBZX*CeiV`QN`H*>|k9%=f$lyLh$cYkLHCy@P}W^2~TE$yd}q-+>X`yX9Tr zL-ObwR>;gyx@b?z8-XJVt+KYaLRKAXe-UZ29>Ejeh3+Hs+KbWTO5}lIh^EOo;3qGB zc&GrH2*;D+$J_=F1f|MrE&F4Y&wD3kI-XSi*wa6gBi3_EPL>qmk_cztHq@ec*#d?^aKScjHmn!|DW`G4&4U~>&Ua-2>Gd>M1bb0LYLi)o?>hNEe zg7JF=cC2fZEfdb8oIB`-mml6l5B4=FuMkyT(GIYzbxOOj0>09SMW`8Mq zrNSX+o`uTPZcH$(G}N;L_tK*h>w$^{AimL#BSoJ3pSZLJoL!e5iLE)0D-56C;P-nz z1FH(!e}e6z%Q!KieX3)(FjpqsF8#H2%X7I!<8%I@nF)w{w2JhMcVDqww2}{s!~B|d zr&+658)u9iD9_z?IvFuIVgAPXL00YhN2ao_z|}bW?jw!Z;}h1sT(YP?$ri-{4Ia#k-8p~SEqOyd>Yv?#h^W3ud0J*Y~PQL{_zXyoq__n^zw;!%}K6`0q%BK6Kv8w zyLxlTi43rvV=Z1?>lEjEM_=k-^X1snZ31!eym9=e+C&k}Yj7mozq>hT9s z`goGS^hGSZ&-L>BSZx}6Bpe2MFpy?g=H|BCq7<|8Hk}q6#;3&Oc~# zK|i)UZuOmxoGyImZ9qvPBmGG?)~21Yli(TYgcuqbh4iE*xE21gU&wrD8Y?|XrXa0m ziRUea?3fyXPofBx2a6#86CB2^lVhjL(&`*d{k=O+3{yRhQ76|twbpC%_HL={3QYyA z@9_GofV4?&PHpV|L%yp*0ZAXL1SSbfS@r{ouXUz-oUdi;vJmV@#|-;d(vEVmo8&CT z3Eg+@zVS}}@dJ$g?#rl;S(T>~`B;k^YHfHYA0#`s-4722mXF^>yeMqi9Gl7$~%Ey_0G0? z_N)HqtABU#(Q{@v)X8DVI1ysdJ%F^czQIQ2^SVXF2ju?oa&*bE-pmqJ`!0HFsr}pi zCLhd?nuHbEo!1W01X5qlzd$!#r2*H^qD1)cto$;NRVHgEPWlp4)ppj(IFYse$z?jD zzo_aHLa@XOH&>LmXGSyVvZ?EnRx*5cCgW@~2`CW~TKNA8-CC2|>;~QsZ5gA=ysAZ? z(_?v`2MW%V%3e>7h1EAbcqo-k+kRDTw?3aYU1eNH{{^}k{xfuQjnxc4FELG>EJSy) z!}u9pyTo&Ux_Scwt=NhFvd9qOl*`TV zGPq*B{P~hsIcwya7mr%)XL1Z&R+jeXG&_b(mo~J@>1yu%q8x@yT#n09`2ZvdEK=lU zMW_Y-9ugMU2~b360x|->0GH+J5S0QF^HH0k*iAhP^G2n1tqy8&r*D*MPK$X zLzie(-)L2Cc$ZGO*CwXh?PNp>|IwvCSUdjI=~$I;yXm+mgAjHE)HAqf1x*-n!{Yly zvb2)Xe-r}`Fv@My&R=X6jFpECua*v4%qTN4=_&r=H z6Ic#hyUUQ&@#7F)E)^Lm>VR6h23Gi3DEPWt|HUxl*NRB+^KO$G^J}Yv-*}Y=8Cp7z zb!qIV*|}SY2l{|FuhY;vF{{t!|x!|$EsfEN>|ySP>5){E&6sKo66NDRR#ZC3qt zVz4K+@n*VFIXw@Kz?X3b71^1?qX#@*TS@JklgA;%P`Nj*q}1bW;)#zK1^fyQ_Rs%; zz9HV$tU?wtKc%+Q9Up=3pVF29!FBg{+ZCbYgHq`oiPo|1oH#|Hu+ooJ=z~a z1~O9(ya2DN<^fGKxd?K8ha!I&zpZAQ4FO2?8%`1{GW=)!=DS)tCy(cJ6C5?9Qjz`X zT%@Vdvd?XiC~H`){SXcBt@#sv12FuS_iy-3r^gQ==|(;N&-m@SlzprjRhCr8_Yzv* z*-@_ek-#&8g$aaOTiUc1`3K<)0?RG`6Mj?J!^5os{CTp}Zhu)9Si1(uCA4mCSF7jT zNUK5WotUL!8J`TA+iS;7Q`(}Cksp>(U&~*{Z;$tboqWeCIg`K&>H=~3naIMFJ-Drt zzh0tfHxEnUxk8_keN~-oeTUfQU{a{pfhki4Btc9kBTEmHF=QXQ{wMsV*0C}=T~Lmr z^nq%Yp6cWM@A$2?zesL)KGH-6&>!&I?ZM1UVJc9Aklzu=s;tu*%E^QwflJngOx%-V zjcP0HWny@L8pv89wOwDFyT*bi%Gs?>6c2kZx-bw&cIq(7)~)FkJHmwfW; zpoF$i^Bp=@yDrdir}mZiuFOlKOEr&bBg(rFdIA%YfV(@{uEYdtJgZ;f3plLIIUR31 z(w<%1#i~x%Vu};^LVF-Z%=Rgl+opzo5iT(*#1DZ!Yf>~u^`-9#$k?&3duh_^_Ni<& zK7W^~GbSN&WwF?cFpq35N9Gha+u?l)GpW{pr*C-A`8U*|)v@}5PdgRG0=#GLxs&%^j;49aAm%L)L-Z0ERwJw)YL~R&g#32GV?>dN zWF6sU*x|jJ>yxpSLiusH_slJ<+|_`S6w!yI;((l0bgysY_S+*T<*J{L+h~pni9upq z&kN_X*jUP%mgjVOR&gyv=PB*X>mr$D`2=;YcI@2k%QNVSLr*HNTAwSm<3Btc0o_H2 z3`25Wp9G#ZOlso5*Y2Olz4j+o%aFxSqg*CioZs1_)sS?>&OeJ#e21#7Js1go8;B# zJUKhaglE{VNMvlm8I}RYYJ_7QqlUgtSBZib1T7T+MmUwEQ8<{axv; zjVYIsD3{J@Wp}hPt&dW~q)h9jxObA@UYs&$Fy87k+z4UKw8`r2Be6Z0qKfKJ?fwhA zO%MtNO>dKND?Z?$G8ju;$?IdA;rNI;T8<;fA-4u}O@YK2TydX|h@(b#fog9JlTr>m zt?5tG!~$4Z+keN~MriEu@fY2~MD#@bQ7lwa8tY9Ve>SL4V(6~Z%N3ka&{vvsP5X=1 zfd9bTt`zO|Vu{MbbGtiT*=B90J%~$4yp7PR8Rk4hw$fw(Yttr$@ZgX>1%&!VsnB}j zpLp9qXCz)f!w&9`p42>Sq4P#`6RPonM-1HuGBgdH0mw6UgBMcxd8nfj96{z)GbY(h z>|T2&^EUc42dpcGN_{8x){FibiQGJ$B57a>vx)Ci;3{<@jVD$parqJ+nm6#@2FT6J_=#IfozFqH3NI& zw+1h8^xsjFbg|!Yda{^$<1|JdmzT1Rtt(ToHhMs=1=hy38$c)KZWBPNVr_9H>$l78cjK zaSd5#*~s_KanP|w6H>UAh@#r*)7h{C4cBzWpr~lz$l`2p0~ASCo;|A{Ra4#QWj2w z9uP)v_Q&eVIdo!l!V3r|4_?$gp`4?*V#oq6#7Wrd`s=FIg+EL&S~UA7W0g_<*}g>~g+-jyLq?XMtG zhu&DOimElL>K1E5Y|a8?#?gR{iv>y)2CIqS`gDLdWB)BNp5W|uAC@s$xEKY)C#UTY z1s`*(gy_w%e41YFQWlSl&#x!t3!BHgfmEq7Ia?B_x|A-}K?OoC=$G4@5Qo!Ae{EqG zmYz{?@1YG(KUX7ZmRqprTuTQ1AD&@VYh*i!i{1|zWAnR!BI=Ol&3)jexnTH%7cu+l zSfBcl!yKe%S zhEP1G&xGx8P5Gs^jF_LceSM!=C74_?gD zO%2{A<9(PfS&(-d?s)b4c`#_w#=!^92a z(2qI^hLP8EFeb3v<3surpKMVD&M{p$;SStSbG|XT8*zNSiGO_^~qhGI?S^hvN(Kn zGoXsn6-AdU(00(CYTBn4Xd|PAzqUr@cNx&KZ!_nq?%Hg0O0#$i^XWfqQ#`aObuqC~=Os zJlRHgSDo2sTHg`*BVqU|nL7_3zPb7=l+ zEM+PoQ6$}4!71&~{FP21I6wzq&b0)WTF-D4Wk3Z7d|4H`-PU{6zbDghSauunc5T9fw$yeH!s%L4TM)4 z1Rv~(mWR59N71_lC~kYEv?hSzuWtS>)567M&rkBD~4MZvVK2qd?c zO)60IZz`^7K%?a>YTQLx47TNN zmE^@2ZrA@|%eTHb)&5QyfE8#ZbF9@$PrSi!0nLc&@6XIQjGx4l4*-9hMrxsVP~2YE z_cM$Zm70;!ZdzZ(o;0avs`y;6GefG=gaxwH+-Md0a^%P$sNWb@J98(EXB=Y;(UeND z%p%|rc>QH_lr%O;;gcKXuD+TKOKw)=BwI3AbRh1Y3@&RHevOsJqa_~IJDT*Z#Bv)i z`J1mfjn?3+r>Q85$QL?Y{bUr;h9o-*&55=RM{YlYLP>=QmBBRB zkxy~e{Mwh}j>&H1jr_=YuweZtgJExC9%j_w;e8CJQk$$uieEO&U_G+_I=;i9a8+A} ztmxj}%!A)WFVwfI*doO*5OYmhiEk=q>5(|b!kf~}5*Su`8G4Umw?^@oH7bk&Xf1Zl zs0f!_kR8PO8xwU;u|833`9i9U-`h(OlrT3vO&BDLU!%Q6M6}8$>SX(F4c0gJ;%)a5 zmONW-2Gy0N06kkImnJBdbQD^S|83k7|SwlpVJrQdPx;j>P-FMas zn?n0iVhDb$Sgh6ogNoM)>U``kJfYv9@rT;w_Kg@q6;TTE-xqHQ)yg8i!42h2>mb+4 zOYr@QT@+kAP~*evqj1M(;%zKOo`}SE+;EfT=+#2NUGv>5Ny$R45NIDB*W{zsN^PFR zdl9d!eMc_WWm}VAkMmivFvzwZZ~CuvF%E9a#7UvU{)Hkc9*1o> zFQfKtIND;M0tYx7(j939c-wkC#ZTd+}0Ud{ww z&fm-)ziVRORt!o~sqLSk+_Hjgz3+6RqlqKtYmrUGSPz=n|5^D4+?c_@CBLST;E>l{ zxMAJv$_#(q4hAu7A@}&!S>KoHW8^!9=&@*xn!j4}>qRSGa^nc|o+L1gBiMB@3CVVY ztOL2vbc9w3yRr;%6^=WI%zk0FV3xb&0zkk{dG~9d|RbyKsff2Msu%aMwD&$6VX8J8VR=mwZa&uy5QU~25ZZx`)(j-Tdz82TK- zfkWgbs;q=rT3w@;rPhd>n3)H~@*c@%vpAVuhF7FgCPk6KLPgnc%}EQb+a2(yig-CI z@D{tc?xRip3h~5eBlZN*$m}WFs>sXs*B}5k(AYMDuyup{yV|wDWM6E zN9FfIjgZ~=-Cjh3$Tx3E4?Wt4ZcBEL~cix&>mA=-{%p+Aa-W=seQ#} zJ2|YvGhG32f2!WFrBHDw{L-^F_Xslcc_m&lg~%sF3bIQ+igMW=tzi8BWj*J2ty_C=H!@ zwP=?*wlgWpF2*jMbD`5Us+9CE-$Pi>kNP?w(sjM+6AATBX60yw4H~8_V!>YwM#>Wz zj<3o01cqpxF1&RHWmO))X$k(RG^B%n9W%Vj- z6#v`^5uoF;Jqn7;FuUCcmqSdmKE^9qUm62ZU3lvT@_p8~I|v7(7sz7aGhcFiW$B9h z!ZWa9!0N8ZDDG`0<8ym;4+b-yqN*p|T6&|m^CAbUUG>t|SZI$yLXP#^xvFdQtRBv) zep1cDL|pbJSooN7w0~B)GL($wh3)p^tc@}-*q@~DP?9sMBHO~lcHONZgVk`{f8GRV z4dVAqB2e65@TalzU0vhgxY(cDa{5Z6_q^@7!L>RDsr3(?S03hdmW&v-0A0uN>*r-( zaMbN=iDB`PW9$(zc2J2Lh)~n#;z~Rb#1Hu6tqJ{bk_NUME)ttd;c={o!Z!6eRxE6O7 z2z?&1*m8Tg2NQA>g&vtqq(kts;%@&o``EhaDDU&sgB)ZHT)#ckXxLF1-*Y{!P8PtF zwwBXYnO}~{CS_!TbI-BZ7ekD3nR?ht1ed9pR8)TB72(||p@B{eOt<#rZsmM$l^E`j z422JQyvsYIxUv*al^FKck=qXg4Es~&Ph;)m%Crk;onl%hXjcB=?moN>8m?zby3}KS z&ZV^8_~@~^QW0V$!A0u;1zpp&>GsV5Ri$2HTX5(9xMbP;& zS(zH`I#LL1yebgMj&Uchwi<_~%ob^{IZxnVgp>eb8l>>b)I9T!Y_wty7*bceTyp;}68~WP%aoU4_R`9@Qwp>IFtd6pwM~ zoTA7(FzhgFA1RGl@LKRKLvW{0U6hI>T7NTjB4r(uHTm z$0^fe0`u^Vuop3?d4fy6TU)&c>Z8dy^@cYKWm0&VfBd0SA4^+vtll|6j_fZL{95-l zHk2NM2zOg_zryG7a`(1XKoYpfsw>mEn^qVQUi!u0hZ2195k<9O*!Wp6WqRr5$)k-5H-&L|=+2&yfs$2Rv4-cOmrop; z1^P}F_(p|fUqNH8v@Wsi{6Tpj#E(}N>}|6;ykH5^s=4pJ@^xjruu<1~ zKe#mRG%!l7p3cFP5Am4ago@-Xf-yoLj`_enN86pX1AUbX{YXM=ZKQTOR))9`G5MPH z=}<|-q>j({+sNPak~T^%ynd6^ahq3V_08NKNzgM9Iu))xFL8cb8{HVN6UwGNx~|c~ z={s4BwwaApYKI^uS?;5wnIT?#UjG0^YAU|t&v6n5HJd6qBZh*xFT>jkF}sI&emd@i zVuM$L?mp6H1+9KKu`)%d@%r|u;BcpAXHFxYVd+w~vI?>k z5`%u`fUSb5d3fpyq?R0#hF57Bu`&o#M@Flx!^ix70FtqbN+nMi&({sfNLZZ{;d{HS z)Yh4NzbY*`yMFC(mS?@oGx|L}rma4O!Z2bvj5iO6f=V})ZDj^3Cb|p5)e-x+o38sZ z15;)lF}vmx;DpSMSTYM~<>CVD2RaIgP}$#M#m=KV7V5I$cH@v&sG6B`_bhmIzJ0X# z0_f8uC`e6uF>iOseZDp0SGoNJhtAct7%Oa^z@z2wE4;XhzjFm6(Pw?*wUrJ=sr|6b z#P91tG5au-X#XOcv~`wqgt3Ms_Aifb_dr*Rf6MnmTEx-C~}5vy!i} z2K)uG{LlMnoRtFzKkVghcZ^Op9oeC$qoWhCmGO_cPcBv0yX)55)^+T`{%BVB2cHlDeXbYjEGSJVOzJ_*;Uj2oRKP! z)V6>KWXUb}%XFBUwiM7o%|J|2ODnAiQMm+2vQir%N(=}Q0=X?hNCJc;Bq8_PS?$a| z`|SPfv-dd<4}bB%v$9z0`~7}CulMKuew?T8oUAM?|F90Dn}DS+>e)0|pi3{+IX?5f3T-Dd5?Y{?+|*VU2Ni zL^50@eRl$0su~gA<7}g>OLtwpW1};PbN^kZn?Kl_)}vLw7T19LMc$Dj{ouqWnBZz) zA&*Fw!27zOtlLD35-HgfQ~?qb`ys>rTR%7BCeQH^1t&h|(SMmlDQrc)2hEOU3No}k z6pr&|il(uCE?=`CrUVq^=G@TaI22&++)8AU@ug?{Q|kxlD-$6BHG87>$ue^GQh7d=

}829M=YXdw}aB^)FiL!tH5N@y?Qj7Dv8W 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�oporzc{Ks1X(v^Cb^C$+@ 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
;$u8^*?214*7fD1OHZvVH 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 literal 0 HcmV?d00001 diff --git a/testing/files/root_file9.root b/testing/files/root_file9.root new file mode 100644 index 0000000000000000000000000000000000000000..0016b5f82ea9c434441408909735410f4283a725 GIT binary patch literal 536449 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 z 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

#QWChubgn{PQ>3%GUR{G7kdYqL@{4ObGY~ z`ez1JihXee;}v^3e?~olssnS{_r;?OLIcaxjU)t$#&0LYn+u7dT@1gd2)xFbng^eiUE{WeJ<^!jpwARwdYo{u^Jcm@9-D-zo+a(V>EXrjW*;V5L=-5fKTfenHyC0Hzr(_GbV4e> z0jD%=1u#Iz@UllHw&L9H677B3?A&jytJ1@iN1!1vwDxJJ*V&N5mKZE+R6fCtP599As%>~JV$Yv7nnOuT zJ98hZZR2wj6J>Iz?J`IKNL z#j8maYw`6*2#=ip7*cq*^s4cVX9w{D(b96ZY7r>X$6{ za5mEuQrJ{|5X}i~Yt>tg7XsiaqwEUfl0%2Kx9^F3^UTvH!Xu@E$l^E1TaZDG2;!n# zM_tBV;3D?t+vGWc?yEA zEJ~HtG)vw!5O{aiHY9g$YS!5XbTX6Rt+&GtOyEXIw(8e}`|Yd+gY`7x9KN?gevvc@ zF>UJkIOVg5Z_%b=zBecMj* zbld@hmSJ8$z_NFNFlHdfT+#z2=iLSM*vb7cAJTs$NJF_>VpO4HMfZrK$tZUDBv`@!H*fTEACqreC zUq^zcQTB^G(wK(^mDaBIAXZ*cclxWKreyvie}PM3mKfSP>S;kQlSOZHA}htR#@dR1p4$3G<1eesiu)3SA&1cOEPQjN zcw^rOoDBEc)zIfXnrg@;;GRy*ze~|mcGb2C8YUU^ExLYVq(@9;z7~I1Tk}#>uAQGO zo_nI|KAbTlK-PH#+nVXBwA^*Te`rz`KaxCgTO-F7H5UQA*SvdVA=Wq0?uDH?$Y5Me zz9oJ&LE*1{q=BY2QNCCon%#?hDtF1n?U2B>LtEvur2dJL*J%g$oY-60>D9zO%R5u$ zp?EVx9dds%F>yVa@!O?7&Q(rL;9}*KcF^$p^5Sj>vu9;+S75Z>d>mNC?uUS&)i)~d z53!&`g@lj~Xuz5!qM(86dvWd7y?9!&j1;hBvx;DjH_H@Z7>Rwzc$ zz?MguKM&qOQCisrXo3!im$D#tI>X?YML)KbW+n^58;u5+bMacBtQ|1)sP!a5RZr|% z{$)6CcKV?!4~t&6dC+iczUmK3f>kkv?v&V8@5$w!qf)_>RYftPI&#{35jU{-w!FRy zLWL*FMH#0Da%~jjRphdOFe72B*aa16V4IKWOGvH@DA+dOnQzqv?hJ$5+gC-m^cGG7xcEbLUS$UtnC-}ZAJFx!S ze39?EeFrH`exJ2T2&*0M#@G6O`rmB_Ym2aYtNQ&qb!TP*DUea1Ll2@HkNEEXvw@07 z#w81bItSK2Ox@0mI!Z+B9D~P+=^8`6Tr8qf7U#Tk1*3%(z^0v`Ef0I+- z0L_)duJ3tSD^tyIvIMd4im9+P2HJy92OEa{zFUzc=wR{_!Nc)dT4n!mMXmDxOVw{41UG@KsYMKd@&PZtfy zaJHQU=q0>RIW#Ha#O1SMXqL#%tRh@9cT(0ATFiC^(OX3qI~` zXDI$A>?-Qs(#+mI!9a|~V>a+8jzh}^YN&|3WtzdIa5l9)qV7>h(Dy4;mv@DTcWk9I ze7szWvOpVnHy$C8DftV~K#^D7DM%JP0W&ha#hpy3ukGVD)dxk!Y0-`t8X-+A@N{Z) z%z!0!WCPPB>|@$?1QqOXG|OfA7#W~T6IIHm+bxx9WxwXU@&Gq0F*Jerjx!$i4~YmNjKGQ zKEAE!s;9ueH0WRty2F8H73Ux-@Wc0KLwvj+Y66(Lr*>eDT0Iz@93cxY$c64{fhzb4si87z`3fL}SQN zYH2lVR9UUixNY&rr2gV7QOQEyE2;eoq>=wJTFflE`>zznyux1)~ zrcrqrP!Ay;bs@4+^9sf_au9CWY%v9HQr7YDw$kRKq|5NVvFIgTkm{Q3V&BScu?|s( zY|%CJlKc1tA~Qf63$-dORtVuA#~88Xj2b$3sjSE4!Fqw?1M2WR1@P z+c@D%E7g`&ow3;LjS0r#1(%z^OD+8341=a*A|(dnSBAe7x0N1b2BlDa9^({6&Ay%2 zv!f?+bAduCLeP39a~BKNdSOqW*_3aLrkXWxHRmp)gtGx&DBN)^YD7*x45lqzAhb3{ zYTfffB?%glwu5u-fwN}aP6OoV|9U}dIMxtLp+raNba^gkqwLX+%rOij5{HhCWl}rq z2}99bh=d=OWdQodXSxek;Ivz-jH)oaqmuX>yfTtq38pz$h-QBXs{HIhUY-}}64UvO zasaPaYEtK)kV?th$K*8w=`!=jqafs&uY{b$H+Xs<1OuA%gTA%RJ6 zwdWto+r}nkvTWRTw^7_Yt-K9|a=KX6Z?waPbY!uZ-(YthQgwePqUR|eFc`%Rp|D?j zTzP=a+kr9~YD?v=RH8KdSKxCiXN3{YLT=TOcn~kU(R|Z)JwVeZ9RBY35Q4-y50X_> z2E=gZ)iNvtB*^7CYNw)Xa3t#C_o#bdp!??E7%u-sc>71wzaQxSQ^Vy)|6;iONps81 zCI9Zjv3u<+w{@@fzAGK?7q87G{qe-BoUgxqt_%m18Fo^n!PNq(rxaaEIJcAt4mC4&%Di)`_2U}Q;g$3@REv+TW{hw3)4p|KWywcwV!iHR*T3WuGmkIEFMiFqm5913e|yZaR(vxXRW zHD+SH&UjFpRbTl8F+Xw5Sq7m#Zc3~gG0ZwHB%WZW6~ zNcrCs^S1*>C)Z(!_XGow9ZW(f5+rdm`%@gX3oT@PACeg~5_NaX8cS!m z*RJ1i9cqswEl2)5!gNgbaTsD@vNk`7IqG~GtLuDe#BrUX@_clSwYVycLxTiFC~ofTUWE~hLqXw zaJ>Sd$^yO(8oQsGfrCGh*gale)9m5ktI^uf_gOKAsw!#$x*p|myppA?#5oN<%(Rpt z^msDpo3B7km*8Xdx#DJ{gyGZR%6mZd3^3fjA%%#+ugC6K-V9&ABepkMSlmEoqrb<0 zBC=-wE0JxGSHg{LZx)|+c~XxL;tNK!Iy%l!gp0X2ZKiy2umu)vgZuXEjRUq^u!k@UwqL4mCCc~Qn9kyQL5mwUZ4_7Y&is~ zYaS=vwb+nr&8QNxZzTlcMu@xSfRBmU!xs;ZqI1=_nR}95u8YX{ox$+(_o4(DqsKXb zsYj12wN|u!9GTQNd5FO~+?2skZdbOTFr5Ta8vXmEcx{G+j`$96B9ud7Gh)cE-OKV; z!vb63cR2~9R0;uLWw1e+oHNTY1GI1Xm_d}GpU-rR0A$G6)IQR^F@1)SRRz?7?>ZP* zHS@i>DY;}cx4DI~w8{#a)a5}pA{nsNCWpj|@HYHIkFnP2N|l;xH!sM@WZU;S9IX0) zu1)GcxU{9~xTa#$M;w`F8R;bD?RXip$9Tx~Zi`L56os$q)wmbxtuk-tN1TbFrKuDb zu6Sj3>+Oi|9~Qo!7N`M^ytgV>)SLrP1GtQaAa+?ml5aNhauZhxZlG^`!*%c*Q5~op zwp|7c#sEIDrmTFJTSZE6Lg=J+(J|=Npa1NQKlw=a`t;`lny@W&O#7-r*XijEF} z=D?skKmI41MY~8Q>BrM*=vh3>oUD=LLI1xmvgy217LK>XS?tJEW3d6;j6|=hX5!uX zcz5gVH6WJP{0R*NBvo_bx|N7Z!0gI%nJhV%hA3vkOq@*ZbWNQkQCk{;Njp9Ho-&0( zL9ji}%Kq&btrTIp8drv6-NDb(=S_+4dv#3e1r8)`O>w!&2U9}rT^KNyn8eolDeK#V zeunCvS*_X*-DNVi{JGD15WB+6?`@_iK{DQUtrOlsg)rdHP$1|Tw$AT*oLS<2>ae{P z9+^*OF3lZQ&NfM*ybo!%Jqy%nP-la3K>Uz-Km^fG6ylU-1L zA9R*E=Fj3&xZGKRd~_ogjgH)jhD;Tkg<={)V6zUqxBFW;b&8?p=>q!Is+~>KzBwL{ z`@T#c?UmNz3!!yzp>!Ms>8}-5=i7(@&6>HFBGepjM`ExqBv5cFKbw4imq1NX@)H+L zNUoTawuh)V)`3!a0Ra0z|093|rg+3jQL54eePa69dV+nO0hIV}M`@}u`+CnGiW2m; zUjaaXS93DeJ5+95L9U3lzKvF9Uh7c$??hvo$AWuZ@4-(G1l=20Ez5lVP^L7mD6fjg zm@{1I6jj-g*%<1q@P3FPc!pz|4HS`gXV~@MFS7j=3>uff@Om4GGnv-LBg=!a*iq}Z z3&2>09+_VYeC~YW+WEROkpufh(jL%*XY1e6g*M6c(rfwCMn^mgg`?BiDMB*7&zh9lo#vF3G zka+Y@_Ao8@t6LR}qpsW0BY($e^@(Iasu?$v7{)uPAifKdq=NoEsV!rp?xttLNv7i7dXQjvJYP*yh%8 z-3jwrrfF4+=esw4iPcJr6btIQ3{Z47ZoXj;{{?AtSS@wd^veesP6l@un^CU5(6mjb z(iz(&KEpeuBr{@fEW~PGYwjjt`q~+0{v9`_I>E4XvF2&6;Y1weaByV++>$gwQQHan zt)_8L9;&QO@0qjQrzh+go0mB~YSv|ILwk)neW3;baTjF%in{c2_ecBC-fx#UBmLi_ zh==EfjNc6B3_5ny>gww^XR*3bwVs7@C3i8abfw_j8c0S*JD+6`2z32)Bm`_UhseVcRuRx-aT7YT2TF8TOoM?6LY-@to1_Uo_Q+hHL{y zQ?a4F{b22DAp;fxW;D18GeVq!&uUo)!*RP26dto`;$w*dWWHpbr8L(@X(dL>Z(Cn3 zIz{Sac|HmFiGr1Qzf_9n*|Ac|f$-?`{nNG2xKY|&`d^PZZBqe*q2P}_@6G)> zF#`e=g>kMuFj1k~XFF9riy;EZh?o_>G(gEJ3L^Hc&ahy80Dd$~-vv(PX)K3r5h_7ft z!&<_?Jw`~|c+CR27v}0pm*MQgH3jEO(p%dXl2KjoB8SUeLV};xZpc1}0wHe0Br`xC z*q*dR?tx-6FSoO7E6eB$$`j|T#?KLHzsBj`cE)U^r)ygpK!%!b&hNw)gAI>R5wc)6 zoQ+yroYCar&4KTarUsI%h|PScSMN+W$Z#w#+f>e%rww4@GB@%*cGsqEGF!9IAP z08_`MiU>)D(C2*RfwYVnxS~S1sk!GJ7(8gd*q?x1?5}o-kK7!z+?!;%YggvkNBOUIaXy~SAfO11cg}<2Jdt}!ex~GB1oos5EXLwLMz}~Z5#@~iUMJ`r; zprA;~*~|{P6pgHb%PLP)hvi`hCzr;usfpgohlVl=CGcY$v36@^T@Cd?Mkqgr0QGd4 z-=#Q6@xnAYw;60%ApnnSmyEiuo6GdZjyUgit9SDt89-39SVEd_8e#rC@p@fHZxLkd z-~y)T&vaGPP67rUPaMD$13KQ2Q3{+SHR?6nD(^O^oy=EYm!}6AXBkLs_24wp@NmJ@ zI>=e3Vu_V)+zf!e^eu9fw!rRIcCGSJLoUS% zR-B_7gRud>)X)(+#W7D>LY~FNM`$tRbsOodhlJgU%b?|2BDy_Ff+{<$k0h~{-wuRc z7BzY1sP0DTea1Dqcga+dx!|wl5dv$v8-kUs3Y(|5Pip@(Gh4g3MxF_?n~hK7n!FRa z*GhUQeRRh21f~1|UJY^VxY#URcJSmSAu7Yi8w+2D6F}iL26>mV_8DS&Su73Q2{I#8 zh!`Uld)>GNzuurTY$cHxB8*9=)jN%ktjtBr71ZL{tsNoD3Yba)NNPOUPdkKu3EN<0 zT5ETsMFJ0^I6SaU`LL^^TRHA$bm8#%9>R=$B;SCPvV3w~sW-b#j@LcumYo2^jZJh# zxMv!hTQ&Q>YXMk7I$YIJ*?t;V59<0wg!|cnpQCk{<_rvY9v`PP5fYbQwlyam>sC$* zWDC(KjiHv7o{$XFcVGVui56$nzLseJHU6vHUPT_vR2M+Hy`0~6%cKrd&=OqpT^la)g?nTmP_7hc} z_wfAgBfFsA=53qvh7YhJw;#cUi(LAT?a)?W|DFr)6H;r>xhflQ{6J&95MpeA{dFGM z_0uEjgQT&f6Sm#>o_4`1;L{XP@fPG7a(R!9-`-1*cR$eFXjswA_D)p-ijE#oCQ5eb3z=Zg(fWw)%r_9kY53Z~I<|Ff=&V$|_m$h6K>9H<; zrrX=h9UR@?rF55Sqn3vI;~b<*l(9)c-ZroTW}p>SPDNc}GAw?J;>|z~G$7t>sAwUh ze!8Vb|8w)DnqLW~XRws}S+Dfn41M25pB=K55SxtR(2u4r%H+$}EVo$Q%nt;jDsEq` zcV=Pg%`sQ?=(`|O4-L9W8N~jUja|X1as4POAXUXs^JemB%JYDHrg%(|L#+N+v$(dt&2* z*nA+#&Bk@})E8BcJVZv-@UIwc*?F?q_O=R^?)LUR*w{+O-^ZsNs}t7LK1a`9=0$mb zlfc>fePyHE^)sv#n-~_yS2jLW7ibOG7}~bjXSjt=l@8V~*^q+K-U~4}b>v(2(?$bm zH~H?R#k~m`j?J&}#5(EEV<|Lo{Mw>bdN}-Ecw^VrKv-6gJ9uzy+#MMo0FXxIV799e zrhO-pk00pKx?Nnzy@J&Gr$65gUf}*z*V8TqckL7Ks6C!ba&@{B2mzWsmz=VYVlB(Q zi$!O%p2!Y(`^TqOA4x2YowKnzA)icnCio(0P`CBB>>fGYbX(J&i;7>nRu8~I z8}ovJ>IogCo?u*c#*UC`sASd3>H-EJU^(tX5S3ol+n&d%zraBJHF`cpqd|dU+uRrO zAhmw9S{bY)Z~aX;m@A3X#_i8Tp)PxRCYODmSQjqKA9%Ma1Jow_a2@wE`+$+k9_cjN zC%>jFybNPW=d2(}cxF^^8g5`Yq$=Lk2ZPgt`GY&vF}g%D=KuoBL7B#02{OT>6Pz6Gg$kjb%RK7%8NaK9x67LytiQqwDo#{N<3_8Njxrnd)lkH0Eh{{v&$ zSWt{i{TbcgX)N&VMae0Q=f=ah&Z|QxAijQm`yJ+eSEt>mXxCG4JT>2u@YtdUFSfPk zYjz_++dRj0T+!`+g)RsNUWcEEJ)7C)Ip9xmOVIc^V5G5cahJ^YYhIPZyb`@`jD-O^ zMHF15FgD8)fRZAqL-JV%Yun^l_u|~O(14>H>nD#r5tC8>^wOVdT;T?)A!X=$ROH1h z+#4tibS5gtY`3Gdk4oBcS4x4TtqLNLa7-Y_ zakC3;DWDrGgCRtVHMR&*IfQWKN=j2eh#^9R2uZF>2qA=!gq+XexjN6DwVs(ZYwq9g zzaUxb`kvmO&*%MqnK7%n0!iwTw_lP8VBOo&diM)N`GDpL(Wk!C=joPh11qfiIx*8$ zXKoblbhgdbpR#>RT~sIFdlVbit(Vn_*z2Wt4o<3&E$^F{)ieZRI_JuE-iRfP%t7%u zTEi!Fj-GG!*HULAF#?G%l_NVghJAj#8OeR>`1M}w9&#)p8~Jc0H`%|-W}~C0zQH0_ zA)Z|JNc{dTM^S#_y_aT2g=Gyw$;qY3MN5Y7Cv=X?nMURxw)W6-Ae7Zt39675C}Q5w zoAQwlfkXm*NygE4{!*1~Kv*KP7csu|OXEmwflSUU$I)T?0c37#ZXl_Ns9;{++5N?5 zu{RJw_v3$8GCH0TR^nV25xT?2oi=bu0 zuA^)`2wZaJa;F+13s*8hNM`t|elWShn_LsD+fC-JV^J3^03H|rcFl442SLF;;tk0# zN$b;`#7e4Wg4StOS+S93+eh9xNEWt!%kVY@5AQ#Fz;-TJdrzNuXPjox@HDoAQ!4d4 zxlL$%N3R#+TI?p0X1fC}6hW5~Eq}(Qde_8fjcc%@*A{&gt18VeTWb&IC$7B-@^sMX}{GzlWbAW82BhP~_%2w%IRL<))u3@?)abkcShW zCCDO#_q(`#c=AYA)<*+*(ZcUu(p>vIV?yB;lJwC+>hiyyW``3=eCpw_-EMK->JI+7 zS5fBqpoh(Dv_bJ%I?&1I+)YKL(T9pJooHbCTlsA%%9C}8mg~3ucMq(wmoH1X)~6S5 z@3{}PNk0vO7spNv8d6que`)UMQa|YpT@t@M^9SH+7IGyFQ7-c7n{o%WiBw|j69P5j zm(R&8vu9*2{KDZCC&l;yj}74Yihg|mRc4B}w3$ryZjA@(L6r0&hxc`IY>w2fyVl<(1HVfhOMXe1g~5~0rv`@JfFh+F zsS|XcG?!6bP{#X$c<$wT`odVvyqOFsXf8ZGWLmwNE`%>RY5Ixex`klOC> z!oN)hK9K4zTXmeK%)NIs+eMFe6csNoAE59vSmyZ_U{J_0j28&G)1#cJPg9R{ z@5!pCX|fF$?kf3~f+iT1v^Draw6I3Loh%haL#C0w-52pxudmT{*#KXY-U4-TLn}AT zX9lOr;+iww7rsqLI)ls0x`LAf66W6P{mMrE*P&m#Z?VYWT&BnZ>XL0k!eNyqs9({c z;jl2|85M-e=~fxE$@I=H@CiYFPHxJ z>=GnSYh;v4@(UF-&sRaZPq^UhU(-SEv*p8)`p@`hlDI9;{l$XrkMyF za+CKmpALSw7QK8>dXb9vUgw)eHA`?UrbTn@ird~g)~jr+w_#c_N07<0N@qXw8)=QA zEu|nqz2D&)p*jtI8kv@woVDDKmOg~D>-s84@?Gp&2Hko#PtX&ZEH+0|F@vIlM3N5t zKysu@)e%qju^2~KqRi--3aRi(typKALqab0v9C5$Uur(o=-g-w>e2$ymTeuTyL$_j zuI{I72a;1tUha9+YuEJ3iYuW{l9Jl;tk7txUWsC6FLhv+0!Ui_;8OqLKK6_adWXLG z;eK0>^mb(3p_qRQ8%u&TDVAs7r;8fWe0QgR6kM^j&UxCi>o@;s)VvU39G?bbd`QunCJ1ZY4{?BBLpmcI3X~Ff=*sx6?H5kl^T&9O$hxyUukQmj2~Y z@*NAQj#1fjfUqx1DQuygSn8NWb(idx)=7SXcQ(=rEF%~72Q^<8dN=jS&l0u-`CW7A zRP!d+>TzERLRe3_wHp9*cj0P(5vF!s78WEzBmQ*52vR`!w)Kq^bpqiUI+og$ zb?@w&*`oE-^_gGg^g+;i1}Ztv@(dZPdx!k0P-HVTq-&9SE56`RWxC;(Z4|TlwS-MB z$`2Qt=P{R}|g8OHAGPRJO%#URrgh2n6^>Buw7M?SP)Fr?;e^l(iVJvOW?$ zQ;=10wN2O(SLaS&zP5k4^d#@Cmo%N<-$fHc2=SWyq47i6ZL+N(t_|krC9$35TU#5n zLuu5o&d7CnfTb8{OLL>pi%@u}Dj{6JU*2wTCmM240+#5&_0N0dJLk%#Qic}xC?o*4 z-z0pqW}eky^R8h6O$S_O{7luSVQ{<=IG*I1$tl~FeUXgIzw}ZY0n)DX$&bsgThc2Y zE!35w@CbEJ%Vt*efjqEPn(VtqE!xz>t1@p)jP`e@j~wa#q- zY8UGOnl4fW!qPcd9a5bs6NJ`yLmIf`l(7lPHN~ro)}l#-iVW-e53#)DyvRZVdMpmn++VtxE-vOa~6{3A$astoeKKA`O)oi0vf4Df7`b&|K0tc+%s={>qihrv1* z&>+9EtP^`XSdsp$kf)33qCVQMCg9Lo1E z@y*-J-93yYQhAChpk$6EBpWvejY=A|~4!^(^ewK1wbk?y}xLIF?vM*3YW5 ztLT-7s*$9<^-2DqlSDsMKqZ&6GFk2wXMOcmAu|w-+!<0-@PI?d;+dOksAd{oZkU0xIL05zrF~(*C7x}UoR*Z1is`w zDsY~8&gJ%F3i(IHqk|Ne?ka2fUK17GRZ-#rYm$k((o>hkbL)2P5ZW0`ioaR@K~r(_ z!0tX?{V-|e1ZT+PS;| zxza2`tS#|Oj}e8eOUl-7t(Pm7yjNmiPxk7lJ}_8&c!{_kNq5*Ci#v|(h%HL z#C~8KqRubB)0vj^X;pz%7D%Y+G8O{ZNB#f zD>ESJixqzGYzgVcl#>~i(804xq2zB(-D3qR6G4PbOwpy>6*4H~qGl(j%_md&zqM%HS3FZDvgmZEGNek9*XAhOU1qubj92!PQ}WJ zCDXj+$Ktiz{JohMfzRc~;e}?56nkh$bK?xlc|?41icJqBcM}j?8C4LlI$6CuN*{M5 zqJa5=vs=^+p;RO}^SE&#$B8OJXzt`Ai9`W{$|V54Nv^wp{lcv$S`Of@`-Bdpdn*TS6S^GksglZ`LNl0!O&SM`LX6fJ}5q#U#}T}`W1$a2SL8gMsVuxkxHl> z80tUY8SD0wMr&N-x}|*Yq>wZy89t1W9)T=OhY!i`X^u1aNYACcxQ55(@OvG)`pq+w zdfDbs>!C)mV=nZAUNiVN9F&B&Zw+{zS(%mr0r8Pb%mq31uD24tjiBSq;a!4dvS;mf z8~Igxar2Ibe|9Lpy9g6gXY}MQ*XuTlnA8Rg2w%5&rfrMXE%Cv(cShz;`=RH;a%3|> zl03Lc94xzFc}n38>^5i{6C>+qMnn`%+4|3x?XBN5G_q*b7%*#~Oo-`!UV*~2l51dk zCwm#F=+3ZsQHoUr*68ieOE8Yl1^cqZIPvoo-N_&}nXanXDy$<63(1b^)l z!I9quGO5>MycimO(tOhIBjqnk$Qp;c;tyTlhCM%U#{l&C^RVZ|G`uX)OhhG9>FJYX zQVnKEXaj5H!_CLJZ;;PRF^O!d38k63NNXQ)2V_Rwq4uCpcUcl&pg31H60fyNG%~o- z3jlPCAOM*s5s5WMLr#O6j1MHs+n$EBce4$gc<5`+xzOK6Y)SFhiL-Z?XRZCk*>*dS zH&AfDU2_%1{N*5IYl0uJ|CLZxgPP!dE|r2nN3UtrGOcw5GAikyoXVnGTO)Vpz{_Ny z!zeu7oGid)ory)>KM(yY&YKO_llrp=KLfwh_GK+E1kt>X*e*oBE&Yd)$-nBi&42jM z`t83Rnf&_SM`={C@t*^R36fRUG-3zkkyQ{JM6>3?q?g^-X^&J5tpW;$~y(qr%}&b zO)Qd=DQ?j37BwD;uWzX2jvsU!un|C5SM=7q1$PcQR%*PXnmDFkf=&?PR$AM%42AvJ zUb3@)rBPhF42kh$NYVWSO>Y&^M`YpYmy^(^i~W*MBL=rRzC?HTG>)$ zS7p9036JjXGB3UUSNxug@7Sq?%&N3Dq zYRHox6sQz(71f4Bur9Uq(g)`d4u@_o{^+~ua@RtgbSMii1l!X)H$!;C;is&pT z$5W(u$p$Vj7Q|K^%PbtQZQ*Q(?ENXIEY&5c&$9CQA2TskT76lxb#UDhEL3g9;c&%O$ec3DX1=&Xy_m)lFF z2_sW6z?c^#wp=45S$;77zQ-K zxh;W3xubbxt|5EIIy)>RI$aY7ZO_XvC1lAU=#-epXk)!~xHwwN&Zh5Y6UZ2vgg{gb zj8hc#@H5GJ4?#D|FO>2HRW&-b1ZwzcT1YZB`flwj?8gC40ywl^fAD!vUm0_(!L&UO z9;-1|Vmy$}Gdo#!j+z7Ssdxx%IdrcJ6QSLjGIcKsNzJ|L%|)|=1Or~Z?x;=vS)-3Y;k3E>zlxlt_7DW7){X93XG!vRoImDOS|1dum}TK zUan0T7Z=MCfq=j}Ywlpq`(ERrHm8}mR$=22xHFWq$#suXuZH&6F62Njw|kI#Z6tw@4& zqv*&oWtDd*#MqvO86JMfvpp>ZO5w>n&mbf0if=+Se8

W_te~Hij(#ao&mTt;PH)C@eEd^XY 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

O3#a!*fI4KDFbmCX-Ve4k5pfyrfkci}?qw#u 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�OJ03ADw7qoWS%E!*U%#$?xCw42Y7H|DBS%@J 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 literal 0 HcmV?d00001 From fb9328543d1ae426e6eb29d0f990c26ae55ead53 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 14 Oct 2019 15:52:06 +0000 Subject: [PATCH 113/437] docker files. cleanup etc still needed --- docker/DJCEnv/Dockerfile | 68 ++++++++++++++++++++++++++++++++++++++++ docker/base/Dockerfile | 42 +++++++++++++++++++++++++ docker/buildall.sh | 9 ++++++ docker/gpuAdd/Dockerfile | 10 ++++++ 4 files changed, 129 insertions(+) create mode 100644 docker/DJCEnv/Dockerfile create mode 100644 docker/base/Dockerfile create mode 100755 docker/buildall.sh create mode 100644 docker/gpuAdd/Dockerfile diff --git a/docker/DJCEnv/Dockerfile b/docker/DJCEnv/Dockerfile new file mode 100644 index 0000000..9b4e725 --- /dev/null +++ b/docker/DJCEnv/Dockerfile @@ -0,0 +1,68 @@ + + +FROM cernml4reco/djc_ubuntu_rootbase + + +# +# All additional ML packages and DeepJetCore here +# +# + +SHELL ["/bin/bash", "-c"] + +RUN apt-get install -y locales + +RUN pip install numpy +RUN pip install root_numpy +RUN pip install scikit-learn +RUN pip install scikit-image +RUN pip install h5py +RUN pip install uproot + +#RUN pip install gpustat +#RUN pip install tensorflow-gpu==1.13.1 + +RUN pip install tensorflow==1.13.1 +## RUN pip install Keras==2.0.5 + +# DEEPJETCORE specifics + +ENV DEEPJETCORE /usr/share/DJC/DeepJetCore +RUN ldconfig +RUN cd /usr/share && \ + mkdir DJC && \ + cd DJC && \ + git clone https://github.com/DL4Jets/DeepJetCore && \ + cd DeepJetCore && \ + git checkout docker && \ + source docker_env.sh && \ + cd compiled && \ + make -j4 + + +ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" + +#/usr/local/lib is for root +ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:/usr/local/lib:${PYTHONPATH}" +ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" + + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y krb5-user && \ + sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf + +#for me ;) +RUN apt-get install -y zsh + +##eos and CERN stuff, ask clemens + + + + + + + + + + +#ENV DJCenvname DJCpath \ No newline at end of file diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile new file mode 100644 index 0000000..d8a68a3 --- /dev/null +++ b/docker/base/Dockerfile @@ -0,0 +1,42 @@ + + +FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 + + +SHELL ["/bin/bash", "-c"] + +RUN apt-get update +RUN apt-get install -y python2.7-dev python-pip nano emacs +RUN apt-get install -y wget +RUN apt-get install -y libboost-all-dev +RUN apt-get install -y git + + +## root part +RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev +RUN apt-get install -y cmake + +RUN mkdir /temproot && \ + cd /temproot && \ + git clone http://github.com/root-project/root.git && \ + cd root && \ + git checkout -b v6-18-04 v6-18-04 +RUN cd /temproot && \ + mkdir build && \ + cd build && \ + cmake ../root +RUN cd /temproot/build && \ + make -j5 && \ + make install && \ + rm -rf /temproot + + + + + + + + + + +#ENV DJCenvname DJCpath \ No newline at end of file diff --git a/docker/buildall.sh b/docker/buildall.sh new file mode 100755 index 0000000..2286339 --- /dev/null +++ b/docker/buildall.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +cd base +docker build -t cernml4reco/djc_ubuntu_rootbase:latest . +cd ../DJCEnv +docker build -t cernml4reco/djc_ubuntu:latest . +cd ../gpuAdd +docker build -t cernml4reco/djc_ubuntu_gpu:latest . +cd .. diff --git a/docker/gpuAdd/Dockerfile b/docker/gpuAdd/Dockerfile new file mode 100644 index 0000000..ec4caa3 --- /dev/null +++ b/docker/gpuAdd/Dockerfile @@ -0,0 +1,10 @@ + + +FROM cernml4reco/djc_ubuntu + +#needs to run first: nvidia-modprobe -u -c=0 outside container + +RUN pip install tensorflow-gpu==1.13.1 +RUN pip install gpustat +RUN pip install setGPU + From e881d8a7688aca291927591a7b6889cabf76f39d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Oct 2019 13:27:28 +0200 Subject: [PATCH 114/437] gpu safe verson --- __init__.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/__init__.py b/__init__.py index 73d1384..a6048af 100644 --- a/__init__.py +++ b/__init__.py @@ -1,4 +1,11 @@ +import imp +try: + imp.find_module('setGPU') + import setGPU +except: + pass + import sys import tensorflow as tf sys.modules["keras"] = tf.keras \ No newline at end of file From fe2f765696316e498e40d7dbe83acc89318f4c41 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Oct 2019 13:35:38 +0200 Subject: [PATCH 115/437] moved path to right location (no effect on final container) --- docker/DJCEnv/Dockerfile | 2 +- docker/base/Dockerfile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/DJCEnv/Dockerfile b/docker/DJCEnv/Dockerfile index 9b4e725..683b900 100644 --- a/docker/DJCEnv/Dockerfile +++ b/docker/DJCEnv/Dockerfile @@ -43,7 +43,7 @@ RUN cd /usr/share && \ ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" #/usr/local/lib is for root -ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:/usr/local/lib:${PYTHONPATH}" +ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile index d8a68a3..feeac2a 100644 --- a/docker/base/Dockerfile +++ b/docker/base/Dockerfile @@ -31,8 +31,8 @@ RUN cd /temproot/build && \ rm -rf /temproot - - +#ensure import ROOT +ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" From 47921b98843c46652600e3f36dd64b68cd8f73be Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Oct 2019 14:45:45 +0200 Subject: [PATCH 116/437] bugfix --- training/training_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/training/training_base.py b/training/training_base.py index b46b2b2..405ea39 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -55,7 +55,7 @@ def multi_gpu_model(m, ngpus): from keras.models import Model class ModelMGPU(Model): def __init__(self, ser_model, gpus): - if float(keras.__version__[2:]) < 2.2: + if float(keras.__version__[2:5]) < 2.2: print('multi gpu option from keras >= 2.2.2 is NOT available for now. (see DJC issues 28 and 30)') pmodel = multi_gpu_model(ser_model, gpus) self.__dict__.update(pmodel.__dict__) From c4582fa166f166739670475e554fc949a6089f8b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Oct 2019 16:38:42 +0200 Subject: [PATCH 117/437] fixes for new keras multiprocessing switch. made problems with threading and tdreader. simplified strongly for now, hope performance is still good but seems to be the case --- DataCollection.py | 10 +-- TrainData.py | 138 ++++++++++++++++++-------------------- bin/testEnvironment.py | 13 ++-- training/training_base.py | 5 +- 4 files changed, 78 insertions(+), 88 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 7731ac2..d5e78ac 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -784,7 +784,7 @@ def __init__(self,filelist,maxopen,tdclass): self.filelist=filelist self.nfiles=len(filelist) - self.max=min(maxopen,len(filelist)) + self.tdlist=[] self.tdopen=[] self.tdclass=copy.deepcopy(tdclass) @@ -798,14 +798,8 @@ def __init__(self,filelist,maxopen,tdclass): self.shuffleseed=0 def start(self): - if self.max < 1: - raise ValueError('I got an invalid number of files to open (%d)' % self.max) - for i in range(self.max): - self.__readNext() - time.sleep(1) + self.__readNext() - - def __readNext(self): #make sure this fast function has exited before getLast tries to read the file readfilename=self.filelist[self.filecounter] diff --git a/TrainData.py b/TrainData.py index de87366..b396d59 100644 --- a/TrainData.py +++ b/TrainData.py @@ -18,7 +18,7 @@ import threading import multiprocessing -threadingfileandmem_lock=threading.Lock() +#threadingfileandmem_lock=threading.Lock() #threadingfileandmem_lock.release() #multiproc_fileandmem_lock=multiprocessing.Lock() @@ -347,68 +347,68 @@ def _readListInfo_(idstr): return sharedlist, shapeinfos - with threadingfileandmem_lock: - try: - self.h5f = h5py.File(fileprefix,'r') - except: - raise IOError('File %s could not be opened properly, it may be corrupted' % fileprefix) - self.nsamples=self.h5f['n'] - self.nsamples=self.nsamples[0] - if True or not hasattr(self, 'w_shapes'): - self.w_list,self.w_shapes=_readListInfo_('w') - self.x_list,self.x_shapes=_readListInfo_('x') - self.y_list,self.y_shapes=_readListInfo_('y') - else: - print('\nshape known\n') - self.w_list,_=_readListInfo_('w') - self.x_list,_=_readListInfo_('x') - self.y_list,_=_readListInfo_('y') - - self.h5f.close() - del self.h5f - self.h5f=None - if shapesOnly: - return + + try: + self.h5f = h5py.File(fileprefix,'r') + except: + raise IOError('File %s could not be opened properly, it may be corrupted' % fileprefix) + self.nsamples=self.h5f['n'] + self.nsamples=self.nsamples[0] + if True or not hasattr(self, 'w_shapes'): + self.w_list,self.w_shapes=_readListInfo_('w') + self.x_list,self.x_shapes=_readListInfo_('x') + self.y_list,self.y_shapes=_readListInfo_('y') + else: + print('\nshape known\n') + self.w_list,_=_readListInfo_('w') + self.x_list,_=_readListInfo_('x') + self.y_list,_=_readListInfo_('y') - readfile=fileprefix + self.h5f.close() + del self.h5f + self.h5f=None + if shapesOnly: + return + + readfile=fileprefix + + isRamDisk=len(ramdiskpath)>0 + if isRamDisk: + import uuid + unique_filename='' - isRamDisk=len(ramdiskpath)>0 - if isRamDisk: - import uuid - unique_filename='' - + unique_filename = ramdiskpath+'/'+str(uuid.uuid4())+'.z' + if "meta" in readfile[-4:]: + filebase=readfile[:-4] + unique_filename = ramdiskpath+'/'+str(uuid.uuid4()) + shutil.copyfile(filebase+'meta',unique_filename+'.meta') + for i in range(len(self.w_list)): + shutil.copyfile(filebase+'w.'+str(i),unique_filename+'.w.'+str(i)) + for i in range(len(self.x_list)): + shutil.copyfile(filebase+'x.'+str(i),unique_filename+'.x.'+str(i)) + for i in range(len(self.y_list)): + shutil.copyfile(filebase+'y.'+str(i),unique_filename+'.y.'+str(i)) + unique_filename+='.meta' + + else: unique_filename = ramdiskpath+'/'+str(uuid.uuid4())+'.z' - if "meta" in readfile[-4:]: - filebase=readfile[:-4] - unique_filename = ramdiskpath+'/'+str(uuid.uuid4()) - shutil.copyfile(filebase+'meta',unique_filename+'.meta') - for i in range(len(self.w_list)): - shutil.copyfile(filebase+'w.'+str(i),unique_filename+'.w.'+str(i)) - for i in range(len(self.x_list)): - shutil.copyfile(filebase+'x.'+str(i),unique_filename+'.x.'+str(i)) - for i in range(len(self.y_list)): - shutil.copyfile(filebase+'y.'+str(i),unique_filename+'.y.'+str(i)) - unique_filename+='.meta' - - else: - unique_filename = ramdiskpath+'/'+str(uuid.uuid4())+'.z' - shutil.copyfile(fileprefix, unique_filename) - readfile=unique_filename - self.ramdiskfile=readfile + shutil.copyfile(fileprefix, unique_filename) + readfile=unique_filename + self.ramdiskfile=readfile - #create shared mem in sync mode - for i in range(len(self.w_list)): - self.w_list[i]=self.__createArr(self.w_shapes[i]) - - for i in range(len(self.x_list)): - self.x_list[i]=self.__createArr(self.x_shapes[i]) - - for i in range(len(self.y_list)): - self.y_list[i]=self.__createArr(self.y_shapes[i]) + #create shared mem in sync mode + for i in range(len(self.w_list)): + self.w_list[i]=self.__createArr(self.w_shapes[i]) - if read_async: - self.readdone=multiprocessing.Value('b',False) - + for i in range(len(self.x_list)): + self.x_list[i]=self.__createArr(self.x_shapes[i]) + + for i in range(len(self.y_list)): + self.y_list[i]=self.__createArr(self.y_shapes[i]) + + if read_async: + self.readdone=multiprocessing.Value('b',False) + if read_async: if "meta" in readfile[-4:]: #new format @@ -534,20 +534,14 @@ def readIn_join(self,wasasync=True,waitforStart=True): #move away from shared memory #this costs performance but seems necessary - direct=False - with threadingfileandmem_lock: - if direct: - self.w=self.w_list - self.x=self.x_list - self.y=self.y_list - else: - self.w=copy.deepcopy(self.w_list) - self.x=copy.deepcopy(self.x_list) - self.y=copy.deepcopy(self.y_list) - - del self.w_list - del self.x_list - del self.y_list + + self.w=copy.deepcopy(self.w_list) + self.x=copy.deepcopy(self.x_list) + self.y=copy.deepcopy(self.y_list) + + del self.w_list + del self.x_list + del self.y_list #in case of some errors during read-in except Exception as d: diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py index 0fb050d..e04989b 100755 --- a/bin/testEnvironment.py +++ b/bin/testEnvironment.py @@ -5,11 +5,13 @@ import tensorflow print(tensorflow.__file__) -print('importing keras...') +print('importing DeepJetCore base') +import DeepJetCore +print(DeepJetCore.__file__) -import keras -print(keras.__file__) +print('importing DJC masked tf.keras as keras...') +import keras from keras import Input @@ -29,11 +31,11 @@ model.compile(optimizer='adam',loss='mse') model.fit(x=features, y=truth, batch_size=100, epochs=20) -print('loading DeepJetCore library...') +print('loading DeepJetCore compiled library...') from DeepJetCore.compiled import c_arrayReads -print('basic packages seem to work... testing conversion') +print('basic packages seem to be compiled... testing conversion') import os djc_base = os.environ.get('DEEPJETCORE') @@ -46,6 +48,7 @@ os.system(script) print('testing batch explosion. Please check batch loss plot afterwards for smoothness. Warnings about the callback time can be ignored.') + script=''' #!/bin/bash cd {djc_base}/testing diff --git a/training/training_base.py b/training/training_base.py index 405ea39..bc1f62e 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -408,8 +408,7 @@ def _initTraining(self, averagesamplesperfile=self.train_data.getAvEntriesPerFile() samplespreread=maxqsize*batchsize - nfilespre=max(int(samplespreread/averagesamplesperfile),2) - nfilespre+=1 + nfilespre=max(int(samplespreread/averagesamplesperfile),1) nfilespre=min(nfilespre, len(self.train_data.samples)-1) #if nfilespre>15:nfilespre=15 print('best pre read: '+str(nfilespre)+' a: '+str(int(averagesamplesperfile))) @@ -418,7 +417,7 @@ def _initTraining(self, if self.train_data.maxFilesOpen<0 or True: self.train_data.maxFilesOpen=nfilespre - self.val_data.maxFilesOpen=min(int(nfilespre/2),1) + self.val_data.maxFilesOpen=2 def trainModel(self, nepochs, From 5e18c9c3c3b91fc7f066e54c994007c8e8488b2f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Oct 2019 17:38:09 +0200 Subject: [PATCH 118/437] fixes for deadlocks and tf1.14. queue for the read pipeline works again --- DataCollection.py | 9 ++----- TrainData.py | 49 +++------------------------------------ docker/DJCEnv/Dockerfile | 2 +- docker/gpuAdd/Dockerfile | 2 +- training/training_base.py | 4 ++-- 5 files changed, 9 insertions(+), 57 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index d5e78ac..af1c673 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -829,7 +829,6 @@ def startRead(counter,filename,shuffleseed): # the whole generator call is moved to thread since keras 2.0.6 anyway #t=threading.Thread(target=startRead, args=(self.nextcounter,readfilename,self.shuffleseed)) #t.start() - startRead(self.nextcounter,readfilename,self.shuffleseed) self.shuffleseed+=1 if self.shuffleseed>1e5: @@ -947,13 +946,11 @@ def get(self): dimw=0 lastbatchrest=0 - + else: lastbatchrest=xstored[0].shape[0] - batchcomplete=False - - + batchcomplete=False if lastbatchrest >= self.__batchsize: batchcomplete = True @@ -1034,8 +1031,6 @@ def get(self): psamples=int(psamples) td.clear() - - if batchcomplete: diff --git a/TrainData.py b/TrainData.py index b396d59..d970b6f 100644 --- a/TrainData.py +++ b/TrainData.py @@ -289,20 +289,7 @@ def _writeoutArrays(arrlist,fidstr,h5F): shutil.copyfile(t.name, final_output_file) def __createArr(self,shapeinfo): - import ctypes - - fulldim=1 - for d in shapeinfo: - fulldim*=d - if fulldim < 0: #catch some weird things that happen when there is a file IO error - fulldim=0 - # reserve memory for array - shared_array_base = multiprocessing.RawArray(ctypes.c_float, int(fulldim)) - shared_array = numpy.ctypeslib.as_array(shared_array_base)#.get_obj()) - #print('giving shape',shapeinfo) - shared_array = shared_array.reshape(shapeinfo) - #print('gave shape',shapeinfo) - return shared_array + return numpy.ascontiguousarray(numpy.zeros(shape=shapeinfo), dtype=numpy.float32) def removeRamDiskFile(self): if hasattr(self, 'ramdiskfile'): @@ -405,9 +392,7 @@ def _readListInfo_(idstr): for i in range(len(self.y_list)): self.y_list[i]=self.__createArr(self.y_shapes[i]) - - if read_async: - self.readdone=multiprocessing.Value('b',False) + if read_async: if "meta" in readfile[-4:]: @@ -434,16 +419,6 @@ def _readListInfo_(idstr): list(self.y_list[i].shape), isRamDisk)) - - else: - self.readthread=multiprocessing.Process(target=_read_arrs_, - args=(self.w_list, - self.x_list, - self.y_list, - self.readdone, - readfile, - self,randomseed)) - self.readthread.start() else: if "meta" in readfile[-4:]: from DeepJetCore.compiled.c_readArrThreaded import readBlocking @@ -467,10 +442,6 @@ def _readListInfo_(idstr): fileprefix, list(self.y_list[i].shape), isRamDisk)) - - else: - self.readdone=multiprocessing.Value('b',False) - _read_arrs_(self.w_list,self.x_list,self.y_list,self.readdone,readfile,self,randomseed) @@ -516,21 +487,7 @@ def readIn_join(self,wasasync=True,waitforStart=True): self.readIn(self.samplename) return - else: #will be removed at some point - while wasasync and (not self.readdone or not self.readdone.value): - if not self.readthread: - time.sleep(.1) - continue - self.readthread.join(.1) - counter+=1 - if counter>3000: #read failed. do synchronous read, safety option if threads died - print('\nfalling back to sync read\n') - self.readthread.terminate() - self.readthread=None - self.readIn(self.samplename) - return - if self.readdone.value: - self.readthread.join(.1) + #move away from shared memory #this costs performance but seems necessary diff --git a/docker/DJCEnv/Dockerfile b/docker/DJCEnv/Dockerfile index 683b900..58e0979 100644 --- a/docker/DJCEnv/Dockerfile +++ b/docker/DJCEnv/Dockerfile @@ -22,7 +22,7 @@ RUN pip install uproot #RUN pip install gpustat #RUN pip install tensorflow-gpu==1.13.1 -RUN pip install tensorflow==1.13.1 +RUN pip install tensorflow==1.14 ## RUN pip install Keras==2.0.5 # DEEPJETCORE specifics diff --git a/docker/gpuAdd/Dockerfile b/docker/gpuAdd/Dockerfile index ec4caa3..d402d56 100644 --- a/docker/gpuAdd/Dockerfile +++ b/docker/gpuAdd/Dockerfile @@ -4,7 +4,7 @@ FROM cernml4reco/djc_ubuntu #needs to run first: nvidia-modprobe -u -c=0 outside container -RUN pip install tensorflow-gpu==1.13.1 +RUN pip install tensorflow-gpu==1.14 RUN pip install gpustat RUN pip install setGPU diff --git a/training/training_base.py b/training/training_base.py index bc1f62e..c7afb96 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -428,7 +428,7 @@ def trainModel(self, lr_epsilon=0.003, lr_cooldown=6, lr_minimum=0.000001, - maxqsize=5, + maxqsize=3, checkperiod=10, additional_plots=None, additional_callbacks=None, @@ -490,7 +490,7 @@ def trainModel(self, callbacks=self.callbacks.callbacks, validation_data=self.val_data.generator(), validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, - max_queue_size=1, + max_queue_size=maxqsize, #max_q_size=1, use_multiprocessing=True, #the threading one doe not loke DJC **trainargs) From ded914372fde2fe5f919e185af9e83628078b7e3 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Oct 2019 17:53:39 +0200 Subject: [PATCH 119/437] avoid mem errors during build --- docker/gpuAdd/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/gpuAdd/Dockerfile b/docker/gpuAdd/Dockerfile index d402d56..809db7b 100644 --- a/docker/gpuAdd/Dockerfile +++ b/docker/gpuAdd/Dockerfile @@ -4,7 +4,8 @@ FROM cernml4reco/djc_ubuntu #needs to run first: nvidia-modprobe -u -c=0 outside container -RUN pip install tensorflow-gpu==1.14 RUN pip install gpustat RUN pip install setGPU +#this one is big +RUN pip --no-cache-dir install tensorflow-gpu==1.14 From 28d6e7d3140723e79c04be1a5f45d2d548b2b8a0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 1 Nov 2019 10:40:43 +0100 Subject: [PATCH 120/437] no copy option --- DataCollection.py | 5 +++-- __init__.py | 5 ++++- bin/convertFromRoot.py | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index af1c673..03e9c69 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -61,6 +61,7 @@ def __init__(self, infile = None, nprocs = -1): # Running data conversion etc. on a batch farm self.batch_mode = False + self.no_copy_on_convert = False def clear(self): self.samples=[] @@ -508,7 +509,7 @@ def __writeData(self, sample, outputDir): fileTimeOut(sample,120) #once available copy to ram - if self.batch_mode: + if self.batch_mode or self.no_copy_on_convert: tmpinput = sample def removefile(): @@ -576,7 +577,7 @@ def writeData_async(index,woq,wrlck): td=copy.deepcopy(self.dataclass) sample=self.originRoots[index] - if self.batch_mode: + if self.batch_mode or self.no_copy_on_convert: tmpinput = sample def removefile(): diff --git a/__init__.py b/__init__.py index a6048af..e0d2b50 100644 --- a/__init__.py +++ b/__init__.py @@ -8,4 +8,7 @@ import sys import tensorflow as tf -sys.modules["keras"] = tf.keras \ No newline at end of file +sys.modules["keras"] = tf.keras + +import matplotlib +matplotlib.use('Agg') diff --git a/bin/convertFromRoot.py b/bin/convertFromRoot.py index c76faf9..bfb79a1 100755 --- a/bin/convertFromRoot.py +++ b/bin/convertFromRoot.py @@ -38,6 +38,7 @@ parser.add_argument("--means", action='store_true', help='compute only means') parser.add_argument("--nforweighter", default='500000', help='set number of samples to be used for weight and mean calculation') parser.add_argument("--batch", help='Provide a batch ID to be used') +parser.add_argument("--noramcopy", action='store_true', help='Do not copy input file to /dev/shm before conversion') parser.add_argument("-v", action='store_true', help='verbose') parser.add_argument("-q", action='store_true', help='quiet') @@ -93,6 +94,7 @@ # MAIN BODY # dc = DataCollection(nprocs = (1 if args.nothreads else -1)) dc.meansnormslimit = int(args.nforweighter) +dc.no_copy_on_convert = args.noramcopy if len(nchilds): dc.nprocs=int(nchilds) if args.batch is not None: From a755e43d65a3b98dc17141f76b8ab3911ef2c0ca Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 1 Nov 2019 17:14:08 +0100 Subject: [PATCH 121/437] tokens can be switched of fully now --- docker/DJCEnv/Dockerfile | 17 +++++++++++------ docker/buildall.sh | 9 ++++++--- docker/gpuAdd/Dockerfile | 2 -- training/training_base.py | 7 +++++-- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/docker/DJCEnv/Dockerfile b/docker/DJCEnv/Dockerfile index 58e0979..d4fd1a3 100644 --- a/docker/DJCEnv/Dockerfile +++ b/docker/DJCEnv/Dockerfile @@ -12,20 +12,25 @@ SHELL ["/bin/bash", "-c"] RUN apt-get install -y locales +RUN pip install --upgrade pip + RUN pip install numpy RUN pip install root_numpy RUN pip install scikit-learn RUN pip install scikit-image RUN pip install h5py -RUN pip install uproot +RUN pip install uproot Pillow scipy seaborn +RUN pip install scikit-learn +RUN pip install scikit-image -#RUN pip install gpustat -#RUN pip install tensorflow-gpu==1.13.1 +#may be useful +RUN pip install opencv-python +RUN pip install easydict tqdm +RUN pip install Cython +RUN pip install numba -RUN pip install tensorflow==1.14 -## RUN pip install Keras==2.0.5 +RUN pip --no-cache-dir install tensorflow==1.15 -# DEEPJETCORE specifics ENV DEEPJETCORE /usr/share/DJC/DeepJetCore RUN ldconfig diff --git a/docker/buildall.sh b/docker/buildall.sh index 2286339..f1c2d64 100755 --- a/docker/buildall.sh +++ b/docker/buildall.sh @@ -1,9 +1,12 @@ #!/bin/bash + +tag=$1 + cd base -docker build -t cernml4reco/djc_ubuntu_rootbase:latest . +docker build -t "cernml4reco/djc_ubuntu_rootbase:${tag}" . cd ../DJCEnv -docker build -t cernml4reco/djc_ubuntu:latest . +docker build -t "cernml4reco/djc_ubuntu:${tag}" . cd ../gpuAdd -docker build -t cernml4reco/djc_ubuntu_gpu:latest . +docker build -t "cernml4reco/djc_ubuntu_gpu:${tag}" . cd .. diff --git a/docker/gpuAdd/Dockerfile b/docker/gpuAdd/Dockerfile index 809db7b..901fb76 100644 --- a/docker/gpuAdd/Dockerfile +++ b/docker/gpuAdd/Dockerfile @@ -6,6 +6,4 @@ FROM cernml4reco/djc_ubuntu RUN pip install gpustat RUN pip install setGPU -#this one is big -RUN pip --no-cache-dir install tensorflow-gpu==1.14 diff --git a/training/training_base.py b/training/training_base.py index c7afb96..cd4533d 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -451,7 +451,9 @@ def trainModel(self, #self.keras_model.save(self.outputDir+'KERAS_check_last_model.h5') print('setting up callbacks') from .DeepJet_callbacks import DeepJet_callbacks - + minTokenLifetime = 5 + if not self.renewtokens: + minTokenLifetime = -1 self.callbacks=DeepJet_callbacks(self.keras_model, stop_patience=stop_patience, @@ -464,7 +466,8 @@ def trainModel(self, checkperiod=checkperiod, checkperiodoffset=self.trainedepoches, additional_plots=additional_plots, - batch_loss = plot_batch_loss) + batch_loss = plot_batch_loss, + minTokenLifetime = minTokenLifetime) if additional_callbacks is not None: if not isinstance(additional_callbacks, list): From 20ff138295de7bced328341f5737661f0a77d345 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 4 Nov 2019 16:45:48 +0100 Subject: [PATCH 122/437] almost mergning --- README.md | 64 +++++++---------------------------- bin/createSubpackage.py | 10 +++--- docker/DJCEnv/Dockerfile | 73 ---------------------------------------- docker/base/Dockerfile | 42 ----------------------- docker/buildall.sh | 12 ------- docker/gpuAdd/Dockerfile | 9 ----- 6 files changed, 16 insertions(+), 194 deletions(-) delete mode 100644 docker/DJCEnv/Dockerfile delete mode 100644 docker/base/Dockerfile delete mode 100755 docker/buildall.sh delete mode 100644 docker/gpuAdd/Dockerfile diff --git a/README.md b/README.md index f743c04..d5113b7 100644 --- a/README.md +++ b/README.md @@ -1,63 +1,21 @@ -**For the bleeding-edge version of DeepJetCore check out the [updated installation](https://github.com/SwapneelM/DeepJetCore/blob/python-package/PYPKG.md) However, it is recommended to use the stable version described in the next Section** -*For details on the bleeding edge version, refer to the [presentations for DeepJet](https://drive.google.com/drive/folders/1l8Hu34hMYNc-YdgpCoAuqMzQ-qa5eCSJ?usp=sharing)* -*Check out the [DeepJetCore wiki](https://github.com/DL4Jets/DeepJetCore/wiki) for an introduction to the package.* DeepJetCore: Package for training and evaluation of deep neural networks for HEP =============================================================================== This package provides the basic functions for out-of-memory training, resampling, and basic evaluation. -The actual training data structures and DNN models must be defined in an additional user package. The data structures (defining the structure of the training data as numpy arrays), must inherit from the TrainData class, and must be reachable in the PYTHONPATH as "from datastructure import * " . -A script to set it up will be provided eventually. For reference, please see: -https://github.com/DL4Jets/DeepJet/tree/master/modules +For simple use cases, only two files need to be adapted: the actual training data structures, describing how to fill numpy arrays from root trees, and the DNN model itself. Both must be defined in an additional user package. +Please refer to the Section 'Usage' for more information. -Setup python packages (CERN) +Setup ========== -It is essential to perform all these steps on lxplus7. Simple ssh to 'lxplus7' instead of 'lxplus' -Pre-Installation: Anaconda setup (only once) -Download miniconda3 -``` -cd -wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -bash Miniconda3-latest-Linux-x86_64.sh -``` -Please follow the installation process. If you don't know what an option does, please answer 'yes'. -After installation, you have to log out and log in again for changes to take effect. -If you don't use bash, you might have to add the conda path to your .rc file -``` -export PATH="/miniconda3/bin:$PATH" -``` -This has to be only done once. +The package comes with a docker file in the subdirectory docker, which will set up a container with the needed environment. -Installation: - -``` -mkdir -cd -git clone https://github.com/DL4Jets/DeepJetCore -cd DeepJetCore/environment -./setup_djcenv.sh #opt: gpu -``` -For enabling gpu support add 'gpu' (without quotes) as an additional option to the last command. -This will take a while. Please log out and in again once the installation is finised. - -Compiling DeepJetCore -=========== - -When the installation was successful, the DeepJetCore tools need to be compiled. -``` -cd -cd DeepJetCore -source env.sh -cd compiled -make -j4 -``` - -After successfully compiling the tools, log out and in again. -The environment is set up. +**Users with access to Cernbox** can just run the prepared script at: +``/eos/home-j/jkiesele/singularity/run_deepjetcore.sh`` Usage @@ -70,11 +28,13 @@ More instructions are printed by the script creating the subpackage. This subpackage can serve as a reference for own projects. In general, the following steps are needed for a training and evaluation: - * Always source the environment script (```env.sh```) in the subpackage directory, NOT in DeepJetCore. + * Always source the environment script (``env.sh``) in the subpackage directory, NOT in DeepJetCore. * Define the training data structure, e.i. which branches from the input root ntuples are read, and how they are re-organised as input to the DNN. An example can be found in subpackage/modules/datastructures - * Convert the root ntuples into the training data format using convertFromRoot.py. Please consider the help message for options (```convertFromRoot.py -h```). The input is a list of root files contained in a text file. An example dataset is generated when setting up the subpackage. It can be found in subpackage/example_data. Different files should be used for training and testing. To convert the training data, execute ```convertFromRoot.py -i -o -c TrainData_example```, with TrainData_example being the data structure defined before. To create the test dataset, execute ```convertFromRoot.py -i --testdatafor /dataCollection.dc -o ```. - * Train the model. The convertFromRoot.py script creates a set of output files and a descriptor (dataCollection.dc). This descriptor is fed to the training file which contains the model definition and an instance of the trainingbase class. An example is given in subpackage/Train/training_example.py. This file is called with ```python training_example.py /path/to/data/dataCollection.dc ```. More options are provided and described when calling ```python training_example.py -h```. - * Once the training is done, the model can be used to predict the output of the model for the test data: ```predict.py /path/to/the/model.h5 /path/to/the/test/data/dataCollection.dc ```. Please keep in mind that the output can become large (not the case in the example). + * Convert the root ntuples into the training data format using convertFromRoot.py. Please consider the help message for options (``convertFromRoot.py -h``). The input is a list of root files contained in a text file. An example dataset is generated when setting up the subpackage. It can be found in subpackage/example_data. + Different files should be used for training and testing. To convert the training data, execute ``convertFromRoot.py -i -o -c TrainData_example``, with TrainData_example being the data structure defined before. To create the test dataset, execute ``convertFromRoot.py -i --testdatafor /dataCollection.dc -o ``. + * Train the model. The convertFromRoot.py script creates a set of output files and a descriptor (dataCollection.dc). This descriptor is fed to the training file which contains the model definition and an instance of the trainingbase class. An example is given in subpackage/Train/training_example.py. + This file is called with ``python training_example.py /path/to/data/dataCollection.dc ``. More options are provided and described when calling ``python training_example.py -h``. + * Once the training is done, the model can be used to predict the output of the model for the test data: ``predict.py /path/to/the/model.h5 /path/to/the/test/data/dataCollection.dc ``. Please keep in mind that the output can become large (not the case in the example). * For plotting, there are a few simple wrappers provided, which can be found in DeepJetCore/evaluation/evaluation.py, for making ROCs and simple plots. As input, these functions take the text file created by the predict.py script. diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index c73b4ec..0ff0087 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -10,7 +10,7 @@ parser.add_argument("subpackage_name", help="name of the subpackage") parser.add_argument("subpackage_parent_dir", help="parent directory of the subpackage (must be same as DeepJetCore)") -parser.add_argument("--nodata", help="do NOT create example data", default=False, action="store_true") +parser.add_argument("--data", help="create example data", default=False, action="store_true") args=parser.parse_args() @@ -22,10 +22,8 @@ environment_file=''' #! /bin/bash -THISDIR=`pwd` -cd {deepjetcore} -source env.sh -cd $THISDIR + + export {subpackage}=$( cd "$( dirname "${BASH_SOURCE}" )" && pwd -P) export DEEPJETCORE_SUBPACKAGE=${subpackage} @@ -473,7 +471,7 @@ def my_regression_model(Inputs,nclasses,nregressions,otheroption): with open(subpackage_dir+'/cpp_analysis/bin/example.cpp','w') as lfile: lfile.write(bin_template) -if args.nodata: +if not args.data: exit() print('creating example data... (10 training files, 1 test file, 1000 events each)') os.system('cd '+subpackage_dir+'/example_data; make_example_data 1000 10 1') diff --git a/docker/DJCEnv/Dockerfile b/docker/DJCEnv/Dockerfile deleted file mode 100644 index d4fd1a3..0000000 --- a/docker/DJCEnv/Dockerfile +++ /dev/null @@ -1,73 +0,0 @@ - - -FROM cernml4reco/djc_ubuntu_rootbase - - -# -# All additional ML packages and DeepJetCore here -# -# - -SHELL ["/bin/bash", "-c"] - -RUN apt-get install -y locales - -RUN pip install --upgrade pip - -RUN pip install numpy -RUN pip install root_numpy -RUN pip install scikit-learn -RUN pip install scikit-image -RUN pip install h5py -RUN pip install uproot Pillow scipy seaborn -RUN pip install scikit-learn -RUN pip install scikit-image - -#may be useful -RUN pip install opencv-python -RUN pip install easydict tqdm -RUN pip install Cython -RUN pip install numba - -RUN pip --no-cache-dir install tensorflow==1.15 - - -ENV DEEPJETCORE /usr/share/DJC/DeepJetCore -RUN ldconfig -RUN cd /usr/share && \ - mkdir DJC && \ - cd DJC && \ - git clone https://github.com/DL4Jets/DeepJetCore && \ - cd DeepJetCore && \ - git checkout docker && \ - source docker_env.sh && \ - cd compiled && \ - make -j4 - - -ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" - -#/usr/local/lib is for root -ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" -ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" - - -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y krb5-user && \ - sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf - -#for me ;) -RUN apt-get install -y zsh - -##eos and CERN stuff, ask clemens - - - - - - - - - - -#ENV DJCenvname DJCpath \ No newline at end of file diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile deleted file mode 100644 index feeac2a..0000000 --- a/docker/base/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ - - -FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 - - -SHELL ["/bin/bash", "-c"] - -RUN apt-get update -RUN apt-get install -y python2.7-dev python-pip nano emacs -RUN apt-get install -y wget -RUN apt-get install -y libboost-all-dev -RUN apt-get install -y git - - -## root part -RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev -RUN apt-get install -y cmake - -RUN mkdir /temproot && \ - cd /temproot && \ - git clone http://github.com/root-project/root.git && \ - cd root && \ - git checkout -b v6-18-04 v6-18-04 -RUN cd /temproot && \ - mkdir build && \ - cd build && \ - cmake ../root -RUN cd /temproot/build && \ - make -j5 && \ - make install && \ - rm -rf /temproot - - -#ensure import ROOT -ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" - - - - - - -#ENV DJCenvname DJCpath \ No newline at end of file diff --git a/docker/buildall.sh b/docker/buildall.sh deleted file mode 100755 index f1c2d64..0000000 --- a/docker/buildall.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - - -tag=$1 - -cd base -docker build -t "cernml4reco/djc_ubuntu_rootbase:${tag}" . -cd ../DJCEnv -docker build -t "cernml4reco/djc_ubuntu:${tag}" . -cd ../gpuAdd -docker build -t "cernml4reco/djc_ubuntu_gpu:${tag}" . -cd .. diff --git a/docker/gpuAdd/Dockerfile b/docker/gpuAdd/Dockerfile deleted file mode 100644 index 901fb76..0000000 --- a/docker/gpuAdd/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ - - -FROM cernml4reco/djc_ubuntu - -#needs to run first: nvidia-modprobe -u -c=0 outside container - -RUN pip install gpustat -RUN pip install setGPU - From 147b57071ffdb5160b1aa078eb6bab4ae98f1094 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 4 Nov 2019 16:48:37 +0100 Subject: [PATCH 123/437] docker file --- docker/Dockerfile | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 docker/Dockerfile diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..b49fe50 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,96 @@ + + +FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 + + +SHELL ["/bin/bash", "-c"] + +RUN apt-get update +RUN apt-get install -y python2.7-dev python-pip nano emacs +RUN apt-get install -y wget +RUN apt-get install -y libboost-all-dev +RUN apt-get install -y git + + +## root part +RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev +RUN apt-get install -y cmake + +RUN mkdir /temproot && \ + cd /temproot && \ + git clone http://github.com/root-project/root.git && \ + cd root && \ + git checkout -b v6-18-04 v6-18-04 +RUN cd /temproot && \ + mkdir build && \ + cd build && \ + cmake ../root +RUN cd /temproot/build && \ + make -j5 && \ + make install && \ + rm -rf /temproot + + +#ensure import ROOT +ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" + + +RUN apt-get install -y locales + +RUN pip install --upgrade pip + +RUN pip install numpy +RUN pip install root_numpy +RUN pip install scikit-learn +RUN pip install scikit-image +RUN pip install h5py +RUN pip install uproot Pillow scipy seaborn +RUN pip install scikit-learn +RUN pip install scikit-image +RUN pip install matplotlib + +#may be useful +RUN pip install opencv-python +RUN pip install easydict tqdm +RUN pip install Cython +RUN pip install numba + +RUN pip --no-cache-dir install tensorflow==1.15 + + +ENV DEEPJETCORE /usr/share/DJC/DeepJetCore +RUN ldconfig +RUN cd /usr/share && \ + mkdir DJC && \ + cd DJC && \ + git clone https://github.com/DL4Jets/DeepJetCore && \ + cd DeepJetCore && \ + source docker_env.sh && \ + cd compiled && \ + make -j4 + + +ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" + +#/usr/local/lib is for root +ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" +ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" + + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y krb5-user && \ + sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf + +#for me ;) +RUN apt-get install -y zsh + +##gpu specific stuff +RUN pip install gpustat +RUN pip install setGPU + + + + + + +#ENV DJCenvname DJCpath \ No newline at end of file From e5c7788fe6e00fb3d372913e8b8cfacfc26b9f18 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 4 Nov 2019 16:54:49 +0100 Subject: [PATCH 124/437] better readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d5113b7..404be65 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ The package comes with a docker file in the subdirectory docker, which will set **Users with access to Cernbox** can just run the prepared script at: ``/eos/home-j/jkiesele/singularity/run_deepjetcore.sh`` +Please run this script from your home directory. Sometimes you need to try two or three times - singularity is a bit weird. But once the contaienr is launched, everything works smoothly. +The message about a missing user group can be safely ignored. Usage From daf88a21d5aec688713174e8aeff17294767f489 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 4 Nov 2019 16:57:25 +0100 Subject: [PATCH 125/437] docu --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 404be65..917b34a 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Usage ========== DeepJetCore is only a set of tools and wrappers and does not provide ready-to-use training code. -However, an example package containing more specific code examples (referred to as 'subpackage' in the following) can be created once everything is compiled and the environment is sourced (important!) using the script ``createSubpackage.py``. +However, an example package containing more specific code examples (referred to as 'subpackage' in the following) can be created once the container is launched using the script ``createSubpackage.py``. This subpackage will include an example dataset which gets generated on the fly (size about 150 MB). More instructions are printed by the script creating the subpackage. This subpackage can serve as a reference for own projects. From 8bfdaf486ddfe9aee283d93a4b0643510dd25ec7 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 4 Nov 2019 17:26:33 +0100 Subject: [PATCH 126/437] better docu --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 917b34a..df77443 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,15 @@ Setup The package comes with a docker file in the subdirectory docker, which will set up a container with the needed environment. -**Users with access to Cernbox** can just run the prepared script at: +**Users with access to Cernbox** can just run the container through the prepared script at: ``/eos/home-j/jkiesele/singularity/run_deepjetcore.sh`` -Please run this script from your home directory. Sometimes you need to try two or three times - singularity is a bit weird. But once the contaienr is launched, everything works smoothly. +Please run this script from your home directory. The cache dir can get rather large and is normally located at ~/.singularity/cache. To avoid filling up the home afs, the cache can be set to /tmp or the work afs. Once the container is fully closed, the cache can be safely deleted. Singularity reacts to environment variables, e.g. + +``` +export SINGULARITY_CACHEDIR="/tmp/$(whoami)/singularity" +``` + +Sometimes you need to try two or three times - singularity is a bit weird. But once the contaienr is launched, everything works smoothly. The message about a missing user group can be safely ignored. From 0593a740866017e6ea5e2bc4894e494f307ddee4 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 7 Nov 2019 09:37:24 +0000 Subject: [PATCH 127/437] fix --- compiled/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiled/Makefile b/compiled/Makefile index c282926..b62ff40 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -28,7 +28,7 @@ classdict.so: classdict.cxx %: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx - g++ $(CFLAGS) -I./interface $(LINUXADD) $< $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ + g++ $(CFLAGS) -I./interface $(LINUXADD) $< -L. -ldeepjetcorehelpers -lquicklz $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ mv $@ ../bin/ #helpers From b01dd142096f5c4341325fd1d5f9e63cec07aed9 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 7 Nov 2019 09:41:20 +0000 Subject: [PATCH 128/437] cpp traindata stuff --- compiled/interface/IO.h | 68 ++++ compiled/interface/quicklzWrapper.h | 196 +++++++++++ compiled/interface/simpleArray.h | 507 ++++++++++++++++++++++++++++ compiled/interface/trainData.h | 245 ++++++++++++++ compiled/interface/version.h | 15 + compiled/src/c_NumpyInterface.C | 56 +++ compiled/src/c_TrainDataInferface.C | 22 ++ compiled/to_bin/testpipeline.cpp | 165 +++++++++ 8 files changed, 1274 insertions(+) create mode 100644 compiled/interface/IO.h create mode 100644 compiled/interface/quicklzWrapper.h create mode 100644 compiled/interface/simpleArray.h create mode 100644 compiled/interface/trainData.h create mode 100644 compiled/interface/version.h create mode 100644 compiled/src/c_NumpyInterface.C create mode 100644 compiled/src/c_TrainDataInferface.C create mode 100644 compiled/to_bin/testpipeline.cpp diff --git a/compiled/interface/IO.h b/compiled/interface/IO.h new file mode 100644 index 0000000..3e02f53 --- /dev/null +++ b/compiled/interface/IO.h @@ -0,0 +1,68 @@ +/* + * IO.h + * + * Created on: 7 Nov 2019 + * Author: jkiesele + */ + +#ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_IO_H_ +#define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_IO_H_ + +#include +#include +#include +#include + +/* + * Very simple template wrapper around fread and fwrite with error checks + * The number of datatypes written is NOT given in bytes. + * Only works for types with valid sizeof(type). + * Otherwise specify number of bytes + */ + +namespace djc{ +namespace io{ +//only linux +inline std::string followFileName(FILE * ofile){ + char proclnk[0xFFF]; + char filename[0xFFF]; + sprintf(proclnk, "/proc/self/fd/%d", fileno(ofile)); + int r = readlink(proclnk, filename, 0xFFF); + std::string fname="uknown"; + if(r>0){ + if(r>=0xFFF-1) + r = 0xFFF-1; + filename[r]='\0'; + fname=filename; + } + return fname; +} + +template +void writeToFile(T * p, FILE * ofile, size_t N=1, size_t Nbytes=0){ + if(!Nbytes){ + Nbytes = N*sizeof(T); + } + size_t ret = fwrite(p, 1, Nbytes, ofile); + if(ret != Nbytes){ + std::string fname = followFileName(ofile); + fclose(ofile); + throw std::runtime_error("writing to file "+fname+" not successful"); + } +} + +template +void readFromFile(T * p, FILE* ifile, size_t N=1, size_t Nbytes=0){ + if(!Nbytes) + Nbytes = N* sizeof(T); + size_t ret = fread(p, 1, Nbytes, ifile); + if(ret != Nbytes){ + std::string fname = followFileName(ifile); + fclose(ifile); + throw std::runtime_error("reading from file "+fname+" not successful"); + } +} +} +} + +#endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_IO_H_ */ diff --git a/compiled/interface/quicklzWrapper.h b/compiled/interface/quicklzWrapper.h new file mode 100644 index 0000000..d5be98a --- /dev/null +++ b/compiled/interface/quicklzWrapper.h @@ -0,0 +1,196 @@ +/* + * quicklzWrapper.h + * + * Created on: 5 Nov 2019 + * Author: jkiesele + */ + +#ifndef DEEPJETCORE_COMPILED_INTERFACE_QUICKLZWRAPPER_H_ +#define DEEPJETCORE_COMPILED_INTERFACE_QUICKLZWRAPPER_H_ + +#include "quicklz.h" +#include +#include +#include +#include +#include + +#include "version.h" + +#define QUICKLZ_MAXCHUNK (0xffffffff - 400) + +namespace djc{ +template +class quicklz{ +public: + + quicklz(); + ~quicklz(); + + void reset(); + + //reads header, saves total uncompressed size + void readHeader(FILE *& ifile); + + //get uncompressed size to allocate memory if needed + //not in bytes but in terms of T + size_t getSize()const{return totalbytes_/sizeof(T);} + + //writes from compressed file to memory + //returns in terms of T how many elements have been read + size_t readCompressedBlock(FILE *& ifile, T * arr); + + //assumes you know the size that is supposed to be read + //and memory has been allocated already! + //returns in terms of T how many compressed elements have been read (without header) + size_t readAll(FILE *& ifile, T * arr); + + //writes header and compressed data + //give size in terms of T + void writeCompressed(T * arr, size_t size, FILE *& ofile); + + +private: + std::vector chunksizes_; + uint8_t nchunks_; + size_t totalbytes_; + qlz_state_decompress *state_decompress_; + qlz_state_compress *state_compress_; +}; + +template +quicklz::quicklz(){ + nchunks_=0; + totalbytes_=0; + state_decompress_ = new qlz_state_decompress(); + state_compress_ = new qlz_state_compress(); +} + + +template +quicklz::~quicklz(){ + delete state_decompress_; + delete state_compress_ ; +} + +template +void quicklz::reset(){ + chunksizes_.clear(); + nchunks_ = 0; + totalbytes_ = 0; + delete state_decompress_; + delete state_compress_; + state_decompress_ = new qlz_state_decompress(); + state_compress_ = new qlz_state_compress(); +} + +template +void quicklz::readHeader(FILE *& ifile) { + nchunks_ = 0; + chunksizes_.clear(); + totalbytes_ = 0; + float version = 0; + fread(&version, 1, sizeof(float), ifile); + if(version != DJCDATAVERSION) + throw std::runtime_error("quicklz::readHeader: incompatible version"); + fread(&nchunks_, 1, 1, ifile); + chunksizes_ = std::vector(nchunks_, 0); + size_t vecbytesize = nchunks_ * sizeof(size_t); + fread(&chunksizes_[0], 1, vecbytesize, ifile); + fread(&totalbytes_, 1, sizeof(size_t), ifile); +} + + + + +template +size_t quicklz::readCompressedBlock(FILE *& ifile, T * arr){ + + size_t chunk = 0; + size_t readbytes = 0; + size_t writepos = 0; + size_t allread = 0; + char* src = 0; + + while (chunk < nchunks_ && totalbytes_) { + src = new char[chunksizes_.at(chunk)]; + fread(src, 1, chunksizes_.at(chunk), ifile); + readbytes += qlz_size_decompressed(src); + + allread += qlz_decompress(src, arr, state_decompress_); + writepos = readbytes; + chunk++; + arr += writepos / sizeof(T); + delete src; + } + if (allread != totalbytes_) { + std::string moreinfo = "\nexpected: "; + moreinfo += std::to_string(totalbytes_); + moreinfo += " got: "; + moreinfo += std::to_string(allread); + delete state_decompress_; + state_decompress_ = 0; + throw std::runtime_error( + "quicklz::readCompressedBlock: expected size and uncompressed size don't match"); + } + return allread / sizeof(T); +} + + + +template +size_t quicklz::readAll(FILE *& ifile, T * arr) { + readHeader(ifile); + return readCompressedBlock(ifile, arr); +} + +template +void quicklz::writeCompressed(T * arr, size_t size, FILE *& ofile) { + + size_t length = size * sizeof(T); + char *src = (char*) (void*) arr; + + //destination buffer + char *dst = new char[length + 400]; + size_t remaininglength = length; + size_t len2 = 0; + size_t startbyte = 0; + uint8_t nchunks = 1; + std::vector chunksizes; + + while (remaininglength) { + + size_t uselength = 0; + if (remaininglength > QUICKLZ_MAXCHUNK) { + uselength = QUICKLZ_MAXCHUNK; + remaininglength -= QUICKLZ_MAXCHUNK; + nchunks++; + if (!nchunks) { + throw std::runtime_error( + "quicklz::writeCompressed: array size too big (O(TB))!"); + } + + } else { + uselength = remaininglength; + remaininglength = 0; + } + size_t thissize = qlz_compress(&src[startbyte], &dst[len2], uselength, + state_compress_); + chunksizes.push_back(thissize); + len2 += thissize; + startbyte += uselength; + } + float version = DJCDATAVERSION; + fwrite(&version,1,sizeof(float),ofile); + fwrite(&nchunks,1,1,ofile); + fwrite(&chunksizes[0],1,chunksizes.size()*sizeof(size_t),ofile); + fwrite(&length, 1, sizeof(size_t), ofile); + fwrite(dst, len2, 1, ofile); + + //end + delete dst; +} + +}//namespace + +#endif diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h new file mode 100644 index 0000000..21e9c88 --- /dev/null +++ b/compiled/interface/simpleArray.h @@ -0,0 +1,507 @@ +/* + * simpleArray.h + * + * Created on: 5 Nov 2019 + * Author: jkiesele + */ + +#ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ +#define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ + +#include +#include +#include +#include "quicklzWrapper.h" +#include //memcpy +#include "IO.h" +#include "version.h" + +namespace djc{ + + +template +class simpleArray { +public: + + simpleArray(); + simpleArray(std::vector shape); + simpleArray(FILE *& ); + ~simpleArray(); + + simpleArray(const simpleArray&); + simpleArray& operator=(const simpleArray&); + + simpleArray(simpleArray &&); + simpleArray& operator=(simpleArray &&); + + void clear(); + + //reshapes if possible, creates new else + void setShape(std::vector shape); + + T * data() const { + return data_; + } + + T * data() { + return data_; + } + + + const std::vector& shape() const { + return shape_; + } + + const size_t& size() const { + return size_; + } + + /* + * returns the dimension of the first axis. + * If second dimension is ragged, this will take it into + * account. + */ + size_t getFirstDimension()const; + + // row splits are indicated by a merged dimension with negative sign + // always merge to previous dimension + // e.g. A x B x C x D, where B is ragged would get shape + // -A*B x C x D + // Only one ragged dimension is supported! + // Still to be implemented. All read/write functions already include this data + // + // const std::vector& rowsplits() const { + // return rowsplits_; + // } + // + // void setRowsplits(const std::vector& rowsplits) { + // rowsplits_ = rowsplits; + // } + + /* + * Move data memory location to another object + * This will reset the array. Read shapes, row splits etc. before + * performing this operation! + */ + T * disownData(); + + /* + * Splits on first axis. + * Returns the second part, leaves the first. + * does memcopy for both pats now + */ + simpleArray split(size_t splitindex); + + /* + * appends along first axis + * Cann append to an empty array (same as copy) + */ + void append(const simpleArray& a); + + /* file IO here + * format: non compressed header (already writing rowsplits!): + * size, shape.size(), [shape], rowsplits.size(), [rowsplits], compr: [data] + * + */ + void addToFile(FILE *& ofile) const; + + void readFromFile(FILE *& ifile); + + /* + * Does not work (yet) with ragged arrays! + * Will just produce garbage! + */ + + T & at(size_t i); + const T & at(size_t i)const; + T & at(size_t i, size_t j); + const T & at(size_t i, size_t j)const; + T & at(size_t i, size_t j, size_t k); + const T & at(size_t i, size_t j, size_t k)const; + T & at(size_t i, size_t j, size_t k, size_t l); + const T & at(size_t i, size_t j, size_t k, size_t l)const; + T & at(size_t i, size_t j, size_t k, size_t l, size_t m); + const T & at(size_t i, size_t j, size_t k, size_t l, size_t m)const; + T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n); + const T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; + +private: + void copyFrom(const simpleArray& a); + void moveFrom(simpleArray && a); + int sizeFromShape(std::vector shape) const; + void checkShape(size_t ndims)const; + void checkSize(size_t idx)const; + + T * data_; + std::vector shape_; + std::vector rowsplits_; + size_t size_; +}; + +template +simpleArray::simpleArray() : + data_(0), size_(0) { + +} + +template +simpleArray::simpleArray(std::vector shape) : + data_(0), size_(0) { + shape_ = shape; + data_ = new T[sizeFromShape(shape_)]; + size_ = sizeFromShape(shape_); +} + +template +simpleArray::simpleArray(FILE *& ifile):simpleArray(){ + readFromFile(ifile); +} + +template +simpleArray::~simpleArray() { + clear(); +} + +template +simpleArray::simpleArray(const simpleArray& a) : + simpleArray() { + copyFrom(a); +} + +template +simpleArray& simpleArray::operator=(const simpleArray& a) { + copyFrom(a); + return *this; +} + +template +simpleArray::simpleArray(simpleArray && a) : + simpleArray() { + if (&a == this) + return; + if (data_) + delete data_; + data_ = a.data_; + a.data_ = 0; + size_ = a.size_; + a.size_ = 0; + shape_ = std::move(a.shape_); + rowsplits_ = std::move(a.rowsplits_); +} + +template +simpleArray& simpleArray::operator=(simpleArray && a) { + if (&a == this) + return *this; + if (data_) + delete data_; + data_ = a.data_; + a.data_ = 0; + size_ = a.size_; + a.size_ = 0; + shape_ = std::move(a.shape_); + rowsplits_ = std::move(a.rowsplits_); + return *this; +} + +template +void simpleArray::clear() { + if (data_) + delete data_; + data_ = 0; + shape_.clear(); + rowsplits_.clear(); + size_ = 0; +} + +template +void simpleArray::setShape(std::vector shape) { + int size = sizeFromShape(shape); + if (size != size_) { + *this = simpleArray(shape); + } else if (size == size_) { + shape_ = shape; + } +} +template +size_t simpleArray::getFirstDimension()const{ + if(!size_ || !shape_.size()) + return 0; + if(shape_.at(0)>0) + return shape_.at(0); + else + return rowsplits_.size(); +} + +template +T * simpleArray::disownData() { + T * dp = data_; + data_ = 0; + clear(); + return dp; +} + +/* + * Splits on first axis. + * Returns the first part, leaves the second + */ +template +simpleArray simpleArray::split(size_t splitindex) { + simpleArray out; + if (!shape_.size() || splitindex > shape_.at(0)) { + throw std::runtime_error( + "simpleArray::split: splitindex > shape_[0]"); + } + if (rowsplits_.size()) { + throw std::runtime_error("simpleArray::split: TBI for row splits"); + //check row split dimension, check if split possible and split accordingly + } + //get split point for data + size_t splitpoint = splitindex; + for (size_t i = 1; i < shape_.size(); i++) + splitpoint *= std::abs(shape_.at(i)); + size_t remaining = size_ - splitpoint; + + T * odata = new T[splitpoint]; + T * rdata = new T[remaining]; + + memcpy(odata, data_, splitpoint * sizeof(T)); + memcpy(rdata, data_ + splitpoint, remaining * sizeof(T)); + delete data_; + out.data_ = rdata; + data_ = odata; + out.shape_ = shape_; + out.shape_.at(0) = shape_.at(0) - splitindex; + shape_.at(0) = splitindex; + out.size_ = sizeFromShape(out.shape_); + size_ = sizeFromShape(shape_); + return out; +} + +/* + * Merges along first axis + */ +template +void simpleArray::append(const simpleArray& a) { + + if (!data_ && size_ == 0) { + *this = a; + return; + } + if (shape_.size() != a.shape_.size()) + throw std::out_of_range( + "simpleArray::append: shape dimensions don't match"); + std::vector targetshape; + if (shape_.size() > 1 && a.shape_.size() > 1) { + std::vector highshape = std::vector(shape_.begin() + 1, + shape_.end()); + std::vector ahighshape = std::vector(a.shape_.begin() + 1, + a.shape_.end()); + if (highshape != ahighshape) { + throw std::out_of_range( + "simpleArray::append: all shapes but first axis must match"); + } + targetshape.push_back(shape_.at(0) + a.shape_.at(0)); + targetshape.insert(targetshape.end(), highshape.begin(), + highshape.end()); + } else { + targetshape.push_back(shape_.at(0) + a.shape_.at(0)); + } + + if (rowsplits_.size() || a.rowsplits_.size()) + throw std::runtime_error("simpleArray::append: TBI for row splits"); + + T * ndata = new T[size_ + a.size_]; + memcpy(ndata, data_, size_ * sizeof(T)); + memcpy(ndata + size_, a.data_, a.size_ * sizeof(T)); + delete data_; + data_ = ndata; + size_ = size_ + a.size_; + shape_ = targetshape; + +} + +template +void simpleArray::addToFile(FILE *& ofile) const { + + float version = DJCDATAVERSION; + io::writeToFile(&version, ofile); + io::writeToFile(&size_, ofile); + size_t ssize = shape_.size(); + io::writeToFile(&ssize, ofile); + io::writeToFile(&shape_[0], ofile, shape_.size()); + size_t rssize = rowsplits_.size(); + io::writeToFile(&rssize, ofile); + io::writeToFile(&rowsplits_[0], ofile, rowsplits_.size()); + + quicklz qlz; + qlz.writeCompressed(data_, size_, ofile); +} + +template +void simpleArray::readFromFile(FILE *& ifile) { + clear(); + + float version = 0; + io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION) + throw std::runtime_error("simpleArray::readFromFile: wrong format version"); + + io::readFromFile(&size_, ifile); + + size_t shapesize = 0; + io::readFromFile(&shapesize, ifile); + shape_ = std::vector(shapesize, 0); + io::readFromFile(&shape_[0], ifile, shapesize); + + size_t rssize = 0; + io::readFromFile(&rssize, ifile); + rowsplits_ = std::vector(rssize, 0); + io::readFromFile(&rowsplits_[0], ifile, rssize); + + data_ = new T[size_]; + quicklz qlz; + size_t nread = qlz.readAll(ifile, data_); + if (nread != size_) + throw std::runtime_error( + "simpleArray::readFromFile: expected and observed length don't match"); + +} +template +void simpleArray::copyFrom(const simpleArray& a) { + + if (&a == this) { + return; + } + if (data_) + delete data_; + data_ = new T[a.size_]; + memcpy(data_, a.data_, a.size_ * sizeof(T)); + + size_ = a.size_; + shape_ = a.shape_; + rowsplits_ = a.rowsplits_; +} + +template +int simpleArray::sizeFromShape(std::vector shape) const { + int size = 1; + for (const auto s : shape) + size *= std::abs(s); + return size; +} +template +void simpleArray::checkShape(size_t ndims)const{ + if(rowsplits_.size()){ + //TBI + } + if(ndims != shape_.size()){ + throw std::out_of_range("simpleArray::checkShape: shape does not match dimensions accessed"); + } +} + +template +void simpleArray::checkSize(size_t idx)const{ + if(idx >= size_) + throw std::out_of_range("simpleArray::checkSize: index out of range"); +} + + + +template +T & simpleArray::at(size_t i){ + checkShape(1); + checkSize(i); + return data_[i]; +} + +template +const T & simpleArray::at(size_t i)const{ + checkShape(1); + checkSize(i); + return data_[i]; +} + +template +T & simpleArray::at(size_t i, size_t j){ + checkShape(2); + size_t flat = j + shape_.at(1)*i; + checkSize(flat); + return data_[flat]; +} + +template +const T & simpleArray::at(size_t i, size_t j)const{ + checkShape(2); + size_t flat = j + shape_.at(1)*i; + checkSize(flat); + return data_[flat]; +} + +template +T & simpleArray::at(size_t i, size_t j, size_t k){ + checkShape(3); + size_t flat = k + shape_.at(2)*(j + shape_.at(1)*i); + checkSize(flat); + return data_[flat]; +} + +template +const T & simpleArray::at(size_t i, size_t j, size_t k)const{ + checkShape(3); + size_t flat = k + shape_.at(2)*(j + shape_.at(1)*i); + checkSize(flat); + return data_[flat]; +} + +template +T & simpleArray::at(size_t i, size_t j, size_t k, size_t l){ + checkShape(4); + size_t flat = l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i)); + checkSize(flat); + return data_[flat]; +} + +template +const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l)const{ + checkShape(4); + size_t flat = l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i)); + checkSize(flat); + return data_[flat]; +} + +template +T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m){ + checkShape(5); + size_t flat = m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i))); + checkSize(flat); + return data_[flat]; +} + +template +const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m)const{ + checkShape(5); + size_t flat = m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i))); + checkSize(flat); + return data_[flat]; +} + +template +T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n){ + checkShape(6); + size_t flat = n + shape_.at(5)*(m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i)))); + checkSize(flat); + return data_[flat]; +} + +template +const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const{ + checkShape(6); + size_t flat = n + shape_.at(5)*(m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i)))); + checkSize(flat); + return data_[flat]; +} + +} + +#endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ */ diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h new file mode 100644 index 0000000..6987a65 --- /dev/null +++ b/compiled/interface/trainData.h @@ -0,0 +1,245 @@ +/* + * trainDataInterface.h + * + * Created on: 5 Nov 2019 + * Author: jkiesele + */ + +#ifndef DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAINTERFACE_H_ +#define DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAINTERFACE_H_ + +#include "simpleArray.h" +#include +#include "IO.h" + +namespace djc{ + +/* + * The idea is to make this a fixed size array class, that is filled with data and then written out once full. + * a truncate function will allow to truncate arrays at a given position. + * This is memory intense, but can be written out in small pieces and then merged + * + * No checks on the first dimension because of possibly ragged arrays + */ +template +class trainData{ +public: + + //just give access to the vectors, don't wrap like crazy + + const size_t addFeatureArray(std::vector shape); + const size_t addTruthArray(std::vector shape); + const size_t addWeightArray(std::vector shape); + + const simpleArray & featureArray(size_t idx) const { + return feature_arrays_.at(idx); + } + + const simpleArray & truthArray(size_t idx) const { + return truth_arrays_.at(idx); + } + + const simpleArray & weightArray(size_t idx) const { + return weight_arrays_.at(idx); + } + + simpleArray & featureArray(size_t idx) { + return feature_arrays_.at(idx); + } + + simpleArray & truthArray(size_t idx) { + return truth_arrays_.at(idx); + } + + simpleArray & weightArray(size_t idx) { + return weight_arrays_.at(idx); + } + + /* + * truncate all along first axis + */ + void truncate(size_t position); + + /* + * append along first axis + */ + void append(const trainData& ); + + /* + * split along first axis + * Returns the second part, leaves the first. + */ + trainData split(size_t splitindex); + + void writeToFile(std::string filename)const; + + void readFromFile(std::string filename); + + void clear(); + +private: + void writeArrayVector(const std::vector >&, FILE *&) const; + std::vector > readArrayVector(FILE *&) const; + std::vector > feature_arrays_; + std::vector > truth_arrays_; + std::vector > weight_arrays_; + +}; + + +template +const size_t trainData::addFeatureArray(std::vector shape){ + size_t idx = feature_arrays_.size(); + feature_arrays_.push_back(simpleArray(shape)); + return idx; +} + + +template +const size_t trainData::addTruthArray(std::vector shape){ + size_t idx = truth_arrays_.size(); + truth_arrays_.push_back(simpleArray(shape)); + return idx; +} + +template +const size_t trainData::addWeightArray(std::vector shape){ + size_t idx = weight_arrays_.size(); + weight_arrays_.push_back(simpleArray(shape)); + return idx; +} + +/* + * truncate all along first axis + */ +template +void trainData::truncate(size_t position){ + split(position); +} + +/* + * append along first axis + */ +template +void trainData::append(const trainData& td) { + if (feature_arrays_.size() != td.feature_arrays_.size() + || truth_arrays_.size() != td.truth_arrays_.size() + || weight_arrays_.size() != td.weight_arrays_.size()) { + throw std::out_of_range("trainData::append: format not compatible."); + } + for(size_t i=0;i +trainData trainData::split(size_t splitindex) { + trainData out; + for (auto& a : feature_arrays_) + out.feature_arrays_.push_back(a.split(splitindex)); + for (auto& a : truth_arrays_) + out.truth_arrays_.push_back(a.split(splitindex)); + for (auto& a : weight_arrays_) + out.weight_arrays_.push_back(a.split(splitindex)); + + return out; +} + +template +void trainData::writeToFile(std::string filename)const{ + + FILE *ofile = fopen(filename.data(), "wb"); + float version = DJCDATAVERSION; + io::writeToFile(&version, ofile); + writeArrayVector(feature_arrays_,ofile); + writeArrayVector(truth_arrays_,ofile); + writeArrayVector(weight_arrays_,ofile); + fclose(ofile); +} + +template +void trainData::readFromFile(std::string filename){ + clear(); + FILE *ifile = fopen(filename.data(), "rb"); + if(!ifile) + throw std::runtime_error("trainData::readFromFile: file "+filename+" could not be opened."); + float version = 0; + io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION) + throw std::runtime_error("trainData::readFromFile: wrong format version"); + + feature_arrays_ = readArrayVector(ifile); + truth_arrays_ = readArrayVector(ifile); + weight_arrays_ = readArrayVector(ifile); + fclose(ifile); + +} + +template +void trainData::clear() { + feature_arrays_.clear(); + truth_arrays_.clear(); + weight_arrays_.clear(); +} + +template +void trainData::writeArrayVector(const std::vector >& v, FILE *& ofile) const{ + + size_t size = v.size(); + io::writeToFile(&size, ofile); + for(const auto& a: v) + a.addToFile(ofile); + +} +template +std::vector > trainData::readArrayVector(FILE *& ifile) const{ + std::vector > out; + size_t size = 0; + io::readFromFile(&size, ifile); + for(size_t i=0;i (ifile)); + return out; +} + +/* + * Array storage: + * length, shape, length row splits, [row splits] ? numpy doesn't like ragged... maybe just return row splits? + * (shape is int. negative entries provoke row splits, only splits in one dimension supported) + * + * all data is float32. only row splits and shapes should be int (not size_t) for simple python conversion + * + * make it a traindata object + * + * interface: + * + * writeToFile(vector< float * > c_arrays (also pointers to first vec element), vector< vector > shapes, (opt) vector< vector > row_splits, filename) + * + * readFromFile + * + */ + +/* + * + * Make a write CPP interface that does not need boost whatsoever! + * Then wrap it for python-numpy bindings externally + * + * + */ + +/* + * uncompressed header with all shape infos + * compressed x,y,w lists or arrays? + * + * + */ + +}//namespace + +#endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAINTERFACE_H_ */ diff --git a/compiled/interface/version.h b/compiled/interface/version.h new file mode 100644 index 0000000..866f17e --- /dev/null +++ b/compiled/interface/version.h @@ -0,0 +1,15 @@ +/* + * version.h + * + * Created on: 6 Nov 2019 + * Author: jkiesele + */ + +#ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_VERSION_H_ +#define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_VERSION_H_ + +#define DJCDATAVERSION ((float)2.0) + + + +#endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_VERSION_H_ */ diff --git a/compiled/src/c_NumpyInterface.C b/compiled/src/c_NumpyInterface.C new file mode 100644 index 0000000..566961c --- /dev/null +++ b/compiled/src/c_NumpyInterface.C @@ -0,0 +1,56 @@ +/* + * c_NumpyInterface.C + * + * Created on: 6 Nov 2019 + * Author: jkiesele + * + * Simple reading and writing of numpy arrays using the simpleArray classes + * and quicklz. There is a lot of overhead w.r.t. standard numpy, but this implementation + * is faster, and mostly for occasional usage. + * + * Only implemented for float32 arrays + */ + +#include "../interface/simpleArray.h" +#define BOOST_PYTHON_MAX_ARITY 20 +#include +#include "boost/python/numpy.hpp" +#include + + +namespace p = boost::python; +namespace np = boost::python::numpy; + + +np::ndarray readFromFile(std::string filename){ + + + + FILE *ifile = fopen("testfile.djcd", "rb"); + simpleArray ifarr(ifile); + fclose(ifile); + + auto size = ifarr.size(); + auto shape = ifarr.shape(); + + p::list pshape; + for(const auto& s:shape) + pshape.append(s); + + p::tuple tshape(pshape);//not working + + np::ndarray nparr = np::from_data((void*)ifarr.disownData(), + np::dtype::get_builtin(), + p::make_tuple(size), p::make_tuple(sizeof(float)), p::object() ); + + nparr = nparr.reshape(tshape); + return nparr; + +} + +BOOST_PYTHON_MODULE(c_NumpyInterface) { + Py_Initialize(); + boost::python::numpy::initialize(); + def("readFromFile", &readFromFile); +} + diff --git a/compiled/src/c_TrainDataInferface.C b/compiled/src/c_TrainDataInferface.C new file mode 100644 index 0000000..e3c496b --- /dev/null +++ b/compiled/src/c_TrainDataInferface.C @@ -0,0 +1,22 @@ +/* + * c_TrainDataInferface.C + * + * Created on: 6 Nov 2019 + * Author: jkiesele + */ + +/* +#include "../interface/trainData.h" + +#define BOOST_PYTHON_MAX_ARITY 20 +#include +#include "boost/python/extract.hpp" +#include "boost/python/numpy.hpp" +#include "boost/python/list.hpp" +#include "boost/python/str.hpp" +#include +#include + + + +*/ diff --git a/compiled/to_bin/testpipeline.cpp b/compiled/to_bin/testpipeline.cpp new file mode 100644 index 0000000..af25e9d --- /dev/null +++ b/compiled/to_bin/testpipeline.cpp @@ -0,0 +1,165 @@ + + +#include +#include "../interface/quicklzWrapper.h" +#include "../interface/simpleArray.h" +#include "../interface/trainData.h" + + + +std::ostream& operator<< (std::ostream& os, std::vector v){ + for(const auto& i:v) + os<< i <<" "; + return os; +} + +std::ostream& operator<< (std::ostream& os, std::vector v){ + for(const auto& i:v) + os<< i <<" "; + return os; +} + +using namespace djc; + +int main(){ + + + simpleArray farr({5,2,1}); + for(float i=0;i ifarr; + + ifarr.readFromFile(ifile); + + + fclose(ifile); + + + for(size_t i=0;i > vec; + vec.push_back(ar2); + + auto & var2 = vec.at(0); + + for(size_t i=0;i td; + + size_t fvidx = td.addFeatureArray( {30,2,3} ); + std::cout << fvidx << std::endl; + std::cout << td.featureArray(fvidx).size() << std::endl; + td.featureArray(fvidx).at(0,0,0) = 1; + td.featureArray(fvidx).at(0,0,1) = 1; + td.featureArray(fvidx).at(0,1,0) = 1; + td.featureArray(fvidx).at(1,0,0) = 1; + td.featureArray(fvidx).at(1,1,0) = 1; + td.featureArray(fvidx).at(2,1,2) = 2; + + std::cout << "print "<< std::endl; + + for(size_t i=0;i td2; + td2.readFromFile("tempfile.djctd"); + + std::cout << "read "<< std::endl; + + for(size_t i=0;i bigtd; + + auto fidx = bigtd.addFeatureArray({1000, 4000, 10}); + for(size_t i=0;i rbig; + rbig.readFromFile("bigfile.djctd"); + std::cout << "done reading file "<< std::endl; + +} From 09035d09d31616c9551c2ab229722d245ee52a54 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 7 Nov 2019 14:20:53 +0000 Subject: [PATCH 129/437] pipeline added data generator --- compiled/interface/simpleArray.h | 10 +- compiled/interface/trainData.h | 15 ++- compiled/interface/trainDataGenerator.h | 172 ++++++++++++++++++++++++ compiled/to_bin/testpipeline.cpp | 63 ++++++++- 4 files changed, 252 insertions(+), 8 deletions(-) create mode 100644 compiled/interface/trainDataGenerator.h diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 21e9c88..60ffa0d 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -87,7 +87,7 @@ class simpleArray { /* * Splits on first axis. - * Returns the second part, leaves the first. + * Returns the first part, leaves the second. * does memcopy for both pats now */ simpleArray split(size_t splitindex); @@ -268,11 +268,11 @@ simpleArray simpleArray::split(size_t splitindex) { memcpy(odata, data_, splitpoint * sizeof(T)); memcpy(rdata, data_ + splitpoint, remaining * sizeof(T)); delete data_; - out.data_ = rdata; - data_ = odata; + out.data_ = odata; + data_ = rdata; out.shape_ = shape_; - out.shape_.at(0) = shape_.at(0) - splitindex; - shape_.at(0) = splitindex; + out.shape_.at(0) = splitindex; + shape_.at(0) = shape_.at(0) - splitindex; out.size_ = sizeFromShape(out.shape_); size_ = sizeFromShape(shape_); return out; diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 6987a65..e236310 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -71,6 +71,13 @@ class trainData{ */ trainData split(size_t splitindex); + size_t nElements()const{ + if(feature_arrays_.size()) + return feature_arrays_.at(0).getFirstDimension(); + else + return 0; + } + void writeToFile(std::string filename)const; void readFromFile(std::string filename); @@ -114,7 +121,7 @@ const size_t trainData::addWeightArray(std::vector shape){ */ template void trainData::truncate(size_t position){ - split(position); + *this = split(position); } /* @@ -122,6 +129,12 @@ void trainData::truncate(size_t position){ */ template void trainData::append(const trainData& td) { + //allow empty append + if (!feature_arrays_.size() && !truth_arrays_.size() + && !weight_arrays_.size()) { + *this = td; + return; + } if (feature_arrays_.size() != td.feature_arrays_.size() || truth_arrays_.size() != td.truth_arrays_.size() || weight_arrays_.size() != td.weight_arrays_.size()) { diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h new file mode 100644 index 0000000..8f05b83 --- /dev/null +++ b/compiled/interface/trainDataGenerator.h @@ -0,0 +1,172 @@ +/* + * trainDataGenerator.h + * + * Created on: 7 Nov 2019 + * Author: jkiesele + */ + +#ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAGENERATOR_H_ +#define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAGENERATOR_H_ + +#include +#include +#include "trainData.h" +#include +#include +#include +#include + +namespace djc{ + +/* + * Base class, no numpy interface or anything yet. + * Inherit from/use this class and define the actual batch feed function. + * This could as well be filling a (ragged) tensorflow tensor + */ +template +class trainDataGenerator{ +public: + trainDataGenerator(); + ~trainDataGenerator(); + + void setFileList(const std::vector& files){ + orig_infiles_=files; + shuffled_infiles_=orig_infiles_; + } + void setBatchSize(size_t nelements){ + batchsize_=nelements; + nbatches_ = ntotal_/batchsize_; + } + void setNTotal(size_t n){ + ntotal_=n; + nbatches_ = ntotal_/batchsize_; + } + + size_t getNBatches()const{ + return nbatches_; + } + + void beginEpoch(); + void endEpoch(); + + /** + * gets Batch. If batchsize is specified, it is up to the user + * to make sure that the sum of all batches is smaller or equal the + * total sample size + */ + trainData getBatch(size_t batchsize=0); + +private: + void shuffleFilelist(); + void readBuffer(); + std::vector orig_infiles_; + std::vector shuffled_infiles_; + int randomcount_; + size_t batchsize_; + + trainData buffer_store, buffer_read; + std::thread * readthread_; + std::string nextread_; + size_t filecount_; + size_t nbatches_; + size_t ntotal_; + size_t nprocessed_; +}; + +template +trainDataGenerator::trainDataGenerator() : + randomcount_(1), batchsize_(2), readthread_(0), filecount_(0), nbatches_( + 0), ntotal_(0), nprocessed_(0) { +} + +template +trainDataGenerator::~trainDataGenerator(){ + if(readthread_){ + readthread_->join(); + delete readthread_; + } +} + +template +void trainDataGenerator::shuffleFilelist(){ + std::random_device rd; + std::mt19937 g(rd()); + g.seed(randomcount_); + randomcount_++; + std::shuffle(std::begin(shuffled_infiles_),std::end(shuffled_infiles_),g); +} + + + +template +void trainDataGenerator::readBuffer(){ + buffer_read.readFromFile(nextread_); +} + + + + +template +void trainDataGenerator::beginEpoch(){ + if(!readthread_){//no pre-read going on + nprocessed_=0; + filecount_=0; + buffer_store.clear(); + buffer_read.clear(); + } +} +template +void trainDataGenerator::endEpoch(){ + + //prepare for next epoch, pre-read first file + if(readthread_){ + readthread_->join(); + delete readthread_; + } + buffer_store.clear(); + buffer_read.clear(); + + shuffleFilelist(); + filecount_=0; + nprocessed_=0; + nextread_ = shuffled_infiles_.at(filecount_); + readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); +} + +template +trainData trainDataGenerator::getBatch(size_t batchsize){ + + size_t bufferelements=buffer_store.nElements(); + + if(!batchsize) + batchsize=batchsize_; + + while(bufferelementsjoin(); + delete readthread_; + readthread_=0; + } + buffer_store.append(buffer_read); + buffer_read.clear(); + bufferelements = buffer_store.nElements(); + + if(nprocessed_ + bufferelements < ntotal_){ + if (filecount_ >= shuffled_infiles_.size()) + throw std::runtime_error( + "trainDataGenerator::getBatch: more batches requested than data in the sample"); + + nextread_ = shuffled_infiles_.at(filecount_); + filecount_++; + readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); + } + } + nprocessed_+=batchsize_; + return buffer_store.split(batchsize); +} + + + +}//namespace +#endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAGENERATOR_H_ */ diff --git a/compiled/to_bin/testpipeline.cpp b/compiled/to_bin/testpipeline.cpp index af25e9d..36b67b3 100644 --- a/compiled/to_bin/testpipeline.cpp +++ b/compiled/to_bin/testpipeline.cpp @@ -5,7 +5,7 @@ #include "../interface/simpleArray.h" #include "../interface/trainData.h" - +#include "../interface/trainDataGenerator.h" std::ostream& operator<< (std::ostream& os, std::vector v){ for(const auto& i:v) @@ -22,8 +22,67 @@ std::ostream& operator<< (std::ostream& os, std::vector v){ using namespace djc; int main(){ + //create some data + +/* + trainData bigtd; + + auto fidx = bigtd.addFeatureArray({1200, 5*4000, 10}); + for(size_t i=0;i filenames = {"bigfile1.djctd", + "bigfile2.djctd", "bigfile3.djctd","bigfile4.djctd", + "bigfile1.djctd", + "bigfile2.djctd", "bigfile3.djctd","bigfile4.djctd", + "bigfile1.djctd", + "bigfile2.djctd", "bigfile3.djctd","bigfile4.djctd"}; + + + trainDataGenerator gen; + + size_t batchsize=100; + + gen.setFileList(filenames); + gen.setBatchSize(batchsize); + gen.setNTotal(3*480); + + size_t nepochs=3; + + for(size_t e=0;e farr({5,2,1}); for(float i=0;i rbig; rbig.readFromFile("bigfile.djctd"); std::cout << "done reading file "<< std::endl; - +*/ } From 77cdf20107e7c048f0dd649c39cbb36f2e901fb5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 7 Nov 2019 16:37:48 +0100 Subject: [PATCH 130/437] python to cpp back and forth conversions --- compiled/interface/quicklzWrapper.h | 27 +++--- compiled/interface/simpleArray.h | 46 +++++++-- compiled/interface/trainData.h | 4 + compiled/src/c_TrainDataInferface.C | 22 ----- compiled/src/c_trainDataInterface.C | 144 ++++++++++++++++++++++++++++ compiled/to_bin/testpipeline.cpp | 8 +- 6 files changed, 203 insertions(+), 48 deletions(-) delete mode 100644 compiled/src/c_TrainDataInferface.C create mode 100644 compiled/src/c_trainDataInterface.C diff --git a/compiled/interface/quicklzWrapper.h b/compiled/interface/quicklzWrapper.h index d5be98a..558de48 100644 --- a/compiled/interface/quicklzWrapper.h +++ b/compiled/interface/quicklzWrapper.h @@ -14,7 +14,7 @@ #include #include #include - +#include "IO.h" #include "version.h" #define QUICKLZ_MAXCHUNK (0xffffffff - 400) @@ -90,14 +90,13 @@ void quicklz::readHeader(FILE *& ifile) { chunksizes_.clear(); totalbytes_ = 0; float version = 0; - fread(&version, 1, sizeof(float), ifile); + io::readFromFile(&version, ifile); if(version != DJCDATAVERSION) throw std::runtime_error("quicklz::readHeader: incompatible version"); - fread(&nchunks_, 1, 1, ifile); + io::readFromFile(&nchunks_, ifile); chunksizes_ = std::vector(nchunks_, 0); - size_t vecbytesize = nchunks_ * sizeof(size_t); - fread(&chunksizes_[0], 1, vecbytesize, ifile); - fread(&totalbytes_, 1, sizeof(size_t), ifile); + io::readFromFile(&chunksizes_[0], ifile, nchunks_); + io::readFromFile(&totalbytes_, ifile); } @@ -114,7 +113,7 @@ size_t quicklz::readCompressedBlock(FILE *& ifile, T * arr){ while (chunk < nchunks_ && totalbytes_) { src = new char[chunksizes_.at(chunk)]; - fread(src, 1, chunksizes_.at(chunk), ifile); + io::readFromFile(src, ifile, 0, chunksizes_.at(chunk)); readbytes += qlz_size_decompressed(src); allread += qlz_decompress(src, arr, state_decompress_); @@ -130,8 +129,8 @@ size_t quicklz::readCompressedBlock(FILE *& ifile, T * arr){ moreinfo += std::to_string(allread); delete state_decompress_; state_decompress_ = 0; - throw std::runtime_error( - "quicklz::readCompressedBlock: expected size and uncompressed size don't match"); + throw std::runtime_error(( + "quicklz::readCompressedBlock: expected size and uncompressed size don't match: "+moreinfo)); } return allread / sizeof(T); } @@ -181,11 +180,11 @@ void quicklz::writeCompressed(T * arr, size_t size, FILE *& ofile) { startbyte += uselength; } float version = DJCDATAVERSION; - fwrite(&version,1,sizeof(float),ofile); - fwrite(&nchunks,1,1,ofile); - fwrite(&chunksizes[0],1,chunksizes.size()*sizeof(size_t),ofile); - fwrite(&length, 1, sizeof(size_t), ofile); - fwrite(dst, len2, 1, ofile); + io::writeToFile(&version,ofile); + io::writeToFile(&nchunks,ofile); + io::writeToFile(&chunksizes[0],ofile,chunksizes.size()); + io::writeToFile(&length, ofile); + io::writeToFile(dst, ofile, 0, len2); //end delete dst; diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 60ffa0d..b43ff17 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -78,6 +78,9 @@ class simpleArray { // rowsplits_ = rowsplits; // } + + /////////// potentially dangerous operations for conversions, use with care /////// + /* * Move data memory location to another object * This will reset the array. Read shapes, row splits etc. before @@ -85,6 +88,26 @@ class simpleArray { */ T * disownData(); + /* + * Object will not own the data. Merely useful for conversion + * with immediate writing to file + */ + void assignData(T *d){ + if(data_ && !assigned_) + delete data_; + data_=d; + assigned_=true; + } + + /* + * Assigns a shape without checking it or creating a new data + * array. Will recalculate total size + */ + void assignShape(std::vector s){ + shape_=s; + size_ = sizeFromShape(s); + } + /* * Splits on first axis. * Returns the first part, leaves the second. @@ -136,17 +159,18 @@ class simpleArray { std::vector shape_; std::vector rowsplits_; size_t size_; + bool assigned_; }; template simpleArray::simpleArray() : - data_(0), size_(0) { + data_(0), size_(0),assigned_(false) { } template simpleArray::simpleArray(std::vector shape) : - data_(0), size_(0) { + data_(0), size_(0),assigned_(false) { shape_ = shape; data_ = new T[sizeFromShape(shape_)]; size_ = sizeFromShape(shape_); @@ -155,6 +179,7 @@ simpleArray::simpleArray(std::vector shape) : template simpleArray::simpleArray(FILE *& ifile):simpleArray(){ readFromFile(ifile); + assigned_=false; } template @@ -179,10 +204,11 @@ simpleArray::simpleArray(simpleArray && a) : simpleArray() { if (&a == this) return; - if (data_) + if (data_&& !assigned_) delete data_; data_ = a.data_; a.data_ = 0; + assigned_ = a.assigned_; size_ = a.size_; a.size_ = 0; shape_ = std::move(a.shape_); @@ -193,11 +219,12 @@ template simpleArray& simpleArray::operator=(simpleArray && a) { if (&a == this) return *this; - if (data_) + if (data_ && !assigned_) delete data_; data_ = a.data_; a.data_ = 0; size_ = a.size_; + assigned_ = a.assigned_; a.size_ = 0; shape_ = std::move(a.shape_); rowsplits_ = std::move(a.rowsplits_); @@ -206,7 +233,7 @@ simpleArray& simpleArray::operator=(simpleArray && a) { template void simpleArray::clear() { - if (data_) + if (data_&& !assigned_) delete data_; data_ = 0; shape_.clear(); @@ -267,7 +294,8 @@ simpleArray simpleArray::split(size_t splitindex) { memcpy(odata, data_, splitpoint * sizeof(T)); memcpy(rdata, data_ + splitpoint, remaining * sizeof(T)); - delete data_; + if(!assigned_) + delete data_; out.data_ = odata; data_ = rdata; out.shape_ = shape_; @@ -314,7 +342,8 @@ void simpleArray::append(const simpleArray& a) { T * ndata = new T[size_ + a.size_]; memcpy(ndata, data_, size_ * sizeof(T)); memcpy(ndata + size_, a.data_, a.size_ * sizeof(T)); - delete data_; + if(!assigned_) + delete data_; data_ = ndata; size_ = size_ + a.size_; shape_ = targetshape; @@ -373,7 +402,7 @@ void simpleArray::copyFrom(const simpleArray& a) { if (&a == this) { return; } - if (data_) + if (data_&& !assigned_) delete data_; data_ = new T[a.size_]; memcpy(data_, a.data_, a.size_ * sizeof(T)); @@ -381,6 +410,7 @@ void simpleArray::copyFrom(const simpleArray& a) { size_ = a.size_; shape_ = a.shape_; rowsplits_ = a.rowsplits_; + assigned_=false; } template diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index e236310..8f9d8a2 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -55,6 +55,10 @@ class trainData{ return weight_arrays_.at(idx); } + size_t nFeatureArrays()const{return feature_arrays_.size();} + size_t nTruthArrays()const{return truth_arrays_.size();} + size_t nWeightArrays()const{return weight_arrays_.size();} + /* * truncate all along first axis */ diff --git a/compiled/src/c_TrainDataInferface.C b/compiled/src/c_TrainDataInferface.C deleted file mode 100644 index e3c496b..0000000 --- a/compiled/src/c_TrainDataInferface.C +++ /dev/null @@ -1,22 +0,0 @@ -/* - * c_TrainDataInferface.C - * - * Created on: 6 Nov 2019 - * Author: jkiesele - */ - -/* -#include "../interface/trainData.h" - -#define BOOST_PYTHON_MAX_ARITY 20 -#include -#include "boost/python/extract.hpp" -#include "boost/python/numpy.hpp" -#include "boost/python/list.hpp" -#include "boost/python/str.hpp" -#include -#include - - - -*/ diff --git a/compiled/src/c_trainDataInterface.C b/compiled/src/c_trainDataInterface.C new file mode 100644 index 0000000..1201e7d --- /dev/null +++ b/compiled/src/c_trainDataInterface.C @@ -0,0 +1,144 @@ +/* + * c_TrainDataInferface.C + * + * Created on: 6 Nov 2019 + * Author: jkiesele + */ + + +#include "../interface/trainData.h" + +#define BOOST_PYTHON_MAX_ARITY 20 +#include +#include "boost/python/numpy.hpp" +#include "boost/python/list.hpp" +#include "boost/python/str.hpp" +#include +#include + +#include //debug + +namespace p = boost::python; +namespace np = boost::python::numpy; + +/* + * write out a cpp traindata object from a python traindata object using + * three lists: x, y, w + * make choice for float here + */ + +float * extractNumpyListElement(p::list x, int i, std::vector& shape){ + shape.clear(); + np::ndarray ndarr = p::extract(x[i]); + float * data = (float*)(void*) ndarr.get_data(); + int ndim = ndarr.get_nd(); + for(int s=0;s td; + + int nx = p::extract(x.attr("__len__")()); + int ny = p::extract(x.attr("__len__")()); + int nw = p::extract(x.attr("__len__")()); + + std::vector shape; + for(int i=0;i& ifarr); + +p::list readFromFile(std::string filename){ + p::list out; + + djc::trainData td; + td.readFromFile(filename); + + p::list x, y, w; + + for(size_t i=0;i& ifarr){ + + auto size = ifarr.size(); + auto shape = ifarr.shape(); + for(const auto& s:shape){ + if(s<0) + throw std::runtime_error("simpleArrayToNumpy: no conversion from ragged simpleArrys possible"); + } + + p::list pshape; + for(const auto& s:shape) + pshape.append(s); + + p::tuple tshape(pshape);//not working + + np::ndarray nparr = np::from_data((void*)ifarr.disownData(), + np::dtype::get_builtin(), + p::make_tuple(size), p::make_tuple(sizeof(float)), p::object() ); + + nparr = nparr.reshape(tshape); + return nparr; + +} + +BOOST_PYTHON_MODULE(c_trainDataInterface) { + Py_Initialize(); + np::initialize(); + def("writeToFile", &writeToFile); + def("readFromFile", &readFromFile); +} + + + diff --git a/compiled/to_bin/testpipeline.cpp b/compiled/to_bin/testpipeline.cpp index 36b67b3..9e85785 100644 --- a/compiled/to_bin/testpipeline.cpp +++ b/compiled/to_bin/testpipeline.cpp @@ -50,7 +50,7 @@ int main(){ return 0; */ - +/* std::vector filenames = {"bigfile1.djctd", "bigfile2.djctd", "bigfile3.djctd","bigfile4.djctd", "bigfile1.djctd", @@ -80,9 +80,9 @@ int main(){ } gen.endEpoch(); } +*/ -/* - return 0; + // return 0; simpleArray farr({5,2,1}); for(float i=0;i rbig; rbig.readFromFile("bigfile.djctd"); std::cout << "done reading file "<< std::endl; -*/ + } From 55135bc31a1c98333a41a82f88985d9bcf0e56ee Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 7 Nov 2019 20:34:37 +0000 Subject: [PATCH 131/437] snapshot, cleaning up traindata shape stuff --- DataCollection.py | 650 +++-------------------- TrainData.py | 663 +++--------------------- compiled/Makefile | 2 +- compiled/interface/IO.h | 7 + compiled/interface/helper.h | 6 + compiled/interface/simpleArray.h | 1 + compiled/interface/trainData.h | 105 +++- compiled/interface/trainDataGenerator.h | 33 +- compiled/src/c_NumpyInterface.C | 4 +- compiled/src/c_trainDataInterface.C | 55 +- compiled/src/helper.cpp | 28 + compiled/to_bin/testpipeline.cpp | 44 +- 12 files changed, 373 insertions(+), 1225 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 03e9c69..faccbdb 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -3,42 +3,7 @@ @author: jkiesele ''' -#from tensorflow.contrib.labeled_tensor import batch -#from builtins import list -from __future__ import print_function -import os -import copy -import pickle -import time -import tempfile -import shutil -from stopwatch import stopwatch -import numpy as np -from Weighter import Weighter -from TrainData import TrainData, fileTimeOut -#for convenience -import logging -from pdb import set_trace - -usenewformat=True - -logger = logging.getLogger(__name__) - -# super not-generic without safety belts -#needs some revision -class BatchRandomInputGenerator(object): - def __init__(self, ranges, batchsize): - self.ranges=ranges - self.batchsize=batchsize - - def generateBatch(self): - randoms=[] - for i in range(len(self.ranges)): - randoms.append(np.full((1,self.batchsize),np.random.uniform(self.ranges[i][0], self.ranges[i][1], size=1)[0])) - - nparr=np.dstack((randoms)) - return nparr.reshape(nparr.shape[1],nparr.shape[2]) class DataCollection(object): ''' @@ -51,35 +16,22 @@ def __init__(self, infile = None, nprocs = -1): Constructor ''' self.clear() - self.nprocs = nprocs - self.meansnormslimit=500000 if infile: self.readFromFile(infile) - #check for consistency if not len(self.samples): raise Exception("no valid datacollection found in "+infile) + + self.weighterobjects=() - # Running data conversion etc. on a batch farm - self.batch_mode = False - self.no_copy_on_convert = False def clear(self): self.samples=[] self.sampleentries=[] - self.originRoots=[] + self.sourceList=[] self.nsamples=0 self.dataDir="" - self.useweights=True - self.__batchsize=1 - self.filesPreRead=2 - self.isTrain=True - self.dataclass=TrainData() #for future implementations - self.weighter=Weighter() - self.weightsfraction=0.05 - self.maxConvertThreads=2 - self.maxFilesOpen=2 - self.means=None - self.classweights={} + self.dataclass=TrainData() + def __len__(self): return self.nsamples @@ -94,31 +46,15 @@ def _extend_(a, b, name): if len(set(self.samples)) != len(self.samples): raise ValueError('The two DataCollections being summed contain the same files!') _extend_(self, other, 'sampleentries') - _extend_(self, other, 'originRoots') + _extend_(self, other, 'sourceList') self.nsamples += other.nsamples if self.dataDir != other.dataDir: raise ValueError('The two DataCollections have different data directories, still to be implemented!') - self.useweights = self.useweights and self.useweights - self.filesPreRead = min(self.filesPreRead, other.filesPreRead) - self.isTrain = self.isTrain and other.isTrain #arbitrary choice, could also raise exception if type(self.dataclass) != type(other.dataclass): raise ValueError( 'The two DataCollections were made with a' ' different data class type! (%s, and %s)' % (type(self.dataclass), type(other.dataclass)) ) - if self.weighter != other.weighter: - raise ValueError( - 'The two DataCollections have different weights' - ) - if self.weightsfraction != other.weightsfraction: - raise ValueError('The two DataCollections have different weight fractions') - self.maxConvertThreads = min(self.maxConvertThreads, other.maxConvertThreads) - self.maxFilesOpen = min(self.maxFilesOpen, other.maxFilesOpen) - if not all(self.means == other.means): - raise ValueError( - 'The two DataCollections head different means' - ) - self.classweights.update(other.classweights) return self def __add__(self, other): @@ -142,50 +78,9 @@ def removeLast(self): self.samples.pop() self.nsamples-=self.sampleentries[-1] self.sampleentries.pop() - self.originRoots.pop() - - - def getClassWeights(self): - if not len(self.classweights): - self.__computeClassWeights(self.dataclass.getUsedTruth()) - return self.classweights - - def __computeClassWeights(self,truthclassesarray): - if not len(self.samples): - raise Exception("DataCollection:computeClassWeights: no sample files associated") - td=copy.deepcopy(self.dataclass) - td.readIn(self.getSamplePath(self.samples[0])) - arr=td.y[0] - average=0 - allist=[] - for i in range(arr.shape[1]): - entries=float((arr[:,i]>0).sum()) - average=average+entries - allist.append(entries) - - outdict={} - average=average/float((arr.shape[1])) - for i in range(len(allist)): - l=average/allist[i] - outdict[i]=l - self.classweights=outdict - - - def prependToSampleFiles(self, path_to_prepend): - newsamples=[] - for s in self.samples: - newsamples.append(path_to_prepend+s) - self.samples=newsamples - - def defineCustomPredictionLabels(self, labels): - self.dataclass.defineCustomPredictionLabels(labels) - - - def getCustomPredictionLabels(self): - if hasattr(self.dataclass, 'customlabels'): - return self.dataclass.customlabels - return None + self.sourceList.pop() + def getInputShapes(self): ''' gets the input shapes from the data class description @@ -194,7 +89,7 @@ def getInputShapes(self): return [] self.dataclass.filelock=None td=copy.deepcopy(self.dataclass) - td.readIn(self.getSamplePath(self.samples[0]),shapesOnly=True) + td.readFromFile(self.getSamplePath(self.samples[0]),shapesOnly=True) shapes=td.getInputShapes() td.clear() return shapes @@ -202,15 +97,6 @@ def getInputShapes(self): def getTruthShape(self): return self.dataclass.getTruthShapes() - def getNRegressionTargets(self): - return (self.dataclass.getNRegressionTargets()) - - def getNClassificationTargets(self): - return (self.dataclass.getNClassificationTargets()) - - def getUsedTruth(self): - return self.dataclass.getUsedTruth() - def setBatchSize(self,bsize): if bsize > self.nsamples: raise Exception('Batch size must not be bigger than total sample size') @@ -218,11 +104,7 @@ def setBatchSize(self,bsize): def getBatchSize(self): return self.__batchsize - - @property - def batch_size(self): - return self.__batchsize - + def getSamplesPerEpoch(self): #modify by batch split count=self.getNBatchesPerEpoch() @@ -230,10 +112,6 @@ def getSamplesPerEpoch(self): return count*self.__batchsize #final else: return self.nsamples - - def getAvEntriesPerFile(self): - return float(self.nsamples)/float(len(self.samples)) - def getNBatchesPerEpoch(self): if self.__batchsize <= 1: @@ -257,7 +135,7 @@ def validate(self, remove=True, skip_first=0): fullpath=self.getSamplePath(self.samples[i]) print('reading '+fullpath, str(self.sampleentries[i]), str(i), '/', str(len(self.samples))) try: - td.readIn(fullpath) + td.readFromFile(fullpath) for x in td.x: if td.nsamples != x.shape[0]: print("not right length") @@ -272,7 +150,7 @@ def validate(self, remove=True, skip_first=0): except Exception as e: print('problem with file, removing ', fullpath) del self.samples[i] - del self.originRoots[i] + del self.sourceList[i] self.nsamples -= self.sampleentries[i] del self.sampleentries[i] @@ -281,7 +159,7 @@ def removeEntry(self,relative_path_to_entry): if relative_path_to_entry==self.samples[i]: print('removing '+self.samples[i]+" - "+str(self.sampleentries[i])) del self.samples[i] - del self.originRoots[i] + del self.sourceList[i] self.nsamples -= self.sampleentries[i] del self.sampleentries[i] break @@ -292,13 +170,10 @@ def writeToFile(self,filename): self.dataclass.clear() pickle.dump(self.samples, fd,protocol=0 ) pickle.dump(self.sampleentries, fd,protocol=0 ) - pickle.dump(self.originRoots, fd,protocol=0 ) + pickle.dump(self.sourceList, fd,protocol=0 ) pickle.dump(self.nsamples, fd,protocol=0 ) - pickle.dump(self.useweights, fd,protocol=0 ) - pickle.dump(self.__batchsize, fd,protocol=0 ) pickle.dump(self.dataclass, fd,protocol=0 ) - pickle.dump(self.weighter, fd,protocol=0 ) - #pickle.dump(self.means, fd,protocol=0 ) + pickle.dump(self.self.weighterobjects, fd, protocol=0) self.means.dump(fd) shutil.move(fd.name, filename) @@ -307,35 +182,20 @@ def readFromFile(self,filename): fd=open(filename,'rb') self.samples=pickle.load(fd) self.sampleentries=pickle.load(fd) - self.originRoots=pickle.load(fd) + self.sourceList=pickle.load(fd) self.nsamples=pickle.load(fd) - self.useweights=pickle.load(fd) - self.__batchsize=pickle.load(fd) self.dataclass=pickle.load(fd) - self.weighter=pickle.load(fd) - self.means=pickle.load(fd) + self.weighterobjects=pickle.load(fd) fd.close() self.dataDir=os.path.dirname(os.path.abspath(filename)) self.dataDir+='/' - #don't check if files exist - return - for f in self.originRoots: - if not f.endswith(".root"): continue - if not os.path.isfile(f): - print('not found: '+f) - raise Exception('original root file not found') - for f in self.samples: - fpath=self.getSamplePath(f) - if not os.path.isfile(fpath): - print('not found: '+fpath) - raise Exception('sample file not found') - def readRootListFromFile(self, file, relpath=''): + def readSourceListFromFile(self, file, relpath=''): self.samples=[] self.sampleentries=[] - self.originRoots=[] + self.sourceList=[] self.nsamples=0 self.dataDir="" @@ -346,11 +206,11 @@ def readRootListFromFile(self, file, relpath=''): for line in lines: if len(line) < 1: continue if relpath: - self.originRoots.append(os.path.join(relpath, line)) + self.sourceList.append(os.path.join(relpath, line)) else: - self.originRoots.append(line) + self.sourceList.append(line) - if len(self.originRoots)<1: + if len(self.sourceList)<1: raise Exception('root samples list empty') @@ -368,25 +228,18 @@ def split(self,ratio): out.samples=[] out.sampleentries=[] - out.originRoots=[] + out.sourceList=[] out.nsamples=0 out.__batchsize=copy.deepcopy(self.__batchsize) - out.isTrain=copy.deepcopy(self.isTrain) out.dataDir=self.dataDir out.dataclass=copy.deepcopy(self.dataclass) - out.weighter=self.weighter #ref oks - out.means=self.means - out.useweights=self.useweights - itself.samples=[] itself.sampleentries=[] - itself.originRoots=[] + itself.sourceList=[] itself.nsamples=0 - - if nsamplefiles < 2: out=copy.deepcopy(self) print('DataCollection.split: warning: only one file, split will just return a copy of this') @@ -397,52 +250,32 @@ def split(self,ratio): if frac < ratio and i < nsamplefiles-1: itself.samples.append(self.samples[i]) itself.sampleentries.append(self.sampleentries[i]) - itself.originRoots.append(self.originRoots[i]) + itself.sourceList.append(self.sourceList[i]) itself.nsamples+=self.sampleentries[i] else: out.samples.append(self.samples[i]) out.sampleentries.append(self.sampleentries[i]) - out.originRoots.append(self.originRoots[i]) + out.sourceList.append(self.sourceList[i]) out.nsamples+=self.sampleentries[i] - self.samples=itself.samples self.sampleentries=itself.sampleentries - self.originRoots=itself.originRoots + self.sourceList=itself.sourceList self.nsamples=itself.nsamples return out - - - def createTestDataForDataCollection(self, collectionfile, inputfile, outputDir, - outname='dataCollection.dc', - traind=None, - relpath=''): - - self.readFromFile(collectionfile) - self.dataclass.remove=False - self.dataclass.weight=True #False - if traind: - print('[createTestDataForDataCollection] dataclass is overriden by user request') - self.dataclass=traind - self.readRootListFromFile(inputfile, relpath=relpath) - self.createDataFromRoot( - self.dataclass, outputDir, False, - dir_check = not self.batch_mode - ) - self.writeToFile(outputDir+'/'+outname) def recoverCreateDataFromRootFromSnapshot(self, snapshotfile): snapshotfile=os.path.abspath(snapshotfile) self.readFromFile(snapshotfile) td=self.dataclass - #For emergency recover td.reducedtruthclasses=['isB','isC','isUDSG'] - if len(self.originRoots) < 1: + + if len(self.sourceList) < 1: return #if not self.means: - # self.means=td.produceMeansFromRootFile(self.originRoots[0]) + # self.means=td.produceMeansFromRootFile(self.sourceList[0]) outputDir=os.path.dirname(snapshotfile)+'/' self.dataDir=outputDir finishedsamples=len(self.samples) @@ -463,7 +296,7 @@ def createDataFromRoot( to recover the data until a possible error occurred ''' - if len(self.originRoots) < 1: + if len(self.sourceList) < 1: print('createDataFromRoot: no input root file') raise Exception('createDataFromRoot: no input root file') @@ -478,27 +311,11 @@ def createDataFromRoot( self.sampleentries=[] self.dataclass=copy.deepcopy(dataclass) td=self.dataclass - ##produce weighter from a larger dataset as one file - - if redo_meansandweights and (td.remove or td.weight): - logging.info('producing weights and remove indices') - self.weighter = td.produceBinWeighter( - self.originRoots - ) - self.weighter.printHistos(outputDir) - - - if redo_meansandweights: - logging.info('producing means and norms') - self.means = td.produceMeansFromRootFile( - self.originRoots, limit=self.meansnormslimit - ) - - if means_only: return + self.weighterobjects = td.createWeighterObjects(self.sourceList) if self.batch_mode: - for sample in self.originRoots: + for sample in self.sourceList: self.__writeData(sample, outputDir) else: self.__writeData_async_andCollect(0, outputDir) @@ -509,53 +326,25 @@ def __writeData(self, sample, outputDir): fileTimeOut(sample,120) #once available copy to ram - if self.batch_mode or self.no_copy_on_convert: - tmpinput = sample - - def removefile(): - pass - else: - tmpinput = '/dev/shm/'+str(os.getpid())+os.path.basename(sample) - - def removefile(): - os.system('rm -f '+tmpinput) - - import atexit - atexit.register(removefile) - - os_ret = os.system('cp '+sample+' '+tmpinput) - if os_ret: - raise Exception("copy to ramdisk not successful for "+sample) - - try: - td.readFromRootFile(tmpinput, self.means, self.weighter) - sbasename = os.path.basename(sample) - newname = sbasename[:sbasename.rfind('.')] + td.convertFromSourceFile(sample, self.weighterobjects) + + sbasename = os.path.basename(sample) + newname = sbasename[:sbasename.rfind('.')]+'.djctd' + + newpath=os.path.abspath(outputDir+newname) + td.writeToFile(newpath) + print('converted and written '+newname+' in ',sw.getAndReset(),' sec') + self.samples.append(newname) + self.nsamples+=td.nsamples + self.sampleentries.append(td.nsamples) + td.clear() + + if not self.batch_mode: + self.writeToFile(outputDir+'/snapshot.dc') - if usenewformat: - newname+='.meta' - else: - newname+='.z' - newpath=os.path.abspath(outputDir+newname) - td.writeOut(newpath) - print('converted and written '+newname+' in ',sw.getAndReset(),' sec') - self.samples.append(newname) - self.nsamples+=td.nsamples - self.sampleentries.append(td.nsamples) - td.clear() - - if not self.batch_mode: - self.writeToFile(outputDir+'/snapshot.dc') - - finally: - removefile() def __writeData_async_andCollect(self, startindex, outputDir): - #set tree name to use - logger.info('setTreeName') - import DeepJetCore.preprocessing - DeepJetCore.preprocessing.setTreeName(self.dataclass.treename) from multiprocessing import Process, Queue, cpu_count, Lock wo_queue = Queue() @@ -575,7 +364,7 @@ def writeData_async(index,woq,wrlck): sw=stopwatch() td=copy.deepcopy(self.dataclass) - sample=self.originRoots[index] + sample=self.sourceList[index] if self.batch_mode or self.no_copy_on_convert: tmpinput = sample @@ -600,19 +389,15 @@ def removefile(): out_samplename='' out_sampleentries=0 sbasename = os.path.basename(sample) - newname = sbasename[:sbasename.rfind('.')] - if usenewformat: - newname+='.meta' - else: - newname+='.z' + newname = sbasename[:sbasename.rfind('.')]+'djctd' newpath=os.path.abspath(outputDir+newname) try: - logger.info('readFromRootFile') - td.readFromRootFile(tmpinput, self.means, self.weighter) + logger.info('readFromSourceFile') + td.readFromSourceFile(tmpinput, self.weighterobjects) logger.info('writeOut') #wrlck.acquire() - td.writeOut(newpath) + td.writeToFile(newpath) #wrlck.release() print('converted and written '+newname+' in ',sw.getAndReset(),' sec -', index) @@ -643,7 +428,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): processes=[] processrunning=[] processfinished=[] - for i in range(startindex,len(self.originRoots)): + for i in range(startindex,len(self.sourceList)): processes.append(Process(target=writeData_async, args=(i,wo_queue,writelock) ) ) processrunning.append(False) processfinished.append(False) @@ -674,7 +459,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): if processrunning[i]:continue if processfinished[i]:continue time.sleep(0.1) - logging.info('starting %s...' % self.originRoots[startindex+i]) + logging.info('starting %s...' % self.sourceList[startindex+i]) processes[i].start() processrunning[i]=True nrunning+=1 @@ -685,7 +470,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): res=wo_queue.get() results.append(res) originrootindex=res[0] - logging.info('finished %s...' % self.originRoots[originrootindex]) + logging.info('finished %s...' % self.sourceList[originrootindex]) processfinished[originrootindex-startindex]=True processes [originrootindex-startindex].join(5) processrunning [originrootindex-startindex]=False @@ -696,7 +481,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): for r in results: thisidx=r[0] if thisidx==lastindex+1: - logging.info('>>>> collected result %d of %d' % (thisidx+1,len(self.originRoots))) + logging.info('>>>> collected result %d of %d' % (thisidx+1,len(self.sourceList))) __collectWriteInfo(r[1][0],r[1][1],r[1][2],outputDir) lastindex=thisidx @@ -711,15 +496,15 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): os.system('rm -rf '+tempstoragepath) def convertListOfRootFiles(self, inputfile, dataclass, outputDir, - takemeansfrom='', means_only=False, + takeweightersfrom='', means_only=False, output_name='dataCollection.dc', relpath=''): newmeans=True if takemeansfrom: - self.readFromFile(takemeansfrom) + self.readFromFile(takeweightersfrom) newmeans=False - self.readRootListFromFile(inputfile, relpath=relpath) + self.readSourceListFromFile(inputfile, relpath=relpath) self.createDataFromRoot( dataclass, outputDir, newmeans, means_only = means_only, @@ -771,313 +556,26 @@ def __stackData(self, dataclass, selector): return out - def replaceTruthForGAN(self, generated_array, original_truth): - return self.dataclass.replaceTruthForGAN(generated_array, original_truth) - def generator(self): - from sklearn.utils import shuffle - import uuid - import threading - print('start generator') - #helper class - class tdreader(object): - def __init__(self,filelist,maxopen,tdclass): - - self.filelist=filelist - self.nfiles=len(filelist) - - self.tdlist=[] - self.tdopen=[] - self.tdclass=copy.deepcopy(tdclass) - self.tdclass.clear()#only use the format, no data - #self.copylock=thread.allocate_lock() - for i in range(self.nfiles): - self.tdlist.append(copy.deepcopy(tdclass)) - self.tdopen.append(False) - - self.closeAll() #reset state - self.shuffleseed=0 - - def start(self): - self.__readNext() - - def __readNext(self): - #make sure this fast function has exited before getLast tries to read the file - readfilename=self.filelist[self.filecounter] - if len(filelist)>1: - self.tdlist[self.nextcounter].clear() - self.tdlist[self.nextcounter]=copy.deepcopy(self.tdclass) - self.tdlist[self.nextcounter].readthread=None - - def startRead(counter,filename,shuffleseed): - excounter=0 - while excounter<10: - try: - self.tdlist[counter].readIn_async(filename,ramdiskpath='/dev/shm/', - randomseed=shuffleseed) - break - except Exception as d: - print(self.filelist[counter]+' read error, retry...') - self.tdlist[counter].readIn_abort() - excounter=excounter+1 - if excounter<10: - time.sleep(5) - continue - traceback.print_exc(file=sys.stdout) - raise d - - # don't remove these commented lines just yet - # the whole generator call is moved to thread since keras 2.0.6 anyway - #t=threading.Thread(target=startRead, args=(self.nextcounter,readfilename,self.shuffleseed)) - #t.start() - startRead(self.nextcounter,readfilename,self.shuffleseed) - self.shuffleseed+=1 - if self.shuffleseed>1e5: - self.shuffleseed=0 - #startRead(self.nextcounter,readfilename,self.shuffleseed) - self.tdopen[self.nextcounter]=True - self.filecounter=self.__increment(self.filecounter,self.nfiles,to_shuffle=True) - self.nextcounter=self.__increment(self.nextcounter,self.nfiles) - - - - def __getLast(self): - #print('joining...') #DEBUG PERF - self.tdlist[self.lastcounter].readIn_join(wasasync=True,waitforStart=True) - #print('joined') #DEBUG PERF - td=self.tdlist[self.lastcounter] - #print('got ',self.lastcounter) - - self.tdopen[self.lastcounter]=False - self.lastcounter=self.__increment(self.lastcounter,self.nfiles) - return td - - def __increment(self,counter,maxval,to_shuffle=False): - counter+=1 - if counter>=maxval: - counter=0 - if to_shuffle: - self.filelist = shuffle(self.filelist) - return counter - - def __del__(self): - self.closeAll() - - def closeAll(self): - for i in range(len(self.tdopen)): - try: - if self.tdopen[i]: - self.tdlist[i].readIn_abort() - self.tdlist[i].clear() - self.tdopen[i]=False - except: pass - self.tdlist[i].removeRamDiskFile() - - self.nextcounter=0 - self.lastcounter=0 - self.filecounter=0 - - def get(self): - - td=self.__getLast() - self.__readNext() - return td - - - td=(self.dataclass) - totalbatches=self.getNBatchesPerEpoch() - processedbatches=0 - - ####generate randoms by batch - batchgen=None - if hasattr(td,'generatePerBatch') and td.generatePerBatch: - ranges=td.generatePerBatch - batchgen=BatchRandomInputGenerator(ranges, self.__batchsize) - - xstored=[np.array([])] - dimx=0 - ystored=[] - dimy=0 - wstored=[] - dimw=0 - nextfiletoread=0 - - target_xlistlength=len(td.getInputShapes()) + from DeepJetCore.compiled.c_dataGenerator import numpyGenerator - xout=[] - yout=[] - wout=[] - samplefilecounter=0 + gen = numpyGenerator() + gen.setFileList(self.samples) + gen.setBatchSize(self.__batchsize) + gen.setNTotal(self.nsamples) + gen.beginEpoch() - #prepare file list - filelist=[] - for s in self.samples: - filelist.append(self.getSamplePath(s)) - - TDReader=tdreader(filelist, self.maxFilesOpen, self.dataclass) - - #print('generator: total batches '+str(totalbatches)) - print('start file buffering...') - TDReader.start() - #### - # - # make block class for file read with get function that starts the next read automatically - # and closes all files in destructor? - # - # check if really the right ones are read.... - # - psamples=0 #for random shuffling - nepoch=0 - shufflecounter=0 - shufflecounter2=0 - while 1: - if processedbatches == totalbatches: - processedbatches=0 - nepoch+=1 - shufflecounter2+=1 - - lastbatchrest=0 - if processedbatches == 0: #reset buffer and start new - #print('DataCollection: new turnaround') - xstored=[np.array([])] - dimx=0 - ystored=[] - dimy=0 - wstored=[] - dimw=0 - lastbatchrest=0 - - - else: - lastbatchrest=xstored[0].shape[0] - - batchcomplete=False - - if lastbatchrest >= self.__batchsize: - batchcomplete = True - - # if(xstored[1].ndim==1): - - while not batchcomplete: - import sys, traceback - try: - td=TDReader.get() - except: - traceback.print_exc(file=sys.stdout) - - if td.x[0].shape[0] == 0: - print('Found empty (corrupted?) file, skipping') - continue - - if xstored[0].shape[0] ==0: - #print('dc:read direct') #DEBUG - xstored=td.x - dimx=len(xstored) - ystored=td.y - dimy=len(ystored) - wstored=td.w - dimw=len(wstored) - if not self.useweights: - dimw=0 - xout=[] - yout=[] - wout=[] - for i in range(0,dimx): - xout.append([]) - for i in range(0,dimy): - yout.append([]) - for i in range(0,dimw): - wout.append([]) - - else: - - #randomly^2 shuffle - not needed every time - if shufflecounter>1 and shufflecounter2>1: - shufflecounter=0 - shufflecounter2=0 - for i in range(0,dimx): - td.x[i]=shuffle(td.x[i], random_state=psamples) - for i in range(0,dimy): - td.y[i]=shuffle(td.y[i], random_state=psamples) - for i in range(0,dimw): - td.w[i]=shuffle(td.w[i], random_state=psamples) - - shufflecounter+=1 - - for i in range(0,dimx): - if(xstored[i].ndim==1): - xstored[i] = np.append(xstored[i],td.x[i]) - else: - xstored[i] = np.vstack((xstored[i],td.x[i])) - - for i in range(0,dimy): - if(ystored[i].ndim==1): - ystored[i] = np.append(ystored[i],td.y[i]) - else: - ystored[i] = np.vstack((ystored[i],td.y[i])) - - for i in range(0,dimw): - if(wstored[i].ndim==1): - wstored[i] = np.append(wstored[i],td.w[i]) - else: - wstored[i] = np.vstack((wstored[i],td.w[i])) - - if xstored[0].shape[0] >= self.__batchsize: - batchcomplete = True - - #limit of the random generator number - psamples+= td.x[0].shape[0] - if psamples > 4e8: - psamples/=1e6 - psamples=int(psamples) - - td.clear() - - if batchcomplete: - - #print('batch complete, split')#DEBUG - - for i in range(0,dimx): - splitted=np.split(xstored[i],[self.__batchsize]) - xstored[i] = splitted[1] - xout[i] = splitted[0] - for i in range(0,dimy): - splitted=np.split(ystored[i],[self.__batchsize]) - ystored[i] = splitted[1] - yout[i] = splitted[0] - for i in range(0,dimw): - splitted=np.split(wstored[i],[self.__batchsize]) - wstored[i] = splitted[1] - wout[i] = splitted[0] + while(1): - for i in range(0,dimx): - if(xout[i].ndim==1): - xout[i]=(xout[i].reshape(xout[i].shape[0],1)) - if not xout[i].shape[1] >0: - raise Exception('serious problem with the output shapes!!') - - for i in range(0,dimy): - if(yout[i].ndim==1): - yout[i]=(yout[i].reshape(yout[i].shape[0],1)) - if not yout[i].shape[1] >0: - raise Exception('serious problem with the output shapes!!') - - for i in range(0,dimw): - if(wout[i].ndim==1): - wout[i]=(wout[i].reshape(wout[i].shape[0],1)) - if not xout[i].shape[1] >0: - raise Exception('serious problem with the output shapes!!') - - processedbatches+=1 + data = gen.getBatch(0) + xout = data[0] + yout = data[1] + wout = data[2] + if gen.lastBatch() : + gen.endEpoch() - if batchgen: - if len(xout)0: yield (xout,yout,wout) else: yield (xout,yout) diff --git a/TrainData.py b/TrainData.py index d970b6f..7455055 100644 --- a/TrainData.py +++ b/TrainData.py @@ -2,25 +2,17 @@ Created on 20 Feb 2017 @author: jkiesele + +New (post equals 2.0) version ''' from __future__ import print_function -from Weighter import Weighter -from pdb import set_trace import os -import time -import numpy +import numpy as np import logging -import tempfile -import copy -import shutil -import threading -import multiprocessing -#threadingfileandmem_lock=threading.Lock() -#threadingfileandmem_lock.release() -#multiproc_fileandmem_lock=multiprocessing.Lock() +from DeepJetCore.compiled import c_trainDataInterface as ctd def fileTimeOut(fileName, timeOut): ''' @@ -43,111 +35,26 @@ def fileTimeOut(fileName, timeOut): time.sleep(1) -def _read_arrs_(arrwl,arrxl,arryl,doneVal,fileprefix,tdref=None,randomSeed=None): - import gc - gc.collect() - - import h5py - from sklearn.utils import shuffle - try: - idstrs=['w','x','y'] - h5f = h5py.File(fileprefix,'r') - alllists=[arrwl,arrxl,arryl] - for j in range(len(idstrs)): - fidstr=idstrs[j] - arl=alllists[j] - for i in range(len(arl)): - idstr=fidstr+str(i) - h5f[idstr].read_direct(arl[i]) - #shuffle each read-in, but each array with the same seed (keeps right asso) - if randomSeed: - arl[i]=shuffle(arl[i], random_state=randomSeed) - - doneVal.value=True - h5f.close() - del h5f - except Exception as d: - raise d - finally: - if tdref: - tdref.removeRamDiskFile() - - -class ShowProgress(object): - def __init__(self,nsteps,total): - self.nsteps=nsteps - self.total=total - self._stepvec=[] - for i in range(nsteps): - self._stepvec.append(float(i+1)*float(total)/float(nsteps)) - - self._counter=0 - - def show(self,index): - if index==0: - logging.info('0%') - if index>self._stepvec[self._counter]: - logging.info(str(int(float(index)/float(self.total)*100))+'%') - self._counter=self._counter+1 - - def reset(self): - self._counter=0 - - - class TrainData(object): ''' Base class for batch-wise training of the DNN ''' - - - def __init__(self): ''' Constructor ''' - - self.treename="" - self.undefTruth=[] - self.referenceclass='' - self.truthclasses=[] - self.allbranchestoberead=[] - - self.weightbranchX='' - self.weightbranchY='' - self.weight_binX = numpy.array([-1e12, 1e12],dtype=float) - self.weight_binY = numpy.array([-1e12, 1e12],dtype=float) - - self.reducedtruthclasses=[] - self.regressiontargetclasses=[] - - self.flatbranches=[] - self.branches=[] - self.branchcutoffs=[] - - self.readthread=None - self.readdone=None - - self.remove=True - self.weight=False - self.clear() - self.reduceTruth(None) def __del__(self): - self.readIn_abort() self.clear() def clear(self): - self.samplename='' - self.readIn_abort() - self.readthread=None - self.readdone=None + if hasattr(self, 'x'): del self.x del self.y @@ -157,9 +64,13 @@ def clear(self): del self.x_list del self.y_list - self.x=[numpy.array([])] - self.y=[numpy.array([])] - self.w=[numpy.array([])] + self.x=[] + self.y=[] + self.w=[] + + self.xshapes=[] + self.yshapes=[] + self.wshapes=[] self.nsamples=None @@ -179,16 +90,15 @@ def skim(self, event=0): self.x=xs self.y=ys self.w=ws + + # to be defined by user implementation + def definePredictionToRoot(self, prediction): + pass - def defineCustomPredictionLabels(self, labels): - self.customlabels=labels + def _getShapes(self, arrlist): - def getInputShapes(self): - ''' - returns a list for each input shape. In most cases only one entry - ''' outl=[] - for x in self.x: + for x in arrlist: outl.append(x.shape) shapes=[] for s in outl: @@ -200,515 +110,62 @@ def getInputShapes(self): if len(s)==0: s.append(1) shapes.append(s) - - if hasattr(self,'generatePerBatch') and self.generatePerBatch: - shapes.append([len(self.generatePerBatch)]) - - return shapes - - def getTruthShapes(self): - outl=[len(self.getUsedTruth())] - return outl + def getFeatureShapes(self): + if not len(self.xshapes): + self.xshapes = _getShapes(x) + return self.xshapes - def getNRegressionTargets(self): - if not self.regressiontargetclasses: - return 0 - return len(self.regressiontargetclasses) - - def getNClassificationTargets(self): - return len(self.getUsedTruth()) - - def addBranches(self, blist, cutoff=1): - self.branches.append(blist) - self.registerBranches(blist) - self.branchcutoffs.append(cutoff) - - def registerBranches(self,blist): - self.allbranchestoberead.extend(blist) + def getInputShapes(self): + print('TrainData:getInputShapes: Deprecated, use getFeatureShapes instead') + return getFeatureShapes() - def getUsedTruth(self): - if len(self.reducedtruthclasses) > 0: - return self.reducedtruthclasses - else: - return self.truthclasses + def getTruthShapes(self): + if not len(self.yshapes): + self.yshapes = _getShapes(y) + return self.yshapes - - def reduceTruth(self, tuple_in=None): - self.reducedtruthclasses=self.truthclasses - if tuple_in is not None: - return numpy.array(tuple_in.tolist()) - - def writeOut(self,fileprefix): - - import h5py - - #this is a workaround because hdf5 files written on eos are unreadable... - final_output_file=fileprefix - - # with h5py >= 2.9 you can directly write to an open tempfile, but for now - # we'd need to use tempfile as a safe name generator - #with tempfile.NamedTemporaryFile(suffix='.meta', delete=False) as t: - # h5f = h5py.File(t) - - t = tempfile.NamedTemporaryFile(suffix='.meta', delete=False) - t.close() - - h5f = h5py.File(t.name, 'w') - - # try "lzf", too, faster, but less compression - def _writeoutListinfo(arrlist,fidstr,h5F): - arr=numpy.array([len(arrlist)]) - h5F.create_dataset(fidstr+'_listlength',data=arr) - for i in range(len(arrlist)): - idstr=fidstr+str(i) - h5F.create_dataset(idstr+'_shape',data=arrlist[i].shape) - - def _writeoutArrays(arrlist,fidstr,h5F): - for i in range(len(arrlist)): - idstr=fidstr+str(i) - arr=arrlist[i] - from DeepJetCore.compiled.c_readArrThreaded import writeArray - if arr.dtype!='float32': - arr=arr.astype('float32') - writeArray(arr.ctypes.data,final_output_file[:-4]+fidstr+'.'+str(i),list(arr.shape)) - - arr=numpy.array([self.nsamples],dtype='int') - h5f.create_dataset('n', data=arr) - - _writeoutListinfo(self.w,'w',h5f) - _writeoutListinfo(self.x,'x',h5f) - _writeoutListinfo(self.y,'y',h5f) - - _writeoutArrays(self.w,'w',h5f) - _writeoutArrays(self.x,'x',h5f) - _writeoutArrays(self.y,'y',h5f) - - h5f.close() - - shutil.copyfile(t.name, final_output_file) + def writeToFile(self,filename): + ctd.writeToFile(self.x,self.y,self.w,filename) - def __createArr(self,shapeinfo): - return numpy.ascontiguousarray(numpy.zeros(shape=shapeinfo), dtype=numpy.float32) - - def removeRamDiskFile(self): - if hasattr(self, 'ramdiskfile'): - try: - if self.ramdiskfile and os.path.exists(self.ramdiskfile): - if "meta" in self.ramdiskfile[-4:]: - os.system('rm -f '+self.ramdiskfile[:-4]+"*") - else: - os.remove(self.ramdiskfile) - except OSError: - pass - self.ramdiskfile=None - - def readIn_async(self,fileprefix,read_async=True,shapesOnly=False,ramdiskpath='',randomseed=None): - - if self.readthread and read_async: - print('\nTrainData::readIn_async: started new read before old was finished. Intended? Waiting for first to finish...\n') - self.readIn_join() - - #print('read') - - import h5py - - #print('\ninit async read\n') - - fileTimeOut(fileprefix,120) - #print('\nfile access ok\n') - self.samplename=fileprefix - - - - def _readListInfo_(idstr): - sharedlist=[] - shapeinfos=[] - wlistlength=self.h5f[idstr+'_listlength'][0] - #print(idstr,'list length',wlistlength) - for i in range(wlistlength): - sharedlist.append(numpy.array([])) - iidstr=idstr+str(i) - shapeinfo=numpy.array(self.h5f[iidstr+'_shape']) - shapeinfos.append(shapeinfo) - return sharedlist, shapeinfos - - - - try: - self.h5f = h5py.File(fileprefix,'r') - except: - raise IOError('File %s could not be opened properly, it may be corrupted' % fileprefix) - self.nsamples=self.h5f['n'] - self.nsamples=self.nsamples[0] - if True or not hasattr(self, 'w_shapes'): - self.w_list,self.w_shapes=_readListInfo_('w') - self.x_list,self.x_shapes=_readListInfo_('x') - self.y_list,self.y_shapes=_readListInfo_('y') - else: - print('\nshape known\n') - self.w_list,_=_readListInfo_('w') - self.x_list,_=_readListInfo_('x') - self.y_list,_=_readListInfo_('y') - - self.h5f.close() - del self.h5f - self.h5f=None + def readFromFile(self,fileprefix,shapesOnly=False): + self.x=[] + self.y=[] + self.w=[] if shapesOnly: - return - - readfile=fileprefix - - isRamDisk=len(ramdiskpath)>0 - if isRamDisk: - import uuid - unique_filename='' - unique_filename = ramdiskpath+'/'+str(uuid.uuid4())+'.z' - if "meta" in readfile[-4:]: - filebase=readfile[:-4] - unique_filename = ramdiskpath+'/'+str(uuid.uuid4()) - shutil.copyfile(filebase+'meta',unique_filename+'.meta') - for i in range(len(self.w_list)): - shutil.copyfile(filebase+'w.'+str(i),unique_filename+'.w.'+str(i)) - for i in range(len(self.x_list)): - shutil.copyfile(filebase+'x.'+str(i),unique_filename+'.x.'+str(i)) - for i in range(len(self.y_list)): - shutil.copyfile(filebase+'y.'+str(i),unique_filename+'.y.'+str(i)) - unique_filename+='.meta' - - else: - unique_filename = ramdiskpath+'/'+str(uuid.uuid4())+'.z' - shutil.copyfile(fileprefix, unique_filename) - readfile=unique_filename - self.ramdiskfile=readfile - - #create shared mem in sync mode - for i in range(len(self.w_list)): - self.w_list[i]=self.__createArr(self.w_shapes[i]) - - for i in range(len(self.x_list)): - self.x_list[i]=self.__createArr(self.x_shapes[i]) - - for i in range(len(self.y_list)): - self.y_list[i]=self.__createArr(self.y_shapes[i]) - - - if read_async: - if "meta" in readfile[-4:]: - #new format - from DeepJetCore.compiled.c_readArrThreaded import startReading - self.readthreadids=[] - filebase=readfile[:-4] - for i in range(len(self.w_list)): - self.readthreadids.append(startReading(self.w_list[i].ctypes.data, - filebase+'w.'+str(i), - fileprefix, - list(self.w_list[i].shape), - isRamDisk)) - for i in range(len(self.x_list)): - self.readthreadids.append(startReading(self.x_list[i].ctypes.data, - filebase+'x.'+str(i), - fileprefix, - list(self.x_list[i].shape), - isRamDisk)) - for i in range(len(self.y_list)): - self.readthreadids.append(startReading(self.y_list[i].ctypes.data, - filebase+'y.'+str(i), - fileprefix, - list(self.y_list[i].shape), - isRamDisk)) + ### needs rework + shapes = ctd.readShapesFromFile(fileprefix) + self.xshapes = shapes[0][1:] + self.yshapes = [] + if len(shapes[1]): + self.yshapes = shapes[1][1:] + self.wshapes = [] + if len(shapes[2]): + self.wshapes = shapes[2][1:] - else: - if "meta" in readfile[-4:]: - from DeepJetCore.compiled.c_readArrThreaded import readBlocking - filebase=readfile[:-4] - self.readthreadids=[] - for i in range(len(self.w_list)): - (readBlocking(self.w_list[i].ctypes.data, - filebase+'w.'+str(i), - fileprefix, - list(self.w_list[i].shape), - isRamDisk)) - for i in range(len(self.x_list)): - (readBlocking(self.x_list[i].ctypes.data, - filebase+'x.'+str(i), - fileprefix, - list(self.x_list[i].shape), - isRamDisk)) - for i in range(len(self.y_list)): - (readBlocking(self.y_list[i].ctypes.data, - filebase+'y.'+str(i), - fileprefix, - list(self.y_list[i].shape), - isRamDisk)) - - - - def readIn_abort(self): - self.removeRamDiskFile() - if not self.readthread: + ### return - self.readthread.terminate() - self.readthread=None - self.readdone=None - - def readIn_join(self,wasasync=True,waitforStart=True): - - try: - if not not hasattr(self, 'readthreadids') and not waitforStart and not self.readthread and wasasync: - print('\nreadIn_join:read never started\n') - - if waitforStart: - while (not hasattr(self, 'readthreadids')) and not self.readthread: - time.sleep(0.1) - if hasattr(self, 'readthreadids'): - while not self.readthreadids: - time.sleep(0.1) - - counter=0 - - if hasattr(self, 'readthreadids') and self.readthreadids: - from DeepJetCore.compiled.c_readArrThreaded import isDone - doneids=[] - while True: - for id in self.readthreadids: - if id in doneids: continue - if isDone(id): - doneids.append(id) - if len(self.readthreadids) == len(doneids): - break - time.sleep(0.1) - counter+=1 - if counter>3000: #read failed. do synchronous read, safety option if threads died - print('\nfalling back to sync read\n') - self.readthread.terminate() - self.readthread=None - self.readIn(self.samplename) - return - - - - #move away from shared memory - #this costs performance but seems necessary - - self.w=copy.deepcopy(self.w_list) - self.x=copy.deepcopy(self.x_list) - self.y=copy.deepcopy(self.y_list) - - del self.w_list - del self.x_list - del self.y_list - #in case of some errors during read-in - - except Exception as d: - raise d - finally: - self.removeRamDiskFile() - - #check if this is really neccessary - def reshape_fast(arr,shapeinfo): - if len(shapeinfo)<2: - shapeinfo=numpy.array([arr.shape[0],1]) - arr=arr.reshape(shapeinfo) - return arr - - - for i in range(len(self.w)): - self.w[i]=reshape_fast(self.w[i],self.w_shapes[i]) - for i in range(len(self.x)): - self.x[i]=reshape_fast(self.x[i],self.x_shapes[i]) - for i in range(len(self.y)): - self.y[i]=reshape_fast(self.y[i],self.y_shapes[i]) - - self.w_list=None - self.x_list=None - self.y_list=None - if wasasync and self.readthread: - self.readthread.terminate() - self.readthread=None - self.readdone=None + l = ctd.readFromFile(fileprefix) + self.x = l[0] + self.y = l[1] + self.w = l[2] + self.nsamples=len(x[0]) def readIn(self,fileprefix,shapesOnly=False): - self.readIn_async(fileprefix,False,shapesOnly) - direct=True - if direct: - self.w=self.w_list - self.x=self.x_list - self.y=self.y_list - else: - self.w=copy.deepcopy(self.w_list) - del self.w_list - self.x=copy.deepcopy(self.x_list) - del self.x_list - self.y=copy.deepcopy(self.y_list) - del self.y_list - - def reshape_fast(arr,shapeinfo): - if len(shapeinfo)<2: - shapeinfo=numpy.array([arr.shape[0],1]) - if shapesOnly: - arr=numpy.zeros(shape=shapeinfo) - else: - arr=arr.reshape(shapeinfo) - return arr - - - - - for i in range(len(self.w)): - self.w[i]=reshape_fast(self.w[i],self.w_shapes[i]) - for i in range(len(self.x)): - self.x[i]=reshape_fast(self.x[i],self.x_shapes[i]) - for i in range(len(self.y)): - self.y[i]=reshape_fast(self.y[i],self.y_shapes[i]) + print('TrainData:readIn deprecated, use readFromFile') + self.readFromFile(fileprefix,shapesOnly) - self.w_list=None - self.x_list=None - self.y_list=None - self.readthread=None - - def readTreeFromRootToTuple(self, filenames, limit=None, branches=None): + def convertFromSourceFile(self, filename, weighterobjects): + pass + + def createWeighterObjects(self, allsourcefiles): ''' - To be used to get the initial tupel for further processing in inherting classes - Makes sure the number of entries is properly set - - can also read a list of files (e.g. to produce weights/removes from larger statistics - (not fully tested, yet) + Will be called on the full list of source files once. + Can be used to create weighter objects or similar that can + then be applied to each individual conversion ''' - if branches==None: - branches=self.allbranchestoberead - - if branches is None or len(branches) == 0: - return numpy.array([],dtype='float32') - - #print(branches) - #remove duplicates - usebranches=list(set(branches)) - tmpbb=[] - for b in usebranches: - if len(b): - tmpbb.append(b) - usebranches=tmpbb - - import ROOT - from root_numpy import tree2array, root2array - if isinstance(filenames, list): - for f in filenames: - fileTimeOut(f,120) - print('add files') - nparray = root2array( - filenames, - treename = self.treename, - stop = limit, - branches = usebranches - ) - print('done add files') - return nparray - print('add files') - else: - fileTimeOut(filenames,120) #give eos a minute to recover - rfile = ROOT.TFile(filenames) - tree = rfile.Get(self.treename) - if not self.nsamples: - self.nsamples=tree.GetEntries() - nparray = tree2array(tree, stop=limit, branches=usebranches) - return nparray - - def read_truthclasses(self,filename): - npy_array = self.readTreeFromRootToTuple(filename) - arl=[] - for c in self.truthclasses: - a = numpy.asarray(npy_array[c]) - a = a.reshape((a.shape[0],1)) - arl.append(a) - - return numpy.concatenate(arl,axis=-1) - - def make_means(self, nparray): - from preprocessing import meanNormProd - return meanNormProd(nparray) - - def produceMeansFromRootFile(self,filename, limit=500000): - from preprocessing import meanNormProd - nparray = self.readTreeFromRootToTuple(filename, limit=limit) - means = numpy.array([],dtype='float32') - if len(nparray): - means = self.make_means(nparray) - - del nparray - return means - - #overload if necessary - def make_empty_weighter(self): - weighter = Weighter() - weighter.undefTruth = self.undefTruth - - if self.remove or self.weight: - weighter.setBinningAndClasses( - [self.weight_binX,self.weight_binY], - self.weightbranchX,self.weightbranchY, - self.truthclasses - ) - return weighter - - - def produceBinWeighter(self,filenames): - weighter = self.make_empty_weighter() - branches = [self.weightbranchX,self.weightbranchY] - branches.extend(self.truthclasses) - showprog=ShowProgress(5,len(filenames)) - counter=0 - if self.remove or self.weight: - for fname in filenames: - fileTimeOut(fname, 120) - nparray = self.readTreeFromRootToTuple(fname, branches=branches) - weighter.addDistributions(nparray) - #del nparray - showprog.show(counter) - counter=counter+1 - weighter.createRemoveProbabilitiesAndWeights(self.referenceclass) - return weighter + return () - - - - def _normalize_input_(self, weighter, npy_array, oversample=1): - weights = None - if self.weight: - weights=weighter.getJetWeights(npy_array) - self.w = [weights for _ in self.y] - elif self.remove: - x_in=self.x - y_in=self.y - for i in range(oversample): - notremoves=weighter.createNotRemoveIndices(npy_array) - if self.undefTruth: - undef=npy_array[self.undefTruth].sum(axis=1) - notremoves-=undef - print(' to created remove indices', i) - weights=notremoves - - print('remove', i) - if not i: - self.x = [x[notremoves > 0] for x in x_in] - self.y = [y[notremoves > 0] for y in y_in] - else: - self.x = [self.x[i].concatenate(x_in[i][notremoves > 0]) for i in range(len(self.x))] - self.y = [self.y[i].concatenate(y_in[i][notremoves > 0]) for i in range(len(self.y))] - - self.w = [numpy.zeros(self.x[0].shape)+1 for _ in self.y] - - - newnsamp=self.x[0].shape[0] - print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') - self.nsamples = newnsamp - else: - print('neither remove nor weight') - weights=numpy.empty(self.nsamples) - weights.fill(1.) - self.w = [weights for _ in self.y] - - diff --git a/compiled/Makefile b/compiled/Makefile index b62ff40..369bb9b 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -36,7 +36,7 @@ libquicklz.so: gcc -shared -O2 -fPIC src/quicklz.c -o libquicklz.so obj/%.o: src/%.cpp - g++ $(CFLAGS) $(ROOTCFLAGS) -I./interface -O2 -fPIC -c -o $@ $< + g++ $(CFLAGS) $(PYTHON_INCLUDE) $(ROOTCFLAGS) -I./interface -O2 -fPIC -c -o $@ $< #pack helpers in lib libdeepjetcorehelpers.so: $(OBJ_FILES) diff --git a/compiled/interface/IO.h b/compiled/interface/IO.h index 3e02f53..367e428 100644 --- a/compiled/interface/IO.h +++ b/compiled/interface/IO.h @@ -12,6 +12,7 @@ #include #include #include +#include /* * Very simple template wrapper around fread and fwrite with error checks @@ -22,6 +23,12 @@ namespace djc{ namespace io{ + +inline bool fileExists(const std::string& name) { + struct stat buffer; + return (stat (name.c_str(), &buffer) == 0); +} + //only linux inline std::string followFileName(FILE * ofile){ char proclnk[0xFFF]; diff --git a/compiled/interface/helper.h b/compiled/interface/helper.h index fb2d29b..ce4a03e 100644 --- a/compiled/interface/helper.h +++ b/compiled/interface/helper.h @@ -9,11 +9,15 @@ #define DEEPJET_MODULES_INTERFACE_HELPER_H_ +#include +#include "boost/python/numpy.hpp" + #include #include #include "TString.h" #include "TObject.h" #include "TString.h" +#include "simpleArray.h" TString prependXRootD(const TString& path); @@ -24,4 +28,6 @@ float deltaPhi(const float& phi1, const float& phi2); void checkTObject(const TObject * o, TString msg); +boost::python::numpy::ndarray simpleArrayToNumpy( djc::simpleArray& ifarr); + #endif /* DEEPJET_MODULES_INTERFACE_HELPER_H_ */ diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index b43ff17..facf30d 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -388,6 +388,7 @@ void simpleArray::readFromFile(FILE *& ifile) { rowsplits_ = std::vector(rssize, 0); io::readFromFile(&rowsplits_[0], ifile, rssize); + data_ = new T[size_]; quicklz qlz; size_t nread = qlz.readAll(ifile, data_); diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 8f9d8a2..e5afb7d 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -12,6 +12,8 @@ #include #include "IO.h" +#include + namespace djc{ /* @@ -86,11 +88,24 @@ class trainData{ void readFromFile(std::string filename); + //could use a readshape or something! + void readShapesFromFile(std::string filename, + std::vector >& feature_shapes, + std::vector >& truth_shapes, + std::vector >& weight_shapes); + + void clear(); private: void writeArrayVector(const std::vector >&, FILE *&) const; std::vector > readArrayVector(FILE *&) const; + std::vector > getShapes(const std::vector >& a)const; + template + void writeNested(const std::vector >& v, FILE *&)const; + template + void readNested( std::vector >& v, FILE *&)const; + std::vector > feature_arrays_; std::vector > truth_arrays_; std::vector > weight_arrays_; @@ -175,10 +190,18 @@ void trainData::writeToFile(std::string filename)const{ FILE *ofile = fopen(filename.data(), "wb"); float version = DJCDATAVERSION; io::writeToFile(&version, ofile); - writeArrayVector(feature_arrays_,ofile); - writeArrayVector(truth_arrays_,ofile); - writeArrayVector(weight_arrays_,ofile); + + //shape infos only + writeNested(getShapes(feature_arrays_), ofile); + writeNested(getShapes(truth_arrays_), ofile); + writeNested(getShapes(weight_arrays_), ofile); + + //data + writeArrayVector(feature_arrays_, ofile); + writeArrayVector(truth_arrays_, ofile); + writeArrayVector(weight_arrays_, ofile); fclose(ofile); + } template @@ -192,6 +215,12 @@ void trainData::readFromFile(std::string filename){ if(version != DJCDATAVERSION) throw std::runtime_error("trainData::readFromFile: wrong format version"); + std::vector > dummy; + readNested(dummy, ifile); + readNested(dummy, ifile); + readNested(dummy, ifile); + dummy.clear(); + feature_arrays_ = readArrayVector(ifile); truth_arrays_ = readArrayVector(ifile); weight_arrays_ = readArrayVector(ifile); @@ -199,6 +228,28 @@ void trainData::readFromFile(std::string filename){ } +template +void trainData::readShapesFromFile(std::string filename, + std::vector >& feature_shapes, + std::vector >& truth_shapes, + std::vector >& weight_shapes){ + + FILE *ifile = fopen(filename.data(), "rb"); + if(!ifile) + throw std::runtime_error("trainData::readShapesFromFile: file "+filename+" could not be opened."); + float version = 0; + io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION) + throw std::runtime_error("trainData::readFromFile: wrong format version"); + + readNested(feature_shapes, ifile); + readNested(truth_shapes, ifile); + readNested(weight_shapes, ifile); + + fclose(ifile); + +} + template void trainData::clear() { feature_arrays_.clear(); @@ -225,6 +276,54 @@ std::vector > trainData::readArrayVector(FILE *& ifile) const{ return out; } +template +std::vector > trainData::getShapes(const std::vector >& a)const{ + std::vector > out; + for(const auto& arr: a) + out.push_back(arr.shape()); + return out; +} + +template +template +void trainData::writeNested(const std::vector >& v, FILE *& ofile)const{ + + size_t size = v.size(); + io::writeToFile(&size, ofile); + for(size_t i=0;i +template +void trainData::readNested(std::vector >& v, FILE *& ifile)const{ + + size_t size = 0; + io::readFromFile(&size, ifile); + v.resize(size,std::vector(0)); + std::cout << "tot " << size << std::endl; + for(size_t i=0;i #include #include +#include namespace djc{ @@ -42,10 +43,18 @@ class trainDataGenerator{ nbatches_ = ntotal_/batchsize_; } + void setFileTimeout(size_t seconds){ + filetimeout_=seconds; + } + size_t getNBatches()const{ return nbatches_; } + bool lastBatch()const{ + return nprocessed_ >= nbatches_; + } + void beginEpoch(); void endEpoch(); @@ -56,6 +65,8 @@ class trainDataGenerator{ */ trainData getBatch(size_t batchsize=0); + static bool debug; + private: void shuffleFilelist(); void readBuffer(); @@ -71,12 +82,16 @@ class trainDataGenerator{ size_t nbatches_; size_t ntotal_; size_t nprocessed_; + size_t filetimeout_; }; +template +bool trainDataGenerator::debug = false; + template trainDataGenerator::trainDataGenerator() : randomcount_(1), batchsize_(2), readthread_(0), filecount_(0), nbatches_( - 0), ntotal_(0), nprocessed_(0) { + 0), ntotal_(0), nprocessed_(0),filetimeout_(10) { } template @@ -100,7 +115,15 @@ void trainDataGenerator::shuffleFilelist(){ template void trainDataGenerator::readBuffer(){ - buffer_read.readFromFile(nextread_); + size_t ntries = 0; + while(ntries < filetimeout_){ + if(io::fileExists(nextread_)){ + buffer_read.readFromFile(nextread_); + return; + } + sleep(1); + } + throw std::runtime_error("trainDataGenerator::readBuffer: file "+nextread_+ " could not be read."); } @@ -120,7 +143,7 @@ void trainDataGenerator::endEpoch(){ //prepare for next epoch, pre-read first file if(readthread_){ - readthread_->join(); + readthread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way delete readthread_; } buffer_store.clear(); @@ -152,6 +175,10 @@ trainData trainDataGenerator::getBatch(size_t batchsize){ buffer_read.clear(); bufferelements = buffer_store.nElements(); + if(debug) + std::cout << "batch " << nprocessed_ << " file " << filecount_ << " in buffer " << bufferelements + << " file read " << nextread_ << " totalfiles " << shuffled_infiles_.size() << std::endl; + if(nprocessed_ + bufferelements < ntotal_){ if (filecount_ >= shuffled_infiles_.size()) throw std::runtime_error( diff --git a/compiled/src/c_NumpyInterface.C b/compiled/src/c_NumpyInterface.C index 566961c..9c4c529 100644 --- a/compiled/src/c_NumpyInterface.C +++ b/compiled/src/c_NumpyInterface.C @@ -22,12 +22,12 @@ namespace p = boost::python; namespace np = boost::python::numpy; -np::ndarray readFromFile(std::string filename){ +np::ndarray readFromFile(std::string filename, bool shapesOnly){ FILE *ifile = fopen("testfile.djcd", "rb"); - simpleArray ifarr(ifile); + djc::simpleArray ifarr(ifile); fclose(ifile); auto size = ifarr.size(); diff --git a/compiled/src/c_trainDataInterface.C b/compiled/src/c_trainDataInterface.C index 1201e7d..3fbad6b 100644 --- a/compiled/src/c_trainDataInterface.C +++ b/compiled/src/c_trainDataInterface.C @@ -7,8 +7,8 @@ #include "../interface/trainData.h" +#include "../interface/helper.h" -#define BOOST_PYTHON_MAX_ARITY 20 #include #include "boost/python/numpy.hpp" #include "boost/python/list.hpp" @@ -25,6 +25,10 @@ namespace np = boost::python::numpy; * write out a cpp traindata object from a python traindata object using * three lists: x, y, w * make choice for float here + * + * On longer term make this a real class wrapper. So far ok, still needs + * rework for ragged anyway + * */ float * extractNumpyListElement(p::list x, int i, std::vector& shape){ @@ -42,8 +46,8 @@ void writeToFile(p::list x, p::list y, p::list w, std::string filename){ djc::trainData td; int nx = p::extract(x.attr("__len__")()); - int ny = p::extract(x.attr("__len__")()); - int nw = p::extract(x.attr("__len__")()); + int ny = p::extract(y.attr("__len__")()); + int nw = p::extract(w.attr("__len__")()); std::vector shape; for(int i=0;i& ifarr); p::list readFromFile(std::string filename){ p::list out; @@ -108,36 +111,36 @@ p::list readFromFile(std::string filename){ return out; } - -np::ndarray simpleArrayToNumpy( djc::simpleArray& ifarr){ - - auto size = ifarr.size(); - auto shape = ifarr.shape(); - for(const auto& s:shape){ - if(s<0) - throw std::runtime_error("simpleArrayToNumpy: no conversion from ragged simpleArrys possible"); +p::list nestedToList(const std::vector >& v){ + p::list out; + for(const auto& vv:v){ + p::list tmp; + for(const auto& vvv:vv) + tmp.append(vvv); + out.append(tmp); } + return out; +} - p::list pshape; - for(const auto& s:shape) - pshape.append(s); - - p::tuple tshape(pshape);//not working - - np::ndarray nparr = np::from_data((void*)ifarr.disownData(), - np::dtype::get_builtin(), - p::make_tuple(size), p::make_tuple(sizeof(float)), p::object() ); +p::list readShapesFromFile(std::string filename){ + p::list out; + djc::trainData td; + std::vector > fs,ts,ws; + td.readShapesFromFile(filename,fs,ts,ws); + out.append(nestedToList(fs)); + out.append(nestedToList(ts)); + out.append(nestedToList(ws)); + return out; +} - nparr = nparr.reshape(tshape); - return nparr; -} BOOST_PYTHON_MODULE(c_trainDataInterface) { Py_Initialize(); np::initialize(); def("writeToFile", &writeToFile); def("readFromFile", &readFromFile); + def("readShapesFromFile", &readShapesFromFile); } diff --git a/compiled/src/helper.cpp b/compiled/src/helper.cpp index 8d99d23..2b5f566 100644 --- a/compiled/src/helper.cpp +++ b/compiled/src/helper.cpp @@ -9,6 +9,34 @@ #include "../interface/helper.h" #include +namespace p = boost::python; +namespace np = boost::python::numpy; + + +np::ndarray simpleArrayToNumpy( djc::simpleArray& ifarr){ + + auto size = ifarr.size(); + auto shape = ifarr.shape(); + for(const auto& s:shape){ + if(s<0) + throw std::runtime_error("simpleArrayToNumpy: no conversion from ragged simpleArrys possible"); + } + + p::list pshape; + for(const auto& s:shape) + pshape.append(s); + + p::tuple tshape(pshape);//not working + + np::ndarray nparr = np::from_data((void*)ifarr.disownData(), + np::dtype::get_builtin(), + p::make_tuple(size), p::make_tuple(sizeof(float)), p::object() ); + + nparr = nparr.reshape(tshape); + return nparr; + +} + TString prependXRootD(const TString& path){ diff --git a/compiled/to_bin/testpipeline.cpp b/compiled/to_bin/testpipeline.cpp index 9e85785..f0b430f 100644 --- a/compiled/to_bin/testpipeline.cpp +++ b/compiled/to_bin/testpipeline.cpp @@ -24,15 +24,22 @@ using namespace djc; int main(){ //create some data -/* - trainData bigtd; + bool write=false; + if(write){ + trainData bigtd; - auto fidx = bigtd.addFeatureArray({1200, 5*4000, 10}); - for(size_t i=0;i test; + std::vector > fs, ts, ws; + std::cout << "reading" << std::endl; + test.readShapesFromFile("bigfile1.djctd",fs,ts,ws); + + std::cout << fs.size() << " " << ts.size() << " " << ws.size() << std::endl; + for(const auto& s: fs) + std::cout << s << std::endl; + for(const auto& s: ts) + std::cout << s << std::endl; + return 0; + /* - return 0; */ -/* std::vector filenames = {"bigfile1.djctd", "bigfile2.djctd", "bigfile3.djctd","bigfile4.djctd", "bigfile1.djctd", @@ -80,9 +101,9 @@ int main(){ } gen.endEpoch(); } -*/ - // return 0; + + return 0; simpleArray farr({5,2,1}); for(float i=0;i Date: Fri, 8 Nov 2019 10:32:49 +0000 Subject: [PATCH 132/437] snapshot, DataCollection cleanup. Now training parts --- DataCollection.py | 186 +++--- DataCollection_compat.py | 558 ++++++++++++++++++ TrainData.py | 93 ++- TrainData_compat.py | 718 ++++++++++++++++++++++++ bin/convertPre2.0TDtoTD.py | 37 ++ compiled/interface/helper.h | 4 +- compiled/interface/simpleArray.h | 18 +- compiled/interface/trainData.h | 6 - compiled/interface/trainDataGenerator.h | 52 +- compiled/to_bin/testpipeline.cpp | 34 +- 10 files changed, 1486 insertions(+), 220 deletions(-) create mode 100644 DataCollection_compat.py create mode 100644 TrainData_compat.py create mode 100755 bin/convertPre2.0TDtoTD.py diff --git a/DataCollection.py b/DataCollection.py index faccbdb..a0d3c62 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -5,12 +5,18 @@ ''' +''' +So far self.nsamples might be not useful +also, _readNTotal might not be needed. +Check at a later stage +''' + +from DeepJetCore.compiled.c_dataGenerator import numpyGenerator + class DataCollection(object): ''' classdocs ''' - - def __init__(self, infile = None, nprocs = -1): ''' Constructor @@ -21,20 +27,14 @@ def __init__(self, infile = None, nprocs = -1): if not len(self.samples): raise Exception("no valid datacollection found in "+infile) - self.weighterobjects=() - + self.weighterobjects={} def clear(self): self.samples=[] - self.sampleentries=[] self.sourceList=[] - self.nsamples=0 self.dataDir="" self.dataclass=TrainData() - - - def __len__(self): - return self.nsamples + self.__nsamples = 0 def __iadd__(self, other): 'A += B' @@ -45,9 +45,7 @@ def _extend_(a, b, name): _extend_(self, other, 'samples') if len(set(self.samples)) != len(self.samples): raise ValueError('The two DataCollections being summed contain the same files!') - _extend_(self, other, 'sampleentries') _extend_(self, other, 'sourceList') - self.nsamples += other.nsamples if self.dataDir != other.dataDir: raise ValueError('The two DataCollections have different data directories, still to be implemented!') if type(self.dataclass) != type(other.dataclass): @@ -74,50 +72,57 @@ def __radd__(self, other): else: raise ValueError("I don't know how to add DataCollection and %s" % type(other)) + def _readShapesIfNeeded(self): + if len(self.samples)<1: + return + if not len(self.dataclass.xshapes): + self.dataclass.readFromFile(self.getSamplePath(self.samples[0]),shapesOnly=True) + + def _readNTotal(self): + if not len(self.samples): + return 0 + gen = numpyGenerator() + gen.setFileList(self.samples) + return gen.readNTotal() + + def removeLast(self): self.samples.pop() - self.nsamples-=self.sampleentries[-1] - self.sampleentries.pop() self.sourceList.pop() - - def getInputShapes(self): - ''' - gets the input shapes from the data class description - ''' + + def getKerasFeatureShapes(self): if len(self.samples)<1: return [] - self.dataclass.filelock=None - td=copy.deepcopy(self.dataclass) - td.readFromFile(self.getSamplePath(self.samples[0]),shapesOnly=True) - shapes=td.getInputShapes() - td.clear() - return shapes + self._readShapesIfNeeded() + return self.dataclass.getKerasFeatureShapes() - def getTruthShape(self): - return self.dataclass.getTruthShapes() + def getInputShapes(self): + print('DataCollection:getInputShapes deprecated, use getKerasFeatureShapes ') + return self.getKerasFeatureShapes() + + def getKerasTruthShape(self): + if len(self.samples)<1: + return [] + self._readShapesIfNeeded() + return self.dataclass.getKerasTruthShapes() def setBatchSize(self,bsize): - if bsize > self.nsamples: - raise Exception('Batch size must not be bigger than total sample size') self.__batchsize=bsize def getBatchSize(self): return self.__batchsize def getSamplesPerEpoch(self): - #modify by batch split - count=self.getNBatchesPerEpoch() - if count != 1: - return count*self.__batchsize #final - else: - return self.nsamples + return self.getNBatchesPerEpoch()*self.__batchsize def getNBatchesPerEpoch(self): if self.__batchsize <= 1: return 1 count=0 - while (count+1)*self.__batchsize <= self.nsamples: + if self.__nsamples == 0: + self.__nsamples = self._readNTotal() + while (count+1)*self.__batchsize <= self.__nsamples: count+=1 return count @@ -128,40 +133,29 @@ def validate(self, remove=True, skip_first=0): Also removes the original link to the root file, so recover cannot be run (this might be changed in future implementations) ''' + validsourcelist = len(self.samples) == len(self.sourceList) for i in range(len(self.samples)): if i < skip_first: continue if i >= len(self.samples): break td=copy.deepcopy(self.dataclass) fullpath=self.getSamplePath(self.samples[i]) - print('reading '+fullpath, str(self.sampleentries[i]), str(i), '/', str(len(self.samples))) + print('reading '+fullpath, str(i), '/', str(len(self.samples))) try: td.readFromFile(fullpath) - for x in td.x: - if td.nsamples != x.shape[0]: - print("not right length") - raise Exception("not right length") - for y in td.y: - if td.nsamples != y.shape[0]: - print("not right length") - raise Exception("not right length") - del td continue except Exception as e: print('problem with file, removing ', fullpath) del self.samples[i] - del self.sourceList[i] - self.nsamples -= self.sampleentries[i] - del self.sampleentries[i] + if validsourcelist: + del self.sourceList[i] def removeEntry(self,relative_path_to_entry): for i in range(len(self.samples)): if relative_path_to_entry==self.samples[i]: - print('removing '+self.samples[i]+" - "+str(self.sampleentries[i])) + print('removing '+self.samples[i]) del self.samples[i] del self.sourceList[i] - self.nsamples -= self.sampleentries[i] - del self.sampleentries[i] break @@ -169,21 +163,16 @@ def writeToFile(self,filename): with tempfile.NamedTemporaryFile(mode='wb', delete=False) as fd: self.dataclass.clear() pickle.dump(self.samples, fd,protocol=0 ) - pickle.dump(self.sampleentries, fd,protocol=0 ) pickle.dump(self.sourceList, fd,protocol=0 ) - pickle.dump(self.nsamples, fd,protocol=0 ) pickle.dump(self.dataclass, fd,protocol=0 ) pickle.dump(self.self.weighterobjects, fd, protocol=0) - self.means.dump(fd) shutil.move(fd.name, filename) def readFromFile(self,filename): fd=open(filename,'rb') self.samples=pickle.load(fd) - self.sampleentries=pickle.load(fd) self.sourceList=pickle.load(fd) - self.nsamples=pickle.load(fd) self.dataclass=pickle.load(fd) self.weighterobjects=pickle.load(fd) fd.close() @@ -196,7 +185,7 @@ def readSourceListFromFile(self, file, relpath=''): self.samples=[] self.sampleentries=[] self.sourceList=[] - self.nsamples=0 + self.__nsamples=0 self.dataDir="" fdir=os.path.dirname(file) @@ -211,58 +200,41 @@ def readSourceListFromFile(self, file, relpath=''): self.sourceList.append(line) if len(self.sourceList)<1: - raise Exception('root samples list empty') + raise Exception('source samples list empty') def split(self,ratio): ''' - ratio is self/(out+self) + out fraction is (1-ratio) returns out - modifies itself + modifies self ''' - out=DataCollection() - itself=copy.deepcopy(self) - - nsamplefiles=len(self.samples) + nin = int(len(self.samples)*(ratio)) + if nin < 1: + raise ValueError("DataCollection:split: less than one sample would remain") - out.samples=[] - out.sampleentries=[] - out.sourceList=[] - out.nsamples=0 - out.__batchsize=copy.deepcopy(self.__batchsize) - out.dataDir=self.dataDir - - out.dataclass=copy.deepcopy(self.dataclass) - - itself.samples=[] - itself.sampleentries=[] - itself.sourceList=[] - itself.nsamples=0 + if nin == len(self.samples): + raise ValueError("DataCollection:split: less than one sample would be assigned to output") + + out=DataCollection() + out.dataDir = self.dataDir + out.dataclass = self.dataclass #anyway just a dummy + out.samples = self.samples[nin:] + self.samples = self.samples[:nin] + + if len(self.sourceList) == len(self.samples): + out.sourceList = self.sourceList[nin:] + self.sourceList = self.sourceList[:nin] + else: + self.sourceList = [] + out.sourceList = [] - if nsamplefiles < 2: - out=copy.deepcopy(self) - print('DataCollection.split: warning: only one file, split will just return a copy of this') - return out - - for i in range(0, nsamplefiles): - frac=(float(i))/(float(nsamplefiles)) - if frac < ratio and i < nsamplefiles-1: - itself.samples.append(self.samples[i]) - itself.sampleentries.append(self.sampleentries[i]) - itself.sourceList.append(self.sourceList[i]) - itself.nsamples+=self.sampleentries[i] - else: - out.samples.append(self.samples[i]) - out.sampleentries.append(self.sampleentries[i]) - out.sourceList.append(self.sourceList[i]) - out.nsamples+=self.sampleentries[i] - + #force re-read upon request + self.__nsamples = 0 + out.__nsamples = 0 - self.samples=itself.samples - self.sampleentries=itself.sampleentries - self.sourceList=itself.sourceList - self.nsamples=itself.nsamples + out.weighterobjects = self.weighterobjects return out @@ -274,8 +246,6 @@ def recoverCreateDataFromRootFromSnapshot(self, snapshotfile): if len(self.sourceList) < 1: return - #if not self.means: - # self.means=td.produceMeansFromRootFile(self.sourceList[0]) outputDir=os.path.dirname(snapshotfile)+'/' self.dataDir=outputDir finishedsamples=len(self.samples) @@ -557,23 +527,23 @@ def __stackData(self, dataclass, selector): def generator(self): - from DeepJetCore.compiled.c_dataGenerator import numpyGenerator gen = numpyGenerator() gen.setFileList(self.samples) gen.setBatchSize(self.__batchsize) - gen.setNTotal(self.nsamples) - gen.beginEpoch() + gen.readNTotal() #also a good check if all files are accessible + self.__nsamples = gen.getNTotal() + while(1): - data = gen.getBatch(0) + data = gen.getBatch(0)#in principle batch sizes can differ from batch to batch xout = data[0] yout = data[1] wout = data[2] - if gen.lastBatch() : - gen.endEpoch() + if gen.lastBatch(): # returns true if less than the previous batch size remains + gen.prepareNextEpoch() if len(wout)>0: yield (xout,yout,wout) diff --git a/DataCollection_compat.py b/DataCollection_compat.py new file mode 100644 index 0000000..a0d3c62 --- /dev/null +++ b/DataCollection_compat.py @@ -0,0 +1,558 @@ +''' +Created on 21 Feb 2017 + +@author: jkiesele +''' + + +''' +So far self.nsamples might be not useful +also, _readNTotal might not be needed. +Check at a later stage +''' + +from DeepJetCore.compiled.c_dataGenerator import numpyGenerator + +class DataCollection(object): + ''' + classdocs + ''' + def __init__(self, infile = None, nprocs = -1): + ''' + Constructor + ''' + self.clear() + if infile: + self.readFromFile(infile) + if not len(self.samples): + raise Exception("no valid datacollection found in "+infile) + + self.weighterobjects={} + + def clear(self): + self.samples=[] + self.sourceList=[] + self.dataDir="" + self.dataclass=TrainData() + self.__nsamples = 0 + + def __iadd__(self, other): + 'A += B' + if not isinstance(other, DataCollection): + raise ValueError("I don't know how to add DataCollection and %s" % type(other)) + def _extend_(a, b, name): + getattr(a, name).extend(getattr(b, name)) + _extend_(self, other, 'samples') + if len(set(self.samples)) != len(self.samples): + raise ValueError('The two DataCollections being summed contain the same files!') + _extend_(self, other, 'sourceList') + if self.dataDir != other.dataDir: + raise ValueError('The two DataCollections have different data directories, still to be implemented!') + if type(self.dataclass) != type(other.dataclass): + raise ValueError( + 'The two DataCollections were made with a' + ' different data class type! (%s, and %s)' % (type(self.dataclass), type(other.dataclass)) + ) + return self + + def __add__(self, other): + 'A+B' + if not isinstance(other, DataCollection): + raise ValueError("I don't know how to add DataCollection and %s" % type(other)) + ret = copy.deepcopy(self) + ret += other + return ret + + def __radd__(self, other): + 'B+A to work with sum' + if other == 0: + return copy.deepcopy(self) + elif isinstance(other, DataCollection): + return self + other #we use the __add__ method + else: + raise ValueError("I don't know how to add DataCollection and %s" % type(other)) + + def _readShapesIfNeeded(self): + if len(self.samples)<1: + return + if not len(self.dataclass.xshapes): + self.dataclass.readFromFile(self.getSamplePath(self.samples[0]),shapesOnly=True) + + def _readNTotal(self): + if not len(self.samples): + return 0 + gen = numpyGenerator() + gen.setFileList(self.samples) + return gen.readNTotal() + + + def removeLast(self): + self.samples.pop() + self.sourceList.pop() + + + def getKerasFeatureShapes(self): + if len(self.samples)<1: + return [] + self._readShapesIfNeeded() + return self.dataclass.getKerasFeatureShapes() + + def getInputShapes(self): + print('DataCollection:getInputShapes deprecated, use getKerasFeatureShapes ') + return self.getKerasFeatureShapes() + + def getKerasTruthShape(self): + if len(self.samples)<1: + return [] + self._readShapesIfNeeded() + return self.dataclass.getKerasTruthShapes() + + def setBatchSize(self,bsize): + self.__batchsize=bsize + + def getBatchSize(self): + return self.__batchsize + + def getSamplesPerEpoch(self): + return self.getNBatchesPerEpoch()*self.__batchsize + + def getNBatchesPerEpoch(self): + if self.__batchsize <= 1: + return 1 + count=0 + if self.__nsamples == 0: + self.__nsamples = self._readNTotal() + while (count+1)*self.__batchsize <= self.__nsamples: + count+=1 + return count + + def validate(self, remove=True, skip_first=0): + ''' + checks if all samples in the collection can be read properly. + removes the invalid samples from the sample list. + Also removes the original link to the root file, so recover cannot be run + (this might be changed in future implementations) + ''' + validsourcelist = len(self.samples) == len(self.sourceList) + for i in range(len(self.samples)): + if i < skip_first: continue + if i >= len(self.samples): break + td=copy.deepcopy(self.dataclass) + fullpath=self.getSamplePath(self.samples[i]) + print('reading '+fullpath, str(i), '/', str(len(self.samples))) + try: + td.readFromFile(fullpath) + del td + continue + except Exception as e: + print('problem with file, removing ', fullpath) + del self.samples[i] + if validsourcelist: + del self.sourceList[i] + + def removeEntry(self,relative_path_to_entry): + for i in range(len(self.samples)): + if relative_path_to_entry==self.samples[i]: + print('removing '+self.samples[i]) + del self.samples[i] + del self.sourceList[i] + break + + + def writeToFile(self,filename): + with tempfile.NamedTemporaryFile(mode='wb', delete=False) as fd: + self.dataclass.clear() + pickle.dump(self.samples, fd,protocol=0 ) + pickle.dump(self.sourceList, fd,protocol=0 ) + pickle.dump(self.dataclass, fd,protocol=0 ) + pickle.dump(self.self.weighterobjects, fd, protocol=0) + + shutil.move(fd.name, filename) + + def readFromFile(self,filename): + fd=open(filename,'rb') + self.samples=pickle.load(fd) + self.sourceList=pickle.load(fd) + self.dataclass=pickle.load(fd) + self.weighterobjects=pickle.load(fd) + fd.close() + + self.dataDir=os.path.dirname(os.path.abspath(filename)) + self.dataDir+='/' + + + def readSourceListFromFile(self, file, relpath=''): + self.samples=[] + self.sampleentries=[] + self.sourceList=[] + self.__nsamples=0 + self.dataDir="" + + fdir=os.path.dirname(file) + fdir=os.path.abspath(fdir) + fdir=os.path.realpath(fdir) + lines = [line.rstrip('\n') for line in open(file)] + for line in lines: + if len(line) < 1: continue + if relpath: + self.sourceList.append(os.path.join(relpath, line)) + else: + self.sourceList.append(line) + + if len(self.sourceList)<1: + raise Exception('source samples list empty') + + + def split(self,ratio): + ''' + out fraction is (1-ratio) + returns out + modifies self + ''' + + nin = int(len(self.samples)*(ratio)) + if nin < 1: + raise ValueError("DataCollection:split: less than one sample would remain") + + if nin == len(self.samples): + raise ValueError("DataCollection:split: less than one sample would be assigned to output") + + out=DataCollection() + out.dataDir = self.dataDir + out.dataclass = self.dataclass #anyway just a dummy + out.samples = self.samples[nin:] + self.samples = self.samples[:nin] + + if len(self.sourceList) == len(self.samples): + out.sourceList = self.sourceList[nin:] + self.sourceList = self.sourceList[:nin] + else: + self.sourceList = [] + out.sourceList = [] + + #force re-read upon request + self.__nsamples = 0 + out.__nsamples = 0 + + out.weighterobjects = self.weighterobjects + + return out + + + def recoverCreateDataFromRootFromSnapshot(self, snapshotfile): + snapshotfile=os.path.abspath(snapshotfile) + self.readFromFile(snapshotfile) + td=self.dataclass + + if len(self.sourceList) < 1: + return + outputDir=os.path.dirname(snapshotfile)+'/' + self.dataDir=outputDir + finishedsamples=len(self.samples) + + self.__writeData_async_andCollect(finishedsamples,outputDir) + self.writeToFile(outputDir+'/dataCollection.dc') + + + def createDataFromRoot( + self, dataclass, outputDir, + redo_meansandweights=True, means_only=False, dir_check=True + ): + ''' + Also creates a file list of the output files + After the operation, the object will point to the already processed + files (not root files) + Writes out a snapshot of itself after every successfully written output file + to recover the data until a possible error occurred + ''' + + if len(self.sourceList) < 1: + print('createDataFromRoot: no input root file') + raise Exception('createDataFromRoot: no input root file') + + outputDir+='/' + if os.path.isdir(outputDir) and dir_check: + raise Exception('output dir must not exist') + elif not os.path.isdir(outputDir): + os.mkdir(outputDir) + self.dataDir=outputDir + self.nsamples=0 + self.samples=[] + self.sampleentries=[] + self.dataclass=copy.deepcopy(dataclass) + td=self.dataclass + + self.weighterobjects = td.createWeighterObjects(self.sourceList) + + if self.batch_mode: + for sample in self.sourceList: + self.__writeData(sample, outputDir) + else: + self.__writeData_async_andCollect(0, outputDir) + + def __writeData(self, sample, outputDir): + sw=stopwatch() + td=copy.deepcopy(self.dataclass) + + fileTimeOut(sample,120) #once available copy to ram + + td.convertFromSourceFile(sample, self.weighterobjects) + + sbasename = os.path.basename(sample) + newname = sbasename[:sbasename.rfind('.')]+'.djctd' + + newpath=os.path.abspath(outputDir+newname) + td.writeToFile(newpath) + print('converted and written '+newname+' in ',sw.getAndReset(),' sec') + self.samples.append(newname) + self.nsamples+=td.nsamples + self.sampleentries.append(td.nsamples) + td.clear() + + if not self.batch_mode: + self.writeToFile(outputDir+'/snapshot.dc') + + + def __writeData_async_andCollect(self, startindex, outputDir): + + + from multiprocessing import Process, Queue, cpu_count, Lock + wo_queue = Queue() + writelock=Lock() + thispid=str(os.getpid()) + if not self.batch_mode and not os.path.isfile(outputDir+'/snapshot.dc'): + self.writeToFile(outputDir+'/snapshot.dc') + + tempstoragepath='/dev/shm/'+thispid + + logger.info('creating dir '+tempstoragepath) + os.system('mkdir -p '+tempstoragepath) + + def writeData_async(index,woq,wrlck): + + logger.info('async started') + + sw=stopwatch() + td=copy.deepcopy(self.dataclass) + sample=self.sourceList[index] + + if self.batch_mode or self.no_copy_on_convert: + tmpinput = sample + + def removefile(): + pass + else: + tmpinput = tempstoragepath+'/'+str(os.getpid())+os.path.basename(sample) + + def removefile(): + os.system('rm -f '+tmpinput) + + import atexit + atexit.register(removefile) + + logger.info('start cp') + os_ret=os.system('cp '+sample+' '+tmpinput) + if os_ret: + raise Exception("copy to ramdisk not successful for "+sample) + + success=False + out_samplename='' + out_sampleentries=0 + sbasename = os.path.basename(sample) + newname = sbasename[:sbasename.rfind('.')]+'djctd' + newpath=os.path.abspath(outputDir+newname) + + try: + logger.info('readFromSourceFile') + td.readFromSourceFile(tmpinput, self.weighterobjects) + logger.info('writeOut') + #wrlck.acquire() + td.writeToFile(newpath) + #wrlck.release() + print('converted and written '+newname+' in ',sw.getAndReset(),' sec -', index) + + out_samplename=newname + out_sampleentries=td.nsamples + success=True + td.clear() + removefile() + woq.put((index,[success,out_samplename,out_sampleentries])) + + except: + print('problem in '+newname) + removefile() + woq.put((index,[False,out_samplename,out_sampleentries])) + raise + + def __collectWriteInfo(successful,samplename,sampleentries,outputDir): + if not successful: + raise Exception("write not successful, stopping") + + self.samples.append(samplename) + self.nsamples+=sampleentries + self.sampleentries.append(sampleentries) + if not self.batch_mode: + self.writeToFile(outputDir+'/snapshot_tmp.dc')#avoid to overwrite directly + os.system('mv '+outputDir+'/snapshot_tmp.dc '+outputDir+'/snapshot.dc') + + processes=[] + processrunning=[] + processfinished=[] + for i in range(startindex,len(self.sourceList)): + processes.append(Process(target=writeData_async, args=(i,wo_queue,writelock) ) ) + processrunning.append(False) + processfinished.append(False) + + nchilds = int(cpu_count()/2)-2 if self.nprocs <= 0 else self.nprocs + #if 'nvidiagtx1080' in os.getenv('HOSTNAME'): + # nchilds=cpu_count()-5 + if nchilds<1: + nchilds=1 + + #nchilds=10 + + + + lastindex=startindex-1 + alldone=False + results=[] + + try: + while not alldone: + nrunning=0 + for runs in processrunning: + if runs: nrunning+=1 + + for i in range(len(processes)): + if nrunning>=nchilds: + break + if processrunning[i]:continue + if processfinished[i]:continue + time.sleep(0.1) + logging.info('starting %s...' % self.sourceList[startindex+i]) + processes[i].start() + processrunning[i]=True + nrunning+=1 + + + + if not wo_queue.empty(): + res=wo_queue.get() + results.append(res) + originrootindex=res[0] + logging.info('finished %s...' % self.sourceList[originrootindex]) + processfinished[originrootindex-startindex]=True + processes [originrootindex-startindex].join(5) + processrunning [originrootindex-startindex]=False + #immediately send the next + continue + + results = sorted(results, key=lambda x:x[0]) + for r in results: + thisidx=r[0] + if thisidx==lastindex+1: + logging.info('>>>> collected result %d of %d' % (thisidx+1,len(self.sourceList))) + __collectWriteInfo(r[1][0],r[1][1],r[1][2],outputDir) + lastindex=thisidx + + if nrunning==0: + alldone=True + continue + time.sleep(0.1) + + except: + os.system('rm -rf '+tempstoragepath) + raise + os.system('rm -rf '+tempstoragepath) + + def convertListOfRootFiles(self, inputfile, dataclass, outputDir, + takeweightersfrom='', means_only=False, + output_name='dataCollection.dc', + relpath=''): + + newmeans=True + if takemeansfrom: + self.readFromFile(takeweightersfrom) + newmeans=False + self.readSourceListFromFile(inputfile, relpath=relpath) + self.createDataFromRoot( + dataclass, outputDir, + newmeans, means_only = means_only, + dir_check= not self.batch_mode + ) + self.writeToFile(outputDir+'/'+output_name) + + def getAllLabels(self): + return self.__stackData(self.dataclass,'y') + + def getAllFeatures(self): + return self.__stackData(self.dataclass,'x') + + def getAllWeights(self): + return self.__stackData(self.dataclass,'w') + + + def getSamplePath(self,samplefile): + #for backward compatibility + if samplefile[0] == '/': + return samplefile + return self.dataDir+'/'+samplefile + + def __stackData(self, dataclass, selector): + td=dataclass + out=[] + firstcall=True + for sample in self.samples: + td.readIn(self.getSamplePath(sample)) + #make this generic + thislist=[] + if selector == 'x': + thislist=td.x + if selector == 'y': + thislist=td.y + if selector == 'w': + thislist=td.w + + if firstcall: + out=thislist + firstcall=False + else: + for i in range(0,len(thislist)): + if selector == 'w': + out[i] = np.append(out[i],thislist[i]) + else: + out[i] = np.vstack((out[i],thislist[i])) + + return out + + + def generator(self): + + gen = numpyGenerator() + gen.setFileList(self.samples) + gen.setBatchSize(self.__batchsize) + gen.readNTotal() #also a good check if all files are accessible + self.__nsamples = gen.getNTotal() + + + while(1): + + data = gen.getBatch(0)#in principle batch sizes can differ from batch to batch + xout = data[0] + yout = data[1] + wout = data[2] + + if gen.lastBatch(): # returns true if less than the previous batch size remains + gen.prepareNextEpoch() + + if len(wout)>0: + yield (xout,yout,wout) + else: + yield (xout,yout) + + + + + + + diff --git a/TrainData.py b/TrainData.py index 7455055..5fab701 100644 --- a/TrainData.py +++ b/TrainData.py @@ -72,7 +72,7 @@ def clear(self): self.yshapes=[] self.wshapes=[] - self.nsamples=None + self.sourcefile="" def skim(self, event=0): xs=[] @@ -86,65 +86,49 @@ def skim(self, event=0): for w in self.w: ws.append(w[event:event+1,...]) self.clear() - self.nsamples=1 self.x=xs self.y=ys self.w=ws + for s in self.xshapes: + s[0]=1 + for s in self.yshapes: + s[0]=1 + for s in self.wshapes: + s[0]=1 - # to be defined by user implementation - def definePredictionToRoot(self, prediction): - pass + def getNTotal(self): + if len(self.xshapes) == 0 or len(self.xshapes[0]) == 0: + return 0 + return self.xshapes[0][0] - def _getShapes(self, arrlist): - - outl=[] - for x in arrlist: - outl.append(x.shape) - shapes=[] - for s in outl: - _sl=[] - for i in range(len(s)): - if i: - _sl.append(s[i]) - s=(_sl) - if len(s)==0: - s.append(1) - shapes.append(s) - - def getFeatureShapes(self): - if not len(self.xshapes): - self.xshapes = _getShapes(x) - return self.xshapes + def getKerasFeatureShapes(self): + return [a.shape[1:] for a in self.xshapes] def getInputShapes(self): - print('TrainData:getInputShapes: Deprecated, use getFeatureShapes instead') - return getFeatureShapes() + print('TrainData:getInputShapes: Deprecated, use getKerasFeatureShapes instead') + return getKerasFeatureShapes() - def getTruthShapes(self): - if not len(self.yshapes): - self.yshapes = _getShapes(y) - return self.yshapes + def getKerasTruthShapes(self): + return [a.shape[1:] for a in self.yshapes] def writeToFile(self,filename): ctd.writeToFile(self.x,self.y,self.w,filename) - def readFromFile(self,fileprefix,shapesOnly=False): - self.x=[] - self.y=[] - self.w=[] - if shapesOnly: + def readFromFile(self,infile,shapesOnly=False): + ''' + For debugging or getting shapes. + Don't use this function for a generator, use the C++ Generator instead! + ''' + self.clear() + self.sourcefile=infile + + shapes = ctd.readShapesFromFile(infile) + self.xshapes = shapes[0] + self.yshapes = shapes[1] + self.wshapes = shapes[2] - ### needs rework - shapes = ctd.readShapesFromFile(fileprefix) - self.xshapes = shapes[0][1:] - self.yshapes = [] - if len(shapes[1]): - self.yshapes = shapes[1][1:] - self.wshapes = [] - if len(shapes[2]): - self.wshapes = shapes[2][1:] - - ### + ### + if shapesOnly: return l = ctd.readFromFile(fileprefix) self.x = l[0] @@ -157,15 +141,20 @@ def readIn(self,fileprefix,shapesOnly=False): self.readFromFile(fileprefix,shapesOnly) - def convertFromSourceFile(self, filename, weighterobjects): - pass - + + ################# functions to be defined by the user + def createWeighterObjects(self, allsourcefiles): ''' Will be called on the full list of source files once. Can be used to create weighter objects or similar that can - then be applied to each individual conversion + then be applied to each individual conversion. + Should return a dictionary ''' - return () + return {} + + def convertFromSourceFile(self, filename, weighterobjects): + pass + diff --git a/TrainData_compat.py b/TrainData_compat.py new file mode 100644 index 0000000..a5205ed --- /dev/null +++ b/TrainData_compat.py @@ -0,0 +1,718 @@ +''' +Created on 20 Feb 2017 + +@author: jkiesele + + +Old (pre 2.0) version for conversions + +''' + +from __future__ import print_function + +from Weighter import Weighter +from pdb import set_trace +import os +import time +import numpy +import logging +import tempfile +import copy +import shutil +import threading +import multiprocessing + +#threadingfileandmem_lock=threading.Lock() +#threadingfileandmem_lock.release() +#multiproc_fileandmem_lock=multiprocessing.Lock() + +def fileTimeOut(fileName, timeOut): + ''' + simple wait function in case the file system has a glitch. + waits until the dir, the file should be stored in/read from, is accessible + again, or the the timeout + ''' + filepath=os.path.dirname(fileName) + if len(filepath) < 1: + filepath = '.' + if os.path.isdir(filepath): + return + + counter=0 + print('file I/O problems... waiting for filesystem to become available for '+fileName) + while not os.path.isdir(filepath): + if counter > timeOut: + print('...file could not be opened within '+str(timeOut)+ ' seconds') + counter+=1 + time.sleep(1) + + +def _read_arrs_(arrwl,arrxl,arryl,doneVal,fileprefix,tdref=None,randomSeed=None): + import gc + gc.collect() + + import h5py + from sklearn.utils import shuffle + try: + idstrs=['w','x','y'] + h5f = h5py.File(fileprefix,'r') + alllists=[arrwl,arrxl,arryl] + for j in range(len(idstrs)): + fidstr=idstrs[j] + arl=alllists[j] + for i in range(len(arl)): + idstr=fidstr+str(i) + h5f[idstr].read_direct(arl[i]) + #shuffle each read-in, but each array with the same seed (keeps right asso) + if randomSeed: + arl[i]=shuffle(arl[i], random_state=randomSeed) + + doneVal.value=True + h5f.close() + del h5f + except Exception as d: + raise d + finally: + if tdref: + tdref.removeRamDiskFile() + + +class ShowProgress(object): + def __init__(self,nsteps,total): + self.nsteps=nsteps + self.total=total + self._stepvec=[] + for i in range(nsteps): + self._stepvec.append(float(i+1)*float(total)/float(nsteps)) + + self._counter=0 + + def show(self,index): + if index==0: + logging.info('0%') + if index>self._stepvec[self._counter]: + logging.info(str(int(float(index)/float(self.total)*100))+'%') + self._counter=self._counter+1 + + def reset(self): + self._counter=0 + + + + +class TrainData(object): + ''' + Base class for batch-wise training of the DNN + ''' + + + + + def __init__(self): + ''' + Constructor + + ''' + + self.treename="" + self.undefTruth=[] + self.referenceclass='' + self.truthclasses=[] + self.allbranchestoberead=[] + + self.weightbranchX='' + self.weightbranchY='' + self.weight_binX = numpy.array([-1e12, 1e12],dtype=float) + self.weight_binY = numpy.array([-1e12, 1e12],dtype=float) + + self.reducedtruthclasses=[] + self.regressiontargetclasses=[] + + self.flatbranches=[] + self.branches=[] + self.branchcutoffs=[] + + self.readthread=None + self.readdone=None + + self.remove=True + self.weight=False + + self.clear() + + self.reduceTruth(None) + + def __del__(self): + self.readIn_abort() + self.clear() + + + def clear(self): + self.samplename='' + self.readIn_abort() + self.readthread=None + self.readdone=None + if hasattr(self, 'x'): + del self.x + del self.y + del self.w + if hasattr(self, 'w_list'): + del self.w_list + del self.x_list + del self.y_list + + self.x=[numpy.array([])] + self.y=[numpy.array([])] + self.w=[numpy.array([])] + + self.nsamples=None + + def skim(self, event=0): + xs=[] + ys=[] + ws=[] + + for x in self.x: + xs.append(x[event:event+1,...]) + for y in self.y: + ys.append(y[event:event+1,...]) + for w in self.w: + ws.append(w[event:event+1,...]) + self.clear() + self.nsamples=1 + self.x=xs + self.y=ys + self.w=ws + + def defineCustomPredictionLabels(self, labels): + self.customlabels=labels + + def getInputShapes(self): + ''' + returns a list for each input shape. In most cases only one entry + ''' + outl=[] + for x in self.x: + outl.append(x.shape) + shapes=[] + for s in outl: + _sl=[] + for i in range(len(s)): + if i: + _sl.append(s[i]) + s=(_sl) + if len(s)==0: + s.append(1) + shapes.append(s) + + if hasattr(self,'generatePerBatch') and self.generatePerBatch: + shapes.append([len(self.generatePerBatch)]) + + return shapes + + def getTruthShapes(self): + outl=[len(self.getUsedTruth())] + return outl + + + def getNRegressionTargets(self): + if not self.regressiontargetclasses: + return 0 + return len(self.regressiontargetclasses) + + def getNClassificationTargets(self): + return len(self.getUsedTruth()) + + def addBranches(self, blist, cutoff=1): + self.branches.append(blist) + self.registerBranches(blist) + self.branchcutoffs.append(cutoff) + + def registerBranches(self,blist): + self.allbranchestoberead.extend(blist) + + def getUsedTruth(self): + if len(self.reducedtruthclasses) > 0: + return self.reducedtruthclasses + else: + return self.truthclasses + + + def reduceTruth(self, tuple_in=None): + self.reducedtruthclasses=self.truthclasses + if tuple_in is not None: + return numpy.array(tuple_in.tolist()) + + def writeOut(self,fileprefix): + + import h5py + + #this is a workaround because hdf5 files written on eos are unreadable... + final_output_file=fileprefix + + # with h5py >= 2.9 you can directly write to an open tempfile, but for now + # we'd need to use tempfile as a safe name generator + #with tempfile.NamedTemporaryFile(suffix='.meta', delete=False) as t: + # h5f = h5py.File(t) + + t = tempfile.NamedTemporaryFile(suffix='.meta', delete=False) + t.close() + + h5f = h5py.File(t.name, 'w') + + # try "lzf", too, faster, but less compression + def _writeoutListinfo(arrlist,fidstr,h5F): + arr=numpy.array([len(arrlist)]) + h5F.create_dataset(fidstr+'_listlength',data=arr) + for i in range(len(arrlist)): + idstr=fidstr+str(i) + h5F.create_dataset(idstr+'_shape',data=arrlist[i].shape) + + def _writeoutArrays(arrlist,fidstr,h5F): + for i in range(len(arrlist)): + idstr=fidstr+str(i) + arr=arrlist[i] + from DeepJetCore.compiled.c_readArrThreaded import writeArray + if arr.dtype!='float32': + arr=arr.astype('float32') + writeArray(arr.ctypes.data,final_output_file[:-4]+fidstr+'.'+str(i),list(arr.shape)) + + arr=numpy.array([self.nsamples],dtype='int') + h5f.create_dataset('n', data=arr) + + _writeoutListinfo(self.w,'w',h5f) + _writeoutListinfo(self.x,'x',h5f) + _writeoutListinfo(self.y,'y',h5f) + + _writeoutArrays(self.w,'w',h5f) + _writeoutArrays(self.x,'x',h5f) + _writeoutArrays(self.y,'y',h5f) + + h5f.close() + + shutil.copyfile(t.name, final_output_file) + + def __createArr(self,shapeinfo): + return numpy.ascontiguousarray(numpy.zeros(shape=shapeinfo), dtype=numpy.float32) + + def removeRamDiskFile(self): + if hasattr(self, 'ramdiskfile'): + try: + if self.ramdiskfile and os.path.exists(self.ramdiskfile): + if "meta" in self.ramdiskfile[-4:]: + os.system('rm -f '+self.ramdiskfile[:-4]+"*") + else: + os.remove(self.ramdiskfile) + except OSError: + pass + self.ramdiskfile=None + + def readIn_async(self,fileprefix,read_async=True,shapesOnly=False,ramdiskpath='',randomseed=None): + + if self.readthread and read_async: + print('\nTrainData::readIn_async: started new read before old was finished. Intended? Waiting for first to finish...\n') + self.readIn_join() + + #print('read') + + import h5py + + #print('\ninit async read\n') + + fileTimeOut(fileprefix,120) + #print('\nfile access ok\n') + self.samplename=fileprefix + + + + def _readListInfo_(idstr): + sharedlist=[] + shapeinfos=[] + wlistlength=self.h5f[idstr+'_listlength'][0] + #print(idstr,'list length',wlistlength) + for i in range(wlistlength): + sharedlist.append(numpy.array([])) + iidstr=idstr+str(i) + shapeinfo=numpy.array(self.h5f[iidstr+'_shape']) + shapeinfos.append(shapeinfo) + return sharedlist, shapeinfos + + + + try: + self.h5f = h5py.File(fileprefix,'r') + except: + raise IOError('File %s could not be opened properly, it may be corrupted' % fileprefix) + self.nsamples=self.h5f['n'] + self.nsamples=self.nsamples[0] + if True or not hasattr(self, 'w_shapes'): + self.w_list,self.w_shapes=_readListInfo_('w') + self.x_list,self.x_shapes=_readListInfo_('x') + self.y_list,self.y_shapes=_readListInfo_('y') + else: + print('\nshape known\n') + self.w_list,_=_readListInfo_('w') + self.x_list,_=_readListInfo_('x') + self.y_list,_=_readListInfo_('y') + + self.h5f.close() + del self.h5f + self.h5f=None + if shapesOnly: + return + + readfile=fileprefix + + isRamDisk=len(ramdiskpath)>0 + if isRamDisk: + import uuid + unique_filename='' + + unique_filename = ramdiskpath+'/'+str(uuid.uuid4())+'.z' + if "meta" in readfile[-4:]: + filebase=readfile[:-4] + unique_filename = ramdiskpath+'/'+str(uuid.uuid4()) + shutil.copyfile(filebase+'meta',unique_filename+'.meta') + for i in range(len(self.w_list)): + shutil.copyfile(filebase+'w.'+str(i),unique_filename+'.w.'+str(i)) + for i in range(len(self.x_list)): + shutil.copyfile(filebase+'x.'+str(i),unique_filename+'.x.'+str(i)) + for i in range(len(self.y_list)): + shutil.copyfile(filebase+'y.'+str(i),unique_filename+'.y.'+str(i)) + unique_filename+='.meta' + + else: + unique_filename = ramdiskpath+'/'+str(uuid.uuid4())+'.z' + shutil.copyfile(fileprefix, unique_filename) + readfile=unique_filename + self.ramdiskfile=readfile + + #create shared mem in sync mode + for i in range(len(self.w_list)): + self.w_list[i]=self.__createArr(self.w_shapes[i]) + + for i in range(len(self.x_list)): + self.x_list[i]=self.__createArr(self.x_shapes[i]) + + for i in range(len(self.y_list)): + self.y_list[i]=self.__createArr(self.y_shapes[i]) + + + if read_async: + if "meta" in readfile[-4:]: + #new format + from DeepJetCore.compiled.c_readArrThreaded import startReading + self.readthreadids=[] + filebase=readfile[:-4] + for i in range(len(self.w_list)): + self.readthreadids.append(startReading(self.w_list[i].ctypes.data, + filebase+'w.'+str(i), + fileprefix, + list(self.w_list[i].shape), + isRamDisk)) + for i in range(len(self.x_list)): + self.readthreadids.append(startReading(self.x_list[i].ctypes.data, + filebase+'x.'+str(i), + fileprefix, + list(self.x_list[i].shape), + isRamDisk)) + for i in range(len(self.y_list)): + self.readthreadids.append(startReading(self.y_list[i].ctypes.data, + filebase+'y.'+str(i), + fileprefix, + list(self.y_list[i].shape), + isRamDisk)) + + else: + if "meta" in readfile[-4:]: + from DeepJetCore.compiled.c_readArrThreaded import readBlocking + filebase=readfile[:-4] + self.readthreadids=[] + for i in range(len(self.w_list)): + (readBlocking(self.w_list[i].ctypes.data, + filebase+'w.'+str(i), + fileprefix, + list(self.w_list[i].shape), + isRamDisk)) + for i in range(len(self.x_list)): + (readBlocking(self.x_list[i].ctypes.data, + filebase+'x.'+str(i), + fileprefix, + list(self.x_list[i].shape), + isRamDisk)) + for i in range(len(self.y_list)): + (readBlocking(self.y_list[i].ctypes.data, + filebase+'y.'+str(i), + fileprefix, + list(self.y_list[i].shape), + isRamDisk)) + + + + def readIn_abort(self): + self.removeRamDiskFile() + if not self.readthread: + return + self.readthread.terminate() + self.readthread=None + self.readdone=None + + def readIn_join(self,wasasync=True,waitforStart=True): + + try: + if not not hasattr(self, 'readthreadids') and not waitforStart and not self.readthread and wasasync: + print('\nreadIn_join:read never started\n') + + if waitforStart: + while (not hasattr(self, 'readthreadids')) and not self.readthread: + time.sleep(0.1) + if hasattr(self, 'readthreadids'): + while not self.readthreadids: + time.sleep(0.1) + + counter=0 + + if hasattr(self, 'readthreadids') and self.readthreadids: + from DeepJetCore.compiled.c_readArrThreaded import isDone + doneids=[] + while True: + for id in self.readthreadids: + if id in doneids: continue + if isDone(id): + doneids.append(id) + if len(self.readthreadids) == len(doneids): + break + time.sleep(0.1) + counter+=1 + if counter>3000: #read failed. do synchronous read, safety option if threads died + print('\nfalling back to sync read\n') + self.readthread.terminate() + self.readthread=None + self.readIn(self.samplename) + return + + + + #move away from shared memory + #this costs performance but seems necessary + + self.w=copy.deepcopy(self.w_list) + self.x=copy.deepcopy(self.x_list) + self.y=copy.deepcopy(self.y_list) + + del self.w_list + del self.x_list + del self.y_list + #in case of some errors during read-in + + except Exception as d: + raise d + finally: + self.removeRamDiskFile() + + #check if this is really neccessary + def reshape_fast(arr,shapeinfo): + if len(shapeinfo)<2: + shapeinfo=numpy.array([arr.shape[0],1]) + arr=arr.reshape(shapeinfo) + return arr + + + for i in range(len(self.w)): + self.w[i]=reshape_fast(self.w[i],self.w_shapes[i]) + for i in range(len(self.x)): + self.x[i]=reshape_fast(self.x[i],self.x_shapes[i]) + for i in range(len(self.y)): + self.y[i]=reshape_fast(self.y[i],self.y_shapes[i]) + + self.w_list=None + self.x_list=None + self.y_list=None + if wasasync and self.readthread: + self.readthread.terminate() + self.readthread=None + self.readdone=None + + def readIn(self,fileprefix,shapesOnly=False): + self.readIn_async(fileprefix,False,shapesOnly) + direct=True + if direct: + self.w=self.w_list + self.x=self.x_list + self.y=self.y_list + else: + self.w=copy.deepcopy(self.w_list) + del self.w_list + self.x=copy.deepcopy(self.x_list) + del self.x_list + self.y=copy.deepcopy(self.y_list) + del self.y_list + + def reshape_fast(arr,shapeinfo): + if len(shapeinfo)<2: + shapeinfo=numpy.array([arr.shape[0],1]) + if shapesOnly: + arr=numpy.zeros(shape=shapeinfo) + else: + arr=arr.reshape(shapeinfo) + return arr + + + + + for i in range(len(self.w)): + self.w[i]=reshape_fast(self.w[i],self.w_shapes[i]) + for i in range(len(self.x)): + self.x[i]=reshape_fast(self.x[i],self.x_shapes[i]) + for i in range(len(self.y)): + self.y[i]=reshape_fast(self.y[i],self.y_shapes[i]) + + self.w_list=None + self.x_list=None + self.y_list=None + self.readthread=None + + + def readTreeFromRootToTuple(self, filenames, limit=None, branches=None): + ''' + To be used to get the initial tupel for further processing in inherting classes + Makes sure the number of entries is properly set + + can also read a list of files (e.g. to produce weights/removes from larger statistics + (not fully tested, yet) + ''' + if branches==None: + branches=self.allbranchestoberead + + if branches is None or len(branches) == 0: + return numpy.array([],dtype='float32') + + #print(branches) + #remove duplicates + usebranches=list(set(branches)) + tmpbb=[] + for b in usebranches: + if len(b): + tmpbb.append(b) + usebranches=tmpbb + + import ROOT + from root_numpy import tree2array, root2array + if isinstance(filenames, list): + for f in filenames: + fileTimeOut(f,120) + print('add files') + nparray = root2array( + filenames, + treename = self.treename, + stop = limit, + branches = usebranches + ) + print('done add files') + return nparray + print('add files') + else: + fileTimeOut(filenames,120) #give eos a minute to recover + rfile = ROOT.TFile(filenames) + tree = rfile.Get(self.treename) + if not self.nsamples: + self.nsamples=tree.GetEntries() + nparray = tree2array(tree, stop=limit, branches=usebranches) + return nparray + + def read_truthclasses(self,filename): + npy_array = self.readTreeFromRootToTuple(filename) + arl=[] + for c in self.truthclasses: + a = numpy.asarray(npy_array[c]) + a = a.reshape((a.shape[0],1)) + arl.append(a) + + return numpy.concatenate(arl,axis=-1) + + def make_means(self, nparray): + from preprocessing import meanNormProd + return meanNormProd(nparray) + + def produceMeansFromRootFile(self,filename, limit=500000): + from preprocessing import meanNormProd + nparray = self.readTreeFromRootToTuple(filename, limit=limit) + means = numpy.array([],dtype='float32') + if len(nparray): + means = self.make_means(nparray) + + del nparray + return means + + #overload if necessary + def make_empty_weighter(self): + weighter = Weighter() + weighter.undefTruth = self.undefTruth + + if self.remove or self.weight: + weighter.setBinningAndClasses( + [self.weight_binX,self.weight_binY], + self.weightbranchX,self.weightbranchY, + self.truthclasses + ) + return weighter + + + def produceBinWeighter(self,filenames): + weighter = self.make_empty_weighter() + branches = [self.weightbranchX,self.weightbranchY] + branches.extend(self.truthclasses) + showprog=ShowProgress(5,len(filenames)) + counter=0 + if self.remove or self.weight: + for fname in filenames: + fileTimeOut(fname, 120) + nparray = self.readTreeFromRootToTuple(fname, branches=branches) + weighter.addDistributions(nparray) + #del nparray + showprog.show(counter) + counter=counter+1 + weighter.createRemoveProbabilitiesAndWeights(self.referenceclass) + return weighter + + + + + def _normalize_input_(self, weighter, npy_array, oversample=1): + weights = None + if self.weight: + weights=weighter.getJetWeights(npy_array) + self.w = [weights for _ in self.y] + elif self.remove: + x_in=self.x + y_in=self.y + for i in range(oversample): + notremoves=weighter.createNotRemoveIndices(npy_array) + if self.undefTruth: + undef=npy_array[self.undefTruth].sum(axis=1) + notremoves-=undef + print(' to created remove indices', i) + weights=notremoves + + print('remove', i) + if not i: + self.x = [x[notremoves > 0] for x in x_in] + self.y = [y[notremoves > 0] for y in y_in] + else: + self.x = [self.x[i].concatenate(x_in[i][notremoves > 0]) for i in range(len(self.x))] + self.y = [self.y[i].concatenate(y_in[i][notremoves > 0]) for i in range(len(self.y))] + + self.w = [numpy.zeros(self.x[0].shape)+1 for _ in self.y] + + + newnsamp=self.x[0].shape[0] + print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') + self.nsamples = newnsamp + else: + print('neither remove nor weight') + weights=numpy.empty(self.nsamples) + weights.fill(1.) + self.w = [weights for _ in self.y] + + + diff --git a/bin/convertPre2.0TDtoTD.py b/bin/convertPre2.0TDtoTD.py new file mode 100755 index 0000000..dced493 --- /dev/null +++ b/bin/convertPre2.0TDtoTD.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python +# encoding: utf-8 +''' + +@author: jkiesele + +''' + +from argparse import ArgumentParser + +parser = ArgumentParser('simple program to convert root tuples to traindata format') +parser.add_argument("infile", help="input \"meta\" file") +# process options +args=parser.parse_args() +infile=args.infile + +if not ".meta" in infile: + print('wrong input file '+infile) + exit() + +from DeepJetCore.TrainData_compat import TrainData +td = TrainData() +td.readIn(infile) +x = td.x +y = td.y +w = td.w +outfile = infile[:-5] +print(outfile) + +from DeepJetCore.TrainData import TrainData + +tdnew = TrainData() + +tdnew.x = x +tdnew.y = y +tdnew.w = w +tdnew.writeToFile(outfile+".djctd") diff --git a/compiled/interface/helper.h b/compiled/interface/helper.h index ce4a03e..45e65f1 100644 --- a/compiled/interface/helper.h +++ b/compiled/interface/helper.h @@ -27,7 +27,9 @@ float deltaPhi(const float& phi1, const float& phi2); void checkTObject(const TObject * o, TString msg); - +/** + * transfers ownership of the data to numpy array - no copy. + */ boost::python::numpy::ndarray simpleArrayToNumpy( djc::simpleArray& ifarr); #endif /* DEEPJET_MODULES_INTERFACE_HELPER_H_ */ diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index facf30d..7826b24 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -66,8 +66,8 @@ class simpleArray { // row splits are indicated by a merged dimension with negative sign // always merge to previous dimension // e.g. A x B x C x D, where B is ragged would get shape - // -A*B x C x D - // Only one ragged dimension is supported! + // A x -A*B x C x D + // Only one ragged dimension is supported, first dimension MUST NOT be ragged // Still to be implemented. All read/write functions already include this data // // const std::vector& rowsplits() const { @@ -254,10 +254,7 @@ template size_t simpleArray::getFirstDimension()const{ if(!size_ || !shape_.size()) return 0; - if(shape_.at(0)>0) - return shape_.at(0); - else - return rowsplits_.size(); + return shape_.at(0); } template @@ -417,8 +414,13 @@ void simpleArray::copyFrom(const simpleArray& a) { template int simpleArray::sizeFromShape(std::vector shape) const { int size = 1; - for (const auto s : shape) + size_t previous=1; + for (const auto s : shape){ size *= std::abs(s); + if(s<0) + size/=previous; + previous=s; + } return size; } template @@ -438,6 +440,8 @@ void simpleArray::checkSize(size_t idx)const{ } +//no row split support here!! + template T & simpleArray::at(size_t i){ diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index e5afb7d..d493b35 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -296,10 +296,6 @@ void trainData::writeNested(const std::vector >& v, FILE *& of if(nsize==0) continue; io::writeToFile(&(v.at(i).at(0)),ofile,nsize); - - std::cout << "vec " << i <::readNested(std::vector >& v, FILE *& ifile)con size_t size = 0; io::readFromFile(&size, ifile); v.resize(size,std::vector(0)); - std::cout << "tot " << size << std::endl; for(size_t i=0;i& files){ orig_infiles_=files; shuffled_infiles_=orig_infiles_; + readNTotal(); } void setBatchSize(size_t nelements){ batchsize_=nelements; nbatches_ = ntotal_/batchsize_; } - void setNTotal(size_t n){ - ntotal_=n; - nbatches_ = ntotal_/batchsize_; - } + size_t getNTotal()const{return ntotal_;} void setFileTimeout(size_t seconds){ filetimeout_=seconds; @@ -52,11 +50,10 @@ class trainDataGenerator{ } bool lastBatch()const{ - return nprocessed_ >= nbatches_; + return nsamplesprocessed_ >= ntotal_ - lastbatchsize_; } - void beginEpoch(); - void endEpoch(); + void prepareNextEpoch(); /** * gets Batch. If batchsize is specified, it is up to the user @@ -70,6 +67,7 @@ class trainDataGenerator{ private: void shuffleFilelist(); void readBuffer(); + void readNTotal(); std::vector orig_infiles_; std::vector shuffled_infiles_; int randomcount_; @@ -81,7 +79,8 @@ class trainDataGenerator{ size_t filecount_; size_t nbatches_; size_t ntotal_; - size_t nprocessed_; + size_t nsamplesprocessed_; + size_t lastbatchsize_; size_t filetimeout_; }; @@ -91,7 +90,7 @@ bool trainDataGenerator::debug = false; template trainDataGenerator::trainDataGenerator() : randomcount_(1), batchsize_(2), readthread_(0), filecount_(0), nbatches_( - 0), ntotal_(0), nprocessed_(0),filetimeout_(10) { + 0), ntotal_(0), nsamplesprocessed_(0),filetimeout_(10) { } template @@ -127,19 +126,24 @@ void trainDataGenerator::readBuffer(){ } - - template -void trainDataGenerator::beginEpoch(){ - if(!readthread_){//no pre-read going on - nprocessed_=0; - filecount_=0; - buffer_store.clear(); - buffer_read.clear(); +void trainDataGenerator::readNTotal(){ + ntotal_=0; + for(const auto& f: orig_infiles_){ + trainData td; + std::vector > fs, ts, ws; + td.readShapesFromFile(f,fs, ts, ws); + //first dimension is always Nelements. At least features are filled + if(fs.size()<1 || fs.at(0).size()<1) + throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object"); + ntotal_ += fs.at(0).at(0); } + nbatches_ = ntotal_/batchsize_; } + + template -void trainDataGenerator::endEpoch(){ +void trainDataGenerator::prepareNextEpoch(){ //prepare for next epoch, pre-read first file if(readthread_){ @@ -148,10 +152,10 @@ void trainDataGenerator::endEpoch(){ } buffer_store.clear(); buffer_read.clear(); + filecount_=0; + nsamplesprocessed_=0; shuffleFilelist(); - filecount_=0; - nprocessed_=0; nextread_ = shuffled_infiles_.at(filecount_); readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); } @@ -163,7 +167,7 @@ trainData trainDataGenerator::getBatch(size_t batchsize){ if(!batchsize) batchsize=batchsize_; - + lastbatchsize_=batchsize; while(bufferelements trainDataGenerator::getBatch(size_t batchsize){ bufferelements = buffer_store.nElements(); if(debug) - std::cout << "batch " << nprocessed_ << " file " << filecount_ << " in buffer " << bufferelements + std::cout << "nprocessed " << nsamplesprocessed_ << " file " << filecount_ << " in buffer " << bufferelements << " file read " << nextread_ << " totalfiles " << shuffled_infiles_.size() << std::endl; - if(nprocessed_ + bufferelements < ntotal_){ + if(nsamplesprocessed_ + bufferelements < ntotal_){ if (filecount_ >= shuffled_infiles_.size()) throw std::runtime_error( "trainDataGenerator::getBatch: more batches requested than data in the sample"); @@ -189,7 +193,7 @@ trainData trainDataGenerator::getBatch(size_t batchsize){ readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); } } - nprocessed_+=batchsize_; + nsamplesprocessed_+=batchsize; return buffer_store.split(batchsize); } diff --git a/compiled/to_bin/testpipeline.cpp b/compiled/to_bin/testpipeline.cpp index f0b430f..33445d0 100644 --- a/compiled/to_bin/testpipeline.cpp +++ b/compiled/to_bin/testpipeline.cpp @@ -28,30 +28,19 @@ int main(){ if(write){ trainData bigtd; - auto fidx = bigtd.addFeatureArray({100, 5*4000, 10}); + auto fidx = bigtd.addFeatureArray({1000, 4000, 10}); for(size_t i=0;i filenames = {"bigfile1.djctd", "bigfile2.djctd", "bigfile3.djctd","bigfile4.djctd", @@ -84,26 +72,28 @@ int main(){ size_t batchsize=100; + std::cout << "set files" < farr({5,2,1}); for(float i=0;i Date: Fri, 8 Nov 2019 15:09:00 +0000 Subject: [PATCH 133/437] training seems to work now --- DJCLosses.py | 6 +- DataCollection.py | 73 ++- DataCollection_compat.py | 788 ++++++++++++++++++++---- TrainData.py | 8 +- bin/convertDCtoNumpy.py | 3 - bin/convertPre2.0DCtoDC.py | 75 +++ bin/convertPre2.0TDtoTD.py | 2 +- compiled/interface/trainDataGenerator.h | 19 +- compiled/src/c_dataGenerator.C | 81 +++ compiled/src/c_readArrThreaded.C | 335 ---------- compiled/src/c_storeTensor.C | 257 -------- training/training_base.py | 63 +- 12 files changed, 882 insertions(+), 828 deletions(-) create mode 100755 bin/convertPre2.0DCtoDC.py create mode 100644 compiled/src/c_dataGenerator.C delete mode 100644 compiled/src/c_readArrThreaded.C delete mode 100644 compiled/src/c_storeTensor.C diff --git a/DJCLosses.py b/DJCLosses.py index 6de815d..97e5c12 100644 --- a/DJCLosses.py +++ b/DJCLosses.py @@ -3,7 +3,7 @@ import tensorflow as tf -def null_loss(truth, pred): - return tf.reduce_mean(truth*0.)+tf.reduce_mean(pred*0.) +def dummy_loss(truth, pred): + return tf.reduce_mean(truth)+tf.reduce_mean(pred) -djc_global_loss_list['null_loss']=null_loss \ No newline at end of file +djc_global_loss_list['dummy_loss']=dummy_loss \ No newline at end of file diff --git a/DataCollection.py b/DataCollection.py index a0d3c62..c759a4f 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -5,13 +5,16 @@ ''' -''' -So far self.nsamples might be not useful -also, _readNTotal might not be needed. -Check at a later stage -''' - +from DeepJetCore.TrainData import TrainData from DeepJetCore.compiled.c_dataGenerator import numpyGenerator +import tempfile +import pickle +import shutil +import os +import keras + + + class DataCollection(object): ''' @@ -82,8 +85,8 @@ def _readNTotal(self): if not len(self.samples): return 0 gen = numpyGenerator() - gen.setFileList(self.samples) - return gen.readNTotal() + gen.setFileList([self.dataDir+"/"+s for s in self.samples]) + return gen.getNTotal() def removeLast(self): @@ -165,7 +168,7 @@ def writeToFile(self,filename): pickle.dump(self.samples, fd,protocol=0 ) pickle.dump(self.sourceList, fd,protocol=0 ) pickle.dump(self.dataclass, fd,protocol=0 ) - pickle.dump(self.self.weighterobjects, fd, protocol=0) + pickle.dump(self.weighterobjects, fd, protocol=0) shutil.move(fd.name, filename) @@ -525,34 +528,30 @@ def __stackData(self, dataclass, selector): return out + def prepareGenerator(self): - def generator(self): - - gen = numpyGenerator() - gen.setFileList(self.samples) - gen.setBatchSize(self.__batchsize) - gen.readNTotal() #also a good check if all files are accessible - self.__nsamples = gen.getNTotal() - + self.gen = numpyGenerator() + self.gen.setFileList([self.dataDir+ "/" + s for s in self.samples]) + self.gen.setBatchSize(self.__batchsize) + def generator(self): while(1): - - data = gen.getBatch(0)#in principle batch sizes can differ from batch to batch - xout = data[0] - yout = data[1] - wout = data[2] - - if gen.lastBatch(): # returns true if less than the previous batch size remains - gen.prepareNextEpoch() - - if len(wout)>0: - yield (xout,yout,wout) - else: - yield (xout,yout) - - - - - - - + try: + data = self.gen.getBatch(0)#in principle batch sizes can differ from batch to batch + xout = data[0] + yout = data[1] + wout = data[2] + + if self.gen.lastBatch(): # returns true if less than the previous batch size remains + self.gen.prepareNextEpoch() + print('DataCollection.generator: new epoch (for monitoring right now...)') + + if len(wout)>0: + yield (xout,yout,wout) + else: + yield (xout,yout) + except BaseException as e: + del gen + raise e + + \ No newline at end of file diff --git a/DataCollection_compat.py b/DataCollection_compat.py index a0d3c62..03e9c69 100644 --- a/DataCollection_compat.py +++ b/DataCollection_compat.py @@ -3,38 +3,86 @@ @author: jkiesele ''' +#from tensorflow.contrib.labeled_tensor import batch +#from builtins import list +from __future__ import print_function +import os +import copy +import pickle +import time +import tempfile +import shutil +from stopwatch import stopwatch +import numpy as np +from Weighter import Weighter +from TrainData import TrainData, fileTimeOut +#for convenience +import logging +from pdb import set_trace -''' -So far self.nsamples might be not useful -also, _readNTotal might not be needed. -Check at a later stage -''' +usenewformat=True + +logger = logging.getLogger(__name__) -from DeepJetCore.compiled.c_dataGenerator import numpyGenerator +# super not-generic without safety belts +#needs some revision +class BatchRandomInputGenerator(object): + def __init__(self, ranges, batchsize): + self.ranges=ranges + self.batchsize=batchsize + + def generateBatch(self): + randoms=[] + for i in range(len(self.ranges)): + randoms.append(np.full((1,self.batchsize),np.random.uniform(self.ranges[i][0], self.ranges[i][1], size=1)[0])) + + nparr=np.dstack((randoms)) + return nparr.reshape(nparr.shape[1],nparr.shape[2]) class DataCollection(object): ''' classdocs ''' + + def __init__(self, infile = None, nprocs = -1): ''' Constructor ''' self.clear() + self.nprocs = nprocs + self.meansnormslimit=500000 if infile: self.readFromFile(infile) + #check for consistency if not len(self.samples): raise Exception("no valid datacollection found in "+infile) - - self.weighterobjects={} + + # Running data conversion etc. on a batch farm + self.batch_mode = False + self.no_copy_on_convert = False def clear(self): self.samples=[] - self.sourceList=[] + self.sampleentries=[] + self.originRoots=[] + self.nsamples=0 self.dataDir="" - self.dataclass=TrainData() - self.__nsamples = 0 + self.useweights=True + self.__batchsize=1 + self.filesPreRead=2 + self.isTrain=True + self.dataclass=TrainData() #for future implementations + self.weighter=Weighter() + self.weightsfraction=0.05 + self.maxConvertThreads=2 + self.maxFilesOpen=2 + self.means=None + self.classweights={} + + def __len__(self): + return self.nsamples def __iadd__(self, other): 'A += B' @@ -45,14 +93,32 @@ def _extend_(a, b, name): _extend_(self, other, 'samples') if len(set(self.samples)) != len(self.samples): raise ValueError('The two DataCollections being summed contain the same files!') - _extend_(self, other, 'sourceList') + _extend_(self, other, 'sampleentries') + _extend_(self, other, 'originRoots') + self.nsamples += other.nsamples if self.dataDir != other.dataDir: raise ValueError('The two DataCollections have different data directories, still to be implemented!') + self.useweights = self.useweights and self.useweights + self.filesPreRead = min(self.filesPreRead, other.filesPreRead) + self.isTrain = self.isTrain and other.isTrain #arbitrary choice, could also raise exception if type(self.dataclass) != type(other.dataclass): raise ValueError( 'The two DataCollections were made with a' ' different data class type! (%s, and %s)' % (type(self.dataclass), type(other.dataclass)) ) + if self.weighter != other.weighter: + raise ValueError( + 'The two DataCollections have different weights' + ) + if self.weightsfraction != other.weightsfraction: + raise ValueError('The two DataCollections have different weight fractions') + self.maxConvertThreads = min(self.maxConvertThreads, other.maxConvertThreads) + self.maxFilesOpen = min(self.maxFilesOpen, other.maxFilesOpen) + if not all(self.means == other.means): + raise ValueError( + 'The two DataCollections head different means' + ) + self.classweights.update(other.classweights) return self def __add__(self, other): @@ -72,57 +138,108 @@ def __radd__(self, other): else: raise ValueError("I don't know how to add DataCollection and %s" % type(other)) - def _readShapesIfNeeded(self): - if len(self.samples)<1: - return - if not len(self.dataclass.xshapes): - self.dataclass.readFromFile(self.getSamplePath(self.samples[0]),shapesOnly=True) + def removeLast(self): + self.samples.pop() + self.nsamples-=self.sampleentries[-1] + self.sampleentries.pop() + self.originRoots.pop() + - def _readNTotal(self): + def getClassWeights(self): + if not len(self.classweights): + self.__computeClassWeights(self.dataclass.getUsedTruth()) + return self.classweights + + def __computeClassWeights(self,truthclassesarray): if not len(self.samples): - return 0 - gen = numpyGenerator() - gen.setFileList(self.samples) - return gen.readNTotal() + raise Exception("DataCollection:computeClassWeights: no sample files associated") + td=copy.deepcopy(self.dataclass) + td.readIn(self.getSamplePath(self.samples[0])) + arr=td.y[0] + average=0 + allist=[] + for i in range(arr.shape[1]): + entries=float((arr[:,i]>0).sum()) + average=average+entries + allist.append(entries) + outdict={} + average=average/float((arr.shape[1])) + for i in range(len(allist)): + l=average/allist[i] + outdict[i]=l + self.classweights=outdict - def removeLast(self): - self.samples.pop() - self.sourceList.pop() + + def prependToSampleFiles(self, path_to_prepend): + newsamples=[] + for s in self.samples: + newsamples.append(path_to_prepend+s) + self.samples=newsamples + + def defineCustomPredictionLabels(self, labels): + self.dataclass.defineCustomPredictionLabels(labels) + + def getCustomPredictionLabels(self): + if hasattr(self.dataclass, 'customlabels'): + return self.dataclass.customlabels + return None - def getKerasFeatureShapes(self): + def getInputShapes(self): + ''' + gets the input shapes from the data class description + ''' if len(self.samples)<1: return [] - self._readShapesIfNeeded() - return self.dataclass.getKerasFeatureShapes() + self.dataclass.filelock=None + td=copy.deepcopy(self.dataclass) + td.readIn(self.getSamplePath(self.samples[0]),shapesOnly=True) + shapes=td.getInputShapes() + td.clear() + return shapes - def getInputShapes(self): - print('DataCollection:getInputShapes deprecated, use getKerasFeatureShapes ') - return self.getKerasFeatureShapes() + def getTruthShape(self): + return self.dataclass.getTruthShapes() + + def getNRegressionTargets(self): + return (self.dataclass.getNRegressionTargets()) - def getKerasTruthShape(self): - if len(self.samples)<1: - return [] - self._readShapesIfNeeded() - return self.dataclass.getKerasTruthShapes() + def getNClassificationTargets(self): + return (self.dataclass.getNClassificationTargets()) + def getUsedTruth(self): + return self.dataclass.getUsedTruth() + def setBatchSize(self,bsize): + if bsize > self.nsamples: + raise Exception('Batch size must not be bigger than total sample size') self.__batchsize=bsize def getBatchSize(self): return self.__batchsize - + + @property + def batch_size(self): + return self.__batchsize + def getSamplesPerEpoch(self): - return self.getNBatchesPerEpoch()*self.__batchsize + #modify by batch split + count=self.getNBatchesPerEpoch() + if count != 1: + return count*self.__batchsize #final + else: + return self.nsamples + + def getAvEntriesPerFile(self): + return float(self.nsamples)/float(len(self.samples)) + def getNBatchesPerEpoch(self): if self.__batchsize <= 1: return 1 count=0 - if self.__nsamples == 0: - self.__nsamples = self._readNTotal() - while (count+1)*self.__batchsize <= self.__nsamples: + while (count+1)*self.__batchsize <= self.nsamples: count+=1 return count @@ -133,29 +250,40 @@ def validate(self, remove=True, skip_first=0): Also removes the original link to the root file, so recover cannot be run (this might be changed in future implementations) ''' - validsourcelist = len(self.samples) == len(self.sourceList) for i in range(len(self.samples)): if i < skip_first: continue if i >= len(self.samples): break td=copy.deepcopy(self.dataclass) fullpath=self.getSamplePath(self.samples[i]) - print('reading '+fullpath, str(i), '/', str(len(self.samples))) + print('reading '+fullpath, str(self.sampleentries[i]), str(i), '/', str(len(self.samples))) try: - td.readFromFile(fullpath) + td.readIn(fullpath) + for x in td.x: + if td.nsamples != x.shape[0]: + print("not right length") + raise Exception("not right length") + for y in td.y: + if td.nsamples != y.shape[0]: + print("not right length") + raise Exception("not right length") + del td continue except Exception as e: print('problem with file, removing ', fullpath) del self.samples[i] - if validsourcelist: - del self.sourceList[i] + del self.originRoots[i] + self.nsamples -= self.sampleentries[i] + del self.sampleentries[i] def removeEntry(self,relative_path_to_entry): for i in range(len(self.samples)): if relative_path_to_entry==self.samples[i]: - print('removing '+self.samples[i]) + print('removing '+self.samples[i]+" - "+str(self.sampleentries[i])) del self.samples[i] - del self.sourceList[i] + del self.originRoots[i] + self.nsamples -= self.sampleentries[i] + del self.sampleentries[i] break @@ -163,29 +291,52 @@ def writeToFile(self,filename): with tempfile.NamedTemporaryFile(mode='wb', delete=False) as fd: self.dataclass.clear() pickle.dump(self.samples, fd,protocol=0 ) - pickle.dump(self.sourceList, fd,protocol=0 ) + pickle.dump(self.sampleentries, fd,protocol=0 ) + pickle.dump(self.originRoots, fd,protocol=0 ) + pickle.dump(self.nsamples, fd,protocol=0 ) + pickle.dump(self.useweights, fd,protocol=0 ) + pickle.dump(self.__batchsize, fd,protocol=0 ) pickle.dump(self.dataclass, fd,protocol=0 ) - pickle.dump(self.self.weighterobjects, fd, protocol=0) + pickle.dump(self.weighter, fd,protocol=0 ) + #pickle.dump(self.means, fd,protocol=0 ) + self.means.dump(fd) shutil.move(fd.name, filename) def readFromFile(self,filename): fd=open(filename,'rb') self.samples=pickle.load(fd) - self.sourceList=pickle.load(fd) + self.sampleentries=pickle.load(fd) + self.originRoots=pickle.load(fd) + self.nsamples=pickle.load(fd) + self.useweights=pickle.load(fd) + self.__batchsize=pickle.load(fd) self.dataclass=pickle.load(fd) - self.weighterobjects=pickle.load(fd) + self.weighter=pickle.load(fd) + self.means=pickle.load(fd) fd.close() self.dataDir=os.path.dirname(os.path.abspath(filename)) self.dataDir+='/' + #don't check if files exist + return + for f in self.originRoots: + if not f.endswith(".root"): continue + if not os.path.isfile(f): + print('not found: '+f) + raise Exception('original root file not found') + for f in self.samples: + fpath=self.getSamplePath(f) + if not os.path.isfile(fpath): + print('not found: '+fpath) + raise Exception('sample file not found') - def readSourceListFromFile(self, file, relpath=''): + def readRootListFromFile(self, file, relpath=''): self.samples=[] self.sampleentries=[] - self.sourceList=[] - self.__nsamples=0 + self.originRoots=[] + self.nsamples=0 self.dataDir="" fdir=os.path.dirname(file) @@ -195,57 +346,103 @@ def readSourceListFromFile(self, file, relpath=''): for line in lines: if len(line) < 1: continue if relpath: - self.sourceList.append(os.path.join(relpath, line)) + self.originRoots.append(os.path.join(relpath, line)) else: - self.sourceList.append(line) + self.originRoots.append(line) - if len(self.sourceList)<1: - raise Exception('source samples list empty') + if len(self.originRoots)<1: + raise Exception('root samples list empty') def split(self,ratio): ''' - out fraction is (1-ratio) + ratio is self/(out+self) returns out - modifies self + modifies itself ''' - nin = int(len(self.samples)*(ratio)) - if nin < 1: - raise ValueError("DataCollection:split: less than one sample would remain") - - if nin == len(self.samples): - raise ValueError("DataCollection:split: less than one sample would be assigned to output") - out=DataCollection() - out.dataDir = self.dataDir - out.dataclass = self.dataclass #anyway just a dummy - out.samples = self.samples[nin:] - self.samples = self.samples[:nin] - - if len(self.sourceList) == len(self.samples): - out.sourceList = self.sourceList[nin:] - self.sourceList = self.sourceList[:nin] - else: - self.sourceList = [] - out.sourceList = [] + itself=copy.deepcopy(self) + + nsamplefiles=len(self.samples) + + out.samples=[] + out.sampleentries=[] + out.originRoots=[] + out.nsamples=0 + out.__batchsize=copy.deepcopy(self.__batchsize) + out.isTrain=copy.deepcopy(self.isTrain) + out.dataDir=self.dataDir + + out.dataclass=copy.deepcopy(self.dataclass) + out.weighter=self.weighter #ref oks + out.means=self.means + out.useweights=self.useweights + + + itself.samples=[] + itself.sampleentries=[] + itself.originRoots=[] + itself.nsamples=0 + - #force re-read upon request - self.__nsamples = 0 - out.__nsamples = 0 - out.weighterobjects = self.weighterobjects + if nsamplefiles < 2: + out=copy.deepcopy(self) + print('DataCollection.split: warning: only one file, split will just return a copy of this') + return out + + for i in range(0, nsamplefiles): + frac=(float(i))/(float(nsamplefiles)) + if frac < ratio and i < nsamplefiles-1: + itself.samples.append(self.samples[i]) + itself.sampleentries.append(self.sampleentries[i]) + itself.originRoots.append(self.originRoots[i]) + itself.nsamples+=self.sampleentries[i] + else: + out.samples.append(self.samples[i]) + out.sampleentries.append(self.sampleentries[i]) + out.originRoots.append(self.originRoots[i]) + out.nsamples+=self.sampleentries[i] + + + + self.samples=itself.samples + self.sampleentries=itself.sampleentries + self.originRoots=itself.originRoots + self.nsamples=itself.nsamples return out + + + def createTestDataForDataCollection(self, collectionfile, inputfile, outputDir, + outname='dataCollection.dc', + traind=None, + relpath=''): + + self.readFromFile(collectionfile) + self.dataclass.remove=False + self.dataclass.weight=True #False + if traind: + print('[createTestDataForDataCollection] dataclass is overriden by user request') + self.dataclass=traind + self.readRootListFromFile(inputfile, relpath=relpath) + self.createDataFromRoot( + self.dataclass, outputDir, False, + dir_check = not self.batch_mode + ) + self.writeToFile(outputDir+'/'+outname) def recoverCreateDataFromRootFromSnapshot(self, snapshotfile): snapshotfile=os.path.abspath(snapshotfile) self.readFromFile(snapshotfile) td=self.dataclass - - if len(self.sourceList) < 1: + #For emergency recover td.reducedtruthclasses=['isB','isC','isUDSG'] + if len(self.originRoots) < 1: return + #if not self.means: + # self.means=td.produceMeansFromRootFile(self.originRoots[0]) outputDir=os.path.dirname(snapshotfile)+'/' self.dataDir=outputDir finishedsamples=len(self.samples) @@ -266,7 +463,7 @@ def createDataFromRoot( to recover the data until a possible error occurred ''' - if len(self.sourceList) < 1: + if len(self.originRoots) < 1: print('createDataFromRoot: no input root file') raise Exception('createDataFromRoot: no input root file') @@ -281,11 +478,27 @@ def createDataFromRoot( self.sampleentries=[] self.dataclass=copy.deepcopy(dataclass) td=self.dataclass + ##produce weighter from a larger dataset as one file - self.weighterobjects = td.createWeighterObjects(self.sourceList) + + if redo_meansandweights and (td.remove or td.weight): + logging.info('producing weights and remove indices') + self.weighter = td.produceBinWeighter( + self.originRoots + ) + self.weighter.printHistos(outputDir) + + + if redo_meansandweights: + logging.info('producing means and norms') + self.means = td.produceMeansFromRootFile( + self.originRoots, limit=self.meansnormslimit + ) + + if means_only: return if self.batch_mode: - for sample in self.sourceList: + for sample in self.originRoots: self.__writeData(sample, outputDir) else: self.__writeData_async_andCollect(0, outputDir) @@ -296,25 +509,53 @@ def __writeData(self, sample, outputDir): fileTimeOut(sample,120) #once available copy to ram - td.convertFromSourceFile(sample, self.weighterobjects) - - sbasename = os.path.basename(sample) - newname = sbasename[:sbasename.rfind('.')]+'.djctd' - - newpath=os.path.abspath(outputDir+newname) - td.writeToFile(newpath) - print('converted and written '+newname+' in ',sw.getAndReset(),' sec') - self.samples.append(newname) - self.nsamples+=td.nsamples - self.sampleentries.append(td.nsamples) - td.clear() - - if not self.batch_mode: - self.writeToFile(outputDir+'/snapshot.dc') + if self.batch_mode or self.no_copy_on_convert: + tmpinput = sample + + def removefile(): + pass + else: + tmpinput = '/dev/shm/'+str(os.getpid())+os.path.basename(sample) + + def removefile(): + os.system('rm -f '+tmpinput) + + import atexit + atexit.register(removefile) + os_ret = os.system('cp '+sample+' '+tmpinput) + if os_ret: + raise Exception("copy to ramdisk not successful for "+sample) + + try: + td.readFromRootFile(tmpinput, self.means, self.weighter) + sbasename = os.path.basename(sample) + newname = sbasename[:sbasename.rfind('.')] + + if usenewformat: + newname+='.meta' + else: + newname+='.z' + newpath=os.path.abspath(outputDir+newname) + td.writeOut(newpath) + print('converted and written '+newname+' in ',sw.getAndReset(),' sec') + self.samples.append(newname) + self.nsamples+=td.nsamples + self.sampleentries.append(td.nsamples) + td.clear() + + if not self.batch_mode: + self.writeToFile(outputDir+'/snapshot.dc') + + finally: + removefile() def __writeData_async_andCollect(self, startindex, outputDir): + #set tree name to use + logger.info('setTreeName') + import DeepJetCore.preprocessing + DeepJetCore.preprocessing.setTreeName(self.dataclass.treename) from multiprocessing import Process, Queue, cpu_count, Lock wo_queue = Queue() @@ -334,7 +575,7 @@ def writeData_async(index,woq,wrlck): sw=stopwatch() td=copy.deepcopy(self.dataclass) - sample=self.sourceList[index] + sample=self.originRoots[index] if self.batch_mode or self.no_copy_on_convert: tmpinput = sample @@ -359,15 +600,19 @@ def removefile(): out_samplename='' out_sampleentries=0 sbasename = os.path.basename(sample) - newname = sbasename[:sbasename.rfind('.')]+'djctd' + newname = sbasename[:sbasename.rfind('.')] + if usenewformat: + newname+='.meta' + else: + newname+='.z' newpath=os.path.abspath(outputDir+newname) try: - logger.info('readFromSourceFile') - td.readFromSourceFile(tmpinput, self.weighterobjects) + logger.info('readFromRootFile') + td.readFromRootFile(tmpinput, self.means, self.weighter) logger.info('writeOut') #wrlck.acquire() - td.writeToFile(newpath) + td.writeOut(newpath) #wrlck.release() print('converted and written '+newname+' in ',sw.getAndReset(),' sec -', index) @@ -398,7 +643,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): processes=[] processrunning=[] processfinished=[] - for i in range(startindex,len(self.sourceList)): + for i in range(startindex,len(self.originRoots)): processes.append(Process(target=writeData_async, args=(i,wo_queue,writelock) ) ) processrunning.append(False) processfinished.append(False) @@ -429,7 +674,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): if processrunning[i]:continue if processfinished[i]:continue time.sleep(0.1) - logging.info('starting %s...' % self.sourceList[startindex+i]) + logging.info('starting %s...' % self.originRoots[startindex+i]) processes[i].start() processrunning[i]=True nrunning+=1 @@ -440,7 +685,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): res=wo_queue.get() results.append(res) originrootindex=res[0] - logging.info('finished %s...' % self.sourceList[originrootindex]) + logging.info('finished %s...' % self.originRoots[originrootindex]) processfinished[originrootindex-startindex]=True processes [originrootindex-startindex].join(5) processrunning [originrootindex-startindex]=False @@ -451,7 +696,7 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): for r in results: thisidx=r[0] if thisidx==lastindex+1: - logging.info('>>>> collected result %d of %d' % (thisidx+1,len(self.sourceList))) + logging.info('>>>> collected result %d of %d' % (thisidx+1,len(self.originRoots))) __collectWriteInfo(r[1][0],r[1][1],r[1][2],outputDir) lastindex=thisidx @@ -466,15 +711,15 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): os.system('rm -rf '+tempstoragepath) def convertListOfRootFiles(self, inputfile, dataclass, outputDir, - takeweightersfrom='', means_only=False, + takemeansfrom='', means_only=False, output_name='dataCollection.dc', relpath=''): newmeans=True if takemeansfrom: - self.readFromFile(takeweightersfrom) + self.readFromFile(takemeansfrom) newmeans=False - self.readSourceListFromFile(inputfile, relpath=relpath) + self.readRootListFromFile(inputfile, relpath=relpath) self.createDataFromRoot( dataclass, outputDir, newmeans, means_only = means_only, @@ -526,26 +771,313 @@ def __stackData(self, dataclass, selector): return out + def replaceTruthForGAN(self, generated_array, original_truth): + return self.dataclass.replaceTruthForGAN(generated_array, original_truth) + def generator(self): + from sklearn.utils import shuffle + import uuid + import threading + print('start generator') + #helper class + class tdreader(object): + def __init__(self,filelist,maxopen,tdclass): + + self.filelist=filelist + self.nfiles=len(filelist) + + self.tdlist=[] + self.tdopen=[] + self.tdclass=copy.deepcopy(tdclass) + self.tdclass.clear()#only use the format, no data + #self.copylock=thread.allocate_lock() + for i in range(self.nfiles): + self.tdlist.append(copy.deepcopy(tdclass)) + self.tdopen.append(False) + + self.closeAll() #reset state + self.shuffleseed=0 + + def start(self): + self.__readNext() + + def __readNext(self): + #make sure this fast function has exited before getLast tries to read the file + readfilename=self.filelist[self.filecounter] + if len(filelist)>1: + self.tdlist[self.nextcounter].clear() + self.tdlist[self.nextcounter]=copy.deepcopy(self.tdclass) + self.tdlist[self.nextcounter].readthread=None + + def startRead(counter,filename,shuffleseed): + excounter=0 + while excounter<10: + try: + self.tdlist[counter].readIn_async(filename,ramdiskpath='/dev/shm/', + randomseed=shuffleseed) + break + except Exception as d: + print(self.filelist[counter]+' read error, retry...') + self.tdlist[counter].readIn_abort() + excounter=excounter+1 + if excounter<10: + time.sleep(5) + continue + traceback.print_exc(file=sys.stdout) + raise d + + # don't remove these commented lines just yet + # the whole generator call is moved to thread since keras 2.0.6 anyway + #t=threading.Thread(target=startRead, args=(self.nextcounter,readfilename,self.shuffleseed)) + #t.start() + startRead(self.nextcounter,readfilename,self.shuffleseed) + self.shuffleseed+=1 + if self.shuffleseed>1e5: + self.shuffleseed=0 + #startRead(self.nextcounter,readfilename,self.shuffleseed) + self.tdopen[self.nextcounter]=True + self.filecounter=self.__increment(self.filecounter,self.nfiles,to_shuffle=True) + self.nextcounter=self.__increment(self.nextcounter,self.nfiles) + + + + def __getLast(self): + #print('joining...') #DEBUG PERF + self.tdlist[self.lastcounter].readIn_join(wasasync=True,waitforStart=True) + #print('joined') #DEBUG PERF + td=self.tdlist[self.lastcounter] + #print('got ',self.lastcounter) + + self.tdopen[self.lastcounter]=False + self.lastcounter=self.__increment(self.lastcounter,self.nfiles) + return td + + def __increment(self,counter,maxval,to_shuffle=False): + counter+=1 + if counter>=maxval: + counter=0 + if to_shuffle: + self.filelist = shuffle(self.filelist) + return counter + + def __del__(self): + self.closeAll() + + def closeAll(self): + for i in range(len(self.tdopen)): + try: + if self.tdopen[i]: + self.tdlist[i].readIn_abort() + self.tdlist[i].clear() + self.tdopen[i]=False + except: pass + self.tdlist[i].removeRamDiskFile() + + self.nextcounter=0 + self.lastcounter=0 + self.filecounter=0 + + def get(self): + + td=self.__getLast() + self.__readNext() + return td + + + td=(self.dataclass) + totalbatches=self.getNBatchesPerEpoch() + processedbatches=0 + + ####generate randoms by batch + batchgen=None + if hasattr(td,'generatePerBatch') and td.generatePerBatch: + ranges=td.generatePerBatch + batchgen=BatchRandomInputGenerator(ranges, self.__batchsize) - gen = numpyGenerator() - gen.setFileList(self.samples) - gen.setBatchSize(self.__batchsize) - gen.readNTotal() #also a good check if all files are accessible - self.__nsamples = gen.getNTotal() + xstored=[np.array([])] + dimx=0 + ystored=[] + dimy=0 + wstored=[] + dimw=0 + nextfiletoread=0 + target_xlistlength=len(td.getInputShapes()) - while(1): + xout=[] + yout=[] + wout=[] + samplefilecounter=0 + + #prepare file list + filelist=[] + for s in self.samples: + filelist.append(self.getSamplePath(s)) + + TDReader=tdreader(filelist, self.maxFilesOpen, self.dataclass) + + #print('generator: total batches '+str(totalbatches)) + print('start file buffering...') + TDReader.start() + #### + # + # make block class for file read with get function that starts the next read automatically + # and closes all files in destructor? + # + # check if really the right ones are read.... + # + psamples=0 #for random shuffling + nepoch=0 + shufflecounter=0 + shufflecounter2=0 + while 1: + if processedbatches == totalbatches: + processedbatches=0 + nepoch+=1 + shufflecounter2+=1 + + lastbatchrest=0 + if processedbatches == 0: #reset buffer and start new + #print('DataCollection: new turnaround') + xstored=[np.array([])] + dimx=0 + ystored=[] + dimy=0 + wstored=[] + dimw=0 + lastbatchrest=0 + + + else: + lastbatchrest=xstored[0].shape[0] + + batchcomplete=False + + if lastbatchrest >= self.__batchsize: + batchcomplete = True + + # if(xstored[1].ndim==1): + + while not batchcomplete: + import sys, traceback + try: + td=TDReader.get() + except: + traceback.print_exc(file=sys.stdout) + + if td.x[0].shape[0] == 0: + print('Found empty (corrupted?) file, skipping') + continue + + if xstored[0].shape[0] ==0: + #print('dc:read direct') #DEBUG + xstored=td.x + dimx=len(xstored) + ystored=td.y + dimy=len(ystored) + wstored=td.w + dimw=len(wstored) + if not self.useweights: + dimw=0 + xout=[] + yout=[] + wout=[] + for i in range(0,dimx): + xout.append([]) + for i in range(0,dimy): + yout.append([]) + for i in range(0,dimw): + wout.append([]) + + else: + + #randomly^2 shuffle - not needed every time + if shufflecounter>1 and shufflecounter2>1: + shufflecounter=0 + shufflecounter2=0 + for i in range(0,dimx): + td.x[i]=shuffle(td.x[i], random_state=psamples) + for i in range(0,dimy): + td.y[i]=shuffle(td.y[i], random_state=psamples) + for i in range(0,dimw): + td.w[i]=shuffle(td.w[i], random_state=psamples) + + shufflecounter+=1 + + for i in range(0,dimx): + if(xstored[i].ndim==1): + xstored[i] = np.append(xstored[i],td.x[i]) + else: + xstored[i] = np.vstack((xstored[i],td.x[i])) + + for i in range(0,dimy): + if(ystored[i].ndim==1): + ystored[i] = np.append(ystored[i],td.y[i]) + else: + ystored[i] = np.vstack((ystored[i],td.y[i])) + + for i in range(0,dimw): + if(wstored[i].ndim==1): + wstored[i] = np.append(wstored[i],td.w[i]) + else: + wstored[i] = np.vstack((wstored[i],td.w[i])) + + if xstored[0].shape[0] >= self.__batchsize: + batchcomplete = True + + #limit of the random generator number + psamples+= td.x[0].shape[0] + if psamples > 4e8: + psamples/=1e6 + psamples=int(psamples) + + td.clear() + + if batchcomplete: + + #print('batch complete, split')#DEBUG + + for i in range(0,dimx): + splitted=np.split(xstored[i],[self.__batchsize]) + xstored[i] = splitted[1] + xout[i] = splitted[0] + for i in range(0,dimy): + splitted=np.split(ystored[i],[self.__batchsize]) + ystored[i] = splitted[1] + yout[i] = splitted[0] + for i in range(0,dimw): + splitted=np.split(wstored[i],[self.__batchsize]) + wstored[i] = splitted[1] + wout[i] = splitted[0] + + for i in range(0,dimx): + if(xout[i].ndim==1): + xout[i]=(xout[i].reshape(xout[i].shape[0],1)) + if not xout[i].shape[1] >0: + raise Exception('serious problem with the output shapes!!') + + for i in range(0,dimy): + if(yout[i].ndim==1): + yout[i]=(yout[i].reshape(yout[i].shape[0],1)) + if not yout[i].shape[1] >0: + raise Exception('serious problem with the output shapes!!') + + for i in range(0,dimw): + if(wout[i].ndim==1): + wout[i]=(wout[i].reshape(wout[i].shape[0],1)) + if not xout[i].shape[1] >0: + raise Exception('serious problem with the output shapes!!') - data = gen.getBatch(0)#in principle batch sizes can differ from batch to batch - xout = data[0] - yout = data[1] - wout = data[2] + processedbatches+=1 - if gen.lastBatch(): # returns true if less than the previous batch size remains - gen.prepareNextEpoch() - if len(wout)>0: + if batchgen: + if len(xout)& files){ orig_infiles_=files; shuffled_infiles_=orig_infiles_; @@ -62,8 +65,7 @@ class trainDataGenerator{ */ trainData getBatch(size_t batchsize=0); - static bool debug; - + bool debug; private: void shuffleFilelist(); void readBuffer(); @@ -84,11 +86,9 @@ class trainDataGenerator{ size_t filetimeout_; }; -template -bool trainDataGenerator::debug = false; template -trainDataGenerator::trainDataGenerator() : +trainDataGenerator::trainDataGenerator() :debug(false), randomcount_(1), batchsize_(2), readthread_(0), filecount_(0), nbatches_( 0), ntotal_(0), nsamplesprocessed_(0),filetimeout_(10) { } @@ -96,6 +96,10 @@ trainDataGenerator::trainDataGenerator() : template trainDataGenerator::~trainDataGenerator(){ if(readthread_){ + //try{ + // delete readthread_; + //}catch(...){} + //buffer_read.clear(); readthread_->join(); delete readthread_; } @@ -149,6 +153,11 @@ void trainDataGenerator::prepareNextEpoch(){ if(readthread_){ readthread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way delete readthread_; + + //try{ //brute force but might be ok + // delete readthread_; + //}catch(...){} + //buffer_read.clear(); } buffer_store.clear(); buffer_read.clear(); diff --git a/compiled/src/c_dataGenerator.C b/compiled/src/c_dataGenerator.C new file mode 100644 index 0000000..f052a14 --- /dev/null +++ b/compiled/src/c_dataGenerator.C @@ -0,0 +1,81 @@ +/* + * c_dataGenerator.C + * + * Created on: 7 Nov 2019 + * Author: jkiesele + */ + + + +#include +#include "boost/python/numpy.hpp" +#include "boost/python/list.hpp" +#include "boost/python/str.hpp" +#include + +#include "../interface/trainDataGenerator.h" +#include "../interface/helper.h" +#include "../interface/pythonToSTL.h" + +#include + +#include //debug + +namespace p = boost::python; +namespace np = boost::python::numpy; + + +class numpyGenerator : public djc::trainDataGenerator{ +public: + numpyGenerator():djc::trainDataGenerator(){ + } + + void setFileList(p::list files){ + djc::trainDataGenerator::setFileList(toSTLVector(files)); + } + + p::list getBatch(size_t batchsize=0); + +}; + + +p::list numpyGenerator::getBatch(size_t batchsize){ + + p::list out; + + auto td = djc::trainDataGenerator::getBatch(batchsize); + + p::list x, y, w; + + for(size_t i=0;i("numpyGenerator") + .def("setFileList", &numpyGenerator::setFileList) + .def("setBatchSize", &numpyGenerator::setBatchSize) + .def("getNTotal", &numpyGenerator::getNTotal) + .def("setFileTimeout", &numpyGenerator::setFileTimeout) + .def("getNBatches", &numpyGenerator::getNBatches) + .def("lastBatch", &numpyGenerator::lastBatch) + .def("prepareNextEpoch", &numpyGenerator::prepareNextEpoch) + .def("getBatch", &numpyGenerator::getBatch) + ; +} + diff --git a/compiled/src/c_readArrThreaded.C b/compiled/src/c_readArrThreaded.C deleted file mode 100644 index a46ba0d..0000000 --- a/compiled/src/c_readArrThreaded.C +++ /dev/null @@ -1,335 +0,0 @@ - - -#define BOOST_PYTHON_MAX_ARITY 20 -#include -#include "boost/python/extract.hpp" -#include "boost/python/numpy.hpp" -#include "boost/python/list.hpp" -#include "boost/python/str.hpp" -#include -#include -#include "../interface/pythonToSTL.h" -#include "../interface/helper.h" - -#include - -#include - - -#include -#include - -#include "../interface/quicklz.h" - -#define MAXCHUNK (0xffffffff - 400) - -bool debug=false; - -class readThread{ -public: - readThread(long arrpointer, - const std::string& filenamein, - const std::string& orig_filenamein, - long size,bool rmwhendone){ - - arrbuf=(float*)(void*)arrpointer; - infile=filenamein; - orig_infile=orig_filenamein; - length=size; - length*=sizeof(float); - pthread=new pthread_t(); - done=0; - id=lastid; - lastid++; - if(lastid>0xFFFE) - lastid=0; - removewhendone=rmwhendone; - state_decompress = new qlz_state_decompress(); - } - - ~readThread(){ - if(pthread)delete pthread; - if(state_decompress)delete state_decompress; - } - void start(){ - int iret= pthread_create( pthread, NULL, readArrThread, (void*) this); - if(iret){ - std::cerr << "Error - pthread_create() return code: "<infile <infile.data(), "rb"); - fseek(ifile, 0, SEEK_END); - unsigned int filelength = ftell(ifile); - fseek(ifile, 0, SEEK_SET); - fread(&nchunks, 1, 1, ifile); - std::vector chunksizes(nchunks,0); - size_t vecbytesize=nchunks*sizeof(size_t); - fread(&chunksizes[0], 1, vecbytesize, ifile); - - if(debug){ - std::cout << "file has "<< (int)nchunks << " chunks"<length << std::endl; - while(chunklength){ - - src = new char[chunksizes.at(chunk)]; - fread(src, 1, chunksizes.at(chunk), ifile); - totalsize += qlz_size_decompressed(src); - - if(debug) - std::cout << writepos << " " << totalsize << ", " << allread<arrbuf[writepos/sizeof(float)]), thisthread->state_decompress); - if(debug) - std::cout << "allread: " << allread << std::endl; - writepos=totalsize; - chunk++; - delete src; - } - if(debug) - std::cout << "allread "<< allread << " totalsize "<< totalsize <thisthread->length throw - - //totalsize compare to vector - - if(allread!=thisthread->length){ - fclose(ifile); - std::string moreinfo="\nexpected: "; - moreinfo+=std::to_string(thisthread->length); - moreinfo+=" got: "; - moreinfo+=std::to_string(allread); - throw std::runtime_error("readArrThread:target array size does not match "+thisthread->orig_infile+moreinfo); - } - fclose(ifile); - thisthread->done=1;//atomic - - if(thisthread->removewhendone){//thisthread->infile.data() - std::string rmstring="rm -f "; - rmstring+=thisthread->infile; - system(rmstring.data()); - } - return 0; -} - -using namespace boost::python; - - -//module info and interface - -size_t maxreads=1000; -std::vector allreads(maxreads,0); -size_t acounter=0; - -bool readBlocking(long arrpointer, - std::string filenamein, - std::string orig_filenamein, - const boost::python::list shape, - bool rmwhendone){ - - long length=1; - std::vector sshape=toSTLVector(shape); - for(const auto& s:sshape) - length*=s; - - readThread * t=new readThread(arrpointer,filenamein,orig_filenamein,length,rmwhendone); - t->readBlocking(); - bool succ=t->isDone(); - delete t; - return succ; -} - -int startReading(long arrpointer, - std::string filenamein, - std::string orig_filenamein, - const boost::python::list shape, - bool rmwhendone){ - - long length=1; - std::vector sshape=toSTLVector(shape); - for(const auto& s:sshape) - length*=s; - - readThread * t=new readThread(arrpointer,filenamein,orig_filenamein,length,rmwhendone); - t->start(); - if(allreads.at(acounter) && !allreads.at(acounter)->isDone()) - throw std::out_of_range("c_readArrThreaded::startReading: overflow. Increase number of maximum threads (setMax)"); - allreads.at(acounter)=t; - acounter++; - if(acounter>=maxreads) - acounter=0; - return t->getId(); -} - -bool isDone(int id){ - for(auto& t:allreads){ - if(!t)continue; - if(t->getId()==id){ - if(t->isDone()){ - t->join(); - delete t; - t=0; - return true; - } - else{ - return false; - } - } - } - if(debug) - std::cerr<<"isDone: ID "<< id << " not found "<0xFFFE) - throw std::runtime_error("setMax: must be smaller than 65536"); - maxreads=m; - allreads.resize(m,0); -} - - - -void writeArray(long arrpointer, - std::string file, const boost::python::list shape){ - - long length=1; - std::vector sshape=toSTLVector(shape); - for(const auto& s:sshape) - length*=s; - - length*=sizeof(float); - - FILE *ofile; - char *src=(char*)(void*)arrpointer; - char *dst; - - qlz_state_compress *state_compress = new qlz_state_compress(); - - ofile = fopen(file.data(), "wb"); - - // allocate "uncompressed size" + 400 for the destination buffer - dst = new char [length + 400]; - -if(debug) - std::cout << "array has "<< length << " bytes" < chunksizes; - - while(remaininglength){ - - size_t uselength=0; - if(remaininglength > MAXCHUNK){ - uselength=MAXCHUNK; - remaininglength-=MAXCHUNK; - nchunks++; - if(!nchunks){ - //throw etc - //TBI (only kicks in at about 1TB) - } - - } - else{ - uselength=remaininglength; - remaininglength=0; - } - size_t thissize = qlz_compress(&src[startbyte],&dst[len2], uselength, state_compress); - chunksizes.push_back(thissize); - len2+=thissize; - startbyte+=uselength; - } - if(debug){ - std::cout << "writing "<< len2 << " compressed bytes in "<< (int)nchunks <<" chunks: " < -#include "boost/python/extract.hpp" -#include "boost/python/numpy.hpp" -#include "boost/python/list.hpp" -#include "boost/python/str.hpp" -//#include "boost/filesystem.hpp" -#include -#include -#include "TString.h" -#include -#include -#include "TFile.h" -#include "TTree.h" -//don't use new root6 stuff, has problems with leaf_list -//#include "TTreeReader.h" -//#include "TTreeReaderValue.h" -//#include "TTreeReaderArray.h" -//#include "TTreeReaderUtils.h" -#include -#include -#include "TStopwatch.h" -#include "../interface/indata.h" -#include "../interface/pythonToSTL.h" -#include "../interface/helper.h" -#include -#include -#include -#include -#include - -#define Vec std::vector - - -float * create0DBranchVector(std::vector shape){//returns pointer to first element - return new float[1]; -} - - -Vec * create1DBranchVector(std::vector shape ){//returns pointer to first element - return new Vec(shape[0]); -} - -//gets called once anyway, still needs garbage collection -Vec > * create2DBranchVector(std::vector shape){//returns pointer to first element - return new Vec > - (shape[0],Vec(shape[1])); -} - -Vec > >* create3DBranchVector(std::vector shape){//returns pointer to first element - return new Vec > > - (shape[0],Vec > (shape[1],Vec (shape[2]))); -} - -Vec > > > * create4DBranchVector(std::vector shape){//returns pointer to first element - auto * out = new - Vec > > >(shape[0], - Vec > >(shape[1], - Vec >(shape[2], - Vec(shape[3])))); - for(auto& vvv:*out) - for(auto& vv:vvv) - for(auto & v:vv) - for(auto& e:v) - e=0; - return out; -} - -/* - * wrapper to create input to C++ only function - * Can be generalised to doing it at the same time for many different sized branches - */ -void store(const boost::python::list _numpyarrays, - const boost::python::list _shapes, - std::string filename, - const boost::python::list _adds, - bool storeflat) { - - Vec numpyarrays = toSTLVector(_numpyarrays); - Vec > shapes = toSTL2DVector(_shapes); - Vec adds = toSTLVector(_adds); - - int nentries = 0; - - - TFile *outfile = new TFile(filename.c_str(), "RECREATE"); - //TDirectory *dir = outfile->mkdir("prediction", "prediction"); - //dir->cd(); - TTree *t = new TTree("tree", "tree"); - - //create branches and pointers - Vec v_data_in; - Vec > v_shape; - Vec v_ndims; - Vec v_flattened_length; - Vec v_data_out_0D(numpyarrays.size(),0); - Vec* > v_data_out_1D(numpyarrays.size(),0); - Vec >* > v_data_out_2D(numpyarrays.size(),0); - Vec > >* > v_data_out_3D(numpyarrays.size(),0); - Vec > > >* > v_data_out_4D(numpyarrays.size(),0); - - for(size_t i=0;i shape = shapes.at(i); - long numpyarray = numpyarrays.at(i); - nentries = shape.at(0); - TString add = adds.at(i); - - int ndims = shape.size() - 1; - int ndims_shape=1; - if(ndims) - ndims_shape=ndims; - - std::vector vecshape; - - size_t flattened_length = 1; - for(size_t i = 1; i < shape.size(); i++) { - vecshape.push_back(shape[i]); - flattened_length *= shape[i]; - } - shape=vecshape; - v_shape.push_back(shape); - if(storeflat){ - shape = std::vector(1,flattened_length); - } - - - v_data_in.push_back(reinterpret_cast(numpyarray)); - v_ndims.push_back(ndims); - v_flattened_length.push_back(flattened_length); - - if(ndims==0){ - v_data_out_0D.at(i)=create0DBranchVector(shape); - } - else if(ndims==1 || storeflat){ - v_data_out_1D.at(i)=create1DBranchVector(shape); - } - else if(ndims==2){ - v_data_out_2D.at(i)=create2DBranchVector(shape); - } - else if(ndims==3){ - v_data_out_3D.at(i)=create3DBranchVector(shape); - } - else if(ndims==4){ - v_data_out_4D.at(i)=create4DBranchVector(shape); - } - - } - - - - Vec* > v_shapep; - for(size_t i=0;iBranch(add, v_data_out_0D.at(i)); - else if(v_data_out_1D.at(i)){ - t->Branch(add, &v_data_out_1D.at(i)); - } - else if(v_data_out_2D.at(i)){ - t->Branch(add, &v_data_out_2D.at(i)); - } - else if(v_data_out_3D.at(i)){ - t->Branch(add, &v_data_out_3D.at(i)); - } - else if(v_data_out_4D.at(i)){ - t->Branch(add, &v_data_out_4D.at(i)); - } - - } - - - if(storeflat){ - for(size_t i=0;iBranch((TString)adds.at(i)+"_shape", v_shapep.at(i)); - } - } - } - - //vectorsize(); i++){ - v_data_out_1D.at(a)->at(i)=v_data_in.at(a)[e*v_flattened_length.at(a)+i]; - } - } - else if(v_data_out_2D.at(a)){ - size_t globcont=0; - for (size_t i = 0; i < v_data_out_2D.at(a)->size(); i++){ - for (size_t j = 0; j < v_data_out_2D.at(a)->at(i).size(); j++){ - v_data_out_2D.at(a)->at(i).at(j)=v_data_in.at(a)[e*v_flattened_length.at(a)+globcont]; - globcont++; - } - } - } - else if(v_data_out_3D.at(a)){ - size_t globcont=0; - for (size_t i = 0; i < v_data_out_3D.at(a)->size(); i++){ - for (size_t j = 0; j < v_data_out_3D.at(a)->at(i).size(); j++){ - for (size_t k = 0; k < v_data_out_3D.at(a)->at(i).at(j).size(); k++){ - v_data_out_3D.at(a)->at(i).at(j).at(k)=v_data_in.at(a)[e*v_flattened_length.at(a)+globcont]; - globcont++; - } - } - } - } - else if(v_data_out_4D.at(a)){ - size_t globcont=0; - for (size_t i = 0; i < v_data_out_4D.at(a)->size(); i++){ - for (size_t j = 0; j < v_data_out_4D.at(a)->at(i).size(); j++){ - for (size_t k = 0; k < v_data_out_4D.at(a)->at(i).at(j).size(); k++){ - for (size_t l = 0; l < v_data_out_4D.at(a)->at(i).at(j).at(k).size(); l++){ - v_data_out_4D.at(a)->at(i).at(j).at(k).at(l)=v_data_in.at(a)[e*v_flattened_length.at(a)+globcont]; - globcont++; - } - } - } - } - } - }//arrays - - t->Fill(); - } - - - t->Write(); - outfile->Close(); - delete outfile; - - -} - - - - - - - - -// Expose classes and methods to Python -BOOST_PYTHON_MODULE(c_storeTensor) { - - boost::python::numpy::initialize(); - __hidden::indata();//for some reason exposing the class prevents segfaults. garbage collector? - //anyway, it doesn't hurt, just leave this here - def("store", &store); -} diff --git a/training/training_base.py b/training/training_base.py index cd4533d..1102e0f 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -16,11 +16,7 @@ from DeepJetCore.DJCLayers import * from pdb import set_trace import keras -if float(keras.__version__[2:5]) >= 2.2: - from keras.utils import multi_gpu_model -else: - def multi_gpu_model(m, ngpus): - return m +from keras.utils import multi_gpu_model import imp try: @@ -55,8 +51,6 @@ def multi_gpu_model(m, ngpus): from keras.models import Model class ModelMGPU(Model): def __init__(self, ser_model, gpus): - if float(keras.__version__[2:5]) < 2.2: - print('multi gpu option from keras >= 2.2.2 is NOT available for now. (see DJC issues 28 and 30)') pmodel = multi_gpu_model(ser_model, gpus) self.__dict__.update(pmodel.__dict__) self._smodel = ser_model @@ -121,7 +115,7 @@ def __init__( try: imp.find_module('setGPU') import setGPU - except ImportError: + except : found = False else: os.environ['CUDA_DEVICE_ORDER'] = 'PCI_BUS_ID' @@ -211,8 +205,7 @@ def __init__( - shapes=self.train_data.getInputShapes() - self.train_data.maxFilesOpen=-1 + shapes=self.train_data.getKerasFeatureShapes() self.keras_inputs=[] self.keras_inputsshapes=[] @@ -243,35 +236,10 @@ def modelSet(self): def setModel(self,model,**modelargs): if len(self.keras_inputs)<1: raise Exception('setup data first') - self.keras_model=model(self.keras_inputs, - self.train_data.getNClassificationTargets(), - self.train_data.getNRegressionTargets(), - **modelargs) + self.keras_model=model(self.keras_inputs,**modelargs) if not self.keras_model: raise Exception('Setting model not successful') - def setGANModel(self, generator_func, discriminator_func): - ''' - The inputs are functions that generate a keras Model - The GAN output must match the discriminator input. - The first and only function argument of the discriminator must be the input. - The generator MUST get the same input. (e.g. both get a list of which one item is the - discriminator input, the other the generator input) - ''' - self.GAN_mode = True - self.create_generator = generator_func - self.create_discriminator = discriminator_func - - def _create_gan(self,discriminator, generator, gan_input): - import keras - x = generator(gan_input) - gan_output = discriminator(x) - gan = keras.models.Model(inputs=gan_input, outputs=gan_output) - return gan - - def defineCustomPredictionLabels(self, labels): - self.train_data.defineCustomPredictionLabels(labels) - self.val_data.defineCustomPredictionLabels(labels) def saveCheckPoint(self,addstring=''): @@ -406,18 +374,6 @@ def _initTraining(self, self.train_data.setBatchSize(batchsize) self.val_data.setBatchSize(batchsize) - averagesamplesperfile=self.train_data.getAvEntriesPerFile() - samplespreread=maxqsize*batchsize - nfilespre=max(int(samplespreread/averagesamplesperfile),1) - nfilespre=min(nfilespre, len(self.train_data.samples)-1) - #if nfilespre>15:nfilespre=15 - print('best pre read: '+str(nfilespre)+' a: '+str(int(averagesamplesperfile))) - print('total sample size: '+str(self.train_data.nsamples)) - #exit() - - if self.train_data.maxFilesOpen<0 or True: - self.train_data.maxFilesOpen=nfilespre - self.val_data.maxFilesOpen=2 def trainModel(self, nepochs, @@ -437,13 +393,6 @@ def trainModel(self, **trainargs): - # check a few things, e.g. output dimensions etc. - # need implementation, but probably TF update SWAPNEEL - customtarget=self.train_data.getCustomPredictionLabels() - if customtarget: - pass - # work on self.model.outputs - # check here if the output dimension of the model fits the custom labels # write only after the output classes have been added self._initTraining(nepochs,batchsize,maxqsize) @@ -487,6 +436,8 @@ def trainModel(self, validation_data=(X_test, Y_test), **trainargs) else: + self.train_data.prepareGenerator() + self.val_data.prepareGenerator() self.keras_model.fit_generator(self.train_data.generator() , steps_per_epoch=self.train_data.getNBatchesPerEpoch(), epochs=nepochs-self.trainedepoches, @@ -495,7 +446,7 @@ def trainModel(self, validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, max_queue_size=maxqsize, #max_q_size=1, - use_multiprocessing=True, #the threading one doe not loke DJC + use_multiprocessing=False, #the threading one doe not loke DJC **trainargs) self.trainedepoches=nepochs From 90dc0395a5495c87fcb081bc9377162d7032d599 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 8 Nov 2019 18:41:11 +0100 Subject: [PATCH 134/437] adapted testing, more fixes --- DJCLosses.py | 4 +- DataCollection.py | 49 +++--- TrainData.py | 3 +- bin/convertFromRoot.py | 8 +- bin/testEnvironment.py | 6 +- compiled/interface/trainData.h | 2 + compiled/interface/trainDataGenerator.h | 58 ++++++- compiled/src/c_dataGenerator.C | 1 + compiled/src/c_trainDataInterface.C | 16 +- testing/batch_explosion.py | 39 ++--- testing/datastructures/TrainData_testing.py | 176 ++++++++++---------- testing/max_q_size.py | 2 +- testing/tools.py | 2 +- training/training_base.py | 17 +- 14 files changed, 221 insertions(+), 162 deletions(-) diff --git a/DJCLosses.py b/DJCLosses.py index 97e5c12..48704c6 100644 --- a/DJCLosses.py +++ b/DJCLosses.py @@ -4,6 +4,8 @@ import tensorflow as tf def dummy_loss(truth, pred): - return tf.reduce_mean(truth)+tf.reduce_mean(pred) + t = tf.Print(truth,[truth],'truth ') + p = tf.Print(pred,[pred],'pred ') + return tf.reduce_mean(t)+tf.reduce_mean(p) djc_global_loss_list['dummy_loss']=dummy_loss \ No newline at end of file diff --git a/DataCollection.py b/DataCollection.py index c759a4f..d4ac88b 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -12,8 +12,11 @@ import shutil import os import keras - - +import copy +import time +import logging +from stopwatch import stopwatch +logger = logging.getLogger(__name__) class DataCollection(object): @@ -31,6 +34,7 @@ def __init__(self, infile = None, nprocs = -1): raise Exception("no valid datacollection found in "+infile) self.weighterobjects={} + self.batch_mode = False def clear(self): self.samples=[] @@ -254,7 +258,7 @@ def recoverCreateDataFromRootFromSnapshot(self, snapshotfile): finishedsamples=len(self.samples) self.__writeData_async_andCollect(finishedsamples,outputDir) - self.writeToFile(outputDir+'/dataCollection.dc') + self.writeToFile(outputDir+'/dataCollection.djcdc') def createDataFromRoot( @@ -313,7 +317,7 @@ def __writeData(self, sample, outputDir): td.clear() if not self.batch_mode: - self.writeToFile(outputDir+'/snapshot.dc') + self.writeToFile(outputDir+'/snapshot.djcdc') def __writeData_async_andCollect(self, startindex, outputDir): @@ -323,8 +327,8 @@ def __writeData_async_andCollect(self, startindex, outputDir): wo_queue = Queue() writelock=Lock() thispid=str(os.getpid()) - if not self.batch_mode and not os.path.isfile(outputDir+'/snapshot.dc'): - self.writeToFile(outputDir+'/snapshot.dc') + if not self.batch_mode and not os.path.isfile(outputDir+'/snapshot.djcdc'): + self.writeToFile(outputDir+'/snapshot.djcdc') tempstoragepath='/dev/shm/'+thispid @@ -362,12 +366,12 @@ def removefile(): out_samplename='' out_sampleentries=0 sbasename = os.path.basename(sample) - newname = sbasename[:sbasename.rfind('.')]+'djctd' + newname = sbasename[:sbasename.rfind('.')]+'.djctd' newpath=os.path.abspath(outputDir+newname) try: - logger.info('readFromSourceFile') - td.readFromSourceFile(tmpinput, self.weighterobjects) + logger.info('convertFromSourceFile') + td.convertFromSourceFile(tmpinput, self.weighterobjects) logger.info('writeOut') #wrlck.acquire() td.writeToFile(newpath) @@ -395,8 +399,8 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): self.nsamples+=sampleentries self.sampleentries.append(sampleentries) if not self.batch_mode: - self.writeToFile(outputDir+'/snapshot_tmp.dc')#avoid to overwrite directly - os.system('mv '+outputDir+'/snapshot_tmp.dc '+outputDir+'/snapshot.dc') + self.writeToFile(outputDir+'/snapshot_tmp.djcdc')#avoid to overwrite directly + os.system('mv '+outputDir+'/snapshot_tmp.djcdc '+outputDir+'/snapshot.djcdc') processes=[] processrunning=[] @@ -470,11 +474,11 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): def convertListOfRootFiles(self, inputfile, dataclass, outputDir, takeweightersfrom='', means_only=False, - output_name='dataCollection.dc', + output_name='dataCollection.djcdc', relpath=''): newmeans=True - if takemeansfrom: + if takeweightersfrom: self.readFromFile(takeweightersfrom) newmeans=False self.readSourceListFromFile(inputfile, relpath=relpath) @@ -528,23 +532,24 @@ def __stackData(self, dataclass, selector): return out - def prepareGenerator(self): + + def generator(self): - self.gen = numpyGenerator() - self.gen.setFileList([self.dataDir+ "/" + s for s in self.samples]) - self.gen.setBatchSize(self.__batchsize) + gen = numpyGenerator() + gen.setFileList([self.dataDir+ "/" + s for s in self.samples]) + gen.setBatchSize(self.__batchsize) + gen.debug = False + gen.prepareNextEpoch() - def generator(self): while(1): try: - data = self.gen.getBatch(0)#in principle batch sizes can differ from batch to batch + data = gen.getBatch(0)#in principle batch sizes can differ from batch to batch xout = data[0] yout = data[1] wout = data[2] - if self.gen.lastBatch(): # returns true if less than the previous batch size remains - self.gen.prepareNextEpoch() - print('DataCollection.generator: new epoch (for monitoring right now...)') + if gen.lastBatch(): # returns true if less than the previous batch size remains + gen.prepareNextEpoch() if len(wout)>0: yield (xout,yout,wout) diff --git a/TrainData.py b/TrainData.py index b81f54d..edb96a7 100644 --- a/TrainData.py +++ b/TrainData.py @@ -131,11 +131,10 @@ def readFromFile(self,infile,shapesOnly=False): ### if shapesOnly: return - l = ctd.readFromFile(fileprefix) + l = ctd.readFromFile(infile) self.x = l[0] self.y = l[1] self.w = l[2] - self.nsamples=len(x[0]) def readIn(self,fileprefix,shapesOnly=False): print('TrainData:readIn deprecated, use readFromFile') diff --git a/bin/convertFromRoot.py b/bin/convertFromRoot.py index bfb79a1..e3e41e7 100755 --- a/bin/convertFromRoot.py +++ b/bin/convertFromRoot.py @@ -113,7 +113,7 @@ logging.info('converting test data, no weights applied') dc.createTestDataForDataCollection( testdatafor, infile, outPath, - outname=(args.batch if args.batch else 'dataCollection.dc'), + outname=(args.batch if args.batch else 'dataCollection.djcdc'), traind=(traind(class_args) if traind else None), relpath=relpath ) @@ -123,15 +123,15 @@ dc.convertListOfRootFiles( infile, traind(class_args) if class_args else traind(), outPath, means_only=True, - output_name='batch_template.dc', + output_name='batch_template.djcdc', relpath=relpath ) else: logging.info('Start conversion') dc.convertListOfRootFiles( infile, traind(class_args) if class_args else traind(), outPath, - takemeansfrom=usemeansfrom, - output_name=(args.batch if args.batch else 'dataCollection.dc'), + takeweightersfrom=usemeansfrom, + output_name=(args.batch if args.batch else 'dataCollection.djcdc'), relpath=relpath ) diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py index e04989b..f39568e 100755 --- a/bin/testEnvironment.py +++ b/bin/testEnvironment.py @@ -43,7 +43,8 @@ #!/bin/bash cd {djc_base}/testing rm -rf batchDC -convertFromRoot.py -i files/filelist.txt -o batchDC -c TrainData_testBatch -n 1 +export PYTHONPATH=`pwd`:$PYTHONPATH +convertFromRoot.py --noramcopy -i files/filelist.txt -o batchDC -c TrainData_testBatch -n 1 '''.format(djc_base=djc_base) os.system(script) @@ -53,7 +54,8 @@ #!/bin/bash cd {djc_base}/testing rm -rf batchExplode -python batch_explosion.py batchDC/dataCollection.dc batchExplode +export PYTHONPATH=`pwd`:$PYTHONPATH +python batch_explosion.py batchDC/dataCollection.djcdc batchExplode '''.format(djc_base=djc_base) os.system(script) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index d493b35..272742f 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -170,6 +170,8 @@ void trainData::append(const trainData& td) { /* * split along first axis * Returns the first part, leaves the second. + * + * Can use some performance improvements */ template trainData trainData::split(size_t splitindex) { diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 8d6e64c..dceb108 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -58,18 +58,27 @@ class trainDataGenerator{ void prepareNextEpoch(); + void end(); + + void enableThreading(bool en){ + threading_=en; + } + /** * gets Batch. If batchsize is specified, it is up to the user * to make sure that the sum of all batches is smaller or equal the - * total sample size + * total sample size. + * The batch size is always the size of the NEXT batch! + * */ - trainData getBatch(size_t batchsize=0); + trainData getBatch(size_t batchsize=0); //if no threading batch index can be given? just for future? bool debug; private: void shuffleFilelist(); void readBuffer(); void readNTotal(); + void prepareBatch(size_t batchsize=0); std::vector orig_infiles_; std::vector shuffled_infiles_; int randomcount_; @@ -84,13 +93,19 @@ class trainDataGenerator{ size_t nsamplesprocessed_; size_t lastbatchsize_; size_t filetimeout_; + + std::thread * preparethread_; + trainData prepared_tdbatch_; + + bool threading_; //in case the keras generator is indeed faster, just placeholder for now }; template trainDataGenerator::trainDataGenerator() :debug(false), randomcount_(1), batchsize_(2), readthread_(0), filecount_(0), nbatches_( - 0), ntotal_(0), nsamplesprocessed_(0),filetimeout_(10) { + 0), ntotal_(0), nsamplesprocessed_(0),filetimeout_(10),preparethread_(0), + threading_(true){ } template @@ -103,6 +118,10 @@ trainDataGenerator::~trainDataGenerator(){ readthread_->join(); delete readthread_; } + if(preparethread_){ + preparethread_->join(); + delete preparethread_; + } } template @@ -150,9 +169,9 @@ template void trainDataGenerator::prepareNextEpoch(){ //prepare for next epoch, pre-read first file - if(readthread_){ - readthread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way - delete readthread_; + if(preparethread_){ + preparethread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way + delete preparethread_; //try{ //brute force but might be ok // delete readthread_; @@ -161,16 +180,36 @@ void trainDataGenerator::prepareNextEpoch(){ } buffer_store.clear(); buffer_read.clear(); + prepared_tdbatch_.clear(); filecount_=0; nsamplesprocessed_=0; shuffleFilelist(); nextread_ = shuffled_infiles_.at(filecount_); - readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); + preparethread_ = new std::thread(&trainDataGenerator::prepareBatch,this,batchsize_); +} +template +void trainDataGenerator::end(){ + if(preparethread_){ + preparethread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way + delete preparethread_; + preparethread_=0; + } } template trainData trainDataGenerator::getBatch(size_t batchsize){ + if(! preparethread_) + throw std::runtime_error("trainDataGenerator::getBatch: prepare thread not launched. Call prepareNextEpoch first"); + preparethread_->join(); + auto out = prepared_tdbatch_; //std::move? data not needed anymore? + prepared_tdbatch_.clear(); + preparethread_ = new std::thread(&trainDataGenerator::prepareBatch,this,batchsize); + return out; +} + +template +void trainDataGenerator::prepareBatch(size_t batchsize){ size_t bufferelements=buffer_store.nElements(); @@ -202,8 +241,11 @@ trainData trainDataGenerator::getBatch(size_t batchsize){ readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); } } + if(debug) + std::cout << "provided batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+batchsize << + " elements in buffer: " << bufferelements << std::endl; nsamplesprocessed_+=batchsize; - return buffer_store.split(batchsize); + prepared_tdbatch_ = buffer_store.split(batchsize); } diff --git a/compiled/src/c_dataGenerator.C b/compiled/src/c_dataGenerator.C index f052a14..f870499 100644 --- a/compiled/src/c_dataGenerator.C +++ b/compiled/src/c_dataGenerator.C @@ -76,6 +76,7 @@ BOOST_PYTHON_MODULE(c_dataGenerator) { .def("lastBatch", &numpyGenerator::lastBatch) .def("prepareNextEpoch", &numpyGenerator::prepareNextEpoch) .def("getBatch", &numpyGenerator::getBatch) + .def_readwrite("debug", &numpyGenerator::debug); ; } diff --git a/compiled/src/c_trainDataInterface.C b/compiled/src/c_trainDataInterface.C index 3fbad6b..3f6c703 100644 --- a/compiled/src/c_trainDataInterface.C +++ b/compiled/src/c_trainDataInterface.C @@ -34,6 +34,16 @@ namespace np = boost::python::numpy; float * extractNumpyListElement(p::list x, int i, std::vector& shape){ shape.clear(); np::ndarray ndarr = p::extract(x[i]); + auto dt = ndarr.get_dtype(); + if(dt != np::dtype::get_builtin()){ + throw std::runtime_error("c_trainDataInterface.extractNumpyListElement: at least one array does not have type float32"); + } + auto flags = ndarr.get_flags(); + std::cout << flags << std::endl; + if(!(flags & np::ndarray::CARRAY) || !(flags & np::ndarray::C_CONTIGUOUS)){ + throw std::runtime_error("c_trainDataInterface.extractNumpyListElement: at least one array is not C contiguous, please pass as numpy.ascontiguousarray(a, dtype='float32')"); + } + float * data = (float*)(void*) ndarr.get_data(); int ndim = ndarr.get_nd(); for(int s=0;s 0] - x_global=x_global[notremoves > 0] - x_cpf=x_cpf[notremoves > 0] - x_npf=x_npf[notremoves > 0] - x_sv=x_sv[notremoves > 0] - alltruth=alltruth[notremoves > 0] - newnsamp=x_global.shape[0] - print('reduced content to ', int(float(newnsamp)/float(self.nsamples)*100),'%') - self.nsamples = newnsamp - print(x_global.shape,self.nsamples) - self.w=[weights] self.x=[x_global,x_cpf,x_npf,x_sv] self.y=[alltruth] + self.w=[] + diff --git a/testing/max_q_size.py b/testing/max_q_size.py index 81195b4..086e1c4 100644 --- a/testing/max_q_size.py +++ b/testing/max_q_size.py @@ -8,7 +8,7 @@ if newtraining: - train.setModel(model_deepFlavourReference_test) + train.setModel(model_deepFlavourReference_test,nclasses = 6) #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) diff --git a/testing/tools.py b/testing/tools.py index 67e2134..5af8636 100644 --- a/testing/tools.py +++ b/testing/tools.py @@ -102,7 +102,7 @@ def block_deepFlavourConvolutions(charged,neutrals,vertices,dropoutRate,active=T return cpf,npf,vtx -def model_deepFlavourReference_test(Inputs,nclasses,nregclasses,dropoutRate=0.1,momentum=0.6): +def model_deepFlavourReference_test(Inputs,nclasses,dropoutRate=0.1,momentum=0.6): """ reference 1x1 convolutional model for 'deepFlavour' with recurrent layers and batch normalisation diff --git a/training/training_base.py b/training/training_base.py index 1102e0f..a171ef2 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -236,7 +236,11 @@ def modelSet(self): def setModel(self,model,**modelargs): if len(self.keras_inputs)<1: raise Exception('setup data first') - self.keras_model=model(self.keras_inputs,**modelargs) + try: + self.keras_model=model(self.keras_inputs,**modelargs) + except BaseException as e: + print('problem in setting model. Reminder: since DJC 2.0, NClassificationTargets and RegressionTargets must not be specified anymore') + raise e if not self.keras_model: raise Exception('Setting model not successful') @@ -349,7 +353,7 @@ def saveModel(self,outfile): def _initTraining(self, nepochs, - batchsize,maxqsize): + batchsize): if self.submitbatch: @@ -384,7 +388,6 @@ def trainModel(self, lr_epsilon=0.003, lr_cooldown=6, lr_minimum=0.000001, - maxqsize=3, checkperiod=10, additional_plots=None, additional_callbacks=None, @@ -395,7 +398,7 @@ def trainModel(self, # write only after the output classes have been added - self._initTraining(nepochs,batchsize,maxqsize) + self._initTraining(nepochs,batchsize) #self.keras_model.save(self.outputDir+'KERAS_check_last_model.h5') print('setting up callbacks') @@ -436,15 +439,13 @@ def trainModel(self, validation_data=(X_test, Y_test), **trainargs) else: - self.train_data.prepareGenerator() - self.val_data.prepareGenerator() self.keras_model.fit_generator(self.train_data.generator() , steps_per_epoch=self.train_data.getNBatchesPerEpoch(), epochs=nepochs-self.trainedepoches, callbacks=self.callbacks.callbacks, validation_data=self.val_data.generator(), validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, - max_queue_size=maxqsize, + max_queue_size=1, #max_q_size=1, use_multiprocessing=False, #the threading one doe not loke DJC **trainargs) @@ -472,7 +473,7 @@ def trainGAN_exp(self, additional_plots=None, additional_callbacks=None): - self._initTraining(nepochs,batchsize,maxqsize=5) + self._initTraining(nepochs,batchsize) print('setting up callbacks') from .DeepJet_callbacks import DeepJet_callbacks From 221c0ef5ea30e68ad7e430201357acc0dd7fa36d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 8 Nov 2019 18:46:38 +0100 Subject: [PATCH 135/437] reintroduced ramcopy --- bin/testEnvironment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py index f39568e..9a1f10c 100755 --- a/bin/testEnvironment.py +++ b/bin/testEnvironment.py @@ -44,7 +44,7 @@ cd {djc_base}/testing rm -rf batchDC export PYTHONPATH=`pwd`:$PYTHONPATH -convertFromRoot.py --noramcopy -i files/filelist.txt -o batchDC -c TrainData_testBatch -n 1 +convertFromRoot.py -i files/filelist.txt -o batchDC -c TrainData_testBatch -n 1 '''.format(djc_base=djc_base) os.system(script) From a7b2c8a6a911cc672906f272bb22346a66f7eeb7 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 10 Nov 2019 12:34:04 +0100 Subject: [PATCH 136/437] some documentation, row splits compressed and sizet now --- DataCollection.py | 13 +- DataCollection_compat.py | 9 ++ README.md | 19 +++ TrainData.py | 13 +- bin/convertPre2.0DCtoDC.py | 21 ++- bin/convertPre2.0TDtoTD.py | 14 +- bin/createSubpackage.py | 237 ++++++---------------------- compiled/interface/quicklzWrapper.h | 6 +- compiled/interface/simpleArray.h | 23 ++- compiled/to_bin/testpipeline.cpp | 13 +- 10 files changed, 153 insertions(+), 215 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index d4ac88b..accf68d 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -303,13 +303,12 @@ def __writeData(self, sample, outputDir): fileTimeOut(sample,120) #once available copy to ram - td.convertFromSourceFile(sample, self.weighterobjects) - sbasename = os.path.basename(sample) newname = sbasename[:sbasename.rfind('.')]+'.djctd' - newpath=os.path.abspath(outputDir+newname) - td.writeToFile(newpath) + + td.writeFromSourceFile(sample, self.weighterobjects,newpath) + print('converted and written '+newname+' in ',sw.getAndReset(),' sec') self.samples.append(newname) self.nsamples+=td.nsamples @@ -371,11 +370,7 @@ def removefile(): try: logger.info('convertFromSourceFile') - td.convertFromSourceFile(tmpinput, self.weighterobjects) - logger.info('writeOut') - #wrlck.acquire() - td.writeToFile(newpath) - #wrlck.release() + td.writeFromSourceFile(tmpinput, self.weighterobjects,newpath) print('converted and written '+newname+' in ',sw.getAndReset(),' sec -', index) out_samplename=newname diff --git a/DataCollection_compat.py b/DataCollection_compat.py index 03e9c69..b36d41b 100644 --- a/DataCollection_compat.py +++ b/DataCollection_compat.py @@ -303,6 +303,15 @@ def writeToFile(self,filename): shutil.move(fd.name, filename) + ## for conversion essential!!! + def readRawFromFile(self,filename): + #no assumption on data class + fd=open(filename,'rb') + self.samples=pickle.load(fd) + self.sampleentries=pickle.load(fd) + self.originRoots=pickle.load(fd) + fd.close() + def readFromFile(self,filename): fd=open(filename,'rb') self.samples=pickle.load(fd) diff --git a/README.md b/README.md index df77443..e36b620 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ DeepJetCore: Package for training and evaluation of deep neural networks for HEP =============================================================================== +(For upgrading from DeepJetCore 1.X to 2.0, please scroll to the bottom) + This package provides the basic functions for out-of-memory training, resampling, and basic evaluation. For simple use cases, only two files need to be adapted: the actual training data structures, describing how to fill numpy arrays from root trees, and the DNN model itself. Both must be defined in an additional user package. Please refer to the Section 'Usage' for more information. @@ -46,3 +48,20 @@ In general, the following steps are needed for a training and evaluation: * For plotting, there are a few simple wrappers provided, which can be found in DeepJetCore/evaluation/evaluation.py, for making ROCs and simple plots. As input, these functions take the text file created by the predict.py script. +Upgrading from 1.X to 2.X +========================= + +There has been substantial format changes from 1.X to 2.X, including low-level support preparations for ragged tensors. Therefore, all data from 1.X needs to be converted or newly created. Also, the interface changed slightly. + +The TrainData class has been slimmed significantly. Now, the ``__init`` function does not need any additional arguments anymore, and there are no mandatory definitions. Only the following functions should be defined for the interface (all others are deprecated): + + * ``createWeighterObjects(self, allsourcefiles)``: is not mandatory. It can be used, however to create a dictionary (pickable) objects that depend on the whole dataset (e.g. for numbers for normalisation etc). **Returns**: a dictionary of weighter objects + * ``convertFromSourceFile(self, filename, weighterobjects)``: is mandatory (unless ``writeFromSourceFile`` is defined). This function defines a rule to convert one source file to one output file. The final output should be a list of numpy feature arrays, a list of numpy truth arrays, and a list of numpy weight arrays. The latter can also be empty. The conversion can be done from root e.g. with uproot or similar, but can also use any other input format. **Returns**: a tuple or , , + * ``writeFromSourceFile(self, filename, weighterobjects, outname)``: should *not* be defined (unless ``convertFromSourceFile`` is undefined). Defines a rule how to write out the C++ ``trainData`` object directly, without necessarily going through numpy. Mostly meant for experiences users. **Returns**: nothing + * ``writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile)``: is mandatory. Defines how the output of the network should be written back to an output format. This could e.g. be a root tree, which can be a friend to the original tree, or any other output. The function gives optional access to all input features, truth, weights (if any), and the input source file name. **Returns**: nothing + +Of course any user function, member etc beyond that can be defined, too. + + + + diff --git a/TrainData.py b/TrainData.py index edb96a7..2d55d47 100644 --- a/TrainData.py +++ b/TrainData.py @@ -153,9 +153,18 @@ def createWeighterObjects(self, allsourcefiles): ''' return {} + ### either of the following need to be defined + + ## if direct writeout is useful + def writeFromSourceFile(self, filename, weighterobjects, outname): + self.x, self.y, self.w = self.convertFromSourceFile(filename, weighterobjects) + self.writeToFile(newpath) + + ## otherwise only define the conversion rule def convertFromSourceFile(self, filename, weighterobjects): - pass + return [],[],[] - def writeOutPrediction(self, predicted, features, truth, weights, outfilename): + ## defines how to write out the prediction + def writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile): pass diff --git a/bin/convertPre2.0DCtoDC.py b/bin/convertPre2.0DCtoDC.py index f551044..dcc16ce 100755 --- a/bin/convertPre2.0DCtoDC.py +++ b/bin/convertPre2.0DCtoDC.py @@ -13,25 +13,38 @@ from DeepJetCore.TrainData import TrainData from DeepJetCore.DataCollection_compat import DataCollection as DCOld -from DeepJetCore.DataCollection import DataCollection +from DeepJetCore.DataCollection import DataCollection +from DeepJetCore.conversion.conversion import class_options parser = ArgumentParser('simple program to convert old datacollection format to the new one') parser.add_argument("infile", help="input \"meta\" file") +parser.add_argument("-c", choices = class_options.keys(), help="set new output class (options: %s)" % ', '.join(class_options.keys()), metavar="Class") + # process options args=parser.parse_args() infile=args.infile +class_name = args.c + +if class_name in class_options: + traind = class_options[class_name] +elif not recover and not testdatafor: + print('available classes:') + for key, val in class_options.iteritems(): + print(key) + raise Exception('wrong class selection') + if not ".dc" in infile: - print('wrong input file '+infile) - exit() + raise Exception('wrong input file '+infile) dir = os.path.dirname(infile) dcold = DCOld() -dcold.readFromFile(infile) +dcold.readRawFromFile(infile) dcnew = DataCollection() +dcnew.dataclass = traind() dcnew.samples = [s[:-4]+'djctd' for s in dcold.samples] print(dcnew.samples) dcnew.sourceList = dcold.originRoots diff --git a/bin/convertPre2.0TDtoTD.py b/bin/convertPre2.0TDtoTD.py index e9d7dc7..03bdbf6 100755 --- a/bin/convertPre2.0TDtoTD.py +++ b/bin/convertPre2.0TDtoTD.py @@ -7,12 +7,24 @@ ''' from argparse import ArgumentParser +from DeepJetCore.conversion.conversion import class_options parser = ArgumentParser('simple program to convert old (pre 2.0) traindata format to the new one') parser.add_argument("infile", help="input \"meta\" file") +parser.add_argument("-c", choices = class_options.keys(), help="set new output class (options: %s)" % ', '.join(class_options.keys()), metavar="Class") # process options args=parser.parse_args() infile=args.infile +class_name = args.c + +if class_name in class_options: + traind = class_options[class_name] +elif not recover and not testdatafor: + print('available classes:') + for key, val in class_options.iteritems(): + print(key) + raise Exception('wrong class selection') + if not ".meta" in infile: print('wrong input file '+infile) @@ -29,7 +41,7 @@ from DeepJetCore.TrainData import TrainData -tdnew = TrainData() +tdnew = traind() tdnew.x = x tdnew.y = y diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 0ff0087..def3c17 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -23,7 +23,6 @@ environment_file=''' #! /bin/bash - export {subpackage}=$( cd "$( dirname "${BASH_SOURCE}" )" && pwd -P) export DEEPJETCORE_SUBPACKAGE=${subpackage} @@ -31,6 +30,7 @@ export PYTHONPATH=${subpackage}/modules:$PYTHONPATH export PYTHONPATH=${subpackage}/modules/datastructures:$PYTHONPATH export PATH=${subpackage}/scripts:$PATH + '''.format(deepjetcore=deepjetcore, subpackage=args.subpackage_name.upper(), subpackage_dir=os.path.abspath(subpackage_dir), @@ -61,37 +61,38 @@ class TrainData_example(TrainData): def __init__(self): TrainData.__init__(self) - - self.treename="tree" #input root tree name - - self.truthclasses=['isA','isB','isC'] #truth classes for classification - - self.weightbranchX='isA' #needs to be specified if weighter is used - self.weightbranchY='isB' #needs to be specified if weighter is used - - #there is no need to resample/reweight - self.weight=False - self.remove=False - #does not do anything in this configuration - self.referenceclass='flatten' - self.weight_binX = numpy.array([0,40000],dtype=float) - self.weight_binY = numpy.array([0,40000],dtype=float) - - - self.registerBranches(['']) #list of branches to be used - - #means norms are only produced for branches that are registered (for performance reasons) - self.registerBranches(self.truthclasses) - - - #call this at the end - self.reduceTruth(None) - + # no class member is mandatory + self.description = "This is a TrainData example file. Having a description string is not a bad idea (but not mandatory), e.g. for describing the array structure." + #define any other (configuration) members that seem useful + self.someusefulemember = "something you might need later" + + + #def createWeighterObjects(self, allsourcefiles): + # + # This function can be used to derive weights (or whatever quantity) + # based on the entire data sample. It should return a dictionary that will then + # be passed to either of the following functions. The weighter objects + # should be pickleable. + # In its default implementation, the dict is empty + # return {} - def readFromRootFile(self,filename,TupleMeanStd, weighter): + #def writeFromSourceFile(self, filename, weighterobjects, outname): + # if direct writeout is useful, the following function CAN be defined INSTEAD OF convertFromSourceFile + # It is, however not needed if convertFromSourceFile is defined (see below) - # this function defines how to convert the root ntuple to the training format - # options are not yet described here + def convertFromSourceFile(self, filename, weighterobjects): + # This is the only really mandatory function (unless writeFromSourceFile is defined). + # It defines the conversion rule from an input source file to the lists of training + # arrays self.x, self.y, self.w + # self.x is a list of input feature arrays + # self.y is a list of truth arrays + # self.w is optional and can contain a weight array + # (needs to have same number of entries as truth array) + # If no weights are needed, this can be left completely empty + # + # The conversion should convert finally to numpy arrays. In the future, + # also tensorflow tensors will be supported. + # import ROOT fileTimeOut(filename,120) #give eos a minute to recover @@ -106,7 +107,7 @@ def readFromRootFile(self,filename,TupleMeanStd, weighter): feature_array = read2DArray(filename,"tree","image2d",self.nsamples,32,32) print('feature_array',feature_array.shape) - truth = self.read_truthclasses(filename) + truth = #notremoves=weighter.createNotRemoveIndices(Tuple) @@ -117,161 +118,16 @@ def readFromRootFile(self,filename,TupleMeanStd, weighter): self.nsamples=len(feature_array) - self.x=[feature_array] # list of feature numpy arrays - self.y=[truth] # list of target numpy arrays (truth) - self.w=[] # list of weight arrays. One for each truth target, not used - - - def formatPrediction(self, predicted_list): + #returns a list of feature arrays, a list of truth arrays and a list of weight arrays + return [feature_array], [truth], [] + + ## defines how to write out the prediction + def writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile): format_names = ['prob_isA','prob_isB','prob_isC'] out_pred = [predicted_list[0][:,0],predicted_list[0][:,1],predicted_list[0][:,2]] - return out_pred, format_names - -class TrainData_example_reg(TrainData): - def __init__(self): - TrainData.__init__(self) - - self.treename="tree" #input root tree name - - self.truthclasses=[]#['isA','isB','isC'] #truth classes for classification - self.regressiontargetclasses=['sigsum'] - - self.weightbranchX='isA' #needs to be specified if weighter is used - self.weightbranchY='isB' #needs to be specified if weighter is used - - #there is no need to resample/reweight - self.weight=False - self.remove=False - #does not do anything in this configuration - self.referenceclass='flatten' - self.weight_binX = numpy.array([0,40000],dtype=float) - self.weight_binY = numpy.array([0,40000],dtype=float) - - - self.registerBranches(self.regressiontargetclasses) #list of branches to be used - - self.registerBranches(self.truthclasses) - - - #call this at the end - self.reduceTruth(None) - - - def readFromRootFile(self,filename,TupleMeanStd, weighter): - - # this function defines how to convert the root ntuple to the training format - # options are not yet described here - - import ROOT - fileTimeOut(filename,120) #give eos a minute to recover - rfile = ROOT.TFile(filename) - tree = rfile.Get("tree") - self.nsamples=tree.GetEntries() - - - # user code, example works with the example 2D images in root format generated by make_example_data - from DeepJetCore.preprocessing import read2DArray - print(filename) - feature_array = read2DArray(filename,"tree","image2d",self.nsamples,32,32) - - npy_array = self.readTreeFromRootToTuple(filename) - reg_truth = npy_array['sigsum'] - - #notremoves=weighter.createNotRemoveIndices(Tuple) - - # this removes parts of the dataset for weighting the events - #feature_array = feature_array[notremoves > 0] - - # call this in the end - - self.nsamples=len(feature_array) - - self.x=[feature_array] # list of feature numpy arrays - self.y=[reg_truth] # list of target numpy arrays (truth) - self.w=[] # list of weight arrays. One for each truth target, not used - def formatPrediction(self, predicted_list): - - format_names = ['sigsum'] - out_pred = predicted_list - - return out_pred, format_names - - -class TrainData_example_frac(TrainData): - def __init__(self): - TrainData.__init__(self) - - self.treename="tree" #input root tree name - - self.truthclasses=[]#['isA','isB','isC'] #truth classes for classification - self.regressiontargetclasses=['sigfrac_bgfrac_featforweights'] - - self.weightbranchX='isA' #needs to be specified if weighter is used - self.weightbranchY='isB' #needs to be specified if weighter is used - - #there is no need to resample/reweight - self.weight=False - self.remove=False - #does not do anything in this configuration - self.referenceclass='flatten' - self.weight_binX = numpy.array([0,40000],dtype=float) - self.weight_binY = numpy.array([0,40000],dtype=float) - - - #self.registerBranches() #list of branches to be used - - self.registerBranches(self.truthclasses) - - - #call this at the end - self.reduceTruth(None) - - - def readFromRootFile(self,filename,TupleMeanStd, weighter): - - # this function defines how to convert the root ntuple to the training format - # options are not yet described here - import numpy as np - import ROOT - fileTimeOut(filename,120) #give eos a minute to recover - rfile = ROOT.TFile(filename) - tree = rfile.Get("tree") - self.nsamples=tree.GetEntries() - - - # user code, example works with the example 2D images in root format generated by make_example_data - from DeepJetCore.preprocessing import read2DArray - print(filename) - feature_array = read2DArray(filename,"tree","image2d",self.nsamples,32,32) - - reg_truth = read2DArray(filename,"tree","sigfrac2d",self.nsamples,32,32) - bgfrac = 1 - reg_truth - - truth = np.concatenate([reg_truth, bgfrac, feature_array], axis=-1) - - #notremoves=weighter.createNotRemoveIndices(Tuple) - - # this removes parts of the dataset for weighting the events - #feature_array = feature_array[notremoves > 0] - - # call this in the end - - self.nsamples=len(feature_array) - - self.x=[feature_array] # list of feature numpy arrays - self.y=[truth] # list of target numpy arrays (truth) - self.w=[] # list of weight arrays. One for each truth target, not used - - - def formatPrediction(self, predicted_list): - - format_names = ['sigfrac','bgfrac'] - out_pred = [predicted_list[0][:,:,1],predicted_list[0][:,:,2]] - - return out_pred, format_names ''' @@ -387,9 +243,20 @@ def my_regression_model(Inputs,nclasses,nregressions,otheroption): ''' makefile_template=''' + +# +# This file might need some adjustments but should serve as a good basis +# + +PYTHON_INCLUDE = `python-config --includes` +PYTHON_LIB=`python-config --libs` + +ROOTSTUFF=`root-config --libs --glibs --ldflags` +ROOTCFLAGS=`root-config --cflags` + CPP_FILES := $(wildcard src/*.cpp) OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) -LD_FLAGS := `root-config --cflags --glibs` -lMathMore -L${DEEPJETCORE}/compiled -ldeepjetcorehelpers +LD_FLAGS := `root-config --cflags --glibs` -lMathMore -L${DEEPJETCORE}/compiled -ldeepjetcorehelpers -lquicklz CC_FLAGS := -fPIC -g -Wall `root-config --cflags` CC_FLAGS += -I./interface -I${DEEPJETCORE}/compiled/interface #CC_FLAGS += -MMD @@ -398,10 +265,10 @@ def my_regression_model(Inputs,nclasses,nregressions,otheroption): all: $(patsubst bin/%.cpp, %, $(wildcard bin/*.cpp)) #compile the module helpers if necessary -../modules/libdeepjethelpers.so: - cd ../modules; make; cd - +#../modules/libsubpackagehelpers.so: +# cd ../modules; make; cd - -%: bin/%.cpp $(OBJ_FILES) ${DEEPJETCORE}/compiled/libdeepjetcorehelpers.so +%: bin/%.cpp $(OBJ_FILES) g++ $(CC_FLAGS) $(LD_FLAGS) $(OBJ_FILES) $< -o $@ diff --git a/compiled/interface/quicklzWrapper.h b/compiled/interface/quicklzWrapper.h index 558de48..ba92d34 100644 --- a/compiled/interface/quicklzWrapper.h +++ b/compiled/interface/quicklzWrapper.h @@ -47,7 +47,7 @@ class quicklz{ //writes header and compressed data //give size in terms of T - void writeCompressed(T * arr, size_t size, FILE *& ofile); + void writeCompressed(const T * arr, size_t size, FILE *& ofile); private: @@ -144,10 +144,10 @@ size_t quicklz::readAll(FILE *& ifile, T * arr) { } template -void quicklz::writeCompressed(T * arr, size_t size, FILE *& ofile) { +void quicklz::writeCompressed(const T * arr, size_t size, FILE *& ofile) { size_t length = size * sizeof(T); - char *src = (char*) (void*) arr; + const char *src = (const char*) (const void*) arr; //destination buffer char *dst = new char[length + 400]; diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 7826b24..4e460d3 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -70,11 +70,11 @@ class simpleArray { // Only one ragged dimension is supported, first dimension MUST NOT be ragged // Still to be implemented. All read/write functions already include this data // - // const std::vector& rowsplits() const { + // const std::vector& rowsplits() const { // return rowsplits_; // } // - // void setRowsplits(const std::vector& rowsplits) { + // void setRowsplits(const std::vector& rowsplits) { // rowsplits_ = rowsplits; // } @@ -157,7 +157,7 @@ class simpleArray { T * data_; std::vector shape_; - std::vector rowsplits_; + std::vector rowsplits_; size_t size_; bool assigned_; }; @@ -350,18 +350,25 @@ void simpleArray::append(const simpleArray& a) { template void simpleArray::addToFile(FILE *& ofile) const { + + float version = DJCDATAVERSION; io::writeToFile(&version, ofile); io::writeToFile(&size_, ofile); size_t ssize = shape_.size(); io::writeToFile(&ssize, ofile); io::writeToFile(&shape_[0], ofile, shape_.size()); + size_t rssize = rowsplits_.size(); io::writeToFile(&rssize, ofile); - io::writeToFile(&rowsplits_[0], ofile, rowsplits_.size()); + if(rssize){ + quicklz iqlz; + iqlz.writeCompressed(&rowsplits_[0],rssize , ofile); + } quicklz qlz; qlz.writeCompressed(data_, size_, ofile); + } template @@ -383,11 +390,13 @@ void simpleArray::readFromFile(FILE *& ifile) { size_t rssize = 0; io::readFromFile(&rssize, ifile); rowsplits_ = std::vector(rssize, 0); - io::readFromFile(&rowsplits_[0], ifile, rssize); - - data_ = new T[size_]; + if(rssize){ + quicklz iqlz; + iqlz.readAll(ifile, &rowsplits_[0]); + } quicklz qlz; + data_ = new T[size_]; size_t nread = qlz.readAll(ifile, data_); if (nread != size_) throw std::runtime_error( diff --git a/compiled/to_bin/testpipeline.cpp b/compiled/to_bin/testpipeline.cpp index 33445d0..273a460 100644 --- a/compiled/to_bin/testpipeline.cpp +++ b/compiled/to_bin/testpipeline.cpp @@ -23,7 +23,7 @@ using namespace djc; int main(){ //create some data - +/* bool write=false; if(write){ trainData bigtd; @@ -92,7 +92,7 @@ int main(){ return 0; - +*/ simpleArray farr({5,2,1}); for(float i=0;i td; @@ -219,7 +224,7 @@ int main(){ trainData bigtd; - auto fidx = bigtd.addFeatureArray({1000, 4000, 10}); + size_t fidx = bigtd.addFeatureArray({1000, 4000, 10}); for(size_t i=0;i Date: Sun, 10 Nov 2019 17:38:55 +0100 Subject: [PATCH 137/437] fixes, predict works, examples work --- DataCollection.py | 5 +- README.md | 3 +- TrainData.py | 8 +- bin/createSubpackage.py | 81 ++++------- bin/predict.py | 65 ++++----- evaluation/evaluation.py | 243 --------------------------------- preprocessing/preprocessing.py | 2 +- 7 files changed, 68 insertions(+), 339 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index accf68d..954ff32 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -35,6 +35,7 @@ def __init__(self, infile = None, nprocs = -1): self.weighterobjects={} self.batch_mode = False + self.nprocs=-1 def clear(self): self.samples=[] @@ -307,7 +308,7 @@ def __writeData(self, sample, outputDir): newname = sbasename[:sbasename.rfind('.')]+'.djctd' newpath=os.path.abspath(outputDir+newname) - td.writeFromSourceFile(sample, self.weighterobjects,newpath) + td.writeFromSourceFile(sample, self.weighterobjects, istraining=True, outname=newpath) print('converted and written '+newname+' in ',sw.getAndReset(),' sec') self.samples.append(newname) @@ -370,7 +371,7 @@ def removefile(): try: logger.info('convertFromSourceFile') - td.writeFromSourceFile(tmpinput, self.weighterobjects,newpath) + td.writeFromSourceFile(tmpinput, self.weighterobjects, istraining = True, outname=newpath) print('converted and written '+newname+' in ',sw.getAndReset(),' sec -', index) out_samplename=newname diff --git a/README.md b/README.md index e36b620..056add3 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,7 @@ There has been substantial format changes from 1.X to 2.X, including low-level s The TrainData class has been slimmed significantly. Now, the ``__init`` function does not need any additional arguments anymore, and there are no mandatory definitions. Only the following functions should be defined for the interface (all others are deprecated): * ``createWeighterObjects(self, allsourcefiles)``: is not mandatory. It can be used, however to create a dictionary (pickable) objects that depend on the whole dataset (e.g. for numbers for normalisation etc). **Returns**: a dictionary of weighter objects - * ``convertFromSourceFile(self, filename, weighterobjects)``: is mandatory (unless ``writeFromSourceFile`` is defined). This function defines a rule to convert one source file to one output file. The final output should be a list of numpy feature arrays, a list of numpy truth arrays, and a list of numpy weight arrays. The latter can also be empty. The conversion can be done from root e.g. with uproot or similar, but can also use any other input format. **Returns**: a tuple or , , - * ``writeFromSourceFile(self, filename, weighterobjects, outname)``: should *not* be defined (unless ``convertFromSourceFile`` is undefined). Defines a rule how to write out the C++ ``trainData`` object directly, without necessarily going through numpy. Mostly meant for experiences users. **Returns**: nothing + * ``convertFromSourceFile(self, filename, weighterobjects)``: is mandatory. This function defines a rule to convert one source file to one output file. The final output should be a list of numpy feature arrays, a list of numpy truth arrays, and a list of numpy weight arrays. The latter can also be empty. The conversion can be done from root e.g. with uproot or similar, but can also use any other input format. **Returns**: a tuple or , , * ``writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile)``: is mandatory. Defines how the output of the network should be written back to an output format. This could e.g. be a root tree, which can be a friend to the original tree, or any other output. The function gives optional access to all input features, truth, weights (if any), and the input source file name. **Returns**: nothing Of course any user function, member etc beyond that can be defined, too. diff --git a/TrainData.py b/TrainData.py index 2d55d47..3696670 100644 --- a/TrainData.py +++ b/TrainData.py @@ -156,12 +156,12 @@ def createWeighterObjects(self, allsourcefiles): ### either of the following need to be defined ## if direct writeout is useful - def writeFromSourceFile(self, filename, weighterobjects, outname): - self.x, self.y, self.w = self.convertFromSourceFile(filename, weighterobjects) - self.writeToFile(newpath) + def writeFromSourceFile(self, filename, weighterobjects, istraining, outname): + self.x, self.y, self.w = self.convertFromSourceFile(filename, weighterobjects, istraining) + self.writeToFile(outname) ## otherwise only define the conversion rule - def convertFromSourceFile(self, filename, weighterobjects): + def convertFromSourceFile(self, filename, weighterobjects, istraining): return [],[],[] ## defines how to write out the prediction diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index def3c17..cddb29a 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -51,12 +51,8 @@ datastructure_template=''' - - - - from DeepJetCore.TrainData import TrainData, fileTimeOut -import numpy +import numpy as np class TrainData_example(TrainData): def __init__(self): @@ -76,11 +72,8 @@ def __init__(self): # In its default implementation, the dict is empty # return {} - #def writeFromSourceFile(self, filename, weighterobjects, outname): - # if direct writeout is useful, the following function CAN be defined INSTEAD OF convertFromSourceFile - # It is, however not needed if convertFromSourceFile is defined (see below) - def convertFromSourceFile(self, filename, weighterobjects): + def convertFromSourceFile(self, filename, weighterobjects, istraining): # This is the only really mandatory function (unless writeFromSourceFile is defined). # It defines the conversion rule from an input source file to the lists of training # arrays self.x, self.y, self.w @@ -92,29 +85,35 @@ def convertFromSourceFile(self, filename, weighterobjects): # # The conversion should convert finally to numpy arrays. In the future, # also tensorflow tensors will be supported. + # + # In this example, differnt ways of reading files are deliberatly mixed # + + print('reading '+filename) + import ROOT fileTimeOut(filename,120) #give eos a minute to recover rfile = ROOT.TFile(filename) tree = rfile.Get("tree") - self.nsamples=tree.GetEntries() - + nsamples = tree.GetEntries() # user code, example works with the example 2D images in root format generated by make_example_data from DeepJetCore.preprocessing import read2DArray - print(filename) - feature_array = read2DArray(filename,"tree","image2d",self.nsamples,32,32) + + feature_array = read2DArray(filename,"tree","image2d",nsamples,32,32) print('feature_array',feature_array.shape) - truth = - #notremoves=weighter.createNotRemoveIndices(Tuple) + + import uproot + + urfile = uproot.open(filename)["tree"] + truth = np.concatenate([np.expand_dims(urfile.array("isA"), axis=1) , + np.expand_dims(urfile.array("isB"), axis=1), + np.expand_dims(urfile.array("isC"), axis=1)],axis=1) - # this removes parts of the dataset for weighting the events - #feature_array = feature_array[notremoves > 0] - - # call this in the end + truth = truth.astype(dtype='float32', order='C') #important, float32 and C-type! self.nsamples=len(feature_array) @@ -123,18 +122,18 @@ def convertFromSourceFile(self, filename, weighterobjects): ## defines how to write out the prediction def writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile): + # predicted will be a list - format_names = ['prob_isA','prob_isB','prob_isC'] - out_pred = [predicted_list[0][:,0],predicted_list[0][:,1],predicted_list[0][:,2]] + from root_numpy import array2root + out = np.core.records.fromarrays(predicted[0].transpose(), + names='prob_isA, prob_isB, prob_isC') + + array2root(out, outfilename, 'tree') - - ''' training_template=''' - - from DeepJetCore.training.training_base import training_base import keras from keras.models import Model @@ -158,35 +157,13 @@ def my_model(Inputs,nclasses,nregressions,otheroption): predictions = [x] return Model(inputs=Inputs, outputs=predictions) -def my_regression_model(Inputs,nclasses,nregressions,otheroption): - - x = Inputs[0] #this is the self.x list from the TrainData data structure - x = BatchNormalization(momentum=0.9)(x) - x = Conv2D(8,(4,4),activation='relu', padding='same')(x) - x = Conv2D(8,(4,4),activation='relu', padding='same')(x) - x = Conv2D(8,(4,4),activation='relu', padding='same')(x) - x = BatchNormalization(momentum=0.9)(x) - x = Conv2D(8,(4,4),strides=(2,2),activation='relu', padding='valid')(x) - x = Conv2D(4,(4,4),strides=(2,2),activation='relu', padding='valid')(x) - x = Flatten()(x) - x = Dense(32, activation='relu')(x) - - x = Dense(nregressions, activaton='None')(x) - - predictions = [x] - return Model(inputs=Inputs, outputs=predictions) - - train=training_base(testrun=False,resumeSilently=False,renewtokens=True) - if not train.modelSet(): # allows to resume a stopped/killed training. Only sets the model if it cannot be loaded from previous snapshot - #for regression use the regression model train.setModel(my_model,otheroption=1) - #for regression use a different loss, e.g. mean_squared_error train.compileModel(learningrate=0.003, loss='categorical_crossentropy') @@ -282,7 +259,6 @@ def my_regression_model(Inputs,nclasses,nregressions,otheroption): ''' bin_template=''' - #include "TString.h" #include "friendTreeInjector.h" #include @@ -305,7 +281,6 @@ def my_regression_model(Inputs,nclasses,nregressions,otheroption): /* * For more information please refer to how to analse a TTree of the root documentation */ - } ''' @@ -348,13 +323,9 @@ def my_regression_model(Inputs,nclasses,nregressions,otheroption): print('Before using the subpackage, please log out, log in again and then source the "env.sh" file in the subpackage directory (not in DeepJetCore).') print('to convert to example TrainData format use:') print('convertFromRoot.py -i '+subpackage_dir+'/example_data/train_files.txt -o -c TrainData_example') -print('to convert the test data use:') -print('convertFromRoot.py -i '+subpackage_dir+'/example_data/test_files.txt -o --testdatafor /dataCollection.dc ') -print('\nAn example to run the training can be found in '+subpackage_dir+'/Train/training_example.py') -print('It can be run with: \npython '+subpackage_dir+'/Train/training_example.py /dataCollection.dc ') - - +print('\nAn example to run the training can be found in '+subpackage_dir+'/Train/training_example.py') +print('It can be run with: \npython '+subpackage_dir+'/Train/training_example.py /dataCollection.djcdc ') diff --git a/bin/predict.py b/bin/predict.py index 36a99ad..9710f4a 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -1,6 +1,7 @@ #!/usr/bin/env python import imp +from DeepJetCore.DataCollection import DataCollection try: imp.find_module('setGPU') import setGPU @@ -8,11 +9,11 @@ found = False from keras.models import load_model -from DeepJetCore.evaluation import testDescriptor from DeepJetCore.DJCLosses import * from DeepJetCore.DJCLayers import * from argparse import ArgumentParser from keras import backend as K +import os import imp try: imp.find_module('Losses') @@ -38,15 +39,11 @@ import os -parser = ArgumentParser('Apply a model to a (test) sample and create friend trees to inject it inthe original ntuple') +parser = ArgumentParser('Apply a model to a (test) source sample and create friend trees to inject it inthe original ntuple') parser.add_argument('inputModel') -parser.add_argument('inputDataCollection') +parser.add_argument('trainingDataCollection') +parser.add_argument('inputSourceFileList') parser.add_argument('outputDir') -parser.add_argument('--use', help='coma-separated list of prediction indexes to be used') -parser.add_argument('--labels', action='store_true', help='store true labels in the trees') -parser.add_argument('--monkey_class', default='', help='allows to read the data with a different TrainData, it is actually quite dangerous if you do not know what you are doing') -parser.add_argument('--numpy', help='switches on numpy rec-array output in addition to root files. Will produce ONE large file (can become big)', action='store_true' , default=False ) -parser.add_argument('--flat', help='Flatten the output to force it to maximum 1D', action='store_false' , default=False ) args = parser.parse_args() @@ -60,29 +57,33 @@ custom_objs.update(global_loss_list) custom_objs.update(global_layers_list) custom_objs.update(global_metrics_list) -model=load_model(args.inputModel, custom_objects=custom_objs) - - -td=testDescriptor(addnumpyoutput = args.numpy) -if args.use: - td.use_only = [int(i) for i in args.use.split(',')] - -from DeepJetCore.DataCollection import DataCollection - -testd=DataCollection() -testd.readFromFile(args.inputDataCollection) - - -os.mkdir(args.outputDir) -td.makePrediction( - model, testd, args.outputDir, - store_labels = args.labels, - monkey_class = args.monkey_class, - flatten_everything = args.flat -) -td.writeToTextFile(args.outputDir+'/tree_association.txt') - -# make the file reading entirely C++ -# then it can be used for other studies +model=load_model(args.inputModel, custom_objects=custom_objs) +dc = DataCollection(args.trainingDataCollection) +td = dc.dataclass +outputs = [] +inputdir = os.path.abspath(os.path.dirname(args.inputSourceFileList)) +os.system('mkdir -p '+args.outputDir) + +with open(args.inputSourceFileList, "r") as f: + for inputfile in f: + inputfile = inputfile.replace('\n', '') + x, y, w = td.convertFromSourceFile(inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) + outfilename = "pred_"+inputfile + predicted = model.predict(x) + if not type(predicted) == list: #circumvent that keras return only an array if there is just one list item + predicted = [predicted] + td.writeOutPrediction(predicted, x, y, w, args.outputDir + "/" + outfilename, inputfile) + outputs.append(outfilename) + print('written '+outfilename) + + +with open(args.outputDir + "/outfiles.txt","w") as f: + for l in outputs: + f.write(l+'\n') + + + + + diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index a4d4b18..2604c0a 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -42,251 +42,8 @@ , 'gray','gray,dashed'] from pdb import set_trace -from DeepJetCore.compiled import c_storeTensor -class testDescriptor(object): - - def __init__(self, addnumpyoutput=False): - self.__sourceroots=[] - self.__predictroots=[] - self.metrics=[] - self.use_only = [] - self.addnumpyoutput=addnumpyoutput - - - def makePrediction(self, model, testdatacollection, outputDir, - ident='', store_labels = False, monkey_class='', - flatten_everything=True): - - if not hasattr(testdatacollection.dataclass,'formatPrediction'): - return self.makePrediction_compat(model,testdatacollection,outputDir,ident, - store_labels,monkey_class) - - if hasattr(testdatacollection.dataclass, 'customlabels'): - print('Warning: customlabels are replaced by the formatPrediction function and will be ignored') - - - import numpy as np - import os - monkey_class_obj = None - if monkey_class: - module, classname = tuple(monkey_class.split(':')) - _temp = __import__(module, globals(), locals(), [classname], -1) - monkey_class_obj = getattr(_temp, classname) - - outputDir=os.path.abspath(outputDir) - - if len(ident)>0: - ident='_'+ident - - self.__sourceroots=[] - self.__predictroots=[] - self.metrics=[] - - - for i in range(len(testdatacollection.samples)): - sample=testdatacollection.samples[i] - originroot=testdatacollection.originRoots[i] - outrootfilename=os.path.splitext(os.path.basename(originroot))[0]+'_predict'+ident+'.root' - - fullpath=testdatacollection.getSamplePath(sample) - if monkey_class_obj is not None: - testdatacollection.dataclass = monkey_class_obj() - td=testdatacollection.dataclass - - td.readIn(fullpath) - - - - features=td.x - #labels=td.y #not needed - maybe we can add this as option so all info is in the output trees (no friends) - weights=None - if len(td.w): - weights=td.w - - prediction = model.predict(features) - if not isinstance(prediction, list): - prediction=[prediction] - - prediction, formatstring = td.formatPrediction(prediction) - if len(formatstring) < len(prediction): - formatstring.extend(['auto_pred_'+str(i) for i in range(len(prediction)-len(formatstring))]) - - if weights is not None: - prediction.append(weights) - formatstring.append('weight') - ###### prediction functor needs to be adapted!! - - #######NEW - if self.use_only: - prediction = [prediction[i] for i in self.use_only] - formatstring = [formatstring[i] for i in self.use_only] - - - - cont_pred = [np.ascontiguousarray(prediction[i], dtype=np.float32) for i in range(len(prediction))] - c_storeTensor.store([p.ctypes.data for p in cont_pred], - [a.shape for a in prediction], - outputDir+'/'+outrootfilename, - formatstring, - flatten_everything) - - self.__sourceroots.append(originroot) - self.__predictroots.append(outputDir+'/'+outrootfilename) - - print('written prediction output '+outputDir+'/'+outrootfilename) - - if self.addnumpyoutput: - print('addnumpyoutput: currently not supported (anymore), please request re-implementation') - - - #compatibility mode! - def makePrediction_compat(self, model, testdatacollection, outputDir, - ident='', store_labels = False, monkey_class=''): - - deprwarning=''' - -WARNING! makePrediction is being run in compatibilty mode. This mode will soon be deprecated. -The new prediction mode requires to define a function of the TrainData class that takes as input the prediction of the network \ -and as output a list of formatted predictions and associated names. -Each list item will be assigned an own branch name in the output tree -def formatPrediction(self, predicted_list): - - format_names = [name1, name2, ...] - out_pred = [predicted_list[1],predicted_list[0]] #e.g. if the order should be swapped - - return out_pred, format_names - - ''' - - print(deprwarning) - import numpy as np - from root_numpy import array2root - import os - monkey_class_obj = None - if monkey_class: - module, classname = tuple(monkey_class.split(':')) - _temp = __import__(module, globals(), locals(), [classname], -1) - monkey_class_obj = getattr(_temp, classname) - - outputDir=os.path.abspath(outputDir) - - if len(ident)>0: - ident='_'+ident - - self.__sourceroots=[] - self.__predictroots=[] - self.metrics=[] - - fullnumpyarray=np.array([]) - - for i in range(len(testdatacollection.samples)): - sample=testdatacollection.samples[i] - originroot=testdatacollection.originRoots[i] - outrootfilename=os.path.splitext(os.path.basename(originroot))[0]+'_predict'+ident+'.root' - - fullpath=testdatacollection.getSamplePath(sample) - if monkey_class_obj is not None: - testdatacollection.dataclass = monkey_class_obj() - td=testdatacollection.dataclass - - td.readIn(fullpath) - - if hasattr(td, 'customlabels'): - import copy - formatstring=copy.deepcopy(td.customlabels) - - else: - truthclasses=td.getUsedTruth() - formatstring=[] - if len(truthclasses)>0 and len(truthclasses[0])>0: - formatstring = ['prob_%s%s' % (i, ident) for i in truthclasses] - regressionclasses=[] - if hasattr(td, 'regressiontargetclasses'): - regressionclasses=td.regressiontargetclasses - #new implementation. Please check with the store_labels option, Mauro - formatstring.extend(['reg_%s%s' % (i, ident) for i in regressionclasses]) - - - features=td.x - labels=td.y - weights=None - if td.w is not None and len(td.w): - weights=td.w[0] - - - - prediction = model.predict(features) - if self.use_only: - prediction = [prediction[i] for i in self.use_only] - if isinstance(prediction, list): - all_write = np.concatenate(prediction, axis=1) - else: - all_write = prediction - - #if a prediction functor was set and the corresponding predictionFunctorClasses - #its output is also added to the final predictions - #predictionFunctorClasses: an array of strings labelling extra variables to add to the tree - #predictionFunctor: receives the numpy array with the predictions for N events - # returns MxN numpy array - # where M=len(predictionFunctorClasses) - # and N=no. events - if hasattr(td, 'predictionFunctor') and hasattr(td,'predictionFunctorClasses'): - print('Extending the output with the configured prediction functor output') - formatstring.extend( getattr(td,'predictionFunctorClasses') ) - all_write = np.concatenate([all_write, - getattr(td,'predictionFunctor')(prediction)], - axis=1) - - if all_write.ndim == 2: - if weights is not None: - all_write = np.concatenate([all_write, weights], axis=1) - formatstring.append('weight') - if not all_write.shape[1] == len(formatstring): - print(formatstring, ' vs ', all_write.shape[1]) - raise ValueError('Prediction output does not match with the provided targets!') - - all_write = np.core.records.fromarrays(np.transpose(all_write), names= ','.join(formatstring)) - array2root(all_write,outputDir+'/'+outrootfilename,"tree",mode="recreate") - - #self.metrics.append(metric) - self.__sourceroots.append(originroot) - self.__predictroots.append(outputDir+'/'+outrootfilename) - print(formatstring) - print('\ncreated prediction friend tree '+outputDir+'/'+outrootfilename+ ' for '+originroot) - if self.addnumpyoutput: - if len(fullnumpyarray): - fullnumpyarray=np.concatenate((fullnumpyarray,all_write)) - else: - fullnumpyarray=np.array(all_write) - else: - raise Exception("tensor output not supported (anymore) in compatibilty prediction mode!") - c_storeTensor.store(np.ascontiguousarray(all_write, dtype=np.float32).ctypes.data, list(np.shape(all_write)), outputDir+'/'+outrootfilename) - self.__sourceroots.append(originroot) - self.__predictroots.append(outputDir+'/'+outrootfilename) - if self.addnumpyoutput: - if len(fullnumpyarray): - fullnumpyarray=np.concatenate((fullnumpyarray,all_write)) - else: - fullnumpyarray=np.array(all_write) - - if self.addnumpyoutput: - np.save(outputDir+'/'+'allprediction.npy', fullnumpyarray) - - - def writeToTextFile(self, outfile): - ''' - Very simple text file output to use when creating chains with friends. - Format: - source0.root prediction0.root - source1.root prediction1.root - ... - ''' - listifle=open(outfile,'w') - for i in range(len(self.__predictroots)): - listifle.write(self.__sourceroots[i]+' '+self.__predictroots[i]+'\n') - listifle.close() def makeASequence(arg,length): isseq=(not hasattr(arg, "strip") and diff --git a/preprocessing/preprocessing.py b/preprocessing/preprocessing.py index 84548dd..67db40f 100644 --- a/preprocessing/preprocessing.py +++ b/preprocessing/preprocessing.py @@ -549,7 +549,7 @@ def read2DArray(filename, treename, branchname, nevents, xsize, ysize, from DeepJetCore.compiled import c_arrayReads array = numpy.zeros((nevents,xsize/rebinx, ysize/rebiny,1) , dtype='float32') - ncut=0 + ncut=numpy.array([0],dtype='float32') c_arrayReads.read2DArray(array,filename, treename, branchname,rebinx,rebiny,zeropad, False, ncut) return array From 36c5034006488db911aa91eb8488dd1d2ac5b31f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 10 Nov 2019 17:46:52 +0100 Subject: [PATCH 138/437] better description in subpackage generator --- bin/createSubpackage.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index cddb29a..f488ed0 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -134,12 +134,13 @@ def writeOutPrediction(self, predicted, features, truth, weights, outfilename, i training_template=''' + from DeepJetCore.training.training_base import training_base import keras from keras.models import Model from keras.layers import Dense, Conv2D, Flatten, BatchNormalization #etc -def my_model(Inputs,nclasses,nregressions,otheroption): +def my_model(Inputs,otheroption): x = Inputs[0] #this is the self.x list from the TrainData data structure x = BatchNormalization(momentum=0.9)(x) @@ -152,7 +153,8 @@ def my_model(Inputs,nclasses,nregressions,otheroption): x = Flatten()(x) x = Dense(32, activation='relu')(x) - x = Dense(nclasses, activation='softmax')(x) + # 3 prediction classes + x = Dense(3, activation='softmax')(x) predictions = [x] return Model(inputs=Inputs, outputs=predictions) @@ -174,11 +176,8 @@ def my_model(Inputs,nclasses,nregressions,otheroption): batchsize=500, checkperiod=1, # saves a checkpoint model every N epochs verbose=1) - - - - - + +print('Since the training is done, use the predict.py script to predict the model output on you test sample, e.g.:\n predict.py /KERAS_model.h5 /trainsamples.djcdc /test.txt ') ''' datastructures_init = ''' From 56408f4b14e97ac6987f16cac87f62986d8558c9 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 10 Nov 2019 17:51:07 +0100 Subject: [PATCH 139/437] better documentation --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 056add3..9f805fe 100644 --- a/README.md +++ b/README.md @@ -33,18 +33,18 @@ Usage DeepJetCore is only a set of tools and wrappers and does not provide ready-to-use training code. However, an example package containing more specific code examples (referred to as 'subpackage' in the following) can be created once the container is launched using the script ``createSubpackage.py``. -This subpackage will include an example dataset which gets generated on the fly (size about 150 MB). -More instructions are printed by the script creating the subpackage. +This subpackage includes an example dataset which gets generated on the fly (size about 150 MB) using the ``--data`` option. +**More instructions are printed by the script creating the subpackage and serve as documentation for a simple training.** This subpackage can serve as a reference for own projects. In general, the following steps are needed for a training and evaluation: * Always source the environment script (``env.sh``) in the subpackage directory, NOT in DeepJetCore. * Define the training data structure, e.i. which branches from the input root ntuples are read, and how they are re-organised as input to the DNN. An example can be found in subpackage/modules/datastructures * Convert the root ntuples into the training data format using convertFromRoot.py. Please consider the help message for options (``convertFromRoot.py -h``). The input is a list of root files contained in a text file. An example dataset is generated when setting up the subpackage. It can be found in subpackage/example_data. - Different files should be used for training and testing. To convert the training data, execute ``convertFromRoot.py -i -o -c TrainData_example``, with TrainData_example being the data structure defined before. To create the test dataset, execute ``convertFromRoot.py -i --testdatafor /dataCollection.dc -o ``. - * Train the model. The convertFromRoot.py script creates a set of output files and a descriptor (dataCollection.dc). This descriptor is fed to the training file which contains the model definition and an instance of the trainingbase class. An example is given in subpackage/Train/training_example.py. - This file is called with ``python training_example.py /path/to/data/dataCollection.dc ``. More options are provided and described when calling ``python training_example.py -h``. - * Once the training is done, the model can be used to predict the output of the model for the test data: ``predict.py /path/to/the/model.h5 /path/to/the/test/data/dataCollection.dc ``. Please keep in mind that the output can become large (not the case in the example). + Different files should be used for training and testing. To convert the training data, execute ``convertFromRoot.py -i -o -c TrainData_example``, with TrainData_example being the data structure defined before. The test data will be directly read by from the source files (see below). + * Train the model. The convertFromRoot.py script creates a set of output files and a descriptor (dataCollection.djcdc). This descriptor is fed to the training file which contains the model definition and an instance of the trainingbase class. An example is given in subpackage/Train/training_example.py. + This file is called with ``python training_example.py /path/to/data/dataCollection.djcdc ``. More options are provided and described when calling ``python training_example.py -h``. + * Once the training is done, the model can be used to predict the output of the model for the test data: ``predict.py /path/to/the/model.h5 /path/to/the/training/dataCollection.djcdc ``. Please keep in mind that the output can become large (not the case in the example). * For plotting, there are a few simple wrappers provided, which can be found in DeepJetCore/evaluation/evaluation.py, for making ROCs and simple plots. As input, these functions take the text file created by the predict.py script. From 2b2d1efd83e8123e984cff5d56630cafca1ffcd1 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 11 Nov 2019 09:59:32 +0100 Subject: [PATCH 140/437] snapshot with comments on future improvements --- DataCollection.py | 2 +- bin/convertPre2.0DCtoDC.py | 2 +- compiled/interface/trainDataGenerator.h | 36 ++++++++++++++++--------- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 954ff32..5c9fe91 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -539,7 +539,7 @@ def generator(self): while(1): try: - data = gen.getBatch(0)#in principle batch sizes can differ from batch to batch + data = gen.getBatch() xout = data[0] yout = data[1] wout = data[2] diff --git a/bin/convertPre2.0DCtoDC.py b/bin/convertPre2.0DCtoDC.py index dcc16ce..62b200b 100755 --- a/bin/convertPre2.0DCtoDC.py +++ b/bin/convertPre2.0DCtoDC.py @@ -28,7 +28,7 @@ if class_name in class_options: traind = class_options[class_name] -elif not recover and not testdatafor: +else: print('available classes:') for key, val in class_options.iteritems(): print(key) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index dceb108..103ae6f 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -23,6 +23,21 @@ namespace djc{ * Base class, no numpy interface or anything yet. * Inherit from/use this class and define the actual batch feed function. * This could as well be filling a (ragged) tensorflow tensor + * + * + * Notes for future improvements: + * + * - pre-split trainData in buffer (just make it a vector/fifo-like queue) + * propagates to trainData, simpleArray, then make multiple memcpy (even threaded?) + * (but not read - it is still a split!) + * This makes the second thread obsolete, and still everything way faster! + * + * - for ragged: instead of batch size, set upper limit on data size (number of floats) + * can be used to pre-split in a similar way + * + * + * + * */ template class trainDataGenerator{ @@ -71,14 +86,14 @@ class trainDataGenerator{ * The batch size is always the size of the NEXT batch! * */ - trainData getBatch(size_t batchsize=0); //if no threading batch index can be given? just for future? + trainData getBatch(); //if no threading batch index can be given? just for future? bool debug; private: void shuffleFilelist(); void readBuffer(); void readNTotal(); - void prepareBatch(size_t batchsize=0); + void prepareBatch(); std::vector orig_infiles_; std::vector shuffled_infiles_; int randomcount_; @@ -198,25 +213,22 @@ void trainDataGenerator::end(){ } template -trainData trainDataGenerator::getBatch(size_t batchsize){ +trainData trainDataGenerator::getBatch(){ if(! preparethread_) throw std::runtime_error("trainDataGenerator::getBatch: prepare thread not launched. Call prepareNextEpoch first"); preparethread_->join(); auto out = prepared_tdbatch_; //std::move? data not needed anymore? prepared_tdbatch_.clear(); - preparethread_ = new std::thread(&trainDataGenerator::prepareBatch,this,batchsize); + preparethread_ = new std::thread(&trainDataGenerator::prepareBatch,this); return out; } template -void trainDataGenerator::prepareBatch(size_t batchsize){ +void trainDataGenerator::prepareBatch(){ size_t bufferelements=buffer_store.nElements(); - if(!batchsize) - batchsize=batchsize_; - lastbatchsize_=batchsize; - while(bufferelementsjoin(); @@ -242,10 +254,10 @@ void trainDataGenerator::prepareBatch(size_t batchsize){ } } if(debug) - std::cout << "provided batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+batchsize << + std::cout << "provided batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+batchsize_ << " elements in buffer: " << bufferelements << std::endl; - nsamplesprocessed_+=batchsize; - prepared_tdbatch_ = buffer_store.split(batchsize); + nsamplesprocessed_+=batchsize_; + prepared_tdbatch_ = buffer_store.split(batchsize_); } From 10c3e5626c06c2a361e93753b608749171d6922d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 11 Nov 2019 11:04:40 +0100 Subject: [PATCH 141/437] snapshot fixes --- DataCollection.py | 3 ++ compiled/interface/simpleArray.h | 2 +- docker/Dockerfile | 78 +------------------------------- docker/Dockerfile_base | 78 ++++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 77 deletions(-) create mode 100644 docker/Dockerfile_base diff --git a/DataCollection.py b/DataCollection.py index 5c9fe91..6bc9e0b 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -502,6 +502,9 @@ def getSamplePath(self,samplefile): return self.dataDir+'/'+samplefile def __stackData(self, dataclass, selector): + # + # FIXME: use underlying trainData.append here (improvement) + # td=dataclass out=[] firstcall=True diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 4e460d3..23b0279 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -389,7 +389,7 @@ void simpleArray::readFromFile(FILE *& ifile) { size_t rssize = 0; io::readFromFile(&rssize, ifile); - rowsplits_ = std::vector(rssize, 0); + rowsplits_ = std::vector(rssize, 0); if(rssize){ quicklz iqlz; diff --git a/docker/Dockerfile b/docker/Dockerfile index b49fe50..f8d946f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,62 +1,6 @@ -FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 - - -SHELL ["/bin/bash", "-c"] - -RUN apt-get update -RUN apt-get install -y python2.7-dev python-pip nano emacs -RUN apt-get install -y wget -RUN apt-get install -y libboost-all-dev -RUN apt-get install -y git - - -## root part -RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev -RUN apt-get install -y cmake - -RUN mkdir /temproot && \ - cd /temproot && \ - git clone http://github.com/root-project/root.git && \ - cd root && \ - git checkout -b v6-18-04 v6-18-04 -RUN cd /temproot && \ - mkdir build && \ - cd build && \ - cmake ../root -RUN cd /temproot/build && \ - make -j5 && \ - make install && \ - rm -rf /temproot - - -#ensure import ROOT -ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" - - -RUN apt-get install -y locales - -RUN pip install --upgrade pip - -RUN pip install numpy -RUN pip install root_numpy -RUN pip install scikit-learn -RUN pip install scikit-image -RUN pip install h5py -RUN pip install uproot Pillow scipy seaborn -RUN pip install scikit-learn -RUN pip install scikit-image -RUN pip install matplotlib - -#may be useful -RUN pip install opencv-python -RUN pip install easydict tqdm -RUN pip install Cython -RUN pip install numba - -RUN pip --no-cache-dir install tensorflow==1.15 - +FROM cernml4reco/djcbase:latest ENV DEEPJETCORE /usr/share/DJC/DeepJetCore RUN ldconfig @@ -65,6 +9,7 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ + git checkout cpptraindata && \ source docker_env.sh && \ cd compiled && \ make -j4 @@ -75,22 +20,3 @@ ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" #/usr/local/lib is for root ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" - - -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y krb5-user && \ - sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf - -#for me ;) -RUN apt-get install -y zsh - -##gpu specific stuff -RUN pip install gpustat -RUN pip install setGPU - - - - - - -#ENV DJCenvname DJCpath \ No newline at end of file diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base new file mode 100644 index 0000000..168bff1 --- /dev/null +++ b/docker/Dockerfile_base @@ -0,0 +1,78 @@ + + +FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 + + +SHELL ["/bin/bash", "-c"] + +RUN apt-get update +RUN apt-get install -y python2.7-dev python-pip nano emacs +RUN apt-get install -y wget +RUN apt-get install -y libboost-all-dev +RUN apt-get install -y git + + +## root part +RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev +RUN apt-get install -y cmake + +RUN mkdir /temproot && \ + cd /temproot && \ + git clone http://github.com/root-project/root.git && \ + cd root && \ + git checkout -b v6-18-04 v6-18-04 +RUN cd /temproot && \ + mkdir build && \ + cd build && \ + cmake ../root +RUN cd /temproot/build && \ + make -j5 && \ + make install && \ + rm -rf /temproot + + +#ensure import ROOT +ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" + + +RUN apt-get install -y locales + +RUN pip install --upgrade pip + +RUN pip install numpy +RUN pip install root_numpy +RUN pip install scikit-learn +RUN pip install scikit-image +RUN pip install h5py +RUN pip install uproot Pillow scipy seaborn +RUN pip install scikit-learn +RUN pip install scikit-image +RUN pip install matplotlib + +#may be useful +RUN pip install opencv-python +RUN pip install easydict tqdm +RUN pip install Cython +RUN pip install numba + +RUN pip --no-cache-dir install tensorflow==1.15 + +RUN apt-get update --fix-missing + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y krb5-user && \ + sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf + +#for me ;) +RUN apt-get install -y zsh + +##gpu specific stuff +RUN pip install gpustat +RUN pip install setGPU + + + + + + +#ENV DJCenvname DJCpath \ No newline at end of file From 24679f8a693cb4395fad3591591a9afbc530dc85 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 11 Nov 2019 11:06:12 +0100 Subject: [PATCH 142/437] fix --- compiled/src/c_dataGenerator.C | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiled/src/c_dataGenerator.C b/compiled/src/c_dataGenerator.C index f870499..f057de5 100644 --- a/compiled/src/c_dataGenerator.C +++ b/compiled/src/c_dataGenerator.C @@ -39,11 +39,11 @@ public: }; -p::list numpyGenerator::getBatch(size_t batchsize){ +p::list numpyGenerator::getBatch(){ p::list out; - auto td = djc::trainDataGenerator::getBatch(batchsize); + auto td = djc::trainDataGenerator::getBatch(); p::list x, y, w; From 76afb3c332095937b9bf2f238763600623378063 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 11 Nov 2019 11:07:01 +0100 Subject: [PATCH 143/437] fix --- compiled/src/c_dataGenerator.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiled/src/c_dataGenerator.C b/compiled/src/c_dataGenerator.C index f057de5..bf4499c 100644 --- a/compiled/src/c_dataGenerator.C +++ b/compiled/src/c_dataGenerator.C @@ -34,7 +34,7 @@ public: djc::trainDataGenerator::setFileList(toSTLVector(files)); } - p::list getBatch(size_t batchsize=0); + p::list getBatch(); }; From 0928dd7a56031295bc15aa0b87247488abcb9426 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 11 Nov 2019 11:13:25 +0100 Subject: [PATCH 144/437] final fixes --- compiled/interface/trainDataGenerator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 103ae6f..d053389 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -201,7 +201,7 @@ void trainDataGenerator::prepareNextEpoch(){ shuffleFilelist(); nextread_ = shuffled_infiles_.at(filecount_); - preparethread_ = new std::thread(&trainDataGenerator::prepareBatch,this,batchsize_); + preparethread_ = new std::thread(&trainDataGenerator::prepareBatch,this); } template void trainDataGenerator::end(){ From 70baa9c32837763860ba6ad723d8937745584951 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 11 Nov 2019 18:11:32 +0100 Subject: [PATCH 145/437] some more fixes and debug message removals --- DataCollection.py | 9 +-------- bin/convertPre2.0DCtoDC.py | 2 +- bin/convertPre2.0TDtoTD.py | 2 +- bin/predict.py | 8 +++++--- compiled/src/c_trainDataInterface.C | 1 - training/training_base.py | 4 ++-- 6 files changed, 10 insertions(+), 16 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 6bc9e0b..8dd21b6 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -191,7 +191,6 @@ def readFromFile(self,filename): def readSourceListFromFile(self, file, relpath=''): self.samples=[] - self.sampleentries=[] self.sourceList=[] self.__nsamples=0 self.dataDir="" @@ -284,9 +283,7 @@ def createDataFromRoot( elif not os.path.isdir(outputDir): os.mkdir(outputDir) self.dataDir=outputDir - self.nsamples=0 self.samples=[] - self.sampleentries=[] self.dataclass=copy.deepcopy(dataclass) td=self.dataclass @@ -312,8 +309,6 @@ def __writeData(self, sample, outputDir): print('converted and written '+newname+' in ',sw.getAndReset(),' sec') self.samples.append(newname) - self.nsamples+=td.nsamples - self.sampleentries.append(td.nsamples) td.clear() if not self.batch_mode: @@ -375,7 +370,7 @@ def removefile(): print('converted and written '+newname+' in ',sw.getAndReset(),' sec -', index) out_samplename=newname - out_sampleentries=td.nsamples + out_sampleentries=1 success=True td.clear() removefile() @@ -392,8 +387,6 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): raise Exception("write not successful, stopping") self.samples.append(samplename) - self.nsamples+=sampleentries - self.sampleentries.append(sampleentries) if not self.batch_mode: self.writeToFile(outputDir+'/snapshot_tmp.djcdc')#avoid to overwrite directly os.system('mv '+outputDir+'/snapshot_tmp.djcdc '+outputDir+'/snapshot.djcdc') diff --git a/bin/convertPre2.0DCtoDC.py b/bin/convertPre2.0DCtoDC.py index 62b200b..a425b74 100755 --- a/bin/convertPre2.0DCtoDC.py +++ b/bin/convertPre2.0DCtoDC.py @@ -17,7 +17,7 @@ from DeepJetCore.conversion.conversion import class_options parser = ArgumentParser('simple program to convert old datacollection format to the new one') -parser.add_argument("infile", help="input \"meta\" file") +parser.add_argument("infile", help="input \"dc\" file") parser.add_argument("-c", choices = class_options.keys(), help="set new output class (options: %s)" % ', '.join(class_options.keys()), metavar="Class") # process options diff --git a/bin/convertPre2.0TDtoTD.py b/bin/convertPre2.0TDtoTD.py index 03bdbf6..1f88e50 100755 --- a/bin/convertPre2.0TDtoTD.py +++ b/bin/convertPre2.0TDtoTD.py @@ -19,7 +19,7 @@ if class_name in class_options: traind = class_options[class_name] -elif not recover and not testdatafor: +else: print('available classes:') for key, val in class_options.iteritems(): print(key) diff --git a/bin/predict.py b/bin/predict.py index 9710f4a..7bd5f3c 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -48,8 +48,8 @@ args = parser.parse_args() -if os.path.isdir(args.outputDir): - raise Exception('output directory must not exists yet') +#if os.path.isdir(args.outputDir): +# raise Exception('output directory must not exists yet') custom_objs = {} custom_objs.update(djc_global_loss_list) @@ -69,14 +69,16 @@ with open(args.inputSourceFileList, "r") as f: for inputfile in f: inputfile = inputfile.replace('\n', '') + print('converting '+inputfile) x, y, w = td.convertFromSourceFile(inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) outfilename = "pred_"+inputfile + print('predicting '+inputfile) predicted = model.predict(x) if not type(predicted) == list: #circumvent that keras return only an array if there is just one list item predicted = [predicted] td.writeOutPrediction(predicted, x, y, w, args.outputDir + "/" + outfilename, inputfile) outputs.append(outfilename) - print('written '+outfilename) + with open(args.outputDir + "/outfiles.txt","w") as f: diff --git a/compiled/src/c_trainDataInterface.C b/compiled/src/c_trainDataInterface.C index 3f6c703..b246fb7 100644 --- a/compiled/src/c_trainDataInterface.C +++ b/compiled/src/c_trainDataInterface.C @@ -39,7 +39,6 @@ float * extractNumpyListElement(p::list x, int i, std::vector& shape){ throw std::runtime_error("c_trainDataInterface.extractNumpyListElement: at least one array does not have type float32"); } auto flags = ndarr.get_flags(); - std::cout << flags << std::endl; if(!(flags & np::ndarray::CARRAY) || !(flags & np::ndarray::C_CONTIGUOUS)){ throw std::runtime_error("c_trainDataInterface.extractNumpyListElement: at least one array is not C contiguous, please pass as numpy.ascontiguousarray(a, dtype='float32')"); } diff --git a/training/training_base.py b/training/training_base.py index a171ef2..bccbf4e 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -363,8 +363,8 @@ def _initTraining(self, self.train_data.setBatchSize(batchsize) self.val_data.setBatchSize(batchsize) - self.train_data.writeToFile(self.outputDir+'trainsamples.dc') - self.val_data.writeToFile(self.outputDir+'valsamples.dc') + self.train_data.writeToFile(self.outputDir+'trainsamples.djcdc') + self.val_data.writeToFile(self.outputDir+'valsamples.djcdc') #make sure tokens don't expire from .tokenTools import checkTokens, renew_token_process From a6b000a8508259db2a83c02ef78e551908d8f5b1 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 12 Nov 2019 13:07:07 +0000 Subject: [PATCH 146/437] renamed --- bin/batch_conversion.py | 2 +- bin/{convertFromRoot.py => convertFromSource.py} | 6 +----- bin/createSubpackage.py | 2 +- bin/testEnvironment.py | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) rename bin/{convertFromRoot.py => convertFromSource.py} (93%) diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index ca1be2c..4e1eca6 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -110,7 +110,7 @@ BASEDIR=`pwd` cd {subpackage} source env.sh -convertFromRoot.py "$@" +convertFromSource.py "$@" exitstatus=$? if [ $exitstatus != 0 ] then diff --git a/bin/convertFromRoot.py b/bin/convertFromSource.py similarity index 93% rename from bin/convertFromRoot.py rename to bin/convertFromSource.py index e3e41e7..73a5263 100755 --- a/bin/convertFromRoot.py +++ b/bin/convertFromSource.py @@ -1,10 +1,6 @@ #!/usr/bin/env python # encoding: utf-8 ''' -convertFromRoot -- converts the root files produced with the deepJet ntupler to the data format used by keras for the DNN training - -convertFromRoot is a small program that converts the root files produced with the deepJet ntupler to the data format used by keras for the DNN training - @author: jkiesele @@ -23,7 +19,7 @@ from DeepJetCore.DataCollection import DataCollection from DeepJetCore.conversion.conversion import class_options -parser = ArgumentParser('program to convert root tuples to traindata format') +parser = ArgumentParser('program to convert source files to traindata format') parser.add_argument("-i", help="set input sample description (output from the check.py script)", metavar="FILE") parser.add_argument("--inRange", nargs=2, type=int, help="Input line numbers") parser.add_argument("--noRelativePaths", help="Assume input samples are absolute paths with respect to working directory", default=False, action="store_true") diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index f488ed0..b10a286 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -321,7 +321,7 @@ def my_model(Inputs,otheroption): print('example data can be found in '+subpackage_dir+'/example_data.') print('Before using the subpackage, please log out, log in again and then source the "env.sh" file in the subpackage directory (not in DeepJetCore).') print('to convert to example TrainData format use:') -print('convertFromRoot.py -i '+subpackage_dir+'/example_data/train_files.txt -o -c TrainData_example') +print('convertFromSource.py -i '+subpackage_dir+'/example_data/train_files.txt -o -c TrainData_example') print('\nAn example to run the training can be found in '+subpackage_dir+'/Train/training_example.py') print('It can be run with: \npython '+subpackage_dir+'/Train/training_example.py /dataCollection.djcdc ') diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py index 9a1f10c..1ced780 100755 --- a/bin/testEnvironment.py +++ b/bin/testEnvironment.py @@ -44,7 +44,7 @@ cd {djc_base}/testing rm -rf batchDC export PYTHONPATH=`pwd`:$PYTHONPATH -convertFromRoot.py -i files/filelist.txt -o batchDC -c TrainData_testBatch -n 1 +convertFromSource.py -i files/filelist.txt -o batchDC -c TrainData_testBatch -n 1 '''.format(djc_base=djc_base) os.system(script) From c5450dd7eb591e09a58b8d26a86d09bcf184db44 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 12 Nov 2019 14:32:49 +0100 Subject: [PATCH 147/437] better docu --- README.md | 12 ++++++++---- training_pipeline.png | Bin 0 -> 60219 bytes 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 training_pipeline.png diff --git a/README.md b/README.md index 9f805fe..b2eb56c 100644 --- a/README.md +++ b/README.md @@ -40,15 +40,19 @@ In general, the following steps are needed for a training and evaluation: * Always source the environment script (``env.sh``) in the subpackage directory, NOT in DeepJetCore. * Define the training data structure, e.i. which branches from the input root ntuples are read, and how they are re-organised as input to the DNN. An example can be found in subpackage/modules/datastructures - * Convert the root ntuples into the training data format using convertFromRoot.py. Please consider the help message for options (``convertFromRoot.py -h``). The input is a list of root files contained in a text file. An example dataset is generated when setting up the subpackage. It can be found in subpackage/example_data. - Different files should be used for training and testing. To convert the training data, execute ``convertFromRoot.py -i -o -c TrainData_example``, with TrainData_example being the data structure defined before. The test data will be directly read by from the source files (see below). - * Train the model. The convertFromRoot.py script creates a set of output files and a descriptor (dataCollection.djcdc). This descriptor is fed to the training file which contains the model definition and an instance of the trainingbase class. An example is given in subpackage/Train/training_example.py. + * Convert the root ntuples into the training data format using convertFromSource.py. Please consider the help message for options (``convertFromSource.py -h``). The input is a list of root files contained in a text file. An example dataset is generated when setting up the subpackage. It can be found in subpackage/example_data. + Different files should be used for training and testing. To convert the training data, execute ``convertFromSource.py -i -o -c TrainData_example``, with TrainData_example being the data structure defined before. The test data will be directly read by from the source files (see below). + * Train the model. The convertFromSource.py script creates a set of output files and a descriptor (dataCollection.djcdc). This descriptor is fed to the training file which contains the model definition and an instance of the trainingbase class. An example is given in subpackage/Train/training_example.py. This file is called with ``python training_example.py /path/to/data/dataCollection.djcdc ``. More options are provided and described when calling ``python training_example.py -h``. * Once the training is done, the model can be used to predict the output of the model for the test data: ``predict.py /path/to/the/model.h5 /path/to/the/training/dataCollection.djcdc ``. Please keep in mind that the output can become large (not the case in the example). * For plotting, there are a few simple wrappers provided, which can be found in DeepJetCore/evaluation/evaluation.py, for making ROCs and simple plots. As input, these functions take the text file created by the predict.py script. -Upgrading from 1.X to 2.X +The general pipeline for training is depicted in the following sketch: +![pipeline](https://github.com/DL4Jets/DeepJetCore/training_pipeline.png "Data pipeline for training") + + +TrainData definition and notes on upgrading from 1.X to 2.X ========================= There has been substantial format changes from 1.X to 2.X, including low-level support preparations for ragged tensors. Therefore, all data from 1.X needs to be converted or newly created. Also, the interface changed slightly. diff --git a/training_pipeline.png b/training_pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..3d82ebee5107f983b548706fbe24c43d22f6347f GIT binary patch literal 60219 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 AtpET3 literal 0 HcmV?d00001 From 31f2670e38c9bc899b03e0e04785950f2133a6b5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 12 Nov 2019 14:34:11 +0100 Subject: [PATCH 148/437] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2eb56c..48bfcaf 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ In general, the following steps are needed for a training and evaluation: The general pipeline for training is depicted in the following sketch: -![pipeline](https://github.com/DL4Jets/DeepJetCore/training_pipeline.png "Data pipeline for training") +![pipeline](https://github.com/DL4Jets/DeepJetCore/blob/cpptraindata/training_pipeline.png "Data pipeline for training") TrainData definition and notes on upgrading from 1.X to 2.X From a678ee34de58cf53c0f917b063a944c0e946987b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 12 Nov 2019 13:49:54 +0000 Subject: [PATCH 149/437] more docu --- README.md | 3 +++ predict_pipeline.png | Bin 0 -> 39260 bytes 2 files changed, 3 insertions(+) create mode 100644 predict_pipeline.png diff --git a/README.md b/README.md index 48bfcaf..fc61259 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,9 @@ The general pipeline for training is depicted in the following sketch: ![pipeline](https://github.com/DL4Jets/DeepJetCore/blob/cpptraindata/training_pipeline.png "Data pipeline for training") +The general pipeline for inference/prediction is depicted in the following sketch: +![pipeline](https://github.com/DL4Jets/DeepJetCore/blob/cpptraindata/predict_pipeline.png "Data pipeline for prediction") + TrainData definition and notes on upgrading from 1.X to 2.X ========================= diff --git a/predict_pipeline.png b/predict_pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..d8bb14ce085d35537ee16c4f81a932f6e935cac1 GIT binary patch literal 39260 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
IV*RUA@%~zztRs9? zEs8e}E2)yi2J2^}YAcP5xXnxMm3*zU!pN6ql@u2jj_+VXjW)P%sRU1?UUoeQh}4Fc zLqn@;@`#q?6zYKiwz&%wZ~f3&vS6jlx0^qN=42@vM>ErmvC+IxP1Iyv_`YQ4X#NGwu5LrNC8;-5 z7f$O1_c)cffLS!6ii0M1uEfP_Lp}Fy|2)q2INOaRsKAxns%njo%;y6ghYgcp7i|tM zuVycF%gE@Crep_-WOpy_Cnq%PFfx`~PDUL{IDoj9l!Xtw!(0??s8WexdW#}(?TsLB z%!;?)oN&kB+z}j3<6sfJXdzG|#Iz?(dvv_%5~~&*_eJg;RBHOWxyK%ymEoj)F@hs+ zJlciF*nY+b%ehMq!}dh9y*BB(8CV_B6DNZurNds<*J6B0k=%32T~gjYz~ zGcVtQx2jmKMe~I_3fvHNO8~RA6uArv0V-)aHyszs#I+*7BrN@y{PZM~d)>`=YW-pW zg`r}PQ1U409q!8%8OPPA$Fw(>^5f^{L9W=Q>Z<#Vyz9YWapoUn-zgEr{<1 zqg5*Q5b}|ha;t~h@}U6B&lFy2e{Ar=OkDCNb4DSP+a{Z<7*`$nT-*%4YSF7kUkkl# zdcWDuBl{(Y^vYe7rX_|=e;vdYuFJD@p8V`Dl1e<|NP8vrf?bn<)oMahwIjfr|2vmoCyiR$W=_e zZZlx88w-gnw!5wW(BE!nll(UOu<{dM@i~r^Evst}9+3WA$n;*wUk{@RQiv*^_8Fw) z7UvH7y2s~vf;gZ2MYo=IZj5l3s%t9SL2}I7tkuPF*7h-AH@?TZ$Ir4OckzT^BP2l> zB6u&C`?a+9hPJ`b2u;gWV7g(!WGn`DyqN)`q-kNZEPdftI*m9K0>ZH1u*YlsJ{dv~+vji!Ds zgp*&wIvvc}AB(4s&a;U>)|{rS)!ilCe6e+VW%tBb5RUuwjl>sEM--M*G&-?us!&a0 zxgpl*^@$_)OkBULg__VPA1ui=$a14DZ_Yinx^?aenNaoe%g1ul+HPnzA854c8?X8h zSG!KW|Ab97!r&E49MNf{N{uJE42Qq)WzOzh2K;gN$yN3sq5p(3pdROP$bV9%?T@X0y zCMv8%Eq#5x?k=Q|Sl!`mN3lhPg=M;gj(=?t#G|^s6Bw9~Jk6qF#Q|9lo}WJQz15-b zv0m3*_{G9s2obJDUYL%4sOUM0v<%Y>nd+|Izuqu5G4p2l;Cq4#NeRhTm%?|V;gYaV zqLjvriiV08@e1p;h~Hs2+`!=S^nz+R-Dz(D5Z$SuDJzFs2KZKF$tiqzVw$}R+B)rw z03l^nxW2AY9u5mbwbbk$j0=g3*xTxc0yQdeJ7WZFOq#WU>~Fg4%JK6XDz;b6Wa%i( zM~MUJc0&E*V8L-i5gM7ohOmWUvMf3vMfdMbFH&Ds`hmoY#~pM+ZFDK;#S=L`T?73& zTtflXJ^M_Zf|wb9QavPp)%j(9LT(xFPLCAwd>rN$(-?`GA&n6rq^?fza{mJ{AjvTO z3Xt*T8>>;L#~0g191UYsdD*jsTMaBax=UK=xOec#BDf#&vyfD-XYhJ|PPqxR-c+bW zFyh;=QYmzaaV}Nm)fTPxx$VOY<77G8!Lfws_783incj{%OX<={<{&|zRAF|Y^ zg#BQ|ZHo^9@IC`8ou(XzX&;i)e}xzqH4nIz#&AFLN~g2?!Tvd{Lo?rU-%Fsd37#2F zT`utbMl*SrRF@je+xpdwyv=2mscDB literal 0 HcmV?d00001 From 5992b2e85d41cb78122897a23715a42980551c8d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 12 Nov 2019 13:52:18 +0000 Subject: [PATCH 150/437] docu --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index fc61259..f40d910 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,9 @@ The general pipeline for training is depicted in the following sketch: The general pipeline for inference/prediction is depicted in the following sketch: ![pipeline](https://github.com/DL4Jets/DeepJetCore/blob/cpptraindata/predict_pipeline.png "Data pipeline for prediction") +More information on the three function of TrainData that need to be defined by the user (in addition to the training script) is given in the next Section. +For the training script, please refer to the example provided with ``createSubpackage.py``. + TrainData definition and notes on upgrading from 1.X to 2.X ========================= From be10b7a15407f1eb29ee30c5bdf75dbb15d72ed0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 12 Nov 2019 13:53:55 +0000 Subject: [PATCH 151/437] docu --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f40d910..1fe7120 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ There has been substantial format changes from 1.X to 2.X, including low-level s The TrainData class has been slimmed significantly. Now, the ``__init`` function does not need any additional arguments anymore, and there are no mandatory definitions. Only the following functions should be defined for the interface (all others are deprecated): * ``createWeighterObjects(self, allsourcefiles)``: is not mandatory. It can be used, however to create a dictionary (pickable) objects that depend on the whole dataset (e.g. for numbers for normalisation etc). **Returns**: a dictionary of weighter objects - * ``convertFromSourceFile(self, filename, weighterobjects)``: is mandatory. This function defines a rule to convert one source file to one output file. The final output should be a list of numpy feature arrays, a list of numpy truth arrays, and a list of numpy weight arrays. The latter can also be empty. The conversion can be done from root e.g. with uproot or similar, but can also use any other input format. **Returns**: a tuple or , , + * ``convertFromSourceFile(self, filename, weighterobjects)``: is mandatory. This function defines a rule to convert one source file to one output file. The final output should be a list of numpy feature arrays, a list of numpy truth arrays, and a list of numpy weight arrays. The latter can also be empty. The conversion can be done from root e.g. with uproot or similar, but can also use any other input format. **Returns** three items: a list of feature arrays, list of truth arrays, list of weight arrays * ``writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile)``: is mandatory. Defines how the output of the network should be written back to an output format. This could e.g. be a root tree, which can be a friend to the original tree, or any other output. The function gives optional access to all input features, truth, weights (if any), and the input source file name. **Returns**: nothing Of course any user function, member etc beyond that can be defined, too. From cbe4d4c7c302e1071c0351ab8b7867b1917c8886 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 13 Nov 2019 10:35:16 +0100 Subject: [PATCH 152/437] fixed boost memoryleak --- DJCLosses.py | 6 +- bin/createSubpackage.py | 112 +++++++++++++++++++++++++++++--- compiled/src/c_NumpyInterface.C | 18 +---- compiled/src/helper.cpp | 22 ++++++- docker/Dockerfile_base | 2 + evaluation/evaluation.py | 2 +- 6 files changed, 131 insertions(+), 31 deletions(-) diff --git a/DJCLosses.py b/DJCLosses.py index 48704c6..5500d4e 100644 --- a/DJCLosses.py +++ b/DJCLosses.py @@ -4,8 +4,8 @@ import tensorflow as tf def dummy_loss(truth, pred): - t = tf.Print(truth,[truth],'truth ') - p = tf.Print(pred,[pred],'pred ') - return tf.reduce_mean(t)+tf.reduce_mean(p) + #t = tf.Print(truth,[truth],'truth ') + #p = tf.Print(pred,[pred],'pred ') + return tf.reduce_mean(truth)+tf.reduce_mean(pred) djc_global_loss_list['dummy_loss']=dummy_loss \ No newline at end of file diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index b10a286..48ba2fe 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -31,6 +31,9 @@ export PYTHONPATH=${subpackage}/modules/datastructures:$PYTHONPATH export PATH=${subpackage}/scripts:$PATH +export LD_LIBRARY_PATH=${subpackage}/modules/compiled:$LD_LIBRARY_PATH +export PYTHONPATH=${subpackage}/modules/compiled:$PYTHONPATH + '''.format(deepjetcore=deepjetcore, subpackage=args.subpackage_name.upper(), subpackage_dir=os.path.abspath(subpackage_dir), @@ -47,6 +50,8 @@ mkdir -p {subpackage_dir}/cpp_analysis/src mkdir -p {subpackage_dir}/cpp_analysis/interface mkdir -p {subpackage_dir}/cpp_analysis/bin +mkdir -p {subpackage_dir}/compiled/src +mkdir -p {subpackage_dir}/compiled/interface '''.format(subpackage_dir=subpackage_dir) datastructure_template=''' @@ -160,7 +165,7 @@ def my_model(Inputs,otheroption): return Model(inputs=Inputs, outputs=predictions) -train=training_base(testrun=False,resumeSilently=False,renewtokens=True) +train=training_base(testrun=False,resumeSilently=False,renewtokens=False) if not train.modelSet(): # allows to resume a stopped/killed training. Only sets the model if it cannot be loaded from previous snapshot @@ -240,21 +245,18 @@ def my_model(Inputs,otheroption): all: $(patsubst bin/%.cpp, %, $(wildcard bin/*.cpp)) -#compile the module helpers if necessary -#../modules/libsubpackagehelpers.so: -# cd ../modules; make; cd - %: bin/%.cpp $(OBJ_FILES) - g++ $(CC_FLAGS) $(LD_FLAGS) $(OBJ_FILES) $< -o $@ + g++ $(CC_FLAGS) $(LD_FLAGS) $(OBJ_FILES) $< -o $@ obj/%.o: src/%.cpp - g++ $(CC_FLAGS) -c -o $@ $< + g++ $(CC_FLAGS) -c -o $@ $< clean: - rm -f obj/*.o obj/*.d - rm -f % + rm -f obj/*.o obj/*.d + rm -f % ''' bin_template=''' @@ -283,6 +285,94 @@ def my_model(Inputs,otheroption): } ''' +compiled_module_template=''' + +#include +#include "boost/python/numpy.hpp" +#include "boost/python/list.hpp" +#include "boost/python/str.hpp" +#include +#include + +//includes from deepjetcore +#include "helper.h" +#include "simpleArray.h" + +namespace p = boost::python; +namespace np = boost::python::numpy; + + +np::ndarray readFirstFeatures(std::string infile){ + + auto arr = djc::simpleArray({10,3,4}); + arr.at(0,2,1) = 5. ;//filling some data + + return simpleArrayToNumpy(arr); +} + +BOOST_PYTHON_MODULE(c_convert) { + Py_Initialize(); + np::initialize(); + def("readFirstFeatures", &readFirstFeatures); +} + +''' + +module_makefile=''' + + +# +# This file might need some adjustments but should serve as a good basis +# + +PYTHON_INCLUDE = `python-config --includes` +PYTHON_LIB=`python-config --libs` + +ROOTSTUFF=`root-config --libs --glibs --ldflags` +ROOTCFLAGS=`root-config --cflags` + +CPP_FILES := $(wildcard src/*.cpp) +OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) +LD_FLAGS := `root-config --cflags --glibs` -lMathMore -L${DEEPJETCORE}/compiled -ldeepjetcorehelpers -lquicklz +CC_FLAGS := -fPIC -g -Wall `root-config --cflags` +CC_FLAGS += -I./interface -I${DEEPJETCORE}/compiled/interface +DJC_LIB = -L${DEEPJETCORE}/compiled -ldeepjetcorehelpers + + +MODULES := $(wildcard src/*.C) +MODULES_OBJ_FILES := $(addprefix ./,$(notdir $(MODULES:.C=.o))) +MODULES_SHARED_LIBS := $(addprefix ./,$(notdir $(MODULES:.C=.so))) + + +all: $(MODULES_SHARED_LIBS) $(patsubst bin/%.cpp, %, $(wildcard bin/*.cpp)) + +#compile the module helpers if necessary +#../modules/libsubpackagehelpers.so: +# cd ../modules; make; cd - + +%: bin/%.cpp $(OBJ_FILES) + g++ $(CC_FLAGS) $(LD_FLAGS) $(OBJ_FILES) $< -o $@ + + +obj/%.o: src/%.cpp + g++ $(CC_FLAGS) -c -o $@ $< + + +#python modules + +%.so: %.o + g++ -o $(@) -shared -fPIC $(LINUXADD) $< $(ROOTSTUFF) $(PYTHON_LIB) -lboost_python -lboost_numpy $(DJC_LIB) + +%.o: src/%.C + g++ $(ROOTCFLAGS) -O2 $(CC_FLAGS) -I./interface $(PYTHON_INCLUDE) -fPIC -c -o $(@) $< + + +clean: + rm -f obj/*.o obj/*.d *.so + rm -f % + +''' + ######## create the structure ######## @@ -312,6 +402,12 @@ def my_model(Inputs,otheroption): with open(subpackage_dir+'/cpp_analysis/bin/example.cpp','w') as lfile: lfile.write(bin_template) +with open(subpackage_dir+'/modules/compiled/Makefile','w') as lfile: + lfile.write(module_makefile) + +with open(subpackage_dir+'/modules/compiled/src/c_convert.C','w') as lfile: + lfile.write(compiled_module_template) + if not args.data: exit() print('creating example data... (10 training files, 1 test file, 1000 events each)') diff --git a/compiled/src/c_NumpyInterface.C b/compiled/src/c_NumpyInterface.C index 9c4c529..3f3470b 100644 --- a/compiled/src/c_NumpyInterface.C +++ b/compiled/src/c_NumpyInterface.C @@ -11,8 +11,8 @@ * Only implemented for float32 arrays */ +#include "../interface/helper.h" #include "../interface/simpleArray.h" -#define BOOST_PYTHON_MAX_ARITY 20 #include #include "boost/python/numpy.hpp" #include @@ -30,21 +30,7 @@ np::ndarray readFromFile(std::string filename, bool shapesOnly){ djc::simpleArray ifarr(ifile); fclose(ifile); - auto size = ifarr.size(); - auto shape = ifarr.shape(); - - p::list pshape; - for(const auto& s:shape) - pshape.append(s); - - p::tuple tshape(pshape);//not working - - np::ndarray nparr = np::from_data((void*)ifarr.disownData(), - np::dtype::get_builtin(), - p::make_tuple(size), p::make_tuple(sizeof(float)), p::object() ); - - nparr = nparr.reshape(tshape); - return nparr; + return simpleArrayToNumpy(ifarr); } diff --git a/compiled/src/helper.cpp b/compiled/src/helper.cpp index 2b5f566..e55e361 100644 --- a/compiled/src/helper.cpp +++ b/compiled/src/helper.cpp @@ -9,10 +9,19 @@ #include "../interface/helper.h" #include +#include + namespace p = boost::python; namespace np = boost::python::numpy; + + +inline void destroyManagerCObject(PyObject* self) { + auto * b = reinterpret_cast( PyCapsule_GetPointer(self, NULL) ); + delete [] b; +} + np::ndarray simpleArrayToNumpy( djc::simpleArray& ifarr){ auto size = ifarr.size(); @@ -26,11 +35,18 @@ np::ndarray simpleArrayToNumpy( djc::simpleArray& ifarr){ for(const auto& s:shape) pshape.append(s); - p::tuple tshape(pshape);//not working + p::tuple tshape(pshape); + + float * data_ptr = ifarr.disownData(); + //ifarr invalid from here on! + + PyObject *capsule = ::PyCapsule_New((void *)data_ptr, NULL, (PyCapsule_Destructor)&destroyManagerCObject); + boost::python::handle<> h_capsule{capsule}; + boost::python::object owner_capsule{h_capsule}; - np::ndarray nparr = np::from_data((void*)ifarr.disownData(), + np::ndarray nparr = np::from_data((void*)data_ptr, np::dtype::get_builtin(), - p::make_tuple(size), p::make_tuple(sizeof(float)), p::object() ); + p::make_tuple(size), p::make_tuple(sizeof(float)), owner_capsule ); nparr = nparr.reshape(tshape); return nparr; diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 168bff1..e69f8a2 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -35,6 +35,8 @@ RUN cd /temproot/build && \ ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y python-tk RUN apt-get install -y locales RUN pip install --upgrade pip diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index 2604c0a..ecf8e0a 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -321,7 +321,7 @@ def plotLoss(infilename,outfilename,range): elif automax>0: plt.ylim([automin*0.9,automax*1.1]) plt.show() - #plt.savefig(outfilename, format='pdf') #why does this crash? + plt.savefig(outfilename, format='pdf') #why does this crash? plt.close() From 570d14803d80943dca8715091070e7f8612ebc63 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 13 Nov 2019 10:35:29 +0000 Subject: [PATCH 153/437] better docu --- bin/createSubpackage.py | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 48ba2fe..bec8306 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -8,18 +8,22 @@ parser = ArgumentParser('script to create a DeepJetCore subpackage') -parser.add_argument("subpackage_name", help="name of the subpackage") -parser.add_argument("subpackage_parent_dir", help="parent directory of the subpackage (must be same as DeepJetCore)") +parser.add_argument("subpackage_directory", help="Directory to place the subpackage in (will be created). Last part will be the name of the subpackage") parser.add_argument("--data", help="create example data", default=False, action="store_true") args=parser.parse_args() deepjetcore = os.getenv('DEEPJETCORE') -subpackage_dir=args.subpackage_parent_dir+'/'+args.subpackage_name +subpackage_dir=args.subpackage_directory +subpackage_name = os.path.basename(os.path.normpath(subpackage_dir)) + +if len(subpackage_dir)<1: + raise Exception("The subpackage name is too short") ### templates #### + environment_file=''' #! /bin/bash @@ -35,7 +39,7 @@ export PYTHONPATH=${subpackage}/modules/compiled:$PYTHONPATH '''.format(deepjetcore=deepjetcore, - subpackage=args.subpackage_name.upper(), + subpackage=subpackage_name.upper(), subpackage_dir=os.path.abspath(subpackage_dir), BASH_SOURCE="{BASH_SOURCE[0]}") @@ -50,8 +54,8 @@ mkdir -p {subpackage_dir}/cpp_analysis/src mkdir -p {subpackage_dir}/cpp_analysis/interface mkdir -p {subpackage_dir}/cpp_analysis/bin -mkdir -p {subpackage_dir}/compiled/src -mkdir -p {subpackage_dir}/compiled/interface +mkdir -p {subpackage_dir}/modules/compiled/src +mkdir -p {subpackage_dir}/modules/compiled/interface '''.format(subpackage_dir=subpackage_dir) datastructure_template=''' @@ -301,6 +305,10 @@ def my_model(Inputs,otheroption): namespace p = boost::python; namespace np = boost::python::numpy; +/* + * Example of a python module that will be compiled. + * It can be used, e.g. to convert from fully custom input data + */ np::ndarray readFirstFeatures(std::string infile){ @@ -407,15 +415,15 @@ def my_model(Inputs,otheroption): with open(subpackage_dir+'/modules/compiled/src/c_convert.C','w') as lfile: lfile.write(compiled_module_template) - -if not args.data: - exit() -print('creating example data... (10 training files, 1 test file, 1000 events each)') -os.system('cd '+subpackage_dir+'/example_data; make_example_data 1000 10 1') -print('example data can be found in '+subpackage_dir+'/example_data.') -print('Before using the subpackage, please log out, log in again and then source the "env.sh" file in the subpackage directory (not in DeepJetCore).') +print('subpackage '+ subpackage_name + " created in "+subpackage_dir) +if args.data: + print('creating example data... (10 training files, 1 test file, 1000 events each)') + os.system('cd '+subpackage_dir+'/example_data; make_example_data 1000 10 1') + print('example data can be found in '+subpackage_dir+'/example_data.') + +print('Before using the subpackage, source the "env.sh" file in the subpackage directory (not in DeepJetCore).') print('to convert to example TrainData format use:') print('convertFromSource.py -i '+subpackage_dir+'/example_data/train_files.txt -o -c TrainData_example') From c5ce1d8142c94c776fe6149fc9d19f104ad3b5db Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 14 Nov 2019 18:16:12 +0100 Subject: [PATCH 154/437] full ragged support, validated, should work. generator still missing --- bin/validateData.py | 2 +- compiled/interface/simpleArray.h | 280 ++++++++++++++++++---- compiled/interface/trainData.h | 22 +- compiled/to_bin/_testRaggedArray.cpp | 124 ++++++++++ compiled/to_bin/_testRaggedTD.cpp | 82 +++++++ compiled/to_bin/_testSimpleArrayAndTD.cpp | 174 ++++++++++++++ compiled/to_bin/testpipeline.cpp | 150 +----------- 7 files changed, 629 insertions(+), 205 deletions(-) create mode 100644 compiled/to_bin/_testRaggedArray.cpp create mode 100644 compiled/to_bin/_testRaggedTD.cpp create mode 100644 compiled/to_bin/_testSimpleArrayAndTD.cpp diff --git a/bin/validateData.py b/bin/validateData.py index 65ad05f..691754c 100755 --- a/bin/validateData.py +++ b/bin/validateData.py @@ -13,7 +13,7 @@ dc=DataCollection(args.inputDataCollection) dc.writeToFile(args.inputDataCollection+".backup") -print('total size before: '+str(dc.nsamples)) + if not len(args.remove): dc.validate(remove=True, skip_first=int(args.skip_first)) else: diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 23b0279..be87b35 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -16,6 +16,10 @@ #include "IO.h" #include "version.h" +#include + +#define USEMOVE + namespace djc{ @@ -24,20 +28,31 @@ class simpleArray { public: simpleArray(); - simpleArray(std::vector shape); + // row splits are indicated by a merged dimension with negative sign + // always merge to previous dimension + // e.g. A x B x C x D, where B is ragged would get shape + // A x -A*B x C x D + // ROW SPLITS START WITH 0 and end with the total number of elements along that dimension + // therefore, the rosplits vector size is one more than the first dimension + // + // Only ONLY DIMENSION 1 AS RAGGED DIMENSION is supported, first dimension MUST NOT be ragged. + // + + simpleArray(std::vector shape,const std::vector& rowsplits = {}); simpleArray(FILE *& ); ~simpleArray(); simpleArray(const simpleArray&); simpleArray& operator=(const simpleArray&); +#ifdef USEMOVE simpleArray(simpleArray &&); simpleArray& operator=(simpleArray &&); - +#endif void clear(); //reshapes if possible, creates new else - void setShape(std::vector shape); + void setShape(std::vector shape,const std::vector& rowsplits = {}); T * data() const { return data_; @@ -56,6 +71,10 @@ class simpleArray { return size_; } + bool isRagged()const{ + return rowsplits_.size()>0; + } + /* * returns the dimension of the first axis. * If second dimension is ragged, this will take it into @@ -63,20 +82,11 @@ class simpleArray { */ size_t getFirstDimension()const; - // row splits are indicated by a merged dimension with negative sign - // always merge to previous dimension - // e.g. A x B x C x D, where B is ragged would get shape - // A x -A*B x C x D - // Only one ragged dimension is supported, first dimension MUST NOT be ragged - // Still to be implemented. All read/write functions already include this data - // - // const std::vector& rowsplits() const { - // return rowsplits_; - // } - // - // void setRowsplits(const std::vector& rowsplits) { - // rowsplits_ = rowsplits; - // } + + const std::vector& rowsplits() const { + return rowsplits_; + } + /////////// potentially dangerous operations for conversions, use with care /////// @@ -130,6 +140,13 @@ class simpleArray { void readFromFile(FILE *& ifile); + + size_t sizeAt(size_t i)const; + // higher dim row splits size_t sizeAt(size_t i,size_t j)const; + // higher dim row splits size_t sizeAt(size_t i,size_t j, size_t k)const; + // higher dim row splits size_t sizeAt(size_t i,size_t j, size_t k, size_t l)const; + // higher dim row splits size_t sizeAt(size_t i,size_t j, size_t k, size_t l, size_t m)const; + /* * Does not work (yet) with ragged arrays! * Will just produce garbage! @@ -149,11 +166,20 @@ class simpleArray { const T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; private: + size_t flatindex(size_t i, size_t j)const; + size_t flatindex(size_t i, size_t j, size_t k)const; + size_t flatindex(size_t i, size_t j, size_t k, size_t l)const; + size_t flatindex(size_t i, size_t j, size_t k, size_t l, size_t m)const; + size_t flatindex(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; + + void copyFrom(const simpleArray& a); void moveFrom(simpleArray && a); int sizeFromShape(std::vector shape) const; + std::vector shapeFromRowsplits()const; //split dim = 1! void checkShape(size_t ndims)const; void checkSize(size_t idx)const; + void checkRaggedIndex(size_t i, size_t j)const; T * data_; std::vector shape_; @@ -169,11 +195,19 @@ simpleArray::simpleArray() : } template -simpleArray::simpleArray(std::vector shape) : +simpleArray::simpleArray(std::vector shape,const std::vector& rowsplits) : data_(0), size_(0),assigned_(false) { + shape_ = shape; - data_ = new T[sizeFromShape(shape_)]; + if(rowsplits.size()){ + if(rowsplits.size() != shape_.at(0)+1) + throw std::runtime_error("simpleArray::simpleArray: rowsplits.size() must equal shape[0] + 1"); + + rowsplits_=rowsplits; + shape_ = shapeFromRowsplits(); + } size_ = sizeFromShape(shape_); + data_ = new T[size_]; } template @@ -199,11 +233,12 @@ simpleArray& simpleArray::operator=(const simpleArray& a) { return *this; } +#ifdef USEMOVE template simpleArray::simpleArray(simpleArray && a) : simpleArray() { - if (&a == this) - return; + if (&a == this){ + return;} if (data_&& !assigned_) delete data_; data_ = a.data_; @@ -212,9 +247,13 @@ simpleArray::simpleArray(simpleArray && a) : size_ = a.size_; a.size_ = 0; shape_ = std::move(a.shape_); + a.shape_ = std::vector(); rowsplits_ = std::move(a.rowsplits_); + a.rowsplits_= std::vector(); + a.clear(); } + template simpleArray& simpleArray::operator=(simpleArray && a) { if (&a == this) @@ -227,9 +266,12 @@ simpleArray& simpleArray::operator=(simpleArray && a) { assigned_ = a.assigned_; a.size_ = 0; shape_ = std::move(a.shape_); + a.shape_ = std::vector(); rowsplits_ = std::move(a.rowsplits_); + a.rowsplits_= std::vector(); return *this; } +#endif template void simpleArray::clear() { @@ -242,7 +284,10 @@ void simpleArray::clear() { } template -void simpleArray::setShape(std::vector shape) { +void simpleArray::setShape(std::vector shape,const std::vector& rowsplits) { + if(rowsplits.size()){ + *this = simpleArray(shape,rowsplits); + } int size = sizeFromShape(shape); if (size != size_) { *this = simpleArray(shape); @@ -268,22 +313,39 @@ T * simpleArray::disownData() { /* * Splits on first axis. * Returns the first part, leaves the second + * for ragged it is the number of elements index - need to be consistent with the rowplits + * + * add function 'size_t getClosestSplitPoint(size_t splitnelements, bool down=True)' + * + * for ragged, the split point is the INDEX IN THE ROWSPLIT VECTOR! + * */ template simpleArray simpleArray::split(size_t splitindex) { simpleArray out; - if (!shape_.size() || splitindex > shape_.at(0)) { + if (!shape_.size() || (!isRagged() && splitindex > shape_.at(0))) { throw std::runtime_error( "simpleArray::split: splitindex > shape_[0]"); } - if (rowsplits_.size()) { - throw std::runtime_error("simpleArray::split: TBI for row splits"); - //check row split dimension, check if split possible and split accordingly - } + if(isRagged() && splitindex > rowsplits_.size()) + throw std::runtime_error( + "simpleArray::split: ragged split index out of range"); + + //get split point for data + ///insert rowsplit logic below size_t splitpoint = splitindex; - for (size_t i = 1; i < shape_.size(); i++) - splitpoint *= std::abs(shape_.at(i)); + if(isRagged()){ + splitpoint = rowsplits_.at(splitindex); + for (size_t i = 2; i < shape_.size(); i++) + splitpoint *= std::abs(shape_.at(i)); + } + else{ + for (size_t i = 1; i < shape_.size(); i++) + splitpoint *= std::abs(shape_.at(i)); + } + + size_t remaining = size_ - splitpoint; T * odata = new T[splitpoint]; @@ -295,9 +357,22 @@ simpleArray simpleArray::split(size_t splitindex) { delete data_; out.data_ = odata; data_ = rdata; + ///insert rowsplit logic below out.shape_ = shape_; out.shape_.at(0) = splitindex; shape_.at(0) = shape_.at(0) - splitindex; + if(isRagged()){ + out.rowsplits_ = std::vector (rowsplits_.begin(),rowsplits_.begin()+splitindex+1); + int outnelements = out.rowsplits_.at(out.rowsplits_.size()-1); + rowsplits_ = std::vector (rowsplits_.begin()+splitindex,rowsplits_.end()); + for(size_t i=0;i::append(const simpleArray& a) { if (shape_.size() != a.shape_.size()) throw std::out_of_range( "simpleArray::append: shape dimensions don't match"); + if(isRagged() != a.isRagged()) + throw std::out_of_range( + "simpleArray::append: can't append ragged to non ragged or vice versa"); + std::vector targetshape; if (shape_.size() > 1 && a.shape_.size() > 1) { - std::vector highshape = std::vector(shape_.begin() + 1, + size_t offset = 1; + if(isRagged()) + offset = 2; + + std::vector highshape = std::vector(shape_.begin() + offset, shape_.end()); - std::vector ahighshape = std::vector(a.shape_.begin() + 1, + std::vector ahighshape = std::vector(a.shape_.begin() + offset, a.shape_.end()); if (highshape != ahighshape) { throw std::out_of_range( "simpleArray::append: all shapes but first axis must match"); } targetshape.push_back(shape_.at(0) + a.shape_.at(0)); + if(isRagged()) + targetshape.push_back(-1); targetshape.insert(targetshape.end(), highshape.begin(), highshape.end()); } else { targetshape.push_back(shape_.at(0) + a.shape_.at(0)); } - if (rowsplits_.size() || a.rowsplits_.size()) - throw std::runtime_error("simpleArray::append: TBI for row splits"); - T * ndata = new T[size_ + a.size_]; memcpy(ndata, data_, size_ * sizeof(T)); memcpy(ndata + size_, a.data_, a.size_ * sizeof(T)); @@ -343,8 +425,25 @@ void simpleArray::append(const simpleArray& a) { delete data_; data_ = ndata; size_ = size_ + a.size_; + ///insert rowsplit logic below shape_ = targetshape; + //recalculate -XxY part of the shape + //append the row splits if dimensions match (- on same axis) + /// + if(isRagged()){ + //need copy in case this == &a + auto ars = a.rowsplits_; + + size_t oldrssize = rowsplits_.size(); + int nelements = rowsplits_.at(oldrssize-1); + size_t newrssize = oldrssize + ars.size()-1; + rowsplits_.resize(newrssize); + for(size_t i=0;i @@ -427,16 +526,26 @@ int simpleArray::sizeFromShape(std::vector shape) const { for (const auto s : shape){ size *= std::abs(s); if(s<0) - size/=previous; + size/=previous*previous; previous=s; } return size; } + +template +std::vector simpleArray::shapeFromRowsplits()const{ + if(!isRagged()) return shape_; + if(shape_.size()<2) return shape_; + int nbatch = shape_.at(0); + auto outshape = shape_; + //rowsplits.size = nbatch+1 + outshape.at(1) = -nbatch * rowsplits_.at(rowsplits_.size()-1); + return outshape; +} + template void simpleArray::checkShape(size_t ndims)const{ - if(rowsplits_.size()){ - //TBI - } + //rowsplit ready due to definiton of shape if(ndims != shape_.size()){ throw std::out_of_range("simpleArray::checkShape: shape does not match dimensions accessed"); } @@ -448,8 +557,81 @@ void simpleArray::checkSize(size_t idx)const{ throw std::out_of_range("simpleArray::checkSize: index out of range"); } +template +void simpleArray::checkRaggedIndex(size_t i, size_t j)const{ + if(i > rowsplits_.size()-1 || j >= rowsplits_.at(i+1)-rowsplits_.at(i)) + throw std::out_of_range("simpleArray::checkRaggedIndex: index out of range"); +} + + + +// rowsplit support being added here (see whiteboard) +template +size_t simpleArray::flatindex(size_t i, size_t j)const{ + size_t flat = 0; + if(isRagged()){ + checkRaggedIndex(i,j); + flat = rowsplits_.at(i)+j;} + else{ + flat = j + shape_.at(1)*i;} + return flat; +} + +//this can also be ragged +template +size_t simpleArray::flatindex(size_t i, size_t j, size_t k)const{ + size_t flat = 0; + if(isRagged()){ + checkRaggedIndex(i,j); + flat = k + shape_.at(2)*(rowsplits_.at(i)+j);} + else{ + flat = k + shape_.at(2)*(j + shape_.at(1)*i);} + return flat; +} +template +size_t simpleArray::flatindex(size_t i, size_t j, size_t k, size_t l)const{ + size_t flat = 0; + if(isRagged()){ + checkRaggedIndex(i,j); + flat = l + shape_.at(3)*(k + shape_.at(2)*(rowsplits_.at(i)+j));} + else{ + flat = l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i));} + return flat; +} +template +size_t simpleArray::flatindex(size_t i, size_t j, size_t k, size_t l, size_t m)const{ + size_t flat = 0; + if(isRagged()){ + checkRaggedIndex(i,j); + flat = m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(rowsplits_.at(i)+j)));} + else{ + flat = m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i)));} + return flat; +} +template +size_t simpleArray::flatindex(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const{ + size_t flat = 0; + if(isRagged()){ + checkRaggedIndex(i,j); + flat = n + shape_.at(5)*(m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(rowsplits_.at(i)+j))));} + else{ + flat = n + shape_.at(5)*(m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i))));} + return flat; +} + -//no row split support here!! +//no row split support here!! needs to be added! +//relatively easy if dimension 1 is row split. other dimensions harder + + +template +size_t simpleArray::sizeAt(size_t i)const{ + checkShape(2); + if(!isRagged()) + return shape_.at(1); + checkRaggedIndex(i,0); + return rowsplits_.at(i+1)-rowsplits_.at(i); +} template @@ -469,7 +651,7 @@ const T & simpleArray::at(size_t i)const{ template T & simpleArray::at(size_t i, size_t j){ checkShape(2); - size_t flat = j + shape_.at(1)*i; + size_t flat = flatindex(i,j); checkSize(flat); return data_[flat]; } @@ -477,7 +659,7 @@ T & simpleArray::at(size_t i, size_t j){ template const T & simpleArray::at(size_t i, size_t j)const{ checkShape(2); - size_t flat = j + shape_.at(1)*i; + size_t flat = flatindex(i,j); checkSize(flat); return data_[flat]; } @@ -485,7 +667,7 @@ const T & simpleArray::at(size_t i, size_t j)const{ template T & simpleArray::at(size_t i, size_t j, size_t k){ checkShape(3); - size_t flat = k + shape_.at(2)*(j + shape_.at(1)*i); + size_t flat = flatindex(i,j,k); checkSize(flat); return data_[flat]; } @@ -493,7 +675,7 @@ T & simpleArray::at(size_t i, size_t j, size_t k){ template const T & simpleArray::at(size_t i, size_t j, size_t k)const{ checkShape(3); - size_t flat = k + shape_.at(2)*(j + shape_.at(1)*i); + size_t flat = flatindex(i,j,k); checkSize(flat); return data_[flat]; } @@ -501,7 +683,7 @@ const T & simpleArray::at(size_t i, size_t j, size_t k)const{ template T & simpleArray::at(size_t i, size_t j, size_t k, size_t l){ checkShape(4); - size_t flat = l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i)); + size_t flat = flatindex(i,j,k,l); checkSize(flat); return data_[flat]; } @@ -509,7 +691,7 @@ T & simpleArray::at(size_t i, size_t j, size_t k, size_t l){ template const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l)const{ checkShape(4); - size_t flat = l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i)); + size_t flat = flatindex(i,j,k,l); checkSize(flat); return data_[flat]; } @@ -517,7 +699,7 @@ const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l)const{ template T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m){ checkShape(5); - size_t flat = m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i))); + size_t flat = flatindex(i,j,k,l,m); checkSize(flat); return data_[flat]; } @@ -525,7 +707,7 @@ T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m){ template const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m)const{ checkShape(5); - size_t flat = m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i))); + size_t flat = flatindex(i,j,k,l,m); checkSize(flat); return data_[flat]; } @@ -533,7 +715,7 @@ const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m)co template T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n){ checkShape(6); - size_t flat = n + shape_.at(5)*(m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i)))); + size_t flat = flatindex(i,j,k,l,m,n); checkSize(flat); return data_[flat]; } @@ -541,7 +723,7 @@ T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t template const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const{ checkShape(6); - size_t flat = n + shape_.at(5)*(m + shape_.at(4)*(l + shape_.at(3)*(k + shape_.at(2)*(j + shape_.at(1)*i)))); + size_t flat = flatindex(i,j,k,l,m,n); checkSize(flat); return data_[flat]; } diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 272742f..2ddfa50 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -29,9 +29,9 @@ class trainData{ //just give access to the vectors, don't wrap like crazy - const size_t addFeatureArray(std::vector shape); - const size_t addTruthArray(std::vector shape); - const size_t addWeightArray(std::vector shape); + const size_t addFeatureArray(std::vector shape,const std::vector& rowsplits = {}); + const size_t addTruthArray(std::vector shape,const std::vector& rowsplits = {}); + const size_t addWeightArray(std::vector shape,const std::vector& rowsplits = {}); const simpleArray & featureArray(size_t idx) const { return feature_arrays_.at(idx); @@ -114,24 +114,24 @@ class trainData{ template -const size_t trainData::addFeatureArray(std::vector shape){ +const size_t trainData::addFeatureArray(std::vector shape,const std::vector& rowsplits){ size_t idx = feature_arrays_.size(); - feature_arrays_.push_back(simpleArray(shape)); + feature_arrays_.push_back(simpleArray(shape,rowsplits)); return idx; } template -const size_t trainData::addTruthArray(std::vector shape){ +const size_t trainData::addTruthArray(std::vector shape,const std::vector& rowsplits){ size_t idx = truth_arrays_.size(); - truth_arrays_.push_back(simpleArray(shape)); + truth_arrays_.push_back(simpleArray(shape,rowsplits)); return idx; } template -const size_t trainData::addWeightArray(std::vector shape){ +const size_t trainData::addWeightArray(std::vector shape,const std::vector& rowsplits){ size_t idx = weight_arrays_.size(); - weight_arrays_.push_back(simpleArray(shape)); + weight_arrays_.push_back(simpleArray(shape,rowsplits)); return idx; } @@ -154,6 +154,10 @@ void trainData::append(const trainData& td) { *this = td; return; } + if(!td.feature_arrays_.size() && !td.truth_arrays_.size() + && !td.weight_arrays_.size()){ + return ; //nothing to do + } if (feature_arrays_.size() != td.feature_arrays_.size() || truth_arrays_.size() != td.truth_arrays_.size() || weight_arrays_.size() != td.weight_arrays_.size()) { diff --git a/compiled/to_bin/_testRaggedArray.cpp b/compiled/to_bin/_testRaggedArray.cpp new file mode 100644 index 0000000..5d6e93b --- /dev/null +++ b/compiled/to_bin/_testRaggedArray.cpp @@ -0,0 +1,124 @@ + + +#include +#include "../interface/quicklzWrapper.h" +#include "../interface/simpleArray.h" +#include "../interface/trainData.h" + +#include "../interface/trainDataGenerator.h" + +#include +using namespace djc; + +void coutExpected(){ + std::cout << "expected shape:\n[ \n[[0,1], [2,3]],\n[[3,4], [5,6], [7,8]],\n[[9,10]],\n[[11,12],[13,14]]\n]" << std::endl; + +} + +void coutarray(const simpleArray & farr){ + std::cout << "data size "<< farr.size() < rowsplits = {0,2,5,6,8}; + + simpleArray farr({4,-1,2},rowsplits); + + std::cout << "size " << farr.size() << std::endl; + + for(float i=0;i farr2 = farr; + + + for(float i=0;i nors({20,20,3}); + nors = nors.split(10); + coutarray(nors); + nors = nors.split(5); + coutarray(nors); + nors = nors.split(1); + coutarray(nors); + std::cout << "double split ragged" < +#include "../interface/quicklzWrapper.h" +#include "../interface/simpleArray.h" +#include "../interface/trainData.h" + +#include "../interface/trainDataGenerator.h" + +#include +using namespace djc; + +void coutExpected(){ + std::cout << "expected shape:\n[ \n[[0,1], [2,3]],\n[[3,4], [5,6], [7,8]],\n[[9,10]],\n[[11,12],[13,14]]\n]" << std::endl; + +} + +void coutarray(const simpleArray & farr){ + std::cout << "data size "<< farr.size() < rowsplits = {0,2,5,6,8}; + + trainData td; + + size_t idx = td.addFeatureArray({4,-1,2},rowsplits); + + simpleArray & farr = td.featureArray(idx); + + std::cout << "size " << farr.size() << std::endl; + + for(float i=0;i td_nrs; + td_nrs.addFeatureArray({100,20,20}); + td_nrs = td_nrs.split(20); + coutarray(td.featureArray(idx)); + td_nrs = td_nrs.split(10); + coutarray(td.featureArray(idx)); + td_nrs = td_nrs.split(3); + coutarray(td.featureArray(idx)); + + + td = td.split(2); + + std::cout << "split self, size after " << td.nElements() << std::endl; + coutarray(td.featureArray(idx)); + std::cout << "split self again at 1" << std::endl; + + //this segfaults.... + td = td.split(1); + std::cout << "split self, size after " << td.nElements() << std::endl; + coutarray(td.featureArray(idx)); + + +} diff --git a/compiled/to_bin/_testSimpleArrayAndTD.cpp b/compiled/to_bin/_testSimpleArrayAndTD.cpp new file mode 100644 index 0000000..56cda69 --- /dev/null +++ b/compiled/to_bin/_testSimpleArrayAndTD.cpp @@ -0,0 +1,174 @@ + + +#include +#include "../interface/quicklzWrapper.h" +#include "../interface/simpleArray.h" +#include "../interface/trainData.h" + +#include "../interface/trainDataGenerator.h" + +using namespace djc; + +void coutarray(const simpleArray & farr){ + std::cout << "data size "<< farr.size() < farr({5,2,1}); + for(float i=0;i ifarr; + + ifarr.readFromFile(ifile); + + + fclose(ifile); + + + for(size_t i=0;i > vec; + vec.push_back(ar2); + + auto & var2 = vec.at(0); + + for(size_t i=0;i td; + + size_t fvidx = td.addFeatureArray( {30,2,3} ); + std::cout << fvidx << std::endl; + std::cout << td.featureArray(fvidx).size() << std::endl; + td.featureArray(fvidx).at(0,0,0) = 1; + td.featureArray(fvidx).at(0,0,1) = 1; + td.featureArray(fvidx).at(0,1,0) = 1; + td.featureArray(fvidx).at(1,0,0) = 1; + td.featureArray(fvidx).at(1,1,0) = 1; + td.featureArray(fvidx).at(2,1,2) = 2; + + std::cout << "print "<< std::endl; + + for(size_t i=0;i td2; + td2.readFromFile("tempfile.djctd"); + + std::cout << "read "<< std::endl; + + for(size_t i=0;i bigtd; + + size_t fidx = bigtd.addFeatureArray({1000, 4000, 10}); + for(size_t i=0;i rbig; + rbig.readFromFile("bigfile.djctd"); + std::cout << "done reading file "<< std::endl; + +} diff --git a/compiled/to_bin/testpipeline.cpp b/compiled/to_bin/testpipeline.cpp index 273a460..a7f0539 100644 --- a/compiled/to_bin/testpipeline.cpp +++ b/compiled/to_bin/testpipeline.cpp @@ -22,13 +22,13 @@ std::ostream& operator<< (std::ostream& os, std::vector v){ using namespace djc; int main(){ - //create some data -/* - bool write=false; + + + bool write=true; if(write){ trainData bigtd; - auto fidx = bigtd.addFeatureArray({1000, 4000, 10}); + auto fidx = bigtd.addFeatureArray({1000, 400, 10}); for(size_t i=0;i farr({5,2,1}); - for(float i=0;i ifarr; - - ifarr.readFromFile(ifile); - - - fclose(ifile); - - - for(size_t i=0;i > vec; - vec.push_back(ar2); - - auto & var2 = vec.at(0); - - for(size_t i=0;i td; - - size_t fvidx = td.addFeatureArray( {30,2,3} ); - std::cout << fvidx << std::endl; - std::cout << td.featureArray(fvidx).size() << std::endl; - td.featureArray(fvidx).at(0,0,0) = 1; - td.featureArray(fvidx).at(0,0,1) = 1; - td.featureArray(fvidx).at(0,1,0) = 1; - td.featureArray(fvidx).at(1,0,0) = 1; - td.featureArray(fvidx).at(1,1,0) = 1; - td.featureArray(fvidx).at(2,1,2) = 2; - - std::cout << "print "<< std::endl; - - for(size_t i=0;i td2; - td2.readFromFile("tempfile.djctd"); - - std::cout << "read "<< std::endl; - - for(size_t i=0;i bigtd; - - size_t fidx = bigtd.addFeatureArray({1000, 4000, 10}); - for(size_t i=0;i rbig; - rbig.readFromFile("bigfile.djctd"); - std::cout << "done reading file "<< std::endl; } From 0a39e8e37b5b5f5bca1c730f89597b414d7f3f94 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 14 Nov 2019 20:03:25 +0100 Subject: [PATCH 155/437] some fixes --- compiled/interface/trainDataGenerator.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index d053389..7239f67 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -159,7 +159,9 @@ void trainDataGenerator::readBuffer(){ return; } sleep(1); + ntries++; } + buffer_read.clear(); throw std::runtime_error("trainDataGenerator::readBuffer: file "+nextread_+ " could not be read."); } From 651ea8e777c5d4dd5719157455a0325ec8c1c4cd Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 14 Nov 2019 19:46:04 +0000 Subject: [PATCH 156/437] important race condition fix --- bin/extractDjcCppInterface.py | 29 +++++++++ compiled/interface/simpleArray.h | 6 +- compiled/interface/trainData.h | 4 ++ compiled/interface/trainDataGenerator.h | 67 +++++++++------------ testing/datastructures/TrainData_testing.py | 14 ++--- 5 files changed, 70 insertions(+), 50 deletions(-) create mode 100755 bin/extractDjcCppInterface.py diff --git a/bin/extractDjcCppInterface.py b/bin/extractDjcCppInterface.py new file mode 100755 index 0000000..959fedd --- /dev/null +++ b/bin/extractDjcCppInterface.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + + +from argparse import ArgumentParser +import os + +parser = ArgumentParser('Extract the C++ interface for trainData etc to be used outside in a simple package') +parser.add_argument('outputDir') + + +args = parser.parse_args() + + +script = ''' +#!/bin/bash +mkdir -p {outdir} +mkdir -p {outdir}/interface +mkdir -p {outdir}/src +cp $DEEPJETCORE/compiled/interface/version.h {outdir}/interface/ +cp $DEEPJETCORE/compiled/interface/IO.h {outdir}/interface/ +cp $DEEPJETCORE/compiled/interface/quicklz.h {outdir}/interface/ +cp $DEEPJETCORE/compiled/interface/quicklzWrapper.h {outdir}/interface/ +cp $DEEPJETCORE/compiled/interface/simpleArray.h {outdir}/interface/ +cp $DEEPJETCORE/compiled/interface/trainData.h {outdir}/interface/ +cp $DEEPJETCORE/compiled/src/quicklz.c {outdir}/src/ + +'''.format(outdir=args.outputDir) + +os.system(script) \ No newline at end of file diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index be87b35..903d64e 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -18,7 +18,7 @@ #include -#define USEMOVE +#define DJCSA_USEMOVE namespace djc{ @@ -45,7 +45,7 @@ class simpleArray { simpleArray(const simpleArray&); simpleArray& operator=(const simpleArray&); -#ifdef USEMOVE +#ifdef DJCSA_USEMOVE simpleArray(simpleArray &&); simpleArray& operator=(simpleArray &&); #endif @@ -233,7 +233,7 @@ simpleArray& simpleArray::operator=(const simpleArray& a) { return *this; } -#ifdef USEMOVE +#ifdef DJCSA_USEMOVE template simpleArray::simpleArray(simpleArray && a) : simpleArray() { diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 2ddfa50..03b3ee0 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -161,6 +161,9 @@ void trainData::append(const trainData& td) { if (feature_arrays_.size() != td.feature_arrays_.size() || truth_arrays_.size() != td.truth_arrays_.size() || weight_arrays_.size() != td.weight_arrays_.size()) { + std::cout << "nfeat " << feature_arrays_.size() << "-" << td.feature_arrays_.size() <<'\n' + << "ntruth " << truth_arrays_.size() << "-" << td.truth_arrays_.size()<<'\n' + << "nweights " << weight_arrays_.size() << "-" << td.weight_arrays_.size() <::append: format not compatible."); } for(size_t i=0;i::readFromFile(std::string filename){ feature_arrays_ = readArrayVector(ifile); truth_arrays_ = readArrayVector(ifile); weight_arrays_ = readArrayVector(ifile); + fclose(ifile); } diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 7239f67..4d02890 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -93,7 +93,7 @@ class trainDataGenerator{ void shuffleFilelist(); void readBuffer(); void readNTotal(); - void prepareBatch(); + trainData prepareBatch(); std::vector orig_infiles_; std::vector shuffled_infiles_; int randomcount_; @@ -109,9 +109,6 @@ class trainDataGenerator{ size_t lastbatchsize_; size_t filetimeout_; - std::thread * preparethread_; - trainData prepared_tdbatch_; - bool threading_; //in case the keras generator is indeed faster, just placeholder for now }; @@ -119,24 +116,17 @@ class trainDataGenerator{ template trainDataGenerator::trainDataGenerator() :debug(false), randomcount_(1), batchsize_(2), readthread_(0), filecount_(0), nbatches_( - 0), ntotal_(0), nsamplesprocessed_(0),filetimeout_(10),preparethread_(0), + 0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), threading_(true){ } template trainDataGenerator::~trainDataGenerator(){ if(readthread_){ - //try{ - // delete readthread_; - //}catch(...){} - //buffer_read.clear(); readthread_->join(); delete readthread_; } - if(preparethread_){ - preparethread_->join(); - delete preparethread_; - } + } template @@ -153,10 +143,19 @@ void trainDataGenerator::shuffleFilelist(){ template void trainDataGenerator::readBuffer(){ size_t ntries = 0; + std::exception caught; while(ntries < filetimeout_){ if(io::fileExists(nextread_)){ - buffer_read.readFromFile(nextread_); - return; + try{ + buffer_read.readFromFile(nextread_); + return; + } + catch(std::exception & e){ //if there are data glitches we don't want the whole training fail immediately + caught=e; + std::cout << "File not "<< nextread_ <<" successfully read: " << e.what() << std::endl; + std::cout << "trying " << filetimeout_-ntries << " more time(s)" << std::endl; + ntries+=1; + } } sleep(1); ntries++; @@ -175,7 +174,7 @@ void trainDataGenerator::readNTotal(){ td.readShapesFromFile(f,fs, ts, ws); //first dimension is always Nelements. At least features are filled if(fs.size()<1 || fs.at(0).size()<1) - throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object"); + throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object "+f); ntotal_ += fs.at(0).at(0); } nbatches_ = ntotal_/batchsize_; @@ -186,47 +185,36 @@ template void trainDataGenerator::prepareNextEpoch(){ //prepare for next epoch, pre-read first file - if(preparethread_){ - preparethread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way - delete preparethread_; - - //try{ //brute force but might be ok - // delete readthread_; - //}catch(...){} - //buffer_read.clear(); + if(readthread_){ + readthread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way + delete readthread_; + } buffer_store.clear(); buffer_read.clear(); - prepared_tdbatch_.clear(); filecount_=0; nsamplesprocessed_=0; shuffleFilelist(); nextread_ = shuffled_infiles_.at(filecount_); - preparethread_ = new std::thread(&trainDataGenerator::prepareBatch,this); + readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); } template void trainDataGenerator::end(){ - if(preparethread_){ - preparethread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way - delete preparethread_; - preparethread_=0; + if(readthread_){ + readthread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way + delete readthread_; + readthread_=0; } } template trainData trainDataGenerator::getBatch(){ - if(! preparethread_) - throw std::runtime_error("trainDataGenerator::getBatch: prepare thread not launched. Call prepareNextEpoch first"); - preparethread_->join(); - auto out = prepared_tdbatch_; //std::move? data not needed anymore? - prepared_tdbatch_.clear(); - preparethread_ = new std::thread(&trainDataGenerator::prepareBatch,this); - return out; + return prepareBatch(); } template -void trainDataGenerator::prepareBatch(){ +trainData trainDataGenerator::prepareBatch(){ size_t bufferelements=buffer_store.nElements(); @@ -259,7 +247,8 @@ void trainDataGenerator::prepareBatch(){ std::cout << "provided batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+batchsize_ << " elements in buffer: " << bufferelements << std::endl; nsamplesprocessed_+=batchsize_; - prepared_tdbatch_ = buffer_store.split(batchsize_); + lastbatchsize_ = batchsize_; + return buffer_store.split(batchsize_); } diff --git a/testing/datastructures/TrainData_testing.py b/testing/datastructures/TrainData_testing.py index 54e65fd..c505119 100644 --- a/testing/datastructures/TrainData_testing.py +++ b/testing/datastructures/TrainData_testing.py @@ -93,7 +93,7 @@ class TrainData_testBatch(base_traindata_batchex): def __init__(self): base_traindata_batchex.__init__(self) - def convertFromSourceFile(self, filename, weighterobjects): + def convertFromSourceFile(self, filename, weighterobjects, istraining): from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles import numpy @@ -136,9 +136,8 @@ def convertFromSourceFile(self, filename, weighterobjects): print(x_global.shape, alltruth.shape, self.nsamples) - self.w=[] - self.x=[x_global] - self.y=[alltruth] + return [x_global], [alltruth], [] + @@ -283,7 +282,7 @@ def __init__(self): - def convertFromSourceFile(self, filename, weighterobjects): + def convertFromSourceFile(self, filename, weighterobjects, istraining): from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles import numpy from DeepJetCore.stopwatch import stopwatch @@ -334,7 +333,6 @@ def convertFromSourceFile(self, filename, weighterobjects): print(x_global.shape,self.nsamples) - self.x=[x_global,x_cpf,x_npf,x_sv] - self.y=[alltruth] - self.w=[] + return [x_global,x_cpf,x_npf,x_sv], [alltruth], [] + From 005697d420a19e3cbbe83a26e44829e37e0f9c1c Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 14 Nov 2019 20:52:51 +0100 Subject: [PATCH 157/437] some docu --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1fe7120..7d3afb0 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,13 @@ Setup ========== The package comes with a docker file in the subdirectory docker, which will set up a container with the needed environment. - +(every non-CERN user can skip to the next section now) **Users with access to Cernbox** can just run the container through the prepared script at: ``/eos/home-j/jkiesele/singularity/run_deepjetcore.sh`` -Please run this script from your home directory. The cache dir can get rather large and is normally located at ~/.singularity/cache. To avoid filling up the home afs, the cache can be set to /tmp or the work afs. Once the container is fully closed, the cache can be safely deleted. Singularity reacts to environment variables, e.g. +Every user who has subscribed to the e-group ml-deepjetcore will have read access to the containers. + +The cache dir can get rather large and is normally located at ~/.singularity/cache. To avoid filling up the home afs, the cache can be set to /tmp or the work afs. Once the container is fully closed, the cache can be safely deleted. Singularity reacts to environment variables, e.g. ``` export SINGULARITY_CACHEDIR="/tmp/$(whoami)/singularity" @@ -27,6 +29,8 @@ export SINGULARITY_CACHEDIR="/tmp/$(whoami)/singularity" Sometimes you need to try two or three times - singularity is a bit weird. But once the contaienr is launched, everything works smoothly. The message about a missing user group can be safely ignored. +**It is important** that your bashrc does not reset the LD_LIBRARY or PYTHOPATH environment variables. + Usage ========== From d1156113949d6e8262e846fe63729d32c194c2c4 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 14 Nov 2019 20:54:19 +0100 Subject: [PATCH 158/437] docu --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d3afb0..f1a5916 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ The package comes with a docker file in the subdirectory docker, which will set (every non-CERN user can skip to the next section now) **Users with access to Cernbox** can just run the container through the prepared script at: -``/eos/home-j/jkiesele/singularity/run_deepjetcore.sh`` +``/eos/home-j/jkiesele/singularity/run_deepjetcore2.sh`` Every user who has subscribed to the e-group ml-deepjetcore will have read access to the containers. The cache dir can get rather large and is normally located at ~/.singularity/cache. To avoid filling up the home afs, the cache can be set to /tmp or the work afs. Once the container is fully closed, the cache can be safely deleted. Singularity reacts to environment variables, e.g. From 433b503f0fc0caa5d688ba21f12f563bc45cb345 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 16 Nov 2019 19:34:47 +0000 Subject: [PATCH 159/437] more ragged support. direct simpleArray python interface --- TrainData.py | 39 ++- compiled/interface/simpleArray.h | 71 ++++- compiled/interface/simpleArrayPython.h | 194 +++++++++++++ compiled/interface/trainData.h | 2 +- compiled/src/c_simpleArrayPython.C | 42 +++ compiled/to_bin/_testRaggedArray.cpp | 5 +- compiled/to_bin/_testSimpleArrayAndTD.cpp | 15 +- docker/Dockerfile | 1 - docker/Dockerfile_base | 2 + training/training_base.py | 327 +--------------------- 10 files changed, 342 insertions(+), 356 deletions(-) create mode 100644 compiled/interface/simpleArrayPython.h create mode 100644 compiled/src/c_simpleArrayPython.C diff --git a/TrainData.py b/TrainData.py index 3696670..aa51696 100644 --- a/TrainData.py +++ b/TrainData.py @@ -35,6 +35,12 @@ def fileTimeOut(fileName, timeOut): time.sleep(1) +class RaggedWrapper(object): + def __init__(self, data_array, rowsplits): + self.data_array = data_array + self.rowsplits = rowsplits + + class TrainData(object): ''' @@ -112,12 +118,24 @@ def getKerasTruthShapes(self): return [a[1:] for a in self.yshapes] def writeToFile(self,filename): - ctd.writeToFile(self.x,self.y,self.w,filename) + + x, xisr = _prepareRagged(self.x) + y, yisr = _prepareRagged(self.y) + w, wisr = _prepareRagged(self.w) + + ctd.writeToFile(x,y,w, + xisr, yisr, wisr, + filename) + + + def readFromFile(self,infile,shapesOnly=False): ''' For debugging or getting shapes. Don't use this function for a generator, use the C++ Generator instead! + + RAGGED: TBI ''' self.clear() self.sourcefile=infile @@ -131,7 +149,8 @@ def readFromFile(self,infile,shapesOnly=False): ### if shapesOnly: return - l = ctd.readFromFile(infile) + l, isr = ctd.readFromFile(infile) #make this a tuple + # fill differently depending on whether it's ragged or not self.x = l[0] self.y = l[1] self.w = l[2] @@ -142,6 +161,19 @@ def readIn(self,fileprefix,shapesOnly=False): + def _prepareRagged(self, l_in): + israg = [] + for l in l_in: + if type(l) == "RaggedWrapper": + israg.append[1] + else: + israg.append[0] + return l_in, israg + + + def readFromSourceFile(self,filename, weighterobjects={}, istraining=False): + self.x, self.y, self.w = self.convertFromSourceFile(filename, weighterobjects, istraining) + ################# functions to be defined by the user def createWeighterObjects(self, allsourcefiles): @@ -157,10 +189,11 @@ def createWeighterObjects(self, allsourcefiles): ## if direct writeout is useful def writeFromSourceFile(self, filename, weighterobjects, istraining, outname): - self.x, self.y, self.w = self.convertFromSourceFile(filename, weighterobjects, istraining) + self.readFromSourceFile(filename, weighterobjects, istraining) self.writeToFile(outname) ## otherwise only define the conversion rule + # returns a list of numpy arrays OR RaggedWrapper for ragged tensors def convertFromSourceFile(self, filename, weighterobjects, istraining): return [],[],[] diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 903d64e..995b394 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -29,9 +29,8 @@ class simpleArray { simpleArray(); // row splits are indicated by a merged dimension with negative sign - // always merge to previous dimension // e.g. A x B x C x D, where B is ragged would get shape - // A x -A*B x C x D + // A x -nElementsTotal x C x D // ROW SPLITS START WITH 0 and end with the total number of elements along that dimension // therefore, the rosplits vector size is one more than the first dimension // @@ -93,8 +92,6 @@ class simpleArray { /* * Move data memory location to another object - * This will reset the array. Read shapes, row splits etc. before - * performing this operation! */ T * disownData(); @@ -136,10 +133,14 @@ class simpleArray { * size, shape.size(), [shape], rowsplits.size(), [rowsplits], compr: [data] * */ - void addToFile(FILE *& ofile) const; + void addToFileP(FILE *& ofile) const; - void readFromFile(FILE *& ifile); + void readFromFileP(FILE *& ifile); + void writeToFile(const std::string& f)const; + void readFromFile(const std::string& f); + + void cout()const; size_t sizeAt(size_t i)const; // higher dim row splits size_t sizeAt(size_t i,size_t j)const; @@ -165,7 +166,7 @@ class simpleArray { T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n); const T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; -private: +protected: size_t flatindex(size_t i, size_t j)const; size_t flatindex(size_t i, size_t j, size_t k)const; size_t flatindex(size_t i, size_t j, size_t k, size_t l)const; @@ -212,7 +213,7 @@ simpleArray::simpleArray(std::vector shape,const std::vector& ro template simpleArray::simpleArray(FILE *& ifile):simpleArray(){ - readFromFile(ifile); + readFromFileP(ifile); assigned_=false; } @@ -306,7 +307,6 @@ template T * simpleArray::disownData() { T * dp = data_; data_ = 0; - clear(); return dp; } @@ -447,7 +447,7 @@ void simpleArray::append(const simpleArray& a) { } template -void simpleArray::addToFile(FILE *& ofile) const { +void simpleArray::addToFileP(FILE *& ofile) const { @@ -471,7 +471,7 @@ void simpleArray::addToFile(FILE *& ofile) const { } template -void simpleArray::readFromFile(FILE *& ifile) { +void simpleArray::readFromFileP(FILE *& ifile) { clear(); float version = 0; @@ -502,6 +502,51 @@ void simpleArray::readFromFile(FILE *& ifile) { "simpleArray::readFromFile: expected and observed length don't match"); } + + + +template +void simpleArray::writeToFile(const std::string& f)const{ + FILE *ofile = fopen(f.data(), "wb"); + float version = DJCDATAVERSION; + io::writeToFile(&version, ofile); + addToFileP(ofile); + fclose(ofile); + +} +template +void simpleArray::readFromFile(const std::string& f){ + clear(); + FILE *ifile = fopen(f.data(), "rb"); + if(!ifile) + throw std::runtime_error("trainData::readFromFile: file "+f+" could not be opened."); + float version = 0; + io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION) + throw std::runtime_error("trainData::readFromFile: wrong format version"); + readFromFileP(ifile); + fclose(ifile); +} + +template +void simpleArray::cout()const{ + std::cout << "data size "<< size() < void simpleArray::copyFrom(const simpleArray& a) { @@ -526,7 +571,7 @@ int simpleArray::sizeFromShape(std::vector shape) const { for (const auto s : shape){ size *= std::abs(s); if(s<0) - size/=previous*previous; + size/=previous; previous=s; } return size; @@ -539,7 +584,7 @@ std::vector simpleArray::shapeFromRowsplits()const{ int nbatch = shape_.at(0); auto outshape = shape_; //rowsplits.size = nbatch+1 - outshape.at(1) = -nbatch * rowsplits_.at(rowsplits_.size()-1); + outshape.at(1) = - rowsplits_.at(rowsplits_.size()-1); return outshape; } diff --git a/compiled/interface/simpleArrayPython.h b/compiled/interface/simpleArrayPython.h new file mode 100644 index 0000000..7519311 --- /dev/null +++ b/compiled/interface/simpleArrayPython.h @@ -0,0 +1,194 @@ +/* + * simpleArrayPython.h + * + * Created on: 16 Nov 2019 + * Author: jkiesele + */ + +#ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAYPYTHON_H_ +#define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAYPYTHON_H_ + + +#include +#include "boost/python/numpy.hpp" +#include "boost/python/list.hpp" +#include +#include + +#include "simpleArray.h" + +#include +/* + * slim simpleArray <-> python, boost numpy interface wrapper + */ +namespace djc{ + +template +class simpleArrayPython : public simpleArray { +public: + //pass through + simpleArrayPython():simpleArray(){} + simpleArrayPython(std::vector shape,const std::vector& rowsplits = {}):simpleArray(shape,rowsplits) {} + simpleArrayPython(FILE *& f):simpleArray(f){} + + simpleArrayPython(simpleArrayPython && rhs):simpleArray(std::move(rhs)){} + simpleArrayPython& operator=(simpleArrayPython && rhs){simpleArray::operator =(rhs);return *this;} + + simpleArrayPython(const simpleArrayPython& rhs): simpleArray::simpleArray(rhs){} + simpleArrayPython& operator=(const simpleArrayPython& rhs){simpleArray::operator =(rhs);return *this;} + + //(destructor automatically inherited) + + //convert on the fly + simpleArrayPython(const simpleArray& rhs): simpleArray::simpleArray(rhs){} + simpleArrayPython& operator=(const simpleArray& rhs){simpleArray::operator =(rhs);return *this;} + + simpleArrayPython split(size_t splitindex){return simpleArray::split(splitindex);} + + + ///new stuff + + //does not transfer data ownership! only for quick writing etc. + void assignFromNumpy(const boost::python::numpy::ndarray& ndarr, + const boost::python::numpy::ndarray& rowsplits=boost::python::numpy::empty( + boost::python::make_tuple(0), boost::python::numpy::dtype::get_builtin())); + + //transfers data ownership and cleans simpleArray instance + boost::python::tuple transferToNumpy(); + + +private: + + void checkArray(const boost::python::numpy::ndarray& ndarr, + boost::python::numpy::dtype dt=boost::python::numpy::dtype::get_builtin())const; + //void addToFile(FILE *& ofile) const{} + + //void readFromFile(FILE *& ifile){} + + +}; + +template +void simpleArrayPython::checkArray(const boost::python::numpy::ndarray& ndarr, + boost::python::numpy::dtype dt)const{ + namespace p = boost::python; + namespace np = boost::python::numpy; + + if(ndarr.get_dtype() != dt){ + throw std::runtime_error("c_trainDataInterface.extractNumpyListElement: at least one array does not have right type."); + } + auto flags = ndarr.get_flags(); + if(!(flags & np::ndarray::CARRAY) || !(flags & np::ndarray::C_CONTIGUOUS)){ + throw std::runtime_error("simpleArrayPython::assignFromNumpy: at least one array is not C contiguous, please pass as numpy.ascontiguousarray(a, dtype='float32')"); + } +} + +template +void simpleArrayPython::assignFromNumpy(const boost::python::numpy::ndarray& ndarr, + const boost::python::numpy::ndarray& rowsplits){ + namespace p = boost::python; + namespace np = boost::python::numpy; + + this->clear(); + checkArray(ndarr, np::dtype::get_builtin()); + + this->data_ = (float*)(void*) ndarr.get_data(); + + int ndim = ndarr.get_nd(); + std::vector shape; + for(int s=0;s()); + this->rowsplits_.resize(len(rowsplits)); + memcpy(&(this->rowsplits_.at(0)),(size_t*)(void*) rowsplits.get_data(), this->rowsplits_.size() * sizeof(size_t)); + shape.insert(shape.begin(),len(rowsplits)); + this->shape_ = shape; + this->shape_ = this->shapeFromRowsplits(); + } + else{ + this->shape_ = shape; + } + this->size_ = this->sizeFromShape(this->shape_); + this->assigned_=true; + std::cout << "converted " <cout(); +} + + +inline void destroyManagerCObject(PyObject* self) { + auto * b = reinterpret_cast( PyCapsule_GetPointer(self, NULL) ); + delete [] b; +} +//transfers data ownership and cleans simpleArray instance +template +boost::python::tuple simpleArrayPython::transferToNumpy(){ + + namespace p = boost::python; + namespace np = boost::python::numpy; + + + auto size = this->size(); + auto shape = this->shape(); + + std::cout << "size " << size << std::endl; + + p::list pshape; + for(size_t i=0;ishape().size();i++){ + if(this->isRagged() && i<1)continue; + pshape.append(this->shape().at(i)); + } + + p::tuple tshape(pshape); + + T * data_ptr = this->disownData(); + //ifarr invalid from here on! + + PyObject *capsule = ::PyCapsule_New((void *)data_ptr, NULL, (PyCapsule_Destructor)&destroyManagerCObject); + boost::python::handle<> h_capsule{capsule}; + boost::python::object owner_capsule{h_capsule}; + + np::ndarray dataarr = np::from_data((void*)data_ptr, + np::dtype::get_builtin(), + p::make_tuple(size), p::make_tuple(sizeof(T)), owner_capsule ); + + dataarr = dataarr.reshape(tshape); + + // row splits + // uintp is size_t in numpy + + size_t * rs = 0; + if(this->isRagged()){ + rs = new size_t [this->rowsplits_.size()]; + memcpy(rs, &this->rowsplits_.at(0), this->rowsplits_.size() * sizeof(size_t)); + + PyObject *capsule2 = ::PyCapsule_New((void *)rs, NULL, (PyCapsule_Destructor)&destroyManagerCObject); + boost::python::handle<> h_capsule2{capsule2}; + boost::python::object owner_capsule2{h_capsule2}; + + np::ndarray rowsplits = np::from_data((void*)rs, + np::dtype::get_builtin(), + p::make_tuple(this->rowsplits_.size()), p::make_tuple(sizeof(size_t)), owner_capsule2 ); + + this->clear();//reset all + return p::make_tuple(dataarr,rowsplits); + } + else{ + np::ndarray rowsplits = np::empty(p::make_tuple(0), np::dtype::get_builtin()); + this->clear();//reset all + return p::make_tuple(dataarr,rowsplits); + } + +} + + + +}//namespace + + + + + +#endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAYPYTHON_H_ */ diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 03b3ee0..1cc0a30 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -273,7 +273,7 @@ void trainData::writeArrayVector(const std::vector >& v, FILE size_t size = v.size(); io::writeToFile(&size, ofile); for(const auto& a: v) - a.addToFile(ofile); + a.addToFileP(ofile); } template diff --git a/compiled/src/c_simpleArrayPython.C b/compiled/src/c_simpleArrayPython.C new file mode 100644 index 0000000..3e20916 --- /dev/null +++ b/compiled/src/c_simpleArrayPython.C @@ -0,0 +1,42 @@ +/* + * c_NumpyInterface.C + * + * Created on: 6 Nov 2019 + * Author: jkiesele + * + * Simple reading and writing of numpy arrays using the simpleArray classes + * and quicklz. There is a lot of overhead w.r.t. standard numpy, but this implementation + * is faster, and mostly for occasional usage. + * + * Only implemented for float32 arrays + */ + +#include "../interface/helper.h" +#include "../interface/simpleArrayPython.h" + + +namespace p = boost::python; +namespace np = boost::python::numpy; + +using namespace djc; +/* + * just a wrapper module + */ + + + +BOOST_PYTHON_MODULE(c_simpleArrayPython) { + Py_Initialize(); + np::initialize(); + + p::class_ >("simpleArrayPython") + .def("readFromFile", &simpleArrayPython::readFromFile) + .def("writeToFile", &simpleArrayPython::writeToFile) + .def("assignFromNumpy", &simpleArrayPython::assignFromNumpy) + .def("transferToNumpy", &simpleArrayPython::transferToNumpy) + .def("isRagged", &simpleArrayPython::isRagged) + .def("split", &simpleArrayPython::split) + .def("append", &simpleArrayPython::append); + ; +} + diff --git a/compiled/to_bin/_testRaggedArray.cpp b/compiled/to_bin/_testRaggedArray.cpp index 5d6e93b..d52de69 100644 --- a/compiled/to_bin/_testRaggedArray.cpp +++ b/compiled/to_bin/_testRaggedArray.cpp @@ -42,11 +42,14 @@ int main(){ for(float i=0;i farr2 = farr; diff --git a/compiled/to_bin/_testSimpleArrayAndTD.cpp b/compiled/to_bin/_testSimpleArrayAndTD.cpp index 56cda69..d48e303 100644 --- a/compiled/to_bin/_testSimpleArrayAndTD.cpp +++ b/compiled/to_bin/_testSimpleArrayAndTD.cpp @@ -37,20 +37,11 @@ int main(){ //write part - FILE *ofile = fopen("testfile.djcd", "wb"); + farr.writeToFile("testfile_plain.djcd"); - farr.addToFile(ofile); + simpleArray ifarr; + ifarr.readFromFile("testfile_plain.djcd"); - fclose(ofile); - //read part - FILE *ifile = fopen("testfile.djcd", "rb"); - - simpleArray ifarr; - - ifarr.readFromFile(ifile); - - - fclose(ifile); for(size_t i=0;i= steps_per_epoch and - do_validation): - # Note that `callbacks` here is an instance of - # `keras.callbacks.CallbackList` - - ## this evaluate will get problems with the truth definition - ## needs to be fixed in the generator? Or just make traindata do it? - - val_outs = self.discriminator.evaluate_generator( - val_enqueuer_gen, - validation_steps, - #callbacks=callbacks, - workers=0) - - val_outs = to_list(val_outs) - # Same labels assumed. - for l, o in zip(d_out_labels, val_outs): - epoch_logs['val_' + l] = o - - val_outs = self.gan.evaluate_generator( - val_enqueuer_gen, - validation_steps, - #callbacks=callbacks, - workers=0) - - val_outs = to_list(val_outs) - # Same labels assumed. - for l, o in zip(g_out_labels, val_outs): - epoch_logs['val_' + l] = o - - #if callbacks.model.stop_training: ##FIXME TBI - # break - - callbacks.on_epoch_end(epoch, epoch_logs) - epoch += 1 - #if callbacks.model.stop_training: ##FIXME TBI - # break - - finally: - try: - if enqueuer is not None: - enqueuer.stop() - finally: - if val_enqueuer is not None: - val_enqueuer.stop() - - #callbacks._call_end_hook('train') - callbacks.on_train_end() - return self.gan.history , self.discriminator.history - + From 0954c4b55b4f525be7f03d57c0a43db115d9e85a Mon Sep 17 00:00:00 2001 From: jkiesele Date: Sun, 17 Nov 2019 10:58:42 +0100 Subject: [PATCH 160/437] legend for sketch --- training_pipeline.png | Bin 60219 -> 86028 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/training_pipeline.png b/training_pipeline.png index 3d82ebee5107f983b548706fbe24c43d22f6347f..7ace5e3bb4eb4c8f0c01174362133b3273f17f8a 100644 GIT binary patch literal 86028 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 literal 60219 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 AtpET3 From a148e3499343c909910dfe9fda94ae0607488821 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 17 Nov 2019 11:00:41 +0100 Subject: [PATCH 161/437] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f1a5916..b67633e 100644 --- a/README.md +++ b/README.md @@ -53,11 +53,11 @@ In general, the following steps are needed for a training and evaluation: The general pipeline for training is depicted in the following sketch: -![pipeline](https://github.com/DL4Jets/DeepJetCore/blob/cpptraindata/training_pipeline.png "Data pipeline for training") +![pipeline](https://github.com/DL4Jets/DeepJetCore/blob/master/training_pipeline.png "Data pipeline for training") The general pipeline for inference/prediction is depicted in the following sketch: -![pipeline](https://github.com/DL4Jets/DeepJetCore/blob/cpptraindata/predict_pipeline.png "Data pipeline for prediction") +![pipeline](https://github.com/DL4Jets/DeepJetCore/blob/master/predict_pipeline.png "Data pipeline for prediction") More information on the three function of TrainData that need to be defined by the user (in addition to the training script) is given in the next Section. For the training script, please refer to the example provided with ``createSubpackage.py``. From 5f49f252d2a5cf8b3cff2428fffd93cf3518dabf Mon Sep 17 00:00:00 2001 From: jkiesele Date: Sun, 17 Nov 2019 11:04:32 +0100 Subject: [PATCH 162/437] better sketch --- training_pipeline.png | Bin 86028 -> 86183 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/training_pipeline.png b/training_pipeline.png index 7ace5e3bb4eb4c8f0c01174362133b3273f17f8a..d7ea7d270e22aba85210e4d1d3086a0e2e0e2d55 100644 GIT binary patch delta 59731 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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 Av;Y7A delta 59677 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
N0oO&(R50KiG!a!pBnui=!$uMWz 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 AQ~&?~ From 327a3c2b9904b30796fc72fadcd3ecfa513d24d9 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 18 Nov 2019 14:53:36 +0000 Subject: [PATCH 163/437] snapshot. generator working and mostly tested --- TrainData.py | 160 +++----------- bin/convertPre2.0DCtoDC.py | 4 +- bin/convertPre2.0TDtoTD.py | 5 +- bin/predict.py | 7 + compiled/Makefile | 2 +- compiled/interface/IO.h | 4 +- compiled/interface/helper.h | 61 +++++- compiled/interface/quicklzWrapper.h | 12 ++ compiled/interface/simpleArray.h | 241 ++++++++++++++++++++-- compiled/interface/simpleArrayPython.h | 194 ----------------- compiled/interface/trainData.h | 232 +++++++++++++++++---- compiled/interface/trainDataGenerator.h | 177 ++++++++++++---- compiled/src/c_NumpyInterface.C | 42 ---- compiled/src/c_dataGenerator.C | 82 -------- compiled/src/c_simpleArray.C | 43 ++++ compiled/src/c_simpleArrayPython.C | 42 ---- compiled/src/c_trainData.C | 54 +++++ compiled/src/c_trainDataGenerator.C | 50 +++++ compiled/src/c_trainDataInterface.C | 154 -------------- compiled/src/helper.cpp | 38 ---- compiled/to_bin/_testRaggedTD.cpp | 7 +- compiled/to_bin/_testSimpleArrayAndTD.cpp | 3 + compiled/to_bin/testpipeline.cpp | 4 +- training/training_base.py | 30 +-- 24 files changed, 844 insertions(+), 804 deletions(-) delete mode 100644 compiled/interface/simpleArrayPython.h delete mode 100644 compiled/src/c_NumpyInterface.C delete mode 100644 compiled/src/c_dataGenerator.C create mode 100644 compiled/src/c_simpleArray.C delete mode 100644 compiled/src/c_simpleArrayPython.C create mode 100644 compiled/src/c_trainData.C create mode 100644 compiled/src/c_trainDataGenerator.C delete mode 100644 compiled/src/c_trainDataInterface.C diff --git a/TrainData.py b/TrainData.py index aa51696..dd140fa 100644 --- a/TrainData.py +++ b/TrainData.py @@ -3,7 +3,7 @@ @author: jkiesele -New (post equals 2.0) version +New (post equals 2.1) version ''' from __future__ import print_function @@ -12,7 +12,8 @@ import numpy as np import logging -from DeepJetCore.compiled import c_trainDataInterface as ctd +from DeepJetCore.compiled.c_trainData import trainData +from DeepJetCore.compiled.c_simpleArray import simpleArray def fileTimeOut(fileName, timeOut): ''' @@ -34,146 +35,53 @@ def fileTimeOut(fileName, timeOut): counter+=1 time.sleep(1) +#inherit from cpp class, just slim wrapper -class RaggedWrapper(object): - def __init__(self, data_array, rowsplits): - self.data_array = data_array - self.rowsplits = rowsplits - - - -class TrainData(object): +class TrainData(trainData): ''' Base class for batch-wise training of the DNN ''' - def __init__(self): - ''' - Constructor + trainData.__init__(self) - ''' - self.clear() - - - def __del__(self): - self.clear() - - - def clear(self): - - if hasattr(self, 'x'): - del self.x - del self.y - del self.w - if hasattr(self, 'w_list'): - del self.w_list - del self.x_list - del self.y_list - - self.x=[] - self.y=[] - self.w=[] - - self.xshapes=[] - self.yshapes=[] - self.wshapes=[] - - self.sourcefile="" - - def skim(self, event=0): - xs=[] - ys=[] - ws=[] - - for x in self.x: - xs.append(x[event:event+1,...]) - for y in self.y: - ys.append(y[event:event+1,...]) - for w in self.w: - ws.append(w[event:event+1,...]) - self.clear() - self.x=xs - self.y=ys - self.w=ws - for s in self.xshapes: - s[0]=1 - for s in self.yshapes: - s[0]=1 - for s in self.wshapes: - s[0]=1 - - def getNTotal(self): - if len(self.xshapes) == 0 or len(self.xshapes[0]) == 0: - return 0 - return self.xshapes[0][0] - - def getKerasFeatureShapes(self): - return [a[1:] for a in self.xshapes] def getInputShapes(self): print('TrainData:getInputShapes: Deprecated, use getKerasFeatureShapes instead') - return getKerasFeatureShapes() + return self.getKerasFeatureShapes() - def getKerasTruthShapes(self): - return [a[1:] for a in self.yshapes] - def writeToFile(self,filename): - - x, xisr = _prepareRagged(self.x) - y, yisr = _prepareRagged(self.y) - w, wisr = _prepareRagged(self.w) - - ctd.writeToFile(x,y,w, - xisr, yisr, wisr, - filename) - - - - - def readFromFile(self,infile,shapesOnly=False): - ''' - For debugging or getting shapes. - Don't use this function for a generator, use the C++ Generator instead! - - RAGGED: TBI - ''' - self.clear() - self.sourcefile=infile - - print('infile',infile) - shapes = ctd.readShapesFromFile(infile) - self.xshapes = shapes[0] - self.yshapes = shapes[1] - self.wshapes = shapes[2] - - ### - if shapesOnly: - return - l, isr = ctd.readFromFile(infile) #make this a tuple - # fill differently depending on whether it's ragged or not - self.x = l[0] - self.y = l[1] - self.w = l[2] - def readIn(self,fileprefix,shapesOnly=False): print('TrainData:readIn deprecated, use readFromFile') self.readFromFile(fileprefix,shapesOnly) - - - - def _prepareRagged(self, l_in): - israg = [] - for l in l_in: - if type(l) == "RaggedWrapper": - israg.append[1] - else: - israg.append[0] - return l_in, israg - + + + def _maybeConvertToSimpleArray(self,a): + if str(type(a)) == "": + return a + elif str(type(a)) == "": + rs = np.array([]) + arr = simpleArray() + arr.createFromNumpy(a, rs) + return arr + else: + raise ValueError("TrainData: convertFromSourceFile MUST produce either a list of numpy arrays or a list of DeepJetCore simpleArrays!") + + def _store(self, x, y, w): + for xa in x: + self.storeFeatureArray(_maybeConvertToSimpleArray(xa)) + x = [] #collect garbage + for ya in y: + self.storeTruthArray(_maybeConvertToSimpleArray(ya)) + y = [] + for wa in w: + self.storeWeightArray(_maybeConvertToSimpleArray(wa)) + w = [] def readFromSourceFile(self,filename, weighterobjects={}, istraining=False): - self.x, self.y, self.w = self.convertFromSourceFile(filename, weighterobjects, istraining) + x,y,w = self.convertFromSourceFile(filename, weighterobjects, istraining) + self._store(x,y,z) + ################# functions to be defined by the user def createWeighterObjects(self, allsourcefiles): @@ -193,7 +101,7 @@ def writeFromSourceFile(self, filename, weighterobjects, istraining, outname): self.writeToFile(outname) ## otherwise only define the conversion rule - # returns a list of numpy arrays OR RaggedWrapper for ragged tensors + # returns a list of numpy arrays OR simpleArray (mandatory for ragged tensors) def convertFromSourceFile(self, filename, weighterobjects, istraining): return [],[],[] diff --git a/bin/convertPre2.0DCtoDC.py b/bin/convertPre2.0DCtoDC.py index a425b74..5e86078 100755 --- a/bin/convertPre2.0DCtoDC.py +++ b/bin/convertPre2.0DCtoDC.py @@ -65,9 +65,7 @@ def worker(i): y = td.y w = td.w - tdnew.x = x - tdnew.y = y - tdnew.w = w + tdnew.tdnew._store(x,y,w) tdnew.writeToFile(dcnew.samples[i]) td.clear() diff --git a/bin/convertPre2.0TDtoTD.py b/bin/convertPre2.0TDtoTD.py index 1f88e50..862f028 100755 --- a/bin/convertPre2.0TDtoTD.py +++ b/bin/convertPre2.0TDtoTD.py @@ -42,8 +42,5 @@ from DeepJetCore.TrainData import TrainData tdnew = traind() - -tdnew.x = x -tdnew.y = y -tdnew.w = w +tdnew._store(x,y,w) tdnew.writeToFile(outfile+".djctd") diff --git a/bin/predict.py b/bin/predict.py index 7bd5f3c..bf575a4 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -70,6 +70,13 @@ for inputfile in f: inputfile = inputfile.replace('\n', '') print('converting '+inputfile) + # + # NEEDS TO BE ADAPTED TO USE SIMPLEARRAYS (for ragged) + # DO LATER + # FIXME + # + # + # x, y, w = td.convertFromSourceFile(inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) outfilename = "pred_"+inputfile print('predicting '+inputfile) diff --git a/compiled/Makefile b/compiled/Makefile index 369bb9b..cd6b380 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -28,7 +28,7 @@ classdict.so: classdict.cxx %: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx - g++ $(CFLAGS) -I./interface $(LINUXADD) $< -L. -ldeepjetcorehelpers -lquicklz $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ + g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIB) -lboost_python -lboost_numpy $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ mv $@ ../bin/ #helpers diff --git a/compiled/interface/IO.h b/compiled/interface/IO.h index 367e428..b0d5fcd 100644 --- a/compiled/interface/IO.h +++ b/compiled/interface/IO.h @@ -54,7 +54,7 @@ void writeToFile(T * p, FILE * ofile, size_t N=1, size_t Nbytes=0){ if(ret != Nbytes){ std::string fname = followFileName(ofile); fclose(ofile); - throw std::runtime_error("writing to file "+fname+" not successful"); + throw std::runtime_error("djc::io::writeToFile: writing to file "+fname+" not successful"); } } @@ -66,7 +66,7 @@ void readFromFile(T * p, FILE* ifile, size_t N=1, size_t Nbytes=0){ if(ret != Nbytes){ std::string fname = followFileName(ifile); fclose(ifile); - throw std::runtime_error("reading from file "+fname+" not successful"); + throw std::runtime_error("djc::io::readFromFile:reading from file "+fname+" not successful"); } } } diff --git a/compiled/interface/helper.h b/compiled/interface/helper.h index 45e65f1..bc6440d 100644 --- a/compiled/interface/helper.h +++ b/compiled/interface/helper.h @@ -17,7 +17,6 @@ #include "TString.h" #include "TObject.h" #include "TString.h" -#include "simpleArray.h" TString prependXRootD(const TString& path); @@ -27,9 +26,65 @@ float deltaPhi(const float& phi1, const float& phi2); void checkTObject(const TObject * o, TString msg); + /** - * transfers ownership of the data to numpy array - no copy. + * transfers ownership of the data to numpy array if no copy. + * size given it nobjects, not in bytes */ -boost::python::numpy::ndarray simpleArrayToNumpy( djc::simpleArray& ifarr); +template +boost::python::numpy::ndarray STLToNumpy(const T * data, const std::vector& shape, const size_t& size, bool copy=true); + + + +//////// template implementations + +namespace _hidden{ +inline void destroyManagerCObject(PyObject* self) { + auto * b = reinterpret_cast( PyCapsule_GetPointer(self, NULL) ); + delete [] b; +} +} + + +template +boost::python::numpy::ndarray STLToNumpy(const T * data, const std::vector& shape, const size_t& size, bool copy){ + + namespace p = boost::python; + namespace np = boost::python::numpy; + + if(size>0){ + p::list pshape; + size_t sizecheck = 1; + for(size_t i=0;i h_capsule{capsule}; + boost::python::object owner_capsule{h_capsule}; + + np::ndarray dataarr = np::from_data((void*)data_ptr, + np::dtype::get_builtin(), + p::make_tuple(size), p::make_tuple(sizeof(T)), owner_capsule ); + dataarr = dataarr.reshape(tshape); + + return dataarr; + } + else{ + return np::empty(p::make_tuple(0), np::dtype::get_builtin());; + } +} + #endif /* DEEPJET_MODULES_INTERFACE_HELPER_H_ */ diff --git a/compiled/interface/quicklzWrapper.h b/compiled/interface/quicklzWrapper.h index ba92d34..260e2f2 100644 --- a/compiled/interface/quicklzWrapper.h +++ b/compiled/interface/quicklzWrapper.h @@ -45,6 +45,9 @@ class quicklz{ //returns in terms of T how many compressed elements have been read (without header) size_t readAll(FILE *& ifile, T * arr); + //skips over the next compressed block without reading it + size_t skipBlock(FILE *& ifile); + //writes header and compressed data //give size in terms of T void writeCompressed(const T * arr, size_t size, FILE *& ofile); @@ -143,6 +146,15 @@ size_t quicklz::readAll(FILE *& ifile, T * arr) { return readCompressedBlock(ifile, arr); } +template +size_t quicklz::skipBlock(FILE *& ifile){ + readHeader(ifile); + size_t totalbytescompressed = 0; + for(const auto& c:chunksizes_) + totalbytescompressed+=c; + fseek(ifile,totalbytescompressed,SEEK_CUR); +} + template void quicklz::writeCompressed(const T * arr, size_t size, FILE *& ofile) { diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 995b394..308bc00 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -8,6 +8,17 @@ #ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ #define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ +//#undef DJC_DATASTRUCTURE_PYTHON_BINDINGS +//#define DJC_DATASTRUCTURE_PYTHON_BINDINGS //DEBUG + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS +#include +#include "boost/python/numpy.hpp" +#include "boost/python/list.hpp" +#include +#include "helper.h" +#endif + #include #include #include @@ -15,11 +26,8 @@ #include //memcpy #include "IO.h" #include "version.h" - #include -#define DJCSA_USEMOVE - namespace djc{ @@ -44,10 +52,9 @@ class simpleArray { simpleArray(const simpleArray&); simpleArray& operator=(const simpleArray&); -#ifdef DJCSA_USEMOVE simpleArray(simpleArray &&); simpleArray& operator=(simpleArray &&); -#endif + void clear(); //reshapes if possible, creates new else @@ -61,7 +68,6 @@ class simpleArray { return data_; } - const std::vector& shape() const { return shape_; } @@ -81,13 +87,10 @@ class simpleArray { */ size_t getFirstDimension()const; - const std::vector& rowsplits() const { return rowsplits_; } - - /////////// potentially dangerous operations for conversions, use with care /////// /* @@ -134,7 +137,6 @@ class simpleArray { * */ void addToFileP(FILE *& ofile) const; - void readFromFileP(FILE *& ifile); void writeToFile(const std::string& f)const; @@ -142,6 +144,8 @@ class simpleArray { void cout()const; + + size_t sizeAt(size_t i)const; // higher dim row splits size_t sizeAt(size_t i,size_t j)const; // higher dim row splits size_t sizeAt(size_t i,size_t j, size_t k)const; @@ -166,7 +170,38 @@ class simpleArray { T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n); const T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; -protected: + + //static + /** + * assumes that the row splits are along the 1st dimension + */ + static int findElementSplitPoint(const std::vector & rowsplits, size_t nelements, size_t startat); + static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); + + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS + int isize() const { + return (int)size_; + } + //does not transfer data ownership! only for quick writing etc. + void assignFromNumpy(const boost::python::numpy::ndarray& ndarr, + const boost::python::numpy::ndarray& rowsplits=boost::python::numpy::empty( + boost::python::make_tuple(0), boost::python::numpy::dtype::get_builtin())); + + //copy data + void createFromNumpy(const boost::python::numpy::ndarray& ndarr, + const boost::python::numpy::ndarray& rowsplits=boost::python::numpy::empty( + boost::python::make_tuple(0), boost::python::numpy::dtype::get_builtin())); + + //transfers data ownership and cleans simpleArray instance + boost::python::tuple transferToNumpy(); + + //copy data + boost::python::tuple copyToNumpy()const; +#endif + + +private: size_t flatindex(size_t i, size_t j)const; size_t flatindex(size_t i, size_t j, size_t k)const; size_t flatindex(size_t i, size_t j, size_t k, size_t l)const; @@ -182,6 +217,17 @@ class simpleArray { void checkSize(size_t idx)const; void checkRaggedIndex(size_t i, size_t j)const; + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS + std::vector makeNumpyShape()const; + void checkArray(const boost::python::numpy::ndarray& ndarr, + boost::python::numpy::dtype dt=boost::python::numpy::dtype::get_builtin())const; + void fromNumpy(const boost::python::numpy::ndarray& ndarr, + const boost::python::numpy::ndarray& rowsplits, + bool copy); + +#endif + T * data_; std::vector shape_; std::vector rowsplits_; @@ -192,7 +238,6 @@ class simpleArray { template simpleArray::simpleArray() : data_(0), size_(0),assigned_(false) { - } template @@ -234,7 +279,6 @@ simpleArray& simpleArray::operator=(const simpleArray& a) { return *this; } -#ifdef DJCSA_USEMOVE template simpleArray::simpleArray(simpleArray && a) : simpleArray() { @@ -272,7 +316,7 @@ simpleArray& simpleArray::operator=(simpleArray && a) { a.rowsplits_= std::vector(); return *this; } -#endif + template void simpleArray::clear() { @@ -519,11 +563,11 @@ void simpleArray::readFromFile(const std::string& f){ clear(); FILE *ifile = fopen(f.data(), "rb"); if(!ifile) - throw std::runtime_error("trainData::readFromFile: file "+f+" could not be opened."); + throw std::runtime_error("simpleArray::readFromFile: file "+f+" could not be opened."); float version = 0; io::readFromFile(&version, ifile); if(version != DJCDATAVERSION) - throw std::runtime_error("trainData::readFromFile: wrong format version"); + throw std::runtime_error("simpleArray::readFromFile: wrong format version"); readFromFileP(ifile); fclose(ifile); } @@ -547,6 +591,47 @@ void simpleArray::cout()const{ std::cout << std::endl; } +template +int simpleArray::findElementSplitPoint(const std::vector & rs, size_t nelements, size_t startat){ + +//TBI + return 0; + +} + +template +std::vector simpleArray::readRowSplitsFromFileP(FILE *& ifile, bool seeknext){ + + float version = 0; + size_t size; + std::vector shape; + std::vector rowsplits; + io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION) + throw std::runtime_error("simpleArray::readRowSplitsFromFileP: wrong format version"); + + io::readFromFile(&size, ifile); + + size_t shapesize = 0; + io::readFromFile(&shapesize, ifile); + shape = std::vector(shapesize, 0); + io::readFromFile(&shape[0], ifile, shapesize); + + size_t rssize = 0; + io::readFromFile(&rssize, ifile); + rowsplits = std::vector(rssize, 0); + + if(rssize){ + quicklz iqlz; + iqlz.readAll(ifile, &rowsplits[0]); + } + if(seeknext){ + quicklz qlz; + qlz.skipBlock(ifile);//sets file point to next item + } + return rowsplits; +} + template void simpleArray::copyFrom(const simpleArray& a) { @@ -773,6 +858,130 @@ const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m, s return data_[flat]; } + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS +/* + * PYTHON / NUMPY Interface below + * + */ +template +std::vector simpleArray::makeNumpyShape()const{ + if(!isRagged()) + return shape_; + std::vector out; + for(size_t i=1;i +void simpleArray::checkArray(const boost::python::numpy::ndarray& ndarr, + boost::python::numpy::dtype dt)const{ + namespace p = boost::python; + namespace np = boost::python::numpy; + + if(ndarr.get_dtype() != dt){ + throw std::runtime_error("simpleArray::checkArray: at least one array does not have right type. (e.g. row split must be np.uint)"); + } + auto flags = ndarr.get_flags(); + if(!(flags & np::ndarray::CARRAY) || !(flags & np::ndarray::C_CONTIGUOUS)){ + throw std::runtime_error("simpleArray::checkArray: at least one array is not C contiguous, please pass as numpy.ascontiguousarray(a, dtype='float32')"); + } +} + +template +void simpleArray::fromNumpy(const boost::python::numpy::ndarray& ndarr, + const boost::python::numpy::ndarray& rowsplits, bool copy){ + namespace p = boost::python; + namespace np = boost::python::numpy; + + clear(); + checkArray(ndarr, np::dtype::get_builtin()); + + T * npdata = (T*)(void*) ndarr.get_data(); + data_ = npdata; + + int ndim = ndarr.get_nd(); + std::vector shape; + for(int s=0;s()); + rowsplits_.resize(len(rowsplits)); + memcpy(&(rowsplits_.at(0)),(size_t*)(void*) rowsplits.get_data(), rowsplits_.size() * sizeof(size_t)); + shape.insert(shape.begin(),len(rowsplits)); + shape_ = shape; + shape_ = shapeFromRowsplits(); + } + else{ + shape_ = shape; + } + size_ = sizeFromShape(shape_); + + if(copy){ + assigned_=false; + data_ = new T[size_]; + memcpy(data_, npdata, size_* sizeof(T)); + } + else{ + assigned_=true; + } +} + +template +void simpleArray::assignFromNumpy(const boost::python::numpy::ndarray& ndarr, + const boost::python::numpy::ndarray& rowsplits){ + fromNumpy(ndarr,rowsplits, false); +} +template +void simpleArray::createFromNumpy(const boost::python::numpy::ndarray& ndarr, + const boost::python::numpy::ndarray& rowsplits){ + fromNumpy(ndarr,rowsplits, true); +} + + +inline void destroyManagerCObject(PyObject* self) { + auto * b = reinterpret_cast( PyCapsule_GetPointer(self, NULL) ); + delete [] b; +} +//transfers data ownership and cleans simpleArray instance +template +boost::python::tuple simpleArray::transferToNumpy(){ + namespace p = boost::python; + namespace np = boost::python::numpy; + + auto shape = makeNumpyShape(); + T * data_ptr = disownData(); + + np::ndarray dataarr = STLToNumpy(data_ptr, shape, size(), false); + np::ndarray rowsplits = STLToNumpy(&rowsplits_.at(0), {(int)rowsplits_.size()}, rowsplits_.size(), true); + + clear();//reset all + return p::make_tuple(dataarr,rowsplits); +} + +//cpoies data +template +boost::python::tuple simpleArray::copyToNumpy()const{ + + namespace p = boost::python; + namespace np = boost::python::numpy; + + auto shape = makeNumpyShape(); + T * data_ptr = data(); + + np::ndarray dataarr = STLToNumpy(data_ptr, shape, size(), true); + np::ndarray rowsplits = STLToNumpy(&rowsplits_.at(0), {(int)rowsplits_.size()}, rowsplits_.size(), true); + + return p::make_tuple(dataarr,rowsplits); + +} + + +#endif + } #endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ */ diff --git a/compiled/interface/simpleArrayPython.h b/compiled/interface/simpleArrayPython.h deleted file mode 100644 index 7519311..0000000 --- a/compiled/interface/simpleArrayPython.h +++ /dev/null @@ -1,194 +0,0 @@ -/* - * simpleArrayPython.h - * - * Created on: 16 Nov 2019 - * Author: jkiesele - */ - -#ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAYPYTHON_H_ -#define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAYPYTHON_H_ - - -#include -#include "boost/python/numpy.hpp" -#include "boost/python/list.hpp" -#include -#include - -#include "simpleArray.h" - -#include -/* - * slim simpleArray <-> python, boost numpy interface wrapper - */ -namespace djc{ - -template -class simpleArrayPython : public simpleArray { -public: - //pass through - simpleArrayPython():simpleArray(){} - simpleArrayPython(std::vector shape,const std::vector& rowsplits = {}):simpleArray(shape,rowsplits) {} - simpleArrayPython(FILE *& f):simpleArray(f){} - - simpleArrayPython(simpleArrayPython && rhs):simpleArray(std::move(rhs)){} - simpleArrayPython& operator=(simpleArrayPython && rhs){simpleArray::operator =(rhs);return *this;} - - simpleArrayPython(const simpleArrayPython& rhs): simpleArray::simpleArray(rhs){} - simpleArrayPython& operator=(const simpleArrayPython& rhs){simpleArray::operator =(rhs);return *this;} - - //(destructor automatically inherited) - - //convert on the fly - simpleArrayPython(const simpleArray& rhs): simpleArray::simpleArray(rhs){} - simpleArrayPython& operator=(const simpleArray& rhs){simpleArray::operator =(rhs);return *this;} - - simpleArrayPython split(size_t splitindex){return simpleArray::split(splitindex);} - - - ///new stuff - - //does not transfer data ownership! only for quick writing etc. - void assignFromNumpy(const boost::python::numpy::ndarray& ndarr, - const boost::python::numpy::ndarray& rowsplits=boost::python::numpy::empty( - boost::python::make_tuple(0), boost::python::numpy::dtype::get_builtin())); - - //transfers data ownership and cleans simpleArray instance - boost::python::tuple transferToNumpy(); - - -private: - - void checkArray(const boost::python::numpy::ndarray& ndarr, - boost::python::numpy::dtype dt=boost::python::numpy::dtype::get_builtin())const; - //void addToFile(FILE *& ofile) const{} - - //void readFromFile(FILE *& ifile){} - - -}; - -template -void simpleArrayPython::checkArray(const boost::python::numpy::ndarray& ndarr, - boost::python::numpy::dtype dt)const{ - namespace p = boost::python; - namespace np = boost::python::numpy; - - if(ndarr.get_dtype() != dt){ - throw std::runtime_error("c_trainDataInterface.extractNumpyListElement: at least one array does not have right type."); - } - auto flags = ndarr.get_flags(); - if(!(flags & np::ndarray::CARRAY) || !(flags & np::ndarray::C_CONTIGUOUS)){ - throw std::runtime_error("simpleArrayPython::assignFromNumpy: at least one array is not C contiguous, please pass as numpy.ascontiguousarray(a, dtype='float32')"); - } -} - -template -void simpleArrayPython::assignFromNumpy(const boost::python::numpy::ndarray& ndarr, - const boost::python::numpy::ndarray& rowsplits){ - namespace p = boost::python; - namespace np = boost::python::numpy; - - this->clear(); - checkArray(ndarr, np::dtype::get_builtin()); - - this->data_ = (float*)(void*) ndarr.get_data(); - - int ndim = ndarr.get_nd(); - std::vector shape; - for(int s=0;s()); - this->rowsplits_.resize(len(rowsplits)); - memcpy(&(this->rowsplits_.at(0)),(size_t*)(void*) rowsplits.get_data(), this->rowsplits_.size() * sizeof(size_t)); - shape.insert(shape.begin(),len(rowsplits)); - this->shape_ = shape; - this->shape_ = this->shapeFromRowsplits(); - } - else{ - this->shape_ = shape; - } - this->size_ = this->sizeFromShape(this->shape_); - this->assigned_=true; - std::cout << "converted " <cout(); -} - - -inline void destroyManagerCObject(PyObject* self) { - auto * b = reinterpret_cast( PyCapsule_GetPointer(self, NULL) ); - delete [] b; -} -//transfers data ownership and cleans simpleArray instance -template -boost::python::tuple simpleArrayPython::transferToNumpy(){ - - namespace p = boost::python; - namespace np = boost::python::numpy; - - - auto size = this->size(); - auto shape = this->shape(); - - std::cout << "size " << size << std::endl; - - p::list pshape; - for(size_t i=0;ishape().size();i++){ - if(this->isRagged() && i<1)continue; - pshape.append(this->shape().at(i)); - } - - p::tuple tshape(pshape); - - T * data_ptr = this->disownData(); - //ifarr invalid from here on! - - PyObject *capsule = ::PyCapsule_New((void *)data_ptr, NULL, (PyCapsule_Destructor)&destroyManagerCObject); - boost::python::handle<> h_capsule{capsule}; - boost::python::object owner_capsule{h_capsule}; - - np::ndarray dataarr = np::from_data((void*)data_ptr, - np::dtype::get_builtin(), - p::make_tuple(size), p::make_tuple(sizeof(T)), owner_capsule ); - - dataarr = dataarr.reshape(tshape); - - // row splits - // uintp is size_t in numpy - - size_t * rs = 0; - if(this->isRagged()){ - rs = new size_t [this->rowsplits_.size()]; - memcpy(rs, &this->rowsplits_.at(0), this->rowsplits_.size() * sizeof(size_t)); - - PyObject *capsule2 = ::PyCapsule_New((void *)rs, NULL, (PyCapsule_Destructor)&destroyManagerCObject); - boost::python::handle<> h_capsule2{capsule2}; - boost::python::object owner_capsule2{h_capsule2}; - - np::ndarray rowsplits = np::from_data((void*)rs, - np::dtype::get_builtin(), - p::make_tuple(this->rowsplits_.size()), p::make_tuple(sizeof(size_t)), owner_capsule2 ); - - this->clear();//reset all - return p::make_tuple(dataarr,rowsplits); - } - else{ - np::ndarray rowsplits = np::empty(p::make_tuple(0), np::dtype::get_builtin()); - this->clear();//reset all - return p::make_tuple(dataarr,rowsplits); - } - -} - - - -}//namespace - - - - - -#endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAYPYTHON_H_ */ diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 1cc0a30..963127e 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -8,6 +8,16 @@ #ifndef DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAINTERFACE_H_ #define DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAINTERFACE_H_ +//#define DJC_DATASTRUCTURE_PYTHON_BINDINGS//DEBUG + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS +#include +#include "boost/python/numpy.hpp" +#include "boost/python/list.hpp" +#include +#include "helper.h" +#endif + #include "simpleArray.h" #include #include "IO.h" @@ -27,11 +37,11 @@ template class trainData{ public: - //just give access to the vectors, don't wrap like crazy - const size_t addFeatureArray(std::vector shape,const std::vector& rowsplits = {}); - const size_t addTruthArray(std::vector shape,const std::vector& rowsplits = {}); - const size_t addWeightArray(std::vector shape,const std::vector& rowsplits = {}); + //takes ownership + int storeFeatureArray( simpleArray&); + int storeTruthArray( simpleArray&); + int storeWeightArray( simpleArray&); const simpleArray & featureArray(size_t idx) const { return feature_arrays_.at(idx); @@ -57,9 +67,9 @@ class trainData{ return weight_arrays_.at(idx); } - size_t nFeatureArrays()const{return feature_arrays_.size();} - size_t nTruthArrays()const{return truth_arrays_.size();} - size_t nWeightArrays()const{return weight_arrays_.size();} + int nFeatureArrays()const{return feature_arrays_.size();} + int nTruthArrays()const{return truth_arrays_.size();} + int nWeightArrays()const{return weight_arrays_.size();} /* * truncate all along first axis @@ -84,22 +94,42 @@ class trainData{ return 0; } + const std::vector > & featureShapes()const{return feature_shapes_;} + const std::vector > & truthShapes()const{return truth_shapes_;} + const std::vector > & weightShapes()const{return weight_shapes_;} + void writeToFile(std::string filename)const; void readFromFile(std::string filename); //could use a readshape or something! - void readShapesFromFile(std::string filename, - std::vector >& feature_shapes, - std::vector >& truth_shapes, - std::vector >& weight_shapes); + void readShapesFromFile(const std::string& filename); + std::vector readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency=true); void clear(); + + //from python + void skim(size_t batchelement); + + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS + + boost::python::list getKerasFeatureShapes()const; + boost::python::list getKerasTruthShapes()const; + boost::python::list getKerasWeightShapes()const; + + //data generator interface + +#endif + private: + void checkFile(FILE *& f, const std::string& filename="")const; + void writeArrayVector(const std::vector >&, FILE *&) const; std::vector > readArrayVector(FILE *&) const; + void readRowSplitArray(FILE *&, std::vector &rs, bool check)const; std::vector > getShapes(const std::vector >& a)const; template void writeNested(const std::vector >& v, FILE *&)const; @@ -110,28 +140,36 @@ class trainData{ std::vector > truth_arrays_; std::vector > weight_arrays_; + std::vector > feature_shapes_; + std::vector > truth_shapes_; + std::vector > weight_shapes_; + }; template -const size_t trainData::addFeatureArray(std::vector shape,const std::vector& rowsplits){ +int trainData::storeFeatureArray(simpleArray & a){ size_t idx = feature_arrays_.size(); - feature_arrays_.push_back(simpleArray(shape,rowsplits)); + a.cout(); + feature_arrays_.push_back(std::move(a)); + a.clear(); return idx; } template -const size_t trainData::addTruthArray(std::vector shape,const std::vector& rowsplits){ +int trainData::storeTruthArray(simpleArray& a){ size_t idx = truth_arrays_.size(); - truth_arrays_.push_back(simpleArray(shape,rowsplits)); + truth_arrays_.push_back(std::move(a)); + a.clear(); return idx; } template -const size_t trainData::addWeightArray(std::vector shape,const std::vector& rowsplits){ +int trainData::storeWeightArray(simpleArray & a){ size_t idx = weight_arrays_.size(); - weight_arrays_.push_back(simpleArray(shape,rowsplits)); + weight_arrays_.push_back(std::move(a)); + a.clear(); return idx; } @@ -217,18 +255,10 @@ template void trainData::readFromFile(std::string filename){ clear(); FILE *ifile = fopen(filename.data(), "rb"); - if(!ifile) - throw std::runtime_error("trainData::readFromFile: file "+filename+" could not be opened."); - float version = 0; - io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION) - throw std::runtime_error("trainData::readFromFile: wrong format version"); - - std::vector > dummy; - readNested(dummy, ifile); - readNested(dummy, ifile); - readNested(dummy, ifile); - dummy.clear(); + checkFile(ifile); + readNested(feature_shapes_, ifile); + readNested(truth_shapes_, ifile); + readNested(weight_shapes_, ifile); feature_arrays_ = readArrayVector(ifile); truth_arrays_ = readArrayVector(ifile); @@ -239,24 +269,49 @@ void trainData::readFromFile(std::string filename){ } template -void trainData::readShapesFromFile(std::string filename, - std::vector >& feature_shapes, - std::vector >& truth_shapes, - std::vector >& weight_shapes){ +void trainData::readShapesFromFile(const std::string& filename){ FILE *ifile = fopen(filename.data(), "rb"); - if(!ifile) - throw std::runtime_error("trainData::readShapesFromFile: file "+filename+" could not be opened."); - float version = 0; - io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION) - throw std::runtime_error("trainData::readFromFile: wrong format version"); + checkFile(ifile,filename); + + readNested(feature_shapes_, ifile); + readNested(truth_shapes_, ifile); + readNested(weight_shapes_, ifile); + + fclose(ifile); + +} - readNested(feature_shapes, ifile); - readNested(truth_shapes, ifile); - readNested(weight_shapes, ifile); +template +std::vector trainData::readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency){ + std::vector rowsplits; + + FILE *ifile = fopen(filename.data(), "rb"); + checkFile(ifile,filename); + + //shapes + std::vector > dummy; + readNested(feature_shapes_, ifile); + readNested(truth_shapes_, ifile); + readNested(weight_shapes_, ifile); + + //features + readRowSplitArray(ifile,rowsplits,checkConsistency); + if(!checkConsistency && rowsplits.size()){ + fclose(ifile); + return rowsplits; + } + //truth + readRowSplitArray(ifile,rowsplits,checkConsistency); + if(!checkConsistency && rowsplits.size()){ + fclose(ifile); + return rowsplits; + } + //weights + readRowSplitArray(ifile,rowsplits,checkConsistency); fclose(ifile); + return rowsplits; } @@ -267,6 +322,17 @@ void trainData::clear() { weight_arrays_.clear(); } +template +void trainData::checkFile(FILE *& ifile, const std::string& filename)const{ + if(!ifile) + throw std::runtime_error("trainData::readFromFile: file "+filename+" could not be opened."); + float version = 0; + io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION) + throw std::runtime_error("trainData::readFromFile: wrong format version"); + +} + template void trainData::writeArrayVector(const std::vector >& v, FILE *& ofile) const{ @@ -286,6 +352,24 @@ std::vector > trainData::readArrayVector(FILE *& ifile) const{ return out; } +template +void trainData::readRowSplitArray(FILE *& ifile, std::vector &rowsplits, bool check)const{ + size_t size = 0; + io::readFromFile(&size, ifile); + for(size_t i=0;i::readRowSplitsFromFileP(ifile, true); + if(frs.size()){ + if(check){ + if(rowsplits.size() && rowsplits != frs) + throw std::runtime_error("trainData::readShapesAndRowSplitsFromFile: row splits inconsistent"); + } + else{ + rowsplits=frs; + } + } + } +} + template std::vector > trainData::getShapes(const std::vector >& a)const{ std::vector > out; @@ -328,6 +412,70 @@ void trainData::readNested(std::vector >& v, FILE *& ifile)con } + + +template +void trainData::skim(size_t batchelement){ + if(batchelement > nElements()) + throw std::out_of_range("trainData::skim: batch element out of range"); + for(auto & a : feature_arrays_){ + a.split(batchelement); + a.split(1); + } + for(auto & a : truth_arrays_){ + a.split(batchelement); + a.split(1); + } + for(auto & a : weight_arrays_){ + a.split(batchelement); + a.split(1); + } +} + + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS + +template +boost::python::list trainData::getKerasFeatureShapes()const{ + boost::python::list out; + for(const auto& a: feature_arrays_){ + size_t start=1; + if(a.isRagged()) + start=2; + for(size_t i=start;i +boost::python::list trainData::getKerasTruthShapes()const{ + boost::python::list out; + for(const auto& a: truth_arrays_){ + size_t start=1; + if(a.isRagged()) + start=2; + for(size_t i=start;i +boost::python::list trainData::getKerasWeightShapes()const{ + boost::python::list out; + for(const auto& a: weight_arrays_){ + size_t start=1; + if(a.isRagged()) + start=2; + for(size_t i=start;i +#include "boost/python/numpy.hpp" +#include "boost/python/list.hpp" +#include +#include "helper.h" +#include "pythonToSTL.h" +#endif + #include #include #include "trainData.h" @@ -50,34 +59,33 @@ class trainDataGenerator{ */ void setFileList(const std::vector& files){ orig_infiles_=files; - shuffled_infiles_=orig_infiles_; - readNTotal(); + shuffle_indices_.resize(orig_infiles_.size()); + for(size_t i=0;i= ntotal_ - lastbatchsize_; - } + bool lastBatch()const; void prepareNextEpoch(); + void shuffleFilelist(); + void end(); - void enableThreading(bool en){ - threading_=en; - } /** * gets Batch. If batchsize is specified, it is up to the user @@ -89,13 +97,24 @@ class trainDataGenerator{ trainData getBatch(); //if no threading batch index can be given? just for future? bool debug; + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS + void setFileListP(boost::python::list files){ + djc::trainDataGenerator::setFileList(toSTLVector(files)); + } +#endif + + private: - void shuffleFilelist(); void readBuffer(); - void readNTotal(); + void readInfo(); + void prepareSplitting(); + trainData prepareBatch(); std::vector orig_infiles_; - std::vector shuffled_infiles_; + std::vector shuffle_indices_; + std::vector > orig_rowsplits_; + std::vector splits_; int randomcount_; size_t batchsize_; @@ -108,8 +127,8 @@ class trainDataGenerator{ size_t nsamplesprocessed_; size_t lastbatchsize_; size_t filetimeout_; + size_t batchcount_; - bool threading_; //in case the keras generator is indeed faster, just placeholder for now }; @@ -117,7 +136,7 @@ template trainDataGenerator::trainDataGenerator() :debug(false), randomcount_(1), batchsize_(2), readthread_(0), filecount_(0), nbatches_( 0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), - threading_(true){ + batchcount_(0){ } template @@ -135,7 +154,11 @@ void trainDataGenerator::shuffleFilelist(){ std::mt19937 g(rd()); g.seed(randomcount_); randomcount_++; - std::shuffle(std::begin(shuffled_infiles_),std::end(shuffled_infiles_),g); + std::shuffle(std::begin(shuffle_indices_),std::end(shuffle_indices_),g); + + //redo splits etc + prepareSplitting(); + batchcount_=0; } @@ -166,18 +189,95 @@ void trainDataGenerator::readBuffer(){ template -void trainDataGenerator::readNTotal(){ +void trainDataGenerator::readInfo(){ ntotal_=0; + bool hasRagged=false; + bool firstfile=true; for(const auto& f: orig_infiles_){ trainData td; - std::vector > fs, ts, ws; - td.readShapesFromFile(f,fs, ts, ws); - //first dimension is always Nelements. At least features are filled - if(fs.size()<1 || fs.at(0).size()<1) - throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object "+f); - ntotal_ += fs.at(0).at(0); + + if(! hasRagged || firstfile){ + std::vector > fs, ts, ws; + td.readShapesFromFile(f); + //first dimension is always Nelements. At least features are filled + if(td.featureShapes().size()<1 || td.featureShapes().at(0).size()<1) + throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object "+f); + } + if(firstfile){ + for(const auto& sv: td.featureShapes()) + for(const auto& s:sv) + if(s<0) + hasRagged=true; + for(const auto& sv: td.truthShapes()) + for(const auto& s:sv) + if(s<0) + hasRagged=true; + for(const auto& sv: td.weightShapes()) + for(const auto& s:sv) + if(s<0) + hasRagged=true; + + } + if(hasRagged){ + std::vector rowsplits = td.readShapesAndRowSplitsFromFile(f, firstfile);//check consistency only for first + orig_rowsplits_.push_back(rowsplits); + } + firstfile=false; + ntotal_ += td.nElements(); + } + batchcount_=0; + prepareSplitting(); + nbatches_ = getNBatches(); +} + + +template +void trainDataGenerator::prepareSplitting(){ + splits_.clear(); + if(orig_rowsplits_.size()<1) + return; + std::vector allrs; + for(size_t i=0;i::findElementSplitPoint(allrs, batchsize_, startat); + + int thisbatch = splitp = startat; + } - nbatches_ = ntotal_/batchsize_; +} + +template +int trainDataGenerator::getNBatches()const{ + if(orig_rowsplits_.size()<1) + return ntotal_/batchsize_; + + return splits_.size(); +} + + +template +bool trainDataGenerator::lastBatch()const{ + return batchcount_ >= getNBatches() -1 ; } @@ -194,9 +294,8 @@ void trainDataGenerator::prepareNextEpoch(){ buffer_read.clear(); filecount_=0; nsamplesprocessed_=0; - - shuffleFilelist(); - nextread_ = shuffled_infiles_.at(filecount_); + batchcount_=0; + nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); } template @@ -231,14 +330,14 @@ trainData trainDataGenerator::prepareBatch(){ if(debug) std::cout << "nprocessed " << nsamplesprocessed_ << " file " << filecount_ << " in buffer " << bufferelements - << " file read " << nextread_ << " totalfiles " << shuffled_infiles_.size() << std::endl; + << " file read " << nextread_ << " totalfiles " << orig_infiles_.size() << std::endl; if(nsamplesprocessed_ + bufferelements < ntotal_){ - if (filecount_ >= shuffled_infiles_.size()) + if (filecount_ >= orig_infiles_.size()) throw std::runtime_error( "trainDataGenerator::getBatch: more batches requested than data in the sample"); - nextread_ = shuffled_infiles_.at(filecount_); + nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); filecount_++; readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); } @@ -248,7 +347,15 @@ trainData trainDataGenerator::prepareBatch(){ " elements in buffer: " << bufferelements << std::endl; nsamplesprocessed_+=batchsize_; lastbatchsize_ = batchsize_; - return buffer_store.split(batchsize_); + + trainData out; + if(splits_.size()) + out = buffer_store.split(splits_.at(batchcount_)); + else + out = buffer_store.split(batchsize_); + + batchcount_++; + return out; } diff --git a/compiled/src/c_NumpyInterface.C b/compiled/src/c_NumpyInterface.C deleted file mode 100644 index 3f3470b..0000000 --- a/compiled/src/c_NumpyInterface.C +++ /dev/null @@ -1,42 +0,0 @@ -/* - * c_NumpyInterface.C - * - * Created on: 6 Nov 2019 - * Author: jkiesele - * - * Simple reading and writing of numpy arrays using the simpleArray classes - * and quicklz. There is a lot of overhead w.r.t. standard numpy, but this implementation - * is faster, and mostly for occasional usage. - * - * Only implemented for float32 arrays - */ - -#include "../interface/helper.h" -#include "../interface/simpleArray.h" -#include -#include "boost/python/numpy.hpp" -#include - - -namespace p = boost::python; -namespace np = boost::python::numpy; - - -np::ndarray readFromFile(std::string filename, bool shapesOnly){ - - - - FILE *ifile = fopen("testfile.djcd", "rb"); - djc::simpleArray ifarr(ifile); - fclose(ifile); - - return simpleArrayToNumpy(ifarr); - -} - -BOOST_PYTHON_MODULE(c_NumpyInterface) { - Py_Initialize(); - boost::python::numpy::initialize(); - def("readFromFile", &readFromFile); -} - diff --git a/compiled/src/c_dataGenerator.C b/compiled/src/c_dataGenerator.C deleted file mode 100644 index bf4499c..0000000 --- a/compiled/src/c_dataGenerator.C +++ /dev/null @@ -1,82 +0,0 @@ -/* - * c_dataGenerator.C - * - * Created on: 7 Nov 2019 - * Author: jkiesele - */ - - - -#include -#include "boost/python/numpy.hpp" -#include "boost/python/list.hpp" -#include "boost/python/str.hpp" -#include - -#include "../interface/trainDataGenerator.h" -#include "../interface/helper.h" -#include "../interface/pythonToSTL.h" - -#include - -#include //debug - -namespace p = boost::python; -namespace np = boost::python::numpy; - - -class numpyGenerator : public djc::trainDataGenerator{ -public: - numpyGenerator():djc::trainDataGenerator(){ - } - - void setFileList(p::list files){ - djc::trainDataGenerator::setFileList(toSTLVector(files)); - } - - p::list getBatch(); - -}; - - -p::list numpyGenerator::getBatch(){ - - p::list out; - - auto td = djc::trainDataGenerator::getBatch(); - - p::list x, y, w; - - for(size_t i=0;i("numpyGenerator") - .def("setFileList", &numpyGenerator::setFileList) - .def("setBatchSize", &numpyGenerator::setBatchSize) - .def("getNTotal", &numpyGenerator::getNTotal) - .def("setFileTimeout", &numpyGenerator::setFileTimeout) - .def("getNBatches", &numpyGenerator::getNBatches) - .def("lastBatch", &numpyGenerator::lastBatch) - .def("prepareNextEpoch", &numpyGenerator::prepareNextEpoch) - .def("getBatch", &numpyGenerator::getBatch) - .def_readwrite("debug", &numpyGenerator::debug); - ; -} - diff --git a/compiled/src/c_simpleArray.C b/compiled/src/c_simpleArray.C new file mode 100644 index 0000000..9e6ee2c --- /dev/null +++ b/compiled/src/c_simpleArray.C @@ -0,0 +1,43 @@ +/* + * c_simpleArray.C + * + * Created on: 16 Nov 2019 + * Author: jkiesele + * + * Simple reading and writing of numpy arrays using the simpleArray class + * + * Only implemented for float32 arrays + * + * just a wrapper module + */ + +//switches on python / numpy interfaces in the templates included below +#define DJC_DATASTRUCTURE_PYTHON_BINDINGS +#include "../interface/helper.h" +#include "../interface/simpleArray.h" + + +namespace p = boost::python; +namespace np = boost::python::numpy; + +using namespace djc; + + +BOOST_PYTHON_MODULE(c_simpleArray) { + Py_Initialize(); + np::initialize(); + p::class_ >("simpleArray") + .def("readFromFile", &simpleArray::readFromFile) + .def("writeToFile", &simpleArray::writeToFile) + .def("assignFromNumpy", &simpleArray::assignFromNumpy) + .def("transferToNumpy", &simpleArray::transferToNumpy) + .def("createFromNumpy", &simpleArray::createFromNumpy) + .def("copyToNumpy", &simpleArray::copyToNumpy) + .def("isRagged", &simpleArray::isRagged) + .def("split", &simpleArray::split) + .def("append", &simpleArray::append) + .def("cout", &simpleArray::cout) + .def("size", &simpleArray::isize); + ; +} + diff --git a/compiled/src/c_simpleArrayPython.C b/compiled/src/c_simpleArrayPython.C deleted file mode 100644 index 3e20916..0000000 --- a/compiled/src/c_simpleArrayPython.C +++ /dev/null @@ -1,42 +0,0 @@ -/* - * c_NumpyInterface.C - * - * Created on: 6 Nov 2019 - * Author: jkiesele - * - * Simple reading and writing of numpy arrays using the simpleArray classes - * and quicklz. There is a lot of overhead w.r.t. standard numpy, but this implementation - * is faster, and mostly for occasional usage. - * - * Only implemented for float32 arrays - */ - -#include "../interface/helper.h" -#include "../interface/simpleArrayPython.h" - - -namespace p = boost::python; -namespace np = boost::python::numpy; - -using namespace djc; -/* - * just a wrapper module - */ - - - -BOOST_PYTHON_MODULE(c_simpleArrayPython) { - Py_Initialize(); - np::initialize(); - - p::class_ >("simpleArrayPython") - .def("readFromFile", &simpleArrayPython::readFromFile) - .def("writeToFile", &simpleArrayPython::writeToFile) - .def("assignFromNumpy", &simpleArrayPython::assignFromNumpy) - .def("transferToNumpy", &simpleArrayPython::transferToNumpy) - .def("isRagged", &simpleArrayPython::isRagged) - .def("split", &simpleArrayPython::split) - .def("append", &simpleArrayPython::append); - ; -} - diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C new file mode 100644 index 0000000..d9729aa --- /dev/null +++ b/compiled/src/c_trainData.C @@ -0,0 +1,54 @@ +/* + * c_TrainDataInferface.C + * + * Created on: 6 Nov 2019 + * Author: jkiesele + */ + +#define DJC_DATASTRUCTURE_PYTHON_BINDINGS +#include "../interface/trainData.h" + + +namespace p = boost::python; +namespace np = boost::python::numpy; + +using namespace djc; + +BOOST_PYTHON_MODULE(c_trainData) { + Py_Initialize(); + np::initialize(); + p::class_ >("trainData") + + .def("storeFeatureArray", &trainData::storeFeatureArray) + .def("storeTruthArray", &trainData::storeTruthArray) + .def("storeWeightArray", &trainData::storeWeightArray) + + // .def("featureArray", &trainData::featureArray) + // .def("truthArray", &trainData::truthArray) + // .def("weightArray", &trainData::weightArray) + + .def("nFeatureArrays", &trainData::nFeatureArrays) + .def("nTruthArrays", &trainData::nTruthArrays) + .def("nWeightArrays", &trainData::nWeightArrays) + + .def("truncate", &trainData::truncate) + .def("append", &trainData::append) + .def("split", &trainData::split) + .def("nElements", &trainData::nElements) + .def("readShapesFromFile", &trainData::readShapesFromFile) + + .def("readFromFile", &trainData::readFromFile) + .def("writeToFile", &trainData::writeToFile) + + .def("clear", &trainData::clear) + .def("skim", &trainData::skim) + + .def("getKerasFeatureShapes", &trainData::getKerasFeatureShapes) + .def("getKerasTruthShapes", &trainData::getKerasTruthShapes) + .def("getKerasWeightShapes", &trainData::getKerasWeightShapes) +; + ; +} + + + diff --git a/compiled/src/c_trainDataGenerator.C b/compiled/src/c_trainDataGenerator.C new file mode 100644 index 0000000..106dc24 --- /dev/null +++ b/compiled/src/c_trainDataGenerator.C @@ -0,0 +1,50 @@ +/* + * c_dataGenerator.C + * + * Created on: 7 Nov 2019 + * Author: jkiesele + */ + + + +#include +#include "boost/python/numpy.hpp" +#include "boost/python/list.hpp" +#include "boost/python/str.hpp" +#include + +#define DJC_DATASTRUCTURE_PYTHON_BINDINGS + +#include "../interface/trainDataGenerator.h" + +#include + +#include //debug + +namespace p = boost::python; +namespace np = boost::python::numpy; +using namespace djc; + + +BOOST_PYTHON_MODULE(c_trainDataGenerator) { + Py_Initialize(); + np::initialize(); + p::class_ >("trainDataGenerator") + + .def("setFileList", &trainDataGenerator::setFileListP) + .def("setBatchSize", &trainDataGenerator::setBatchSize) + .def("shuffleFilelist", &trainDataGenerator::shuffleFilelist) + + .def("setFileTimeout", &trainDataGenerator::setFileTimeout) + + .def("getNBatches", &trainDataGenerator::getNBatches) + + .def("lastBatch", &trainDataGenerator::lastBatch) + .def("prepareNextEpoch", &trainDataGenerator::prepareNextEpoch) + .def("getBatch", &trainDataGenerator::getBatch) + + + .def_readwrite("debug", &trainDataGenerator::debug); + ; +} + diff --git a/compiled/src/c_trainDataInterface.C b/compiled/src/c_trainDataInterface.C deleted file mode 100644 index b246fb7..0000000 --- a/compiled/src/c_trainDataInterface.C +++ /dev/null @@ -1,154 +0,0 @@ -/* - * c_TrainDataInferface.C - * - * Created on: 6 Nov 2019 - * Author: jkiesele - */ - - -#include "../interface/trainData.h" -#include "../interface/helper.h" - -#include -#include "boost/python/numpy.hpp" -#include "boost/python/list.hpp" -#include "boost/python/str.hpp" -#include -#include - -#include //debug - -namespace p = boost::python; -namespace np = boost::python::numpy; - -/* - * write out a cpp traindata object from a python traindata object using - * three lists: x, y, w - * make choice for float here - * - * On longer term make this a real class wrapper. So far ok, still needs - * rework for ragged anyway - * - */ - -float * extractNumpyListElement(p::list x, int i, std::vector& shape){ - shape.clear(); - np::ndarray ndarr = p::extract(x[i]); - auto dt = ndarr.get_dtype(); - if(dt != np::dtype::get_builtin()){ - throw std::runtime_error("c_trainDataInterface.extractNumpyListElement: at least one array does not have type float32"); - } - auto flags = ndarr.get_flags(); - if(!(flags & np::ndarray::CARRAY) || !(flags & np::ndarray::C_CONTIGUOUS)){ - throw std::runtime_error("c_trainDataInterface.extractNumpyListElement: at least one array is not C contiguous, please pass as numpy.ascontiguousarray(a, dtype='float32')"); - } - - float * data = (float*)(void*) ndarr.get_data(); - int ndim = ndarr.get_nd(); - for(int s=0;s td; - - int nx = p::extract(x.attr("__len__")()); - int ny = p::extract(y.attr("__len__")()); - int nw = p::extract(w.attr("__len__")()); - - std::vector shape; - for(int i=0;i td; - td.readFromFile(filename); - - p::list x, y, w; - - for(size_t i=0;i >& v){ - p::list out; - for(const auto& vv:v){ - p::list tmp; - for(const auto& vvv:vv) - tmp.append(vvv); - out.append(tmp); - } - return out; -} - -p::list readShapesFromFile(std::string filename){ - p::list out; - djc::trainData td; - std::vector > fs,ts,ws; - td.readShapesFromFile(filename,fs,ts,ws); - out.append(nestedToList(fs)); - out.append(nestedToList(ts)); - out.append(nestedToList(ws)); - return out; -} - - - -BOOST_PYTHON_MODULE(c_trainDataInterface) { - Py_Initialize(); - np::initialize(); - def("writeToFile", &writeToFile); - def("readFromFile", &readFromFile); - def("readShapesFromFile", &readShapesFromFile); -} - - - diff --git a/compiled/src/helper.cpp b/compiled/src/helper.cpp index e55e361..b17dd64 100644 --- a/compiled/src/helper.cpp +++ b/compiled/src/helper.cpp @@ -16,44 +16,6 @@ namespace np = boost::python::numpy; - -inline void destroyManagerCObject(PyObject* self) { - auto * b = reinterpret_cast( PyCapsule_GetPointer(self, NULL) ); - delete [] b; -} - -np::ndarray simpleArrayToNumpy( djc::simpleArray& ifarr){ - - auto size = ifarr.size(); - auto shape = ifarr.shape(); - for(const auto& s:shape){ - if(s<0) - throw std::runtime_error("simpleArrayToNumpy: no conversion from ragged simpleArrys possible"); - } - - p::list pshape; - for(const auto& s:shape) - pshape.append(s); - - p::tuple tshape(pshape); - - float * data_ptr = ifarr.disownData(); - //ifarr invalid from here on! - - PyObject *capsule = ::PyCapsule_New((void *)data_ptr, NULL, (PyCapsule_Destructor)&destroyManagerCObject); - boost::python::handle<> h_capsule{capsule}; - boost::python::object owner_capsule{h_capsule}; - - np::ndarray nparr = np::from_data((void*)data_ptr, - np::dtype::get_builtin(), - p::make_tuple(size), p::make_tuple(sizeof(float)), owner_capsule ); - - nparr = nparr.reshape(tshape); - return nparr; - -} - - TString prependXRootD(const TString& path){ TString full_path = realpath(path, NULL); diff --git a/compiled/to_bin/_testRaggedTD.cpp b/compiled/to_bin/_testRaggedTD.cpp index f38ca5c..7cf8338 100644 --- a/compiled/to_bin/_testRaggedTD.cpp +++ b/compiled/to_bin/_testRaggedTD.cpp @@ -33,12 +33,12 @@ void coutarray(const simpleArray & farr){ int main(){ - +#ifdef IFONREFORNOW std::vector rowsplits = {0,2,5,6,8}; trainData td; - size_t idx = td.addFeatureArray({4,-1,2},rowsplits); + size_t idx = td.storeFeatureArray(simpleArray({4,-1,2},rowsplits)); simpleArray & farr = td.featureArray(idx); @@ -58,7 +58,7 @@ int main(){ //first try without row splits trainData td_nrs; - td_nrs.addFeatureArray({100,20,20}); + td_nrs.storeFeatureArray(simpleArray({100,20,20})); td_nrs = td_nrs.split(20); coutarray(td.featureArray(idx)); td_nrs = td_nrs.split(10); @@ -78,5 +78,6 @@ int main(){ std::cout << "split self, size after " << td.nElements() << std::endl; coutarray(td.featureArray(idx)); +#endif } diff --git a/compiled/to_bin/_testSimpleArrayAndTD.cpp b/compiled/to_bin/_testSimpleArrayAndTD.cpp index d48e303..52f5f88 100644 --- a/compiled/to_bin/_testSimpleArrayAndTD.cpp +++ b/compiled/to_bin/_testSimpleArrayAndTD.cpp @@ -28,6 +28,8 @@ void coutarray(const simpleArray & farr){ int main(){ +#ifdef igonrefownow + simpleArray farr({5,2,1}); for(float i=0;i bigtd; @@ -90,7 +90,7 @@ int main(){ gen.prepareNextEpoch(); } - +#endif return 0; diff --git a/training/training_base.py b/training/training_base.py index 1ae3b07..adf0ac8 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -428,29 +428,29 @@ def trainModel(self, print('starting training') if load_in_mem: - print('make features') - X_train = self.train_data.getAllFeatures() - X_test = self.val_data.getAllFeatures() - print('make truth') - Y_train = self.train_data.getAllLabels() - Y_test = self.val_data.getAllLabels() - self.keras_model.fit(X_train, Y_train, batch_size=batchsize, epochs=nepochs, - callbacks=self.callbacks.callbacks, - validation_data=(X_test, Y_test), - **trainargs) - else: + raise Exception('to be re-implemented later!') + #else: + + #prepare generator + + + while(self.trainedepoches < nepochs): + #calculate steps for this epoch + #feed info below self.keras_model.fit_generator(self.train_data.generator() , steps_per_epoch=self.train_data.getNBatchesPerEpoch(), - epochs=nepochs-self.trainedepoches, + epochs=nepochs, + initial_epoch=self.trainedepoches, callbacks=self.callbacks.callbacks, validation_data=self.val_data.generator(), validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, - max_queue_size=1, - #max_q_size=1, + max_queue_size=1, #handled by DJC + validation_freq=1, use_multiprocessing=False, #the threading one doe not loke DJC **trainargs) + self.trainedepoches += 1 + # - self.trainedepoches=nepochs self.saveModel("KERAS_model.h5") import copy From f407c26a5f7d9fc0d13ab2fec7fb570fd15a52b3 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 18 Nov 2019 20:17:32 +0000 Subject: [PATCH 164/437] ragged batching reasonably tested --- compiled/interface/simpleArray.h | 46 +++++++--- compiled/interface/trainData.h | 21 +++-- compiled/interface/trainDataGenerator.h | 112 +++++++++++++++--------- compiled/src/c_trainDataGenerator.C | 1 + 4 files changed, 125 insertions(+), 55 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 308bc00..99e2e64 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -8,9 +8,6 @@ #ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ #define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ -//#undef DJC_DATASTRUCTURE_PYTHON_BINDINGS -//#define DJC_DATASTRUCTURE_PYTHON_BINDINGS //DEBUG - #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS #include #include "boost/python/numpy.hpp" @@ -175,7 +172,8 @@ class simpleArray { /** * assumes that the row splits are along the 1st dimension */ - static int findElementSplitPoint(const std::vector & rowsplits, size_t nelements, size_t startat); + static size_t findElementSplitLength(const std::vector & rowsplits, + size_t nelements, size_t startat, bool & exceeds_limit, size_t& stoppedat); static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); @@ -367,13 +365,20 @@ T * simpleArray::disownData() { template simpleArray simpleArray::split(size_t splitindex) { simpleArray out; - if (!shape_.size() || (!isRagged() && splitindex > shape_.at(0))) { + if (!shape_.size() || ( !isRagged() && splitindex > shape_.at(0))) { throw std::runtime_error( "simpleArray::split: splitindex > shape_[0]"); } - if(isRagged() && splitindex > rowsplits_.size()) + if(splitindex == shape_.at(0)){//exactly the whole array + out = *this; + clear(); + return out; + } + + if(isRagged() && splitindex > rowsplits_.size()){ throw std::runtime_error( "simpleArray::split: ragged split index out of range"); + } //get split point for data @@ -406,6 +411,7 @@ simpleArray simpleArray::split(size_t splitindex) { out.shape_.at(0) = splitindex; shape_.at(0) = shape_.at(0) - splitindex; if(isRagged()){ + out.rowsplits_ = std::vector (rowsplits_.begin(),rowsplits_.begin()+splitindex+1); int outnelements = out.rowsplits_.at(out.rowsplits_.size()-1); rowsplits_ = std::vector (rowsplits_.begin()+splitindex,rowsplits_.end()); @@ -592,11 +598,31 @@ void simpleArray::cout()const{ } template -int simpleArray::findElementSplitPoint(const std::vector & rs, size_t nelements, size_t startat){ +size_t simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, + size_t startat, bool & exceeds_limit, size_t& stoppedat){ + if(startat >= rs.size()) + throw std::out_of_range("simpleArray::findElementSplitPoint: startat"); -//TBI - return 0; + exceeds_limit=false; + size_t elements_accumulated=0; + size_t new_elements_accumulated=0; + const size_t& start_rowsplit = rs.at(startat); + for(size_t i=startat; i < rs.size();i++){ + new_elements_accumulated = rs.at(i) - start_rowsplit; + if(new_elements_accumulated > nelements){ + if(elements_accumulated == 0){ + exceeds_limit=true; + stoppedat++; + return new_elements_accumulated; + } + return elements_accumulated; + } + stoppedat = i; + elements_accumulated = new_elements_accumulated; + } + stoppedat = rs.size()-1; + return elements_accumulated; } template @@ -911,7 +937,7 @@ void simpleArray::fromNumpy(const boost::python::numpy::ndarray& ndarr, checkArray(rowsplits, np::dtype::get_builtin()); rowsplits_.resize(len(rowsplits)); memcpy(&(rowsplits_.at(0)),(size_t*)(void*) rowsplits.get_data(), rowsplits_.size() * sizeof(size_t)); - shape.insert(shape.begin(),len(rowsplits)); + shape.insert(shape.begin(),len(rowsplits)-1); shape_ = shape; shape_ = shapeFromRowsplits(); } diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 963127e..9f72622 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -88,8 +88,8 @@ class trainData{ trainData split(size_t splitindex); size_t nElements()const{ - if(feature_arrays_.size()) - return feature_arrays_.at(0).getFirstDimension(); + if(feature_shapes_.size() && feature_shapes_.at(0).size()) + return feature_shapes_.at(0).at(0); else return 0; } @@ -136,6 +136,8 @@ class trainData{ template void readNested( std::vector >& v, FILE *&)const; + void updateShapes(); + std::vector > feature_arrays_; std::vector > truth_arrays_; std::vector > weight_arrays_; @@ -210,6 +212,7 @@ void trainData::append(const trainData& td) { truth_arrays_.at(i).append(td.truth_arrays_.at(i)); for(size_t i=0;i trainData::split(size_t splitindex) { for (auto& a : weight_arrays_) out.weight_arrays_.push_back(a.split(splitindex)); + updateShapes(); + out.updateShapes(); return out; } @@ -363,9 +368,7 @@ void trainData::readRowSplitArray(FILE *& ifile, std::vector &rowspli if(rowsplits.size() && rowsplits != frs) throw std::runtime_error("trainData::readShapesAndRowSplitsFromFile: row splits inconsistent"); } - else{ - rowsplits=frs; - } + rowsplits=frs; } } } @@ -412,7 +415,14 @@ void trainData::readNested(std::vector >& v, FILE *& ifile)con } +template +void trainData::updateShapes(){ + feature_shapes_ = getShapes(feature_arrays_); + truth_shapes_ = getShapes(truth_arrays_); + weight_shapes_ = getShapes(weight_arrays_); + +} template void trainData::skim(size_t batchelement){ @@ -430,6 +440,7 @@ void trainData::skim(size_t batchelement){ a.split(batchelement); a.split(1); } + updateShapes(); } diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index f9029e7..1eaa87e 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -68,7 +68,6 @@ class trainDataGenerator{ batchsize_= nelements; if(orig_rowsplits_.size()) prepareSplitting(); - nbatches_ = getNBatches(); } int getNTotal()const{return ntotal_;} @@ -76,7 +75,7 @@ class trainDataGenerator{ filetimeout_=seconds; } - int getNBatches()const; + int getNBatches()const{return nbatches_;} bool lastBatch()const; @@ -115,6 +114,7 @@ class trainDataGenerator{ std::vector shuffle_indices_; std::vector > orig_rowsplits_; std::vector splits_; + std::vector usebatch_; int randomcount_; size_t batchsize_; @@ -196,13 +196,11 @@ void trainDataGenerator::readInfo(){ for(const auto& f: orig_infiles_){ trainData td; - if(! hasRagged || firstfile){ - std::vector > fs, ts, ws; - td.readShapesFromFile(f); - //first dimension is always Nelements. At least features are filled - if(td.featureShapes().size()<1 || td.featureShapes().at(0).size()<1) - throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object "+f); - } + td.readShapesFromFile(f); + //first dimension is always Nelements. At least features are filled + if(td.featureShapes().size()<1 || td.featureShapes().at(0).size()<1) + throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object "+f); + if(firstfile){ for(const auto& sv: td.featureShapes()) for(const auto& s:sv) @@ -220,22 +218,27 @@ void trainDataGenerator::readInfo(){ } if(hasRagged){ std::vector rowsplits = td.readShapesAndRowSplitsFromFile(f, firstfile);//check consistency only for first + if(debug) + std::cout << "rowsplits.size() " < void trainDataGenerator::prepareSplitting(){ splits_.clear(); - if(orig_rowsplits_.size()<1) + if(orig_rowsplits_.size()<1){ + nbatches_ = ntotal_/batchsize_; return; + } std::vector allrs; for(size_t i=0;i::prepareSplitting(){ } } - //DEBUG - std::cout << "all row splits " << allrs.size() << std::endl; - for(const auto& s: allrs) - std::cout << s << ", " ; - std::cout << std::endl; - return; + if(debug){ + std::cout << "all row splits " << allrs.size() << std::endl; + for(const auto& s: allrs) + std::cout << s << ", " ; + std::cout << std::endl; + } - size_t startat=0; - for(size_t i=0;i::findElementSplitPoint(allrs, batchsize_, startat); + std::vector batchlengths; + nbatches_ = 0; + size_t startnextat=0; + while(startnextat < allrs.size()-1){ + bool exceeds=true; + size_t splitpoint = startnextat; + auto batchlength = simpleArray::findElementSplitLength(allrs, batchsize_, startnextat,exceeds,startnextat); - int thisbatch = splitp = startat; + splitpoint = startnextat - splitpoint;//since it will have been split off before - } -} + splits_.push_back(splitpoint); + batchlengths.push_back(batchlength); + usebatch_.push_back(!exceeds); -template -int trainDataGenerator::getNBatches()const{ - if(orig_rowsplits_.size()<1) - return ntotal_/batchsize_; + if(debug) + std::cout << ">>>> batch with size " << batchlength << " use " << !exceeds << " next start "<< startnextat<< "batchelems "< bool trainDataGenerator::lastBatch()const{ return batchcount_ >= getNBatches() -1 ; @@ -316,8 +337,15 @@ template trainData trainDataGenerator::prepareBatch(){ size_t bufferelements=buffer_store.nElements(); + size_t expect_batchelements = batchsize_; - while(bufferelementsjoin(); @@ -330,7 +358,8 @@ trainData trainDataGenerator::prepareBatch(){ if(debug) std::cout << "nprocessed " << nsamplesprocessed_ << " file " << filecount_ << " in buffer " << bufferelements - << " file read " << nextread_ << " totalfiles " << orig_infiles_.size() << std::endl; + << " file read " << nextread_ << " totalfiles " << orig_infiles_.size() + << " total events "<< ntotal_<< std::endl; if(nsamplesprocessed_ + bufferelements < ntotal_){ if (filecount_ >= orig_infiles_.size()) @@ -338,24 +367,27 @@ trainData trainDataGenerator::prepareBatch(){ "trainDataGenerator::getBatch: more batches requested than data in the sample"); nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); + + if(debug) + std::cout << "start new read on file "<< nextread_ <::readBuffer,this); } } if(debug) - std::cout << "provided batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+batchsize_ << - " elements in buffer: " << bufferelements << std::endl; - nsamplesprocessed_+=batchsize_; - lastbatchsize_ = batchsize_; + std::cout << "providing batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+expect_batchelements << + " elements in buffer: " << bufferelements << + "\nsplitting at " << expect_batchelements << std::endl; - trainData out; - if(splits_.size()) - out = buffer_store.split(splits_.at(batchcount_)); - else - out = buffer_store.split(batchsize_); + nsamplesprocessed_+=expect_batchelements; + lastbatchsize_ = expect_batchelements; batchcount_++; - return out; + if(usebatch_.size() && !usebatch_.at(batchcount_-1))//until valid batch + return prepareBatch(); + return buffer_store.split(expect_batchelements); + } diff --git a/compiled/src/c_trainDataGenerator.C b/compiled/src/c_trainDataGenerator.C index 106dc24..e3e5b25 100644 --- a/compiled/src/c_trainDataGenerator.C +++ b/compiled/src/c_trainDataGenerator.C @@ -43,6 +43,7 @@ BOOST_PYTHON_MODULE(c_trainDataGenerator) { .def("prepareNextEpoch", &trainDataGenerator::prepareNextEpoch) .def("getBatch", &trainDataGenerator::getBatch) + .def("getNTotal", &trainDataGenerator::getNTotal) .def_readwrite("debug", &trainDataGenerator::debug); ; From 4febbb3c4323da836c4a9ab8d6181dee4465828b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 18 Nov 2019 20:20:02 +0000 Subject: [PATCH 165/437] some comment --- compiled/interface/trainData.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 9f72622..5eb5cea 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -120,7 +120,8 @@ class trainData{ boost::python::list getKerasTruthShapes()const; boost::python::list getKerasWeightShapes()const; - //data generator interface + //data generator interface get back numpy arrays / tf.tensors here for keras feeding! + #endif From 12c9e19eab8834db7940a04c11377b902cedcc95 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 18 Nov 2019 20:32:16 +0000 Subject: [PATCH 166/437] another step towards full integration --- DataCollection.py | 49 +++++++++++++++++++++------------------ training/training_base.py | 20 +++++++--------- 2 files changed, 35 insertions(+), 34 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 8dd21b6..beea207 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -6,7 +6,7 @@ from DeepJetCore.TrainData import TrainData -from DeepJetCore.compiled.c_dataGenerator import numpyGenerator +from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator import tempfile import pickle import shutil @@ -37,6 +37,8 @@ def __init__(self, infile = None, nprocs = -1): self.batch_mode = False self.nprocs=-1 + self.gen = None + def clear(self): self.samples=[] self.sourceList=[] @@ -524,31 +526,32 @@ def __stackData(self, dataclass, selector): return out + def invokeGenerator(self): + self.gen = trainDataGenerator() + self.gen.setBatchSize(self.__batchsize) + self.gen.setFileList([self.dataDir+ "/" + s for s in self.samples]) + + def getGenerator(self): + return self.gen - def generator(self): + def generatorFunction(self): - gen = numpyGenerator() - gen.setFileList([self.dataDir+ "/" + s for s in self.samples]) - gen.setBatchSize(self.__batchsize) - gen.debug = False - gen.prepareNextEpoch() + self.gen.prepareNextEpoch() while(1): - try: - data = gen.getBatch() - xout = data[0] - yout = data[1] - wout = data[2] - - if gen.lastBatch(): # returns true if less than the previous batch size remains - gen.prepareNextEpoch() - - if len(wout)>0: - yield (xout,yout,wout) - else: - yield (xout,yout) - except BaseException as e: - del gen - raise e + ##needs to be adapted + data = self.gen.getBatch() + xout = data[0] + yout = data[1] + wout = data[2] + + if gen.lastBatch(): # returns true if less than the previous batch size remains + self.gen.prepareNextEpoch() + + if len(wout)>0: + yield (xout,yout,wout) + else: + yield (xout,yout) + \ No newline at end of file diff --git a/training/training_base.py b/training/training_base.py index adf0ac8..2d7d0f2 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -433,17 +433,20 @@ def trainModel(self, #prepare generator + self.train_data.invokeGenerator() + self.val_data.invokeGenerator() while(self.trainedepoches < nepochs): + self.train_data.gen.shuffleFilelist() #calculate steps for this epoch #feed info below - self.keras_model.fit_generator(self.train_data.generator() , - steps_per_epoch=self.train_data.getNBatchesPerEpoch(), + self.keras_model.fit_generator(self.train_data.generatorFunction() , + steps_per_epoch=self.train_data.gen.getNBatches(), epochs=nepochs, initial_epoch=self.trainedepoches, callbacks=self.callbacks.callbacks, - validation_data=self.val_data.generator(), - validation_steps=self.val_data.getNBatchesPerEpoch(), #)#, + validation_data=self.val_data.generatorFunction(), + validation_steps=self.val_data.gen.getNBatches(), #)#, max_queue_size=1, #handled by DJC validation_freq=1, use_multiprocessing=False, #the threading one doe not loke DJC @@ -452,13 +455,8 @@ def trainModel(self, # self.saveModel("KERAS_model.h5") - - import copy - #reset all file reads etc - tmpdc=copy.deepcopy(self.train_data) - del self.train_data - self.train_data=tmpdc - + del self.train_data.gen + del self.val_data.gen return self.keras_model, self.callbacks.history From 48cdc440c25b32b65fdac159554bd4278c7e1f89 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 19 Nov 2019 17:00:31 +0000 Subject: [PATCH 167/437] readme --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index b67633e..c125c96 100644 --- a/README.md +++ b/README.md @@ -76,5 +76,11 @@ The TrainData class has been slimmed significantly. Now, the ``__init`` function Of course any user function, member etc beyond that can be defined, too. +For developers +===================== + +For developing the best strategy is to create a container or just run it, and then redirect the paths etc to the development directory. This can be done conveniently by sourcing the file ``docker_env.sh`` + + From cdbbd7e482798dbd3c1c7869e808829581dcfeca Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 19 Nov 2019 17:42:31 +0000 Subject: [PATCH 168/437] ragged truth generator testing --- DataCollection.py | 37 +++++++++++----- compiled/interface/trainData.h | 77 ++++++++++++++++++++++++++++++---- compiled/src/c_trainData.C | 6 ++- training/training_base.py | 6 +-- 4 files changed, 103 insertions(+), 23 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index beea207..db0df14 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -7,6 +7,7 @@ from DeepJetCore.TrainData import TrainData from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator +import tensorflow as tf import tempfile import pickle import shutil @@ -527,26 +528,42 @@ def __stackData(self, dataclass, selector): return out def invokeGenerator(self): - self.gen = trainDataGenerator() - self.gen.setBatchSize(self.__batchsize) - self.gen.setFileList([self.dataDir+ "/" + s for s in self.samples]) + self.generator = trainDataGenerator() + self.generator.setBatchSize(self.__batchsize) + self.generator.setFileList([self.dataDir+ "/" + s for s in self.samples]) - def getGenerator(self): - return self.gen def generatorFunction(self): - self.gen.prepareNextEpoch() + self.generator.prepareNextEpoch() + truth_is_ragged = [] while(1): ##needs to be adapted - data = self.gen.getBatch() - xout = data[0] - yout = data[1] - wout = data[2] + # + # Use tf.ragged.from_rowsplits (or similar) + # + data = self.generator.getBatch() + if not len(truth_is_ragged): + truth_is_ragged = data.getTruthRaggedFlags() + + xout = data.transferFeatureListToNumpy() + wout = data.transferWeightListToNumpy() + ytemp = data.transferTruthListToNumpy() + yout = [] + + for i in range(len(truth_is_ragged)): + if(truth_is_ragged[i]): + yout.append(tf.RaggedTensor.from_row_splits( + values=ytemp[i][0], + row_splits=ytemp[i][1])) + else: + yout.append(tf.constant(ytemp[i]).to_tensor()) + if gen.lastBatch(): # returns true if less than the previous batch size remains self.gen.prepareNextEpoch() + truth_is_ragged=[] if len(wout)>0: yield (xout,yout,wout) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 5eb5cea..51c829d 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -117,11 +117,21 @@ class trainData{ #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS boost::python::list getKerasFeatureShapes()const; - boost::python::list getKerasTruthShapes()const; + // not needed boost::python::list getKerasTruthShapes()const; boost::python::list getKerasWeightShapes()const; //data generator interface get back numpy arrays / tf.tensors here for keras feeding! + boost::python::list getTruthRaggedFlags()const; + + //no ragged support + boost::python::list transferFeatureListToNumpy(); + + //has ragged support + boost::python::list transferTruthListToNumpy(); + + //no ragged support + boost::python::list transferWeightListToNumpy(); #endif @@ -459,10 +469,22 @@ boost::python::list trainData::getKerasFeatureShapes()const{ } return out; } +//template +//boost::python::list trainData::getKerasTruthShapes()const{ +// boost::python::list out; +// for(const auto& a: truth_arrays_){ +// size_t start=1; +// if(a.isRagged()) +// start=2; +// for(size_t i=start;i -boost::python::list trainData::getKerasTruthShapes()const{ +boost::python::list trainData::getKerasWeightShapes()const{ boost::python::list out; - for(const auto& a: truth_arrays_){ + for(const auto& a: weight_arrays_){ size_t start=1; if(a.isRagged()) start=2; @@ -471,15 +493,52 @@ boost::python::list trainData::getKerasTruthShapes()const{ } return out; } + + template -boost::python::list trainData::getKerasWeightShapes()const{ +boost::python::list trainData::getTruthRaggedFlags()const{ boost::python::list out; - for(const auto& a: weight_arrays_){ - size_t start=1; + for(const auto& a: truth_arrays_){ if(a.isRagged()) - start=2; - for(size_t i=start;i +boost::python::list trainData::transferFeatureListToNumpy(){ + boost::python::list out; + for( auto& a: feature_arrays_){ + out.append(a.transferToNumpy()[0]); + } + return out; +} + +template +boost::python::list trainData::transferTruthListToNumpy(){ + + boost::python::list out; + for( auto& a: truth_arrays_){ + if(a.isRagged()){ + auto nptuple = a.transferToNumpy(); + boost::python::list subl; + subl.append(nptuple[0]); + subl.append(nptuple[1]); + out.append(subl); + } + else + out.append(a.transferToNumpy()[0]); + } + return out; +} + +template +boost::python::list trainData::transferWeightListToNumpy(){ + boost::python::list out; + for( auto& a: weight_arrays_){ + out.append(a.transferToNumpy()[0]); } return out; } diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index d9729aa..989c36f 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -44,8 +44,12 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("skim", &trainData::skim) .def("getKerasFeatureShapes", &trainData::getKerasFeatureShapes) - .def("getKerasTruthShapes", &trainData::getKerasTruthShapes) .def("getKerasWeightShapes", &trainData::getKerasWeightShapes) + + .def("getTruthRaggedFlags", &trainData::getTruthRaggedFlags) + .def("transferFeatureListToNumpy", &trainData::transferFeatureListToNumpy) + .def("transferTruthListToNumpy", &trainData::transferTruthListToNumpy) + .def("transferWeightListToNumpy", &trainData::transferWeightListToNumpy) ; ; } diff --git a/training/training_base.py b/training/training_base.py index 2d7d0f2..dd25de1 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -437,16 +437,16 @@ def trainModel(self, self.val_data.invokeGenerator() while(self.trainedepoches < nepochs): - self.train_data.gen.shuffleFilelist() + self.train_data.generator.shuffleFilelist() #calculate steps for this epoch #feed info below self.keras_model.fit_generator(self.train_data.generatorFunction() , - steps_per_epoch=self.train_data.gen.getNBatches(), + steps_per_epoch=self.train_data.generator.getNBatches(), epochs=nepochs, initial_epoch=self.trainedepoches, callbacks=self.callbacks.callbacks, validation_data=self.val_data.generatorFunction(), - validation_steps=self.val_data.gen.getNBatches(), #)#, + validation_steps=self.val_data.generator.getNBatches(), #)#, max_queue_size=1, #handled by DJC validation_freq=1, use_multiprocessing=False, #the threading one doe not loke DJC From 0818a03da9160cd26b33aee8a586fe8634f8a431 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 20 Nov 2019 08:08:04 +0000 Subject: [PATCH 169/437] better docu --- README.md | 8 +++++++- docker/Dockerfile | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c125c96..52a53dd 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,13 @@ Setup ========== The package comes with a docker file in the subdirectory docker, which will set up a container with the needed environment. -(every non-CERN user can skip to the next section now) + +**Building / using the container** +For every release, there is a container on dockerhub, the latest release is tagged as ``latest``. +``cernml4reco/deepjetcore2:latest`` +It can be pulled using docker, or pulled from singularity. For details, please see the corresponding docker or singularity documentation. +To build the container, the files can be found in the ``docker`` subdirectory. It is a two-stage process. First the container ``Dockerfile_base`` needs to be built, containing the basic system packages. This will take a while, because root is being compiled within. The output container name must be ``cernml4reco/djcbase:latest``. In the next step, the actual DeepJetCore container should be built on top. **Please make sure to use a release, not the developing master branch!** + **Users with access to Cernbox** can just run the container through the prepared script at: ``/eos/home-j/jkiesele/singularity/run_deepjetcore2.sh`` diff --git a/docker/Dockerfile b/docker/Dockerfile index 25c703a..ee01cc8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,6 +9,7 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ + git checkout 2.0 && \ source docker_env.sh && \ cd compiled && \ make -j4 From 57338f30f4d6cfcb7429ddb4c8b6f5c518e9b276 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 20 Nov 2019 21:17:11 +0000 Subject: [PATCH 170/437] snapshot --- DataCollection.py | 125 +++++++++--------------- TrainData.py | 8 +- bin/convertFromSource.py | 18 +--- compiled/interface/simpleArray.h | 53 +++++++--- compiled/interface/trainData.h | 85 ++++++++++------ compiled/interface/trainDataGenerator.h | 2 +- compiled/src/c_trainData.C | 1 - testing/ragged.py | 72 ++++++++++++++ training/training_base.py | 38 +------ 9 files changed, 228 insertions(+), 174 deletions(-) create mode 100644 testing/ragged.py diff --git a/DataCollection.py b/DataCollection.py index db0df14..91f53a0 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -44,7 +44,8 @@ def clear(self): self.samples=[] self.sourceList=[] self.dataDir="" - self.dataclass=TrainData() + self.dataclass = TrainData + self.dataclass_instance = self.dataclass() self.__nsamples = 0 def __iadd__(self, other): @@ -59,11 +60,11 @@ def _extend_(a, b, name): _extend_(self, other, 'sourceList') if self.dataDir != other.dataDir: raise ValueError('The two DataCollections have different data directories, still to be implemented!') - if type(self.dataclass) != type(other.dataclass): - raise ValueError( - 'The two DataCollections were made with a' - ' different data class type! (%s, and %s)' % (type(self.dataclass), type(other.dataclass)) - ) + #if type(self.dataclass) != type(other.dataclass): + # raise ValueError( + # 'The two DataCollections were made with a' + # ' different data class type! (%s, and %s)' % (type(self.dataclass), type(other.dataclass)) + # ) return self def __add__(self, other): @@ -86,13 +87,13 @@ def __radd__(self, other): def _readShapesIfNeeded(self): if len(self.samples)<1: return - if not len(self.dataclass.xshapes): - self.dataclass.readFromFile(self.getSamplePath(self.samples[0]),shapesOnly=True) + if self.dataclass_instance.nElements() < 1: + self.dataclass_instance.readShapesFromFile(self.getSamplePath(self.samples[0])) def _readNTotal(self): if not len(self.samples): return 0 - gen = numpyGenerator() + gen = trainDataGenerator() gen.setFileList([self.dataDir+"/"+s for s in self.samples]) return gen.getNTotal() @@ -104,38 +105,23 @@ def removeLast(self): def getKerasFeatureShapes(self): if len(self.samples)<1: + raise Exception("DataCollection.getKerasFeatureShapes: no files") return [] self._readShapesIfNeeded() - return self.dataclass.getKerasFeatureShapes() + return self.dataclass_instance.getKerasFeatureShapes() def getInputShapes(self): print('DataCollection:getInputShapes deprecated, use getKerasFeatureShapes ') return self.getKerasFeatureShapes() - def getKerasTruthShape(self): - if len(self.samples)<1: - return [] - self._readShapesIfNeeded() - return self.dataclass.getKerasTruthShapes() - + def setBatchSize(self,bsize): self.__batchsize=bsize def getBatchSize(self): return self.__batchsize - def getSamplesPerEpoch(self): - return self.getNBatchesPerEpoch()*self.__batchsize - - def getNBatchesPerEpoch(self): - if self.__batchsize <= 1: - return 1 - count=0 - if self.__nsamples == 0: - self.__nsamples = self._readNTotal() - while (count+1)*self.__batchsize <= self.__nsamples: - count+=1 - return count + def validate(self, remove=True, skip_first=0): ''' @@ -148,7 +134,7 @@ def validate(self, remove=True, skip_first=0): for i in range(len(self.samples)): if i < skip_first: continue if i >= len(self.samples): break - td=copy.deepcopy(self.dataclass) + td = self.dataclass () fullpath=self.getSamplePath(self.samples[i]) print('reading '+fullpath, str(i), '/', str(len(self.samples))) try: @@ -172,7 +158,6 @@ def removeEntry(self,relative_path_to_entry): def writeToFile(self,filename): with tempfile.NamedTemporaryFile(mode='wb', delete=False) as fd: - self.dataclass.clear() pickle.dump(self.samples, fd,protocol=0 ) pickle.dump(self.sourceList, fd,protocol=0 ) pickle.dump(self.dataclass, fd,protocol=0 ) @@ -252,7 +237,6 @@ def split(self,ratio): def recoverCreateDataFromRootFromSnapshot(self, snapshotfile): snapshotfile=os.path.abspath(snapshotfile) self.readFromFile(snapshotfile) - td=self.dataclass if len(self.sourceList) < 1: return @@ -287,8 +271,8 @@ def createDataFromRoot( os.mkdir(outputDir) self.dataDir=outputDir self.samples=[] - self.dataclass=copy.deepcopy(dataclass) - td=self.dataclass + self.dataclass=dataclass + td=self.dataclass() self.weighterobjects = td.createWeighterObjects(self.sourceList) @@ -300,7 +284,7 @@ def createDataFromRoot( def __writeData(self, sample, outputDir): sw=stopwatch() - td=copy.deepcopy(self.dataclass) + td=self.dataclass() fileTimeOut(sample,120) #once available copy to ram @@ -338,7 +322,7 @@ def writeData_async(index,woq,wrlck): logger.info('async started') sw=stopwatch() - td=copy.deepcopy(self.dataclass) + td=self.dataclass() sample=self.sourceList[index] if self.batch_mode or self.no_copy_on_convert: @@ -480,16 +464,7 @@ def convertListOfRootFiles(self, inputfile, dataclass, outputDir, dir_check= not self.batch_mode ) self.writeToFile(outputDir+'/'+output_name) - - def getAllLabels(self): - return self.__stackData(self.dataclass,'y') - - def getAllFeatures(self): - return self.__stackData(self.dataclass,'x') - - def getAllWeights(self): - return self.__stackData(self.dataclass,'w') - + def getSamplePath(self,samplefile): #for backward compatibility @@ -501,31 +476,14 @@ def __stackData(self, dataclass, selector): # # FIXME: use underlying trainData.append here (improvement) # - td=dataclass + td=self.dataclass() out=[] firstcall=True for sample in self.samples: - td.readIn(self.getSamplePath(sample)) - #make this generic - thislist=[] - if selector == 'x': - thislist=td.x - if selector == 'y': - thislist=td.y - if selector == 'w': - thislist=td.w - - if firstcall: - out=thislist - firstcall=False - else: - for i in range(0,len(thislist)): - if selector == 'w': - out[i] = np.append(out[i],thislist[i]) - else: - out[i] = np.vstack((out[i],thislist[i])) - - return out + td2 = self.dataclass() + td2.readIn(self.getSamplePath(sample)) + td.append(td2) + return td def invokeGenerator(self): self.generator = trainDataGenerator() @@ -535,8 +493,12 @@ def invokeGenerator(self): def generatorFunction(self): + import numpy as np + self._readShapesIfNeeded() + truth_is_ragged = self.dataclass_instance.getTruthRaggedFlags() + #ragged_t = [ tf.RaggedTensor() if i else None for i in truth_is_ragged ] + self.generator.prepareNextEpoch() - truth_is_ragged = [] while(1): ##needs to be adapted @@ -544,26 +506,35 @@ def generatorFunction(self): # Use tf.ragged.from_rowsplits (or similar) # data = self.generator.getBatch() - if not len(truth_is_ragged): - truth_is_ragged = data.getTruthRaggedFlags() xout = data.transferFeatureListToNumpy() wout = data.transferWeightListToNumpy() ytemp = data.transferTruthListToNumpy() yout = [] - + for i in range(len(truth_is_ragged)): if(truth_is_ragged[i]): - yout.append(tf.RaggedTensor.from_row_splits( - values=ytemp[i][0], - row_splits=ytemp[i][1])) + #ragged_t[i].row_splits = ytemp[i][1] + #ragged_t[i].values = ytemp[i][0] + #print(ytemp[i][1].dtype) + a = np.array(ytemp[i][1], dtype='int64') + print("here") + yout.append( + tf.ragged.RaggedTensorValue(values = ytemp[i][0], + row_splits= a) #.to_tensor() + + #ragged_t[i] + + #tf.RaggedTensor.from_row_splits( + # values=tf.constant(ytemp[i][0]), + # row_splits=tf.constant(ytemp[i][1], dtype='int64'), name="test") + ) else: yout.append(tf.constant(ytemp[i]).to_tensor()) - if gen.lastBatch(): # returns true if less than the previous batch size remains - self.gen.prepareNextEpoch() - truth_is_ragged=[] + if self.generator.lastBatch(): # returns true if less than the previous batch size remains + self.generator.prepareNextEpoch() if len(wout)>0: yield (xout,yout,wout) diff --git a/TrainData.py b/TrainData.py index dd140fa..7a331a4 100644 --- a/TrainData.py +++ b/TrainData.py @@ -68,18 +68,18 @@ def _maybeConvertToSimpleArray(self,a): def _store(self, x, y, w): for xa in x: - self.storeFeatureArray(_maybeConvertToSimpleArray(xa)) + self.storeFeatureArray(self._maybeConvertToSimpleArray(xa)) x = [] #collect garbage for ya in y: - self.storeTruthArray(_maybeConvertToSimpleArray(ya)) + self.storeTruthArray(self._maybeConvertToSimpleArray(ya)) y = [] for wa in w: - self.storeWeightArray(_maybeConvertToSimpleArray(wa)) + self.storeWeightArray(self._maybeConvertToSimpleArray(wa)) w = [] def readFromSourceFile(self,filename, weighterobjects={}, istraining=False): x,y,w = self.convertFromSourceFile(filename, weighterobjects, istraining) - self._store(x,y,z) + self._store(x,y,w) ################# functions to be defined by the user diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index 73a5263..892880b 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -25,10 +25,8 @@ parser.add_argument("--noRelativePaths", help="Assume input samples are absolute paths with respect to working directory", default=False, action="store_true") parser.add_argument("-o", help="set output path", metavar="PATH") parser.add_argument("-c", choices = class_options.keys(), help="set output class (options: %s)" % ', '.join(class_options.keys()), metavar="Class") -parser.add_argument("--classArgs", help="Arguments to pass to output class") parser.add_argument("-r", help="set path to snapshot that got interrupted", metavar="FILE", default='') parser.add_argument("-n", default='', help="(optional) number of child processes") -parser.add_argument("--testdatafor", default='') parser.add_argument("--usemeansfrom", default='') parser.add_argument("--nothreads", action='store_true') parser.add_argument("--means", action='store_true', help='compute only means') @@ -43,9 +41,7 @@ infile=args.i outPath=args.o class_name=args.c -class_args=args.classArgs recover=args.r -testdatafor=args.testdatafor usemeansfrom=args.usemeansfrom nchilds=args.n @@ -105,19 +101,11 @@ print(key) raise Exception('wrong class selection') -if testdatafor: - logging.info('converting test data, no weights applied') - dc.createTestDataForDataCollection( - testdatafor, infile, outPath, - outname=(args.batch if args.batch else 'dataCollection.djcdc'), - traind=(traind(class_args) if traind else None), - relpath=relpath - ) -elif recover: +if recover: dc.recoverCreateDataFromRootFromSnapshot(recover) elif args.means: dc.convertListOfRootFiles( - infile, traind(class_args) if class_args else traind(), outPath, + infile, traind, outPath, means_only=True, output_name='batch_template.djcdc', relpath=relpath @@ -125,7 +113,7 @@ else: logging.info('Start conversion') dc.convertListOfRootFiles( - infile, traind(class_args) if class_args else traind(), outPath, + infile, traind, outPath, takeweightersfrom=usemeansfrom, output_name=(args.batch if args.batch else 'dataCollection.djcdc'), relpath=relpath diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 99e2e64..f1dcfd7 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -192,10 +192,10 @@ class simpleArray { boost::python::make_tuple(0), boost::python::numpy::dtype::get_builtin())); //transfers data ownership and cleans simpleArray instance - boost::python::tuple transferToNumpy(); + boost::python::tuple transferToNumpy(bool pad_rowsplits=false); //copy data - boost::python::tuple copyToNumpy()const; + boost::python::tuple copyToNumpy(bool pad_rowsplits=false)const; #endif @@ -206,10 +206,11 @@ class simpleArray { size_t flatindex(size_t i, size_t j, size_t k, size_t l, size_t m)const; size_t flatindex(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; + std::vector padRowsplits()const; void copyFrom(const simpleArray& a); void moveFrom(simpleArray && a); - int sizeFromShape(std::vector shape) const; + size_t sizeFromShape(std::vector shape) const; std::vector shapeFromRowsplits()const; //split dim = 1! void checkShape(size_t ndims)const; void checkSize(size_t idx)const; @@ -376,6 +377,7 @@ simpleArray simpleArray::split(size_t splitindex) { } if(isRagged() && splitindex > rowsplits_.size()){ + std::cout << "split index " << splitindex << " range: " << rowsplits_.size()<< std::endl; throw std::runtime_error( "simpleArray::split: ragged split index out of range"); } @@ -676,14 +678,12 @@ void simpleArray::copyFrom(const simpleArray& a) { } template -int simpleArray::sizeFromShape(std::vector shape) const { - int size = 1; - size_t previous=1; +size_t simpleArray::sizeFromShape(std::vector shape) const { + size_t size = 1; for (const auto s : shape){ size *= std::abs(s); if(s<0) - size/=previous; - previous=s; + size=std::abs(s);//first ragged dimension has the full size of previous dimensions } return size; } @@ -933,7 +933,7 @@ void simpleArray::fromNumpy(const boost::python::numpy::ndarray& ndarr, shape.push_back(ndarr.shape(s)); //check row splits, anyway copied - if(len(rowsplits)){ + if(len(rowsplits)>0){ checkArray(rowsplits, np::dtype::get_builtin()); rowsplits_.resize(len(rowsplits)); memcpy(&(rowsplits_.at(0)),(size_t*)(void*) rowsplits.get_data(), rowsplits_.size() * sizeof(size_t)); @@ -972,9 +972,22 @@ inline void destroyManagerCObject(PyObject* self) { auto * b = reinterpret_cast( PyCapsule_GetPointer(self, NULL) ); delete [] b; } + +template +std::vector simpleArray::padRowsplits()const{ + std::vector out = rowsplits_; + if(out.size()){ + size_t presize = rowsplits_.size(); + size_t nelements = rowsplits_.at(rowsplits_.size()-1); + out.resize(nelements,0); + out.at(out.size()-1) = presize; + } + return out; +} + //transfers data ownership and cleans simpleArray instance template -boost::python::tuple simpleArray::transferToNumpy(){ +boost::python::tuple simpleArray::transferToNumpy(bool pad_rowsplits){ namespace p = boost::python; namespace np = boost::python::numpy; @@ -982,15 +995,21 @@ boost::python::tuple simpleArray::transferToNumpy(){ T * data_ptr = disownData(); np::ndarray dataarr = STLToNumpy(data_ptr, shape, size(), false); - np::ndarray rowsplits = STLToNumpy(&rowsplits_.at(0), {(int)rowsplits_.size()}, rowsplits_.size(), true); - + if(pad_rowsplits){ + auto rsp = padRowsplits(); + np::ndarray rowsplits = STLToNumpy(&(rsp[0]), {(int)rsp.size()}, rsp.size(), true); + clear(); + return p::make_tuple(dataarr,rowsplits); + } + //don't check. if rowsplits_.size()==0 function will return empty array and igonre invalid pointer + np::ndarray rowsplits = STLToNumpy(&(rowsplits_[0]), {(int)rowsplits_.size()}, rowsplits_.size(), true); clear();//reset all return p::make_tuple(dataarr,rowsplits); } //cpoies data template -boost::python::tuple simpleArray::copyToNumpy()const{ +boost::python::tuple simpleArray::copyToNumpy(bool pad_rowsplits)const{ namespace p = boost::python; namespace np = boost::python::numpy; @@ -999,8 +1018,12 @@ boost::python::tuple simpleArray::copyToNumpy()const{ T * data_ptr = data(); np::ndarray dataarr = STLToNumpy(data_ptr, shape, size(), true); - np::ndarray rowsplits = STLToNumpy(&rowsplits_.at(0), {(int)rowsplits_.size()}, rowsplits_.size(), true); - + if(pad_rowsplits){ + auto rsp = padRowsplits(); + np::ndarray rowsplits = STLToNumpy(&(rsp[0]), {(int)rsp.size()}, rsp.size(), true); + return p::make_tuple(dataarr,rowsplits); + } + np::ndarray rowsplits = STLToNumpy(&(rowsplits_[0]), {(int)rowsplits_.size()}, rowsplits_.size(), true); return p::make_tuple(dataarr,rowsplits); } diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 51c829d..86c8ac6 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -117,8 +117,8 @@ class trainData{ #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS boost::python::list getKerasFeatureShapes()const; - // not needed boost::python::list getKerasTruthShapes()const; - boost::python::list getKerasWeightShapes()const; + // not needed boost::python::list getKerasTruthShapes()const; + // not needed boost::python::list getKerasWeightShapes()const; //data generator interface get back numpy arrays / tf.tensors here for keras feeding! @@ -163,9 +163,9 @@ class trainData{ template int trainData::storeFeatureArray(simpleArray & a){ size_t idx = feature_arrays_.size(); - a.cout(); feature_arrays_.push_back(std::move(a)); a.clear(); + updateShapes(); return idx; } @@ -175,6 +175,7 @@ int trainData::storeTruthArray(simpleArray& a){ size_t idx = truth_arrays_.size(); truth_arrays_.push_back(std::move(a)); a.clear(); + updateShapes(); return idx; } @@ -183,6 +184,7 @@ int trainData::storeWeightArray(simpleArray & a){ size_t idx = weight_arrays_.size(); weight_arrays_.push_back(std::move(a)); a.clear(); + updateShapes(); return idx; } @@ -460,12 +462,23 @@ void trainData::skim(size_t batchelement){ template boost::python::list trainData::getKerasFeatureShapes()const{ boost::python::list out; - for(const auto& a: feature_arrays_){ - size_t start=1; - if(a.isRagged()) - start=2; - for(size_t i=start;i::getKerasFeatureShapes()const{ // } // return out; //} -template -boost::python::list trainData::getKerasWeightShapes()const{ - boost::python::list out; - for(const auto& a: weight_arrays_){ - size_t start=1; - if(a.isRagged()) - start=2; - for(size_t i=start;i +//boost::python::list trainData::getKerasWeightShapes()const{ +// boost::python::list out; +// for(const auto& a: weight_shapes_){ +// for(size_t i=1;i boost::python::list trainData::getTruthRaggedFlags()const{ boost::python::list out; - for(const auto& a: truth_arrays_){ - if(a.isRagged()) + for(const auto& a: truth_shapes_){ + bool isragged = false; + for(const auto & s: a) + if(s<0){ + isragged=true; + break; + } + if(isragged) out.append(true); else out.append(false); @@ -509,9 +529,18 @@ boost::python::list trainData::getTruthRaggedFlags()const{ template boost::python::list trainData::transferFeatureListToNumpy(){ - boost::python::list out; + namespace p = boost::python; + namespace np = boost::python::numpy; + p::list out; for( auto& a: feature_arrays_){ - out.append(a.transferToNumpy()[0]); + if(a.isRagged()){ + auto arrt = a.transferToNumpy(true);//pad row splits + out.append(arrt[0]);//data + np::ndarray rs = boost::python::extract(arrt[1]); + out.append(rs.reshape(p::make_tuple(-1,1)));//row splits + } + else + out.append(a.transferToNumpy(true)[0]); } return out; } @@ -522,14 +551,14 @@ boost::python::list trainData::transferTruthListToNumpy(){ boost::python::list out; for( auto& a: truth_arrays_){ if(a.isRagged()){ - auto nptuple = a.transferToNumpy(); + auto nptuple = a.transferToNumpy(false); boost::python::list subl; subl.append(nptuple[0]); subl.append(nptuple[1]); out.append(subl); } - else - out.append(a.transferToNumpy()[0]); + else{ + out.append(a.transferToNumpy(false)[0]);} } return out; } diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 1eaa87e..4372ce8 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -377,7 +377,7 @@ trainData trainDataGenerator::prepareBatch(){ } if(debug) std::cout << "providing batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+expect_batchelements << - " elements in buffer: " << bufferelements << + " elements in buffer before: " << bufferelements << "\nsplitting at " << expect_batchelements << std::endl; nsamplesprocessed_+=expect_batchelements; diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index 989c36f..5f7cce3 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -44,7 +44,6 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("skim", &trainData::skim) .def("getKerasFeatureShapes", &trainData::getKerasFeatureShapes) - .def("getKerasWeightShapes", &trainData::getKerasWeightShapes) .def("getTruthRaggedFlags", &trainData::getTruthRaggedFlags) .def("transferFeatureListToNumpy", &trainData::transferFeatureListToNumpy) diff --git a/testing/ragged.py b/testing/ragged.py new file mode 100644 index 0000000..bd83c9c --- /dev/null +++ b/testing/ragged.py @@ -0,0 +1,72 @@ + +import tensorflow as tf +#tf.enable_eager_execution() + + +#B x V x F +ragged_val_list = [ [[[1., 3.], [2, 4.], [3, 4.]], + [[1, 2.], [2, 3.]], + [[1, 2.], [2, 3.], [3, 4.], [4, 5.]]] ] + + + +flat_list = tf.ragged.constant( 2*[[[[1.]]]] ).to_tensor() + +#ragged_list = tf.ragged.constant(2*ragged_val_list).to_tensor() +truth_ragged_tensor = tf.ragged.constant(2*ragged_val_list).to_tensor() + + + +def generator(): + while(1): + yield (flat_list, truth_ragged_tensor) # just returns the same every time + #yield (ragged_list, truth_ragged_tensor) + + +inputs_ragged = tf.keras.layers.Input(shape=(None, None,1), ragged=False) +outputs_ragged = tf.keras.layers.Dense(1)(inputs_ragged) +model_ragged = tf.keras.Model(inputs=inputs_ragged, outputs=outputs_ragged) + + +def loss(truth, pred): + return tf.reduce_mean(truth) - tf.reduce_mean(pred) #both workon ragged, too + + +model_ragged.compile(optimizer='Adam', loss = loss) + + +model_ragged.fit_generator(generator = generator(), steps_per_epoch=50, epochs=1, + validation_data=generator(), validation_steps=2, + max_queue_size=1, + workers=0) + + + + + + +exit() +flatish = tf.constant([ + [1,0.1,0.01], + [2,0.2,0.02], + [3,0.3,0.03], + [4,0.4,0.04], + [5,0.5,0.05] + ]) + +splits = tf.constant([ + 0, 2, 3, 5 + ]) + +rt = tf.RaggedTensor.from_row_splits( + values=flatish, + row_splits=splits) +print(rt) +lrt = rt.to_list() +print(lrt) + +for i in lrt: + print(i) + +## probably will be supported in one of the next TF releases +# https://github.com/tensorflow/tensorflow/issues/27170 \ No newline at end of file diff --git a/training/training_base.py b/training/training_base.py index dd25de1..9707fa1 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -206,6 +206,7 @@ def __init__( shapes=self.train_data.getKerasFeatureShapes() + print("shapes", shapes) self.keras_inputs=[] self.keras_inputsshapes=[] @@ -267,10 +268,7 @@ def compileModel(self, learningrate, clipnorm=None, discriminator_loss=['binary_crossentropy'], - generator_loss=None, print_models=False, - discr_loss_weights=None, - gan_loss_weights=None, metrics=None, **compileargs): if not self.keras_model and not self.GAN_mode: @@ -290,36 +288,10 @@ def compileModel(self, self.optimizer = Adam(lr=self.startlearningrate) - if self.GAN_mode: - if metrics is None: - metrics=['accuracy'] - else: - if not ('accuracy' in metrics): - metrics = ['accuracy']+metrics - - self.generator= self.create_generator(self.keras_inputs) - if generator_loss is None: - generator_loss = [null_loss for i in range(len(self.generator.outputs))] - self.generator.compile(optimizer=self.optimizer,loss=generator_loss,metrics=metrics,**compileargs) - - self.discriminator= self.create_discriminator(self.keras_inputs) - self.discriminator.compile(optimizer=self.optimizer,loss=discriminator_loss,loss_weights=discr_loss_weights,metrics=metrics,**compileargs) - - self.discriminator.trainable=False - self.gan = self._create_gan(self.discriminator, self.generator, self.keras_inputs) - self.gan.compile(optimizer=self.optimizer,loss=discriminator_loss,loss_weights=gan_loss_weights,metrics=metrics,**compileargs) - - if print_models: - print('GENERATOR:') - print(self.generator.summary()) - print('DISCRIMINATOR:') - print(self.discriminator.summary()) - print('GAN:') - print(self.gan.summary()) - else: - self.keras_model.compile(optimizer=self.optimizer,metrics=metrics,**compileargs) - if print_models: - print(self.keras_model.summary()) + + self.keras_model.compile(optimizer=self.optimizer,metrics=metrics,**compileargs) + if print_models: + print(self.keras_model.summary()) self.compiled=True def compileModelWithCustomOptimizer(self, From 6228d280ebd2ab96e18cb64a78e0933d1187a3dd Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 21 Nov 2019 10:10:48 +0000 Subject: [PATCH 171/437] working ragged treatment --- DataCollection.py | 37 ++++--------------------- compiled/interface/trainData.h | 16 +++++++---- compiled/interface/trainDataGenerator.h | 6 ++-- testing/ragged.py | 27 ++++++++++++++---- training/training_base.py | 23 +++++++++++---- 5 files changed, 59 insertions(+), 50 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 91f53a0..e205bdd 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -229,7 +229,7 @@ def split(self,ratio): self.__nsamples = 0 out.__nsamples = 0 - out.weighterobjects = self.weighterobjects + out.weighterobjects = copy.deepcopy(self.weighterobjects) return out @@ -493,12 +493,6 @@ def invokeGenerator(self): def generatorFunction(self): - import numpy as np - self._readShapesIfNeeded() - truth_is_ragged = self.dataclass_instance.getTruthRaggedFlags() - #ragged_t = [ tf.RaggedTensor() if i else None for i in truth_is_ragged ] - - self.generator.prepareNextEpoch() while(1): ##needs to be adapted @@ -509,32 +503,11 @@ def generatorFunction(self): xout = data.transferFeatureListToNumpy() wout = data.transferWeightListToNumpy() - ytemp = data.transferTruthListToNumpy() - yout = [] - - for i in range(len(truth_is_ragged)): - if(truth_is_ragged[i]): - #ragged_t[i].row_splits = ytemp[i][1] - #ragged_t[i].values = ytemp[i][0] - #print(ytemp[i][1].dtype) - a = np.array(ytemp[i][1], dtype='int64') - print("here") - yout.append( - tf.ragged.RaggedTensorValue(values = ytemp[i][0], - row_splits= a) #.to_tensor() - - #ragged_t[i] - - #tf.RaggedTensor.from_row_splits( - # values=tf.constant(ytemp[i][0]), - # row_splits=tf.constant(ytemp[i][1], dtype='int64'), name="test") - ) - else: - yout.append(tf.constant(ytemp[i]).to_tensor()) - + yout = data.transferTruthListToNumpy() - if self.generator.lastBatch(): # returns true if less than the previous batch size remains - self.generator.prepareNextEpoch() + #debug + #if self.generator.lastBatch(): # returns true if less than the previous batch size remains + # print('\nlastbatch') if len(wout)>0: yield (xout,yout,wout) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 86c8ac6..20d60b4 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -547,15 +547,21 @@ boost::python::list trainData::transferFeatureListToNumpy(){ template boost::python::list trainData::transferTruthListToNumpy(){ + namespace p = boost::python; + namespace np = boost::python::numpy; boost::python::list out; for( auto& a: truth_arrays_){ if(a.isRagged()){ - auto nptuple = a.transferToNumpy(false); - boost::python::list subl; - subl.append(nptuple[0]); - subl.append(nptuple[1]); - out.append(subl); + //auto arrt = a.transferToNumpy(false); + //boost::python::list subl; + //subl.append(arrt[0]); + //subl.append(arrt[1]); + //out.append(subl); + auto arrt = a.transferToNumpy(true);//pad row splits + out.append(arrt[0]);//data + np::ndarray rs = boost::python::extract(arrt[1]); + out.append(rs.reshape(p::make_tuple(-1,1)));//row splits } else{ out.append(a.transferToNumpy(false)[0]);} diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 4372ce8..df259c5 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -275,13 +275,15 @@ void trainDataGenerator::prepareSplitting(){ usebatch_.push_back(!exceeds); if(debug) - std::cout << ">>>> batch with size " << batchlength << " use " << !exceeds << " next start "<< startnextat<< "batchelems "<>>> batch with size " << batchlength << " use " << !exceeds << " next start "<< startnextat<< " batchelems "<>>>Epoch', self.trainedepoches,"/",nepochs) + print('training batches: ',nbatches_train) + print('validation batches: ',nbatches_val) #calculate steps for this epoch #feed info below + self.train_data.generator.prepareNextEpoch() + self.val_data.generator.prepareNextEpoch() + self.keras_model.fit_generator(self.train_data.generatorFunction() , - steps_per_epoch=self.train_data.generator.getNBatches(), - epochs=nepochs, + steps_per_epoch=nbatches_train, + epochs=self.trainedepoches + 1, initial_epoch=self.trainedepoches, callbacks=self.callbacks.callbacks, validation_data=self.val_data.generatorFunction(), - validation_steps=self.val_data.generator.getNBatches(), #)#, + validation_steps=nbatches_val, #)#, max_queue_size=1, #handled by DJC validation_freq=1, use_multiprocessing=False, #the threading one doe not loke DJC @@ -427,8 +440,8 @@ def trainModel(self, # self.saveModel("KERAS_model.h5") - del self.train_data.gen - del self.val_data.gen + del self.train_data.generator + del self.val_data.generator return self.keras_model, self.callbacks.history From ca864805171ec89e3c03bb2387b808b5cead36dc Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 21 Nov 2019 10:41:00 +0000 Subject: [PATCH 172/437] row splits to vector int to avoid additional conversion when going to python --- compiled/interface/simpleArray.h | 61 +++++++++++++------------ compiled/interface/trainData.h | 10 ++-- compiled/interface/trainDataGenerator.h | 6 +-- 3 files changed, 39 insertions(+), 38 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index f1dcfd7..ca3e591 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -42,7 +42,7 @@ class simpleArray { // Only ONLY DIMENSION 1 AS RAGGED DIMENSION is supported, first dimension MUST NOT be ragged. // - simpleArray(std::vector shape,const std::vector& rowsplits = {}); + simpleArray(std::vector shape,const std::vector& rowsplits = {}); simpleArray(FILE *& ); ~simpleArray(); @@ -55,7 +55,7 @@ class simpleArray { void clear(); //reshapes if possible, creates new else - void setShape(std::vector shape,const std::vector& rowsplits = {}); + void setShape(std::vector shape,const std::vector& rowsplits = {}); T * data() const { return data_; @@ -84,7 +84,7 @@ class simpleArray { */ size_t getFirstDimension()const; - const std::vector& rowsplits() const { + const std::vector& rowsplits() const { return rowsplits_; } @@ -172,9 +172,9 @@ class simpleArray { /** * assumes that the row splits are along the 1st dimension */ - static size_t findElementSplitLength(const std::vector & rowsplits, + static size_t findElementSplitLength(const std::vector & rowsplits, size_t nelements, size_t startat, bool & exceeds_limit, size_t& stoppedat); - static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); + static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS @@ -206,7 +206,7 @@ class simpleArray { size_t flatindex(size_t i, size_t j, size_t k, size_t l, size_t m)const; size_t flatindex(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; - std::vector padRowsplits()const; + std::vector padRowsplits()const; void copyFrom(const simpleArray& a); void moveFrom(simpleArray && a); @@ -229,7 +229,8 @@ class simpleArray { T * data_; std::vector shape_; - std::vector rowsplits_; + //this is int64 for better feeding to TF + std::vector rowsplits_; size_t size_; bool assigned_; }; @@ -240,7 +241,7 @@ simpleArray::simpleArray() : } template -simpleArray::simpleArray(std::vector shape,const std::vector& rowsplits) : +simpleArray::simpleArray(std::vector shape,const std::vector& rowsplits) : data_(0), size_(0),assigned_(false) { shape_ = shape; @@ -293,7 +294,7 @@ simpleArray::simpleArray(simpleArray && a) : shape_ = std::move(a.shape_); a.shape_ = std::vector(); rowsplits_ = std::move(a.rowsplits_); - a.rowsplits_= std::vector(); + a.rowsplits_= std::vector(); a.clear(); } @@ -312,7 +313,7 @@ simpleArray& simpleArray::operator=(simpleArray && a) { shape_ = std::move(a.shape_); a.shape_ = std::vector(); rowsplits_ = std::move(a.rowsplits_); - a.rowsplits_= std::vector(); + a.rowsplits_= std::vector(); return *this; } @@ -328,7 +329,7 @@ void simpleArray::clear() { } template -void simpleArray::setShape(std::vector shape,const std::vector& rowsplits) { +void simpleArray::setShape(std::vector shape,const std::vector& rowsplits) { if(rowsplits.size()){ *this = simpleArray(shape,rowsplits); } @@ -385,7 +386,7 @@ simpleArray simpleArray::split(size_t splitindex) { //get split point for data ///insert rowsplit logic below - size_t splitpoint = splitindex; + int splitpoint = splitindex; if(isRagged()){ splitpoint = rowsplits_.at(splitindex); for (size_t i = 2; i < shape_.size(); i++) @@ -414,9 +415,9 @@ simpleArray simpleArray::split(size_t splitindex) { shape_.at(0) = shape_.at(0) - splitindex; if(isRagged()){ - out.rowsplits_ = std::vector (rowsplits_.begin(),rowsplits_.begin()+splitindex+1); + out.rowsplits_ = std::vector (rowsplits_.begin(),rowsplits_.begin()+splitindex+1); int outnelements = out.rowsplits_.at(out.rowsplits_.size()-1); - rowsplits_ = std::vector (rowsplits_.begin()+splitindex,rowsplits_.end()); + rowsplits_ = std::vector (rowsplits_.begin()+splitindex,rowsplits_.end()); for(size_t i=0;i::addToFileP(FILE *& ofile) const { io::writeToFile(&rssize, ofile); if(rssize){ - quicklz iqlz; + quicklz iqlz; iqlz.writeCompressed(&rowsplits_[0],rssize , ofile); } quicklz qlz; @@ -540,10 +541,10 @@ void simpleArray::readFromFileP(FILE *& ifile) { size_t rssize = 0; io::readFromFile(&rssize, ifile); - rowsplits_ = std::vector(rssize, 0); + rowsplits_ = std::vector(rssize, 0); if(rssize){ - quicklz iqlz; + quicklz iqlz; iqlz.readAll(ifile, &rowsplits_[0]); } quicklz qlz; @@ -600,7 +601,7 @@ void simpleArray::cout()const{ } template -size_t simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, +size_t simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, size_t startat, bool & exceeds_limit, size_t& stoppedat){ if(startat >= rs.size()) throw std::out_of_range("simpleArray::findElementSplitPoint: startat"); @@ -628,12 +629,12 @@ size_t simpleArray::findElementSplitLength(const std::vector & rs, si } template -std::vector simpleArray::readRowSplitsFromFileP(FILE *& ifile, bool seeknext){ +std::vector simpleArray::readRowSplitsFromFileP(FILE *& ifile, bool seeknext){ float version = 0; size_t size; std::vector shape; - std::vector rowsplits; + std::vector rowsplits; io::readFromFile(&version, ifile); if(version != DJCDATAVERSION) throw std::runtime_error("simpleArray::readRowSplitsFromFileP: wrong format version"); @@ -647,10 +648,10 @@ std::vector simpleArray::readRowSplitsFromFileP(FILE *& ifile, bool s size_t rssize = 0; io::readFromFile(&rssize, ifile); - rowsplits = std::vector(rssize, 0); + rowsplits = std::vector(rssize, 0); if(rssize){ - quicklz iqlz; + quicklz iqlz; iqlz.readAll(ifile, &rowsplits[0]); } if(seeknext){ @@ -934,9 +935,9 @@ void simpleArray::fromNumpy(const boost::python::numpy::ndarray& ndarr, //check row splits, anyway copied if(len(rowsplits)>0){ - checkArray(rowsplits, np::dtype::get_builtin()); + checkArray(rowsplits, np::dtype::get_builtin()); rowsplits_.resize(len(rowsplits)); - memcpy(&(rowsplits_.at(0)),(size_t*)(void*) rowsplits.get_data(), rowsplits_.size() * sizeof(size_t)); + memcpy(&(rowsplits_.at(0)),(int*)(void*) rowsplits.get_data(), rowsplits_.size() * sizeof(int)); shape.insert(shape.begin(),len(rowsplits)-1); shape_ = shape; shape_ = shapeFromRowsplits(); @@ -974,8 +975,8 @@ inline void destroyManagerCObject(PyObject* self) { } template -std::vector simpleArray::padRowsplits()const{ - std::vector out = rowsplits_; +std::vector simpleArray::padRowsplits()const{ + std::vector out = rowsplits_; if(out.size()){ size_t presize = rowsplits_.size(); size_t nelements = rowsplits_.at(rowsplits_.size()-1); @@ -997,12 +998,12 @@ boost::python::tuple simpleArray::transferToNumpy(bool pad_rowsplits){ np::ndarray dataarr = STLToNumpy(data_ptr, shape, size(), false); if(pad_rowsplits){ auto rsp = padRowsplits(); - np::ndarray rowsplits = STLToNumpy(&(rsp[0]), {(int)rsp.size()}, rsp.size(), true); + np::ndarray rowsplits = STLToNumpy(&(rsp[0]), {(int)rsp.size()}, rsp.size(), true); clear(); return p::make_tuple(dataarr,rowsplits); } //don't check. if rowsplits_.size()==0 function will return empty array and igonre invalid pointer - np::ndarray rowsplits = STLToNumpy(&(rowsplits_[0]), {(int)rowsplits_.size()}, rowsplits_.size(), true); + np::ndarray rowsplits = STLToNumpy(&(rowsplits_[0]), {(int)rowsplits_.size()}, rowsplits_.size(), true); clear();//reset all return p::make_tuple(dataarr,rowsplits); } @@ -1020,10 +1021,10 @@ boost::python::tuple simpleArray::copyToNumpy(bool pad_rowsplits)const{ np::ndarray dataarr = STLToNumpy(data_ptr, shape, size(), true); if(pad_rowsplits){ auto rsp = padRowsplits(); - np::ndarray rowsplits = STLToNumpy(&(rsp[0]), {(int)rsp.size()}, rsp.size(), true); + np::ndarray rowsplits = STLToNumpy(&(rsp[0]), {(int)rsp.size()}, rsp.size(), true); return p::make_tuple(dataarr,rowsplits); } - np::ndarray rowsplits = STLToNumpy(&(rowsplits_[0]), {(int)rowsplits_.size()}, rowsplits_.size(), true); + np::ndarray rowsplits = STLToNumpy(&(rowsplits_[0]), {(int)rowsplits_.size()}, rowsplits_.size(), true); return p::make_tuple(dataarr,rowsplits); } diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 20d60b4..fb72646 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -105,7 +105,7 @@ class trainData{ //could use a readshape or something! void readShapesFromFile(const std::string& filename); - std::vector readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency=true); + std::vector readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency=true); void clear(); @@ -140,7 +140,7 @@ class trainData{ void writeArrayVector(const std::vector >&, FILE *&) const; std::vector > readArrayVector(FILE *&) const; - void readRowSplitArray(FILE *&, std::vector &rs, bool check)const; + void readRowSplitArray(FILE *&, std::vector &rs, bool check)const; std::vector > getShapes(const std::vector >& a)const; template void writeNested(const std::vector >& v, FILE *&)const; @@ -301,8 +301,8 @@ void trainData::readShapesFromFile(const std::string& filename){ } template -std::vector trainData::readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency){ - std::vector rowsplits; +std::vector trainData::readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency){ + std::vector rowsplits; FILE *ifile = fopen(filename.data(), "rb"); checkFile(ifile,filename); @@ -371,7 +371,7 @@ std::vector > trainData::readArrayVector(FILE *& ifile) const{ } template -void trainData::readRowSplitArray(FILE *& ifile, std::vector &rowsplits, bool check)const{ +void trainData::readRowSplitArray(FILE *& ifile, std::vector &rowsplits, bool check)const{ size_t size = 0; io::readFromFile(&size, ifile); for(size_t i=0;i prepareBatch(); std::vector orig_infiles_; std::vector shuffle_indices_; - std::vector > orig_rowsplits_; + std::vector > orig_rowsplits_; std::vector splits_; std::vector usebatch_; int randomcount_; @@ -217,7 +217,7 @@ void trainDataGenerator::readInfo(){ } if(hasRagged){ - std::vector rowsplits = td.readShapesAndRowSplitsFromFile(f, firstfile);//check consistency only for first + std::vector rowsplits = td.readShapesAndRowSplitsFromFile(f, firstfile);//check consistency only for first if(debug) std::cout << "rowsplits.size() " <::prepareSplitting(){ nbatches_ = ntotal_/batchsize_; return; } - std::vector allrs; + std::vector allrs; for(size_t i=0;i Date: Fri, 22 Nov 2019 12:04:50 +0100 Subject: [PATCH 173/437] fix in test script --- compiled/to_bin/_testRaggedArray.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiled/to_bin/_testRaggedArray.cpp b/compiled/to_bin/_testRaggedArray.cpp index d52de69..6a05857 100644 --- a/compiled/to_bin/_testRaggedArray.cpp +++ b/compiled/to_bin/_testRaggedArray.cpp @@ -34,7 +34,7 @@ void coutarray(const simpleArray & farr){ int main(){ - std::vector rowsplits = {0,2,5,6,8}; + std::vector rowsplits = {0,2,5,6,8}; simpleArray farr({4,-1,2},rowsplits); From 2f693042f201afe98aa25e81c13904a5560c8c07 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 22 Nov 2019 16:57:29 +0100 Subject: [PATCH 174/437] snapshot --- README.md | 2 +- TrainData.py | 1 + bin/createSubpackage.py | 2 +- bin/extractDjcCppInterface.py | 42 +++++++++++++++++++++- bin/predict.py | 47 ++++++++++++++++++------- compiled/interface/trainDataGenerator.h | 21 +++++++---- 6 files changed, 94 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 52a53dd..6e31e4f 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ There has been substantial format changes from 1.X to 2.X, including low-level s The TrainData class has been slimmed significantly. Now, the ``__init`` function does not need any additional arguments anymore, and there are no mandatory definitions. Only the following functions should be defined for the interface (all others are deprecated): * ``createWeighterObjects(self, allsourcefiles)``: is not mandatory. It can be used, however to create a dictionary (pickable) objects that depend on the whole dataset (e.g. for numbers for normalisation etc). **Returns**: a dictionary of weighter objects - * ``convertFromSourceFile(self, filename, weighterobjects)``: is mandatory. This function defines a rule to convert one source file to one output file. The final output should be a list of numpy feature arrays, a list of numpy truth arrays, and a list of numpy weight arrays. The latter can also be empty. The conversion can be done from root e.g. with uproot or similar, but can also use any other input format. **Returns** three items: a list of feature arrays, list of truth arrays, list of weight arrays + * ``convertFromSourceFile(self, filename, weighterobjects, istraining)``: is mandatory. This function defines a rule to convert one source file to one output file. The final output should be a list of numpy feature arrays, a list of numpy truth arrays, and a list of numpy weight arrays. The latter can also be empty. The conversion can be done from root e.g. with uproot or similar, but can also use any other input format. **Returns** three items: a list of feature arrays, list of truth arrays, list of weight arrays * ``writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile)``: is mandatory. Defines how the output of the network should be written back to an output format. This could e.g. be a root tree, which can be a friend to the original tree, or any other output. The function gives optional access to all input features, truth, weights (if any), and the input source file name. **Returns**: nothing Of course any user function, member etc beyond that can be defined, too. diff --git a/TrainData.py b/TrainData.py index 7a331a4..b144719 100644 --- a/TrainData.py +++ b/TrainData.py @@ -106,6 +106,7 @@ def convertFromSourceFile(self, filename, weighterobjects, istraining): return [],[],[] ## defines how to write out the prediction + # must not use any of the stored arrays, only the inputs def writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile): pass diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index bec8306..d139c7a 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -186,7 +186,7 @@ def my_model(Inputs,otheroption): checkperiod=1, # saves a checkpoint model every N epochs verbose=1) -print('Since the training is done, use the predict.py script to predict the model output on you test sample, e.g.:\n predict.py /KERAS_model.h5 /trainsamples.djcdc /test.txt ') +print('Since the training is done, use the predict.py script to predict the model output on you test sample, e.g.: predict.py /KERAS_model.h5 /trainsamples.djcdc /test.txt ') ''' datastructures_init = ''' diff --git a/bin/extractDjcCppInterface.py b/bin/extractDjcCppInterface.py index 959fedd..9dceae5 100755 --- a/bin/extractDjcCppInterface.py +++ b/bin/extractDjcCppInterface.py @@ -16,6 +16,7 @@ mkdir -p {outdir} mkdir -p {outdir}/interface mkdir -p {outdir}/src +mkdir -p {outdir}/obj cp $DEEPJETCORE/compiled/interface/version.h {outdir}/interface/ cp $DEEPJETCORE/compiled/interface/IO.h {outdir}/interface/ cp $DEEPJETCORE/compiled/interface/quicklz.h {outdir}/interface/ @@ -26,4 +27,43 @@ '''.format(outdir=args.outputDir) -os.system(script) \ No newline at end of file +os.system(script) + +makefile = ''' + +ROOTLIBS=`root-config --libs --glibs --ldflags` +ROOTCFLAGS=`root-config --cflags` +CPP_FILES := $(wildcard src/*.cpp) +OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) + +BINS := $(patsubst bin/%.cpp, %, $(wildcard bin/*.cpp)) + + +all: $(patsubst bin/%.cpp, %, $(wildcard bin/*.cpp)) libquicklz.so libdeepjetcoredataformats.so + +#helpers +libquicklz.so: + gcc -shared -O2 -fPIC src/quicklz.c -o libquicklz.so + +obj/%.o: src/%.cpp + g++ $(CFLAGS) $(ROOTCFLAGS) -I./interface -O2 -fPIC -c -o $@ $< + +#pack helpers in lib +libdeepjetcoredataformats.so: $(OBJ_FILES) + g++ -o $@ -shared -fPIC -fPIC $(OBJ_FILES) $(ROOTLIBS) + + +%: bin/%.cpp libdeepjetcoredataformats.so libquicklz.cxx + g++ $(CFLAGS) -I./interface $< -L. -ldeepjetcoredataformats -lquicklz $(ROOTCFLAGS) $(ROOTLIBS) -o $@ + + +clean: + rm -f libdeepjetcoredataformats.so libquicklz.so + rm -f obj/*.o + +''' + + +with open(args.outputDir+'/Makefile','w') as lfile: + lfile.write(makefile) + diff --git a/bin/predict.py b/bin/predict.py index bf575a4..7b33705 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -2,6 +2,9 @@ import imp from DeepJetCore.DataCollection import DataCollection +from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator +import tempfile +import atexit try: imp.find_module('setGPU') import setGPU @@ -44,9 +47,11 @@ parser.add_argument('trainingDataCollection') parser.add_argument('inputSourceFileList') parser.add_argument('outputDir') +parser.add_argument("-b", help="batch size ",default="10") -args = parser.parse_args() +args = parser.parse_args() +batchsize = int(args.b) #if os.path.isdir(args.outputDir): # raise Exception('output directory must not exists yet') @@ -61,7 +66,7 @@ model=load_model(args.inputModel, custom_objects=custom_objs) dc = DataCollection(args.trainingDataCollection) -td = dc.dataclass +td = dc.dataclass() outputs = [] inputdir = os.path.abspath(os.path.dirname(args.inputSourceFileList)) os.system('mkdir -p '+args.outputDir) @@ -69,21 +74,39 @@ with open(args.inputSourceFileList, "r") as f: for inputfile in f: inputfile = inputfile.replace('\n', '') - print('converting '+inputfile) - # - # NEEDS TO BE ADAPTED TO USE SIMPLEARRAYS (for ragged) - # DO LATER - # FIXME - # - # - # - x, y, w = td.convertFromSourceFile(inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) outfilename = "pred_"+inputfile + print('converting '+inputfile) + + tmpdir = tempfile.mkdtemp(suffix="djcpred", dir="/dev/shm") + def removeTmp(): + os.system("rm -rf "+tmpdir) + atexit.register(removeTmp) + + #reduce memory footprint here + td.writeFromSourceFile(inputdir+"/"+inputfile, dc.weighterobjects, istraining=False, "pred_tmp.djctd") + + x = td.transferFeatureListToNumpy() + y = td.transferWeightListToNumpy() + w = td.transferTruthListToNumpy() + + td.clear() + + dc.samples = [tmpdir+"/pred_tmp.djctd"] + dc.setBatchSize(batchsize) + dc.invokeGenerator() + nbatches = dc.generator.getNBatches() + print('predicting '+inputfile) - predicted = model.predict(x) + predicted = model.predict_generator(dc.generatorFunction(),steps=nbatches, + max_queue_size=1,use_multiprocessing=False,verbose=1) + + removeTmp() + + if not type(predicted) == list: #circumvent that keras return only an array if there is just one list item predicted = [predicted] td.writeOutPrediction(predicted, x, y, w, args.outputDir + "/" + outfilename, inputfile) + outputs.append(outfilename) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index dbe47d7..330eac1 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -235,8 +235,20 @@ void trainDataGenerator::readInfo(){ template void trainDataGenerator::prepareSplitting(){ splits_.clear(); - if(orig_rowsplits_.size()<1){ - nbatches_ = ntotal_/batchsize_; + if(orig_rowsplits_.size()<1){//no row splits, just equal batch size except for last batch + size_t used_events=0; + while(used_events allrs; @@ -339,10 +351,7 @@ template trainData trainDataGenerator::prepareBatch(){ size_t bufferelements=buffer_store.nElements(); - size_t expect_batchelements = batchsize_; - - if(splits_.size()) - expect_batchelements = splits_.at(batchcount_); + size_t expect_batchelements = splits_.at(batchcount_); if(debug) std::cout << "expect_batchelements "< Date: Sat, 23 Nov 2019 10:41:25 +0100 Subject: [PATCH 175/437] int64 for row splits --- compiled/interface/simpleArray.h | 60 +++++++++++++------------ compiled/interface/trainData.h | 10 ++--- compiled/interface/trainDataGenerator.h | 6 +-- compiled/to_bin/_testRaggedArray.cpp | 2 +- 4 files changed, 41 insertions(+), 37 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index ca3e591..9c4361e 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -24,6 +24,7 @@ #include "IO.h" #include "version.h" #include +#include namespace djc{ @@ -42,7 +43,7 @@ class simpleArray { // Only ONLY DIMENSION 1 AS RAGGED DIMENSION is supported, first dimension MUST NOT be ragged. // - simpleArray(std::vector shape,const std::vector& rowsplits = {}); + simpleArray(std::vector shape,const std::vector& rowsplits = {}); simpleArray(FILE *& ); ~simpleArray(); @@ -55,7 +56,7 @@ class simpleArray { void clear(); //reshapes if possible, creates new else - void setShape(std::vector shape,const std::vector& rowsplits = {}); + void setShape(std::vector shape,const std::vector& rowsplits = {}); T * data() const { return data_; @@ -84,7 +85,7 @@ class simpleArray { */ size_t getFirstDimension()const; - const std::vector& rowsplits() const { + const std::vector& rowsplits() const { return rowsplits_; } @@ -172,9 +173,9 @@ class simpleArray { /** * assumes that the row splits are along the 1st dimension */ - static size_t findElementSplitLength(const std::vector & rowsplits, + static size_t findElementSplitLength(const std::vector & rowsplits, size_t nelements, size_t startat, bool & exceeds_limit, size_t& stoppedat); - static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); + static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS @@ -206,7 +207,7 @@ class simpleArray { size_t flatindex(size_t i, size_t j, size_t k, size_t l, size_t m)const; size_t flatindex(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; - std::vector padRowsplits()const; + std::vector padRowsplits()const; void copyFrom(const simpleArray& a); void moveFrom(simpleArray && a); @@ -230,7 +231,7 @@ class simpleArray { T * data_; std::vector shape_; //this is int64 for better feeding to TF - std::vector rowsplits_; + std::vector rowsplits_; size_t size_; bool assigned_; }; @@ -241,7 +242,7 @@ simpleArray::simpleArray() : } template -simpleArray::simpleArray(std::vector shape,const std::vector& rowsplits) : +simpleArray::simpleArray(std::vector shape,const std::vector& rowsplits) : data_(0), size_(0),assigned_(false) { shape_ = shape; @@ -294,7 +295,7 @@ simpleArray::simpleArray(simpleArray && a) : shape_ = std::move(a.shape_); a.shape_ = std::vector(); rowsplits_ = std::move(a.rowsplits_); - a.rowsplits_= std::vector(); + a.rowsplits_= std::vector(); a.clear(); } @@ -313,7 +314,7 @@ simpleArray& simpleArray::operator=(simpleArray && a) { shape_ = std::move(a.shape_); a.shape_ = std::vector(); rowsplits_ = std::move(a.rowsplits_); - a.rowsplits_= std::vector(); + a.rowsplits_= std::vector(); return *this; } @@ -329,7 +330,7 @@ void simpleArray::clear() { } template -void simpleArray::setShape(std::vector shape,const std::vector& rowsplits) { +void simpleArray::setShape(std::vector shape,const std::vector& rowsplits) { if(rowsplits.size()){ *this = simpleArray(shape,rowsplits); } @@ -415,9 +416,9 @@ simpleArray simpleArray::split(size_t splitindex) { shape_.at(0) = shape_.at(0) - splitindex; if(isRagged()){ - out.rowsplits_ = std::vector (rowsplits_.begin(),rowsplits_.begin()+splitindex+1); + out.rowsplits_ = std::vector (rowsplits_.begin(),rowsplits_.begin()+splitindex+1); int outnelements = out.rowsplits_.at(out.rowsplits_.size()-1); - rowsplits_ = std::vector (rowsplits_.begin()+splitindex,rowsplits_.end()); + rowsplits_ = std::vector (rowsplits_.begin()+splitindex,rowsplits_.end()); for(size_t i=0;i::addToFileP(FILE *& ofile) const { io::writeToFile(&rssize, ofile); if(rssize){ - quicklz iqlz; + quicklz iqlz; iqlz.writeCompressed(&rowsplits_[0],rssize , ofile); } quicklz qlz; @@ -541,10 +542,10 @@ void simpleArray::readFromFileP(FILE *& ifile) { size_t rssize = 0; io::readFromFile(&rssize, ifile); - rowsplits_ = std::vector(rssize, 0); + rowsplits_ = std::vector(rssize, 0); if(rssize){ - quicklz iqlz; + quicklz iqlz; iqlz.readAll(ifile, &rowsplits_[0]); } quicklz qlz; @@ -601,7 +602,7 @@ void simpleArray::cout()const{ } template -size_t simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, +size_t simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, size_t startat, bool & exceeds_limit, size_t& stoppedat){ if(startat >= rs.size()) throw std::out_of_range("simpleArray::findElementSplitPoint: startat"); @@ -629,12 +630,12 @@ size_t simpleArray::findElementSplitLength(const std::vector & rs, size_ } template -std::vector simpleArray::readRowSplitsFromFileP(FILE *& ifile, bool seeknext){ +std::vector simpleArray::readRowSplitsFromFileP(FILE *& ifile, bool seeknext){ float version = 0; size_t size; std::vector shape; - std::vector rowsplits; + std::vector rowsplits; io::readFromFile(&version, ifile); if(version != DJCDATAVERSION) throw std::runtime_error("simpleArray::readRowSplitsFromFileP: wrong format version"); @@ -648,10 +649,10 @@ std::vector simpleArray::readRowSplitsFromFileP(FILE *& ifile, bool seek size_t rssize = 0; io::readFromFile(&rssize, ifile); - rowsplits = std::vector(rssize, 0); + rowsplits = std::vector(rssize, 0); if(rssize){ - quicklz iqlz; + quicklz iqlz; iqlz.readAll(ifile, &rowsplits[0]); } if(seeknext){ @@ -908,7 +909,10 @@ void simpleArray::checkArray(const boost::python::numpy::ndarray& ndarr, namespace np = boost::python::numpy; if(ndarr.get_dtype() != dt){ - throw std::runtime_error("simpleArray::checkArray: at least one array does not have right type. (e.g. row split must be np.uint)"); + std::string dts = p::extract(p::str(ndarr.get_dtype())); + std::string dtse = p::extract(p::str(dt)); + std::cout <<"input has dtype "<< dts << " expected " << dtse<< std::endl; + throw std::runtime_error("simpleArray::checkArray: at least one array does not have right type. (e.g. row split must be int64)"); } auto flags = ndarr.get_flags(); if(!(flags & np::ndarray::CARRAY) || !(flags & np::ndarray::C_CONTIGUOUS)){ @@ -975,8 +979,8 @@ inline void destroyManagerCObject(PyObject* self) { } template -std::vector simpleArray::padRowsplits()const{ - std::vector out = rowsplits_; +std::vector simpleArray::padRowsplits()const{ + std::vector out = rowsplits_; if(out.size()){ size_t presize = rowsplits_.size(); size_t nelements = rowsplits_.at(rowsplits_.size()-1); @@ -998,12 +1002,12 @@ boost::python::tuple simpleArray::transferToNumpy(bool pad_rowsplits){ np::ndarray dataarr = STLToNumpy(data_ptr, shape, size(), false); if(pad_rowsplits){ auto rsp = padRowsplits(); - np::ndarray rowsplits = STLToNumpy(&(rsp[0]), {(int)rsp.size()}, rsp.size(), true); + np::ndarray rowsplits = STLToNumpy(&(rsp[0]), {(int)rsp.size()}, rsp.size(), true); clear(); return p::make_tuple(dataarr,rowsplits); } //don't check. if rowsplits_.size()==0 function will return empty array and igonre invalid pointer - np::ndarray rowsplits = STLToNumpy(&(rowsplits_[0]), {(int)rowsplits_.size()}, rowsplits_.size(), true); + np::ndarray rowsplits = STLToNumpy(&(rowsplits_[0]), {(int)rowsplits_.size()}, rowsplits_.size(), true); clear();//reset all return p::make_tuple(dataarr,rowsplits); } @@ -1021,10 +1025,10 @@ boost::python::tuple simpleArray::copyToNumpy(bool pad_rowsplits)const{ np::ndarray dataarr = STLToNumpy(data_ptr, shape, size(), true); if(pad_rowsplits){ auto rsp = padRowsplits(); - np::ndarray rowsplits = STLToNumpy(&(rsp[0]), {(int)rsp.size()}, rsp.size(), true); + np::ndarray rowsplits = STLToNumpy(&(rsp[0]), {(int)rsp.size()}, rsp.size(), true); return p::make_tuple(dataarr,rowsplits); } - np::ndarray rowsplits = STLToNumpy(&(rowsplits_[0]), {(int)rowsplits_.size()}, rowsplits_.size(), true); + np::ndarray rowsplits = STLToNumpy(&(rowsplits_[0]), {(int)rowsplits_.size()}, rowsplits_.size(), true); return p::make_tuple(dataarr,rowsplits); } diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index fb72646..9b890d9 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -105,7 +105,7 @@ class trainData{ //could use a readshape or something! void readShapesFromFile(const std::string& filename); - std::vector readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency=true); + std::vector readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency=true); void clear(); @@ -140,7 +140,7 @@ class trainData{ void writeArrayVector(const std::vector >&, FILE *&) const; std::vector > readArrayVector(FILE *&) const; - void readRowSplitArray(FILE *&, std::vector &rs, bool check)const; + void readRowSplitArray(FILE *&, std::vector &rs, bool check)const; std::vector > getShapes(const std::vector >& a)const; template void writeNested(const std::vector >& v, FILE *&)const; @@ -301,8 +301,8 @@ void trainData::readShapesFromFile(const std::string& filename){ } template -std::vector trainData::readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency){ - std::vector rowsplits; +std::vector trainData::readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency){ + std::vector rowsplits; FILE *ifile = fopen(filename.data(), "rb"); checkFile(ifile,filename); @@ -371,7 +371,7 @@ std::vector > trainData::readArrayVector(FILE *& ifile) const{ } template -void trainData::readRowSplitArray(FILE *& ifile, std::vector &rowsplits, bool check)const{ +void trainData::readRowSplitArray(FILE *& ifile, std::vector &rowsplits, bool check)const{ size_t size = 0; io::readFromFile(&size, ifile); for(size_t i=0;i prepareBatch(); std::vector orig_infiles_; std::vector shuffle_indices_; - std::vector > orig_rowsplits_; + std::vector > orig_rowsplits_; std::vector splits_; std::vector usebatch_; int randomcount_; @@ -217,7 +217,7 @@ void trainDataGenerator::readInfo(){ } if(hasRagged){ - std::vector rowsplits = td.readShapesAndRowSplitsFromFile(f, firstfile);//check consistency only for first + std::vector rowsplits = td.readShapesAndRowSplitsFromFile(f, firstfile);//check consistency only for first if(debug) std::cout << "rowsplits.size() " <::prepareSplitting(){ } return; } - std::vector allrs; + std::vector allrs; for(size_t i=0;i & farr){ int main(){ - std::vector rowsplits = {0,2,5,6,8}; + std::vector rowsplits = {0,2,5,6,8}; simpleArray farr({4,-1,2},rowsplits); From fb0490408711c2efd55f9534330512c44076f0ff Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Nov 2019 12:31:51 +0100 Subject: [PATCH 176/437] ragged dimension fix for int64 --- compiled/interface/simpleArray.h | 13 ++++++------- compiled/to_bin/_testRaggedArray.cpp | 12 ++++++++---- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 9c4361e..dd4be38 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -211,7 +211,7 @@ class simpleArray { void copyFrom(const simpleArray& a); void moveFrom(simpleArray && a); - size_t sizeFromShape(std::vector shape) const; + size_t sizeFromShape(const std::vector& shape) const; std::vector shapeFromRowsplits()const; //split dim = 1! void checkShape(size_t ndims)const; void checkSize(size_t idx)const; @@ -680,8 +680,8 @@ void simpleArray::copyFrom(const simpleArray& a) { } template -size_t simpleArray::sizeFromShape(std::vector shape) const { - size_t size = 1; +size_t simpleArray::sizeFromShape(const std::vector& shape) const { + int64_t size = 1; for (const auto s : shape){ size *= std::abs(s); if(s<0) @@ -694,10 +694,9 @@ template std::vector simpleArray::shapeFromRowsplits()const{ if(!isRagged()) return shape_; if(shape_.size()<2) return shape_; - int nbatch = shape_.at(0); auto outshape = shape_; //rowsplits.size = nbatch+1 - outshape.at(1) = - rowsplits_.at(rowsplits_.size()-1); + outshape.at(1) = - (int)rowsplits_.at(rowsplits_.size()-1); return outshape; } @@ -939,9 +938,9 @@ void simpleArray::fromNumpy(const boost::python::numpy::ndarray& ndarr, //check row splits, anyway copied if(len(rowsplits)>0){ - checkArray(rowsplits, np::dtype::get_builtin()); + checkArray(rowsplits, np::dtype::get_builtin()); rowsplits_.resize(len(rowsplits)); - memcpy(&(rowsplits_.at(0)),(int*)(void*) rowsplits.get_data(), rowsplits_.size() * sizeof(int)); + memcpy(&(rowsplits_.at(0)),(int*)(void*) rowsplits.get_data(), rowsplits_.size() * sizeof(int64_t)); shape.insert(shape.begin(),len(rowsplits)-1); shape_ = shape; shape_ = shapeFromRowsplits(); diff --git a/compiled/to_bin/_testRaggedArray.cpp b/compiled/to_bin/_testRaggedArray.cpp index 7290c77..5a110ae 100644 --- a/compiled/to_bin/_testRaggedArray.cpp +++ b/compiled/to_bin/_testRaggedArray.cpp @@ -43,15 +43,19 @@ int main(){ for(float i=0;i farr2 = farr; + simpleArray farr2; + farr2.readFromFile("testfile.djcd"); + + farr2.cout(); + + return 1; for(float i=0;i Date: Fri, 29 Nov 2019 13:48:31 +0100 Subject: [PATCH 177/437] bugfix --- DataCollection.py | 11 ++++++++--- README.md | 2 +- compiled/interface/trainDataGenerator.h | 5 ++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index e205bdd..1e9f7b0 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -39,7 +39,11 @@ def __init__(self, infile = None, nprocs = -1): self.nprocs=-1 self.gen = None - + + def setDataClass(self, dataclass): + self.dataclass = dataclass + self.dataclass_instance = self.dataclass() + def clear(self): self.samples=[] self.sourceList=[] @@ -488,8 +492,9 @@ def __stackData(self, dataclass, selector): def invokeGenerator(self): self.generator = trainDataGenerator() self.generator.setBatchSize(self.__batchsize) + print("setting up generator...") self.generator.setFileList([self.dataDir+ "/" + s for s in self.samples]) - + print("..done") def generatorFunction(self): @@ -500,7 +505,7 @@ def generatorFunction(self): # Use tf.ragged.from_rowsplits (or similar) # data = self.generator.getBatch() - + print("batch size ", data.nElements()) xout = data.transferFeatureListToNumpy() wout = data.transferWeightListToNumpy() yout = data.transferTruthListToNumpy() diff --git a/README.md b/README.md index 6e31e4f..8222013 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ Of course any user function, member etc beyond that can be defined, too. For developers ===================== -For developing the best strategy is to create a container or just run it, and then redirect the paths etc to the development directory. This can be done conveniently by sourcing the file ``docker_env.sh`` +For developing the best strategy is to create a container or just run it, and then redirect the paths etc to the development directory. This can be done conveniently by sourcing the file ``docker_env.sh``. After sourcing the environment, the package needs to be compiled by running ``make -j5`` in the ``compiled`` directory. diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 611f94d..7620575 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -235,6 +235,7 @@ void trainDataGenerator::readInfo(){ template void trainDataGenerator::prepareSplitting(){ splits_.clear(); + nbatches_=0; if(orig_rowsplits_.size()<1){//no row splits, just equal batch size except for last batch size_t used_events=0; while(used_events::prepareSplitting(){ } return; } + + ///////row splits part + std::vector allrs; for(size_t i=0;i::prepareSplitting(){ } std::vector batchlengths; - nbatches_ = 0; size_t startnextat=0; while(startnextat < allrs.size()-1){ bool exceeds=true; From 5410887f85aeabdf1726393285563a7514cfc858 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 2 Dec 2019 15:45:33 +0100 Subject: [PATCH 178/437] fix for nElements cutoff --- DataCollection.py | 15 +++++++++---- compiled/interface/simpleArray.h | 28 ++++++++++++++++++------- compiled/interface/trainDataGenerator.h | 27 ++++++++++++++++++------ compiled/src/c_trainDataGenerator.C | 1 + training/training_base.py | 3 ++- 5 files changed, 56 insertions(+), 18 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 1e9f7b0..94baf8f 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -143,6 +143,8 @@ def validate(self, remove=True, skip_first=0): print('reading '+fullpath, str(i), '/', str(len(self.samples))) try: td.readFromFile(fullpath) + if td.nElements() < 1: + print("warning, no data in file "+fullpath) del td continue except Exception as e: @@ -173,9 +175,14 @@ def readFromFile(self,filename): fd=open(filename,'rb') self.samples=pickle.load(fd) self.sourceList=pickle.load(fd) - self.dataclass=pickle.load(fd) - self.weighterobjects=pickle.load(fd) - fd.close() + try: + self.dataclass=pickle.load(fd) + self.weighterobjects=pickle.load(fd) + except Exception as e: + print(e) + print("WARNING: wrong dataCollection format. Can still be used for training(!), but it is advised to recreate it: this is possible without converting the original data again using the script createDataCollectionFromTD.py (takes a few seconds)") + finally: + fd.close() self.dataDir=os.path.dirname(os.path.abspath(filename)) self.dataDir+='/' @@ -505,7 +512,7 @@ def generatorFunction(self): # Use tf.ragged.from_rowsplits (or similar) # data = self.generator.getBatch() - print("batch size ", data.nElements()) + #print("batch size ", data.nElements()) xout = data.transferFeatureListToNumpy() wout = data.transferWeightListToNumpy() yout = data.transferTruthListToNumpy() diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index dd4be38..d18650c 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -174,7 +174,7 @@ class simpleArray { * assumes that the row splits are along the 1st dimension */ static size_t findElementSplitLength(const std::vector & rowsplits, - size_t nelements, size_t startat, bool & exceeds_limit, size_t& stoppedat); + size_t nelements, size_t& startat, bool & exceeds_limit, bool sqelementslimit=false); static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); @@ -603,7 +603,7 @@ void simpleArray::cout()const{ template size_t simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, - size_t startat, bool & exceeds_limit, size_t& stoppedat){ + size_t& startat, bool & exceeds_limit, bool sqelementslimit){ if(startat >= rs.size()) throw std::out_of_range("simpleArray::findElementSplitPoint: startat"); @@ -612,20 +612,34 @@ size_t simpleArray::findElementSplitLength(const std::vector & rs, s size_t new_elements_accumulated=0; const size_t& start_rowsplit = rs.at(startat); - for(size_t i=startat; i < rs.size();i++){ - new_elements_accumulated = rs.at(i) - start_rowsplit; + size_t startedat = startat; + if(startedat<1)startedat=1; + + for(size_t i=startedat; i < rs.size();i++){ + size_t to_add = rs.at(i) - rs.at(i-1); + if(sqelementslimit) + to_add *= to_add; + + //std::cout << "i "<< i << std::endl; + //std::cout << "to_add "<< to_add << std::endl; + //std::cout << "new_elements_accumulated "<< new_elements_accumulated << std::endl; + //std::cout << "elements_accumulated "<< elements_accumulated << std::endl; + //std::cout << "startat "<< startat << std::endl; + + startat = i; //start at next for next iteration + + new_elements_accumulated += to_add; if(new_elements_accumulated > nelements){ if(elements_accumulated == 0){ exceeds_limit=true; - stoppedat++; + startat++;//skip return new_elements_accumulated; } return elements_accumulated; } - stoppedat = i; elements_accumulated = new_elements_accumulated; } - stoppedat = rs.size()-1; + startat = rs.size()-1; return elements_accumulated; } diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 7620575..188ac31 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -69,6 +69,11 @@ class trainDataGenerator{ if(orig_rowsplits_.size()) prepareSplitting(); } + void setSquaredElementsLimit(bool use_sq_limit){ + sqelementslimit_=use_sq_limit; + if(orig_rowsplits_.size()) + prepareSplitting(); + } int getNTotal()const{return ntotal_;} void setFileTimeout(size_t seconds){ @@ -117,6 +122,7 @@ class trainDataGenerator{ std::vector usebatch_; int randomcount_; size_t batchsize_; + bool sqelementslimit_; trainData buffer_store, buffer_read; std::thread * readthread_; @@ -134,7 +140,7 @@ class trainDataGenerator{ template trainDataGenerator::trainDataGenerator() :debug(false), - randomcount_(1), batchsize_(2), readthread_(0), filecount_(0), nbatches_( + randomcount_(1), batchsize_(2),sqelementslimit_(false), readthread_(0), filecount_(0), nbatches_( 0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), batchcount_(0){ } @@ -276,13 +282,14 @@ void trainDataGenerator::prepareSplitting(){ std::cout << std::endl; } + int debugcounter = 0; + std::vector batchlengths; - size_t startnextat=0; + size_t startnextat=1;//zeroth element is zero while(startnextat < allrs.size()-1){ bool exceeds=true; size_t splitpoint = startnextat; - auto batchlength = simpleArray::findElementSplitLength(allrs, batchsize_, startnextat,exceeds,startnextat); - + auto batchlength = simpleArray::findElementSplitLength(allrs, batchsize_, startnextat,exceeds, sqelementslimit_); splitpoint = startnextat - splitpoint;//since it will have been split off before splits_.push_back(splitpoint); @@ -290,10 +297,13 @@ void trainDataGenerator::prepareSplitting(){ usebatch_.push_back(!exceeds); if(debug) - std::cout << ">>>> batch with size " << batchlength << " use " << !exceeds << " next start "<< startnextat<< " batchelems "<>>> batch with size " << batchlength << " use " << !exceeds << " next start "<< startnextat<< " splitpoint "<20) break; //DEBUG + ////debugcounter++; } if(debug) std::cout << "prepared " << nbatches_ << " batches" << std::endl; @@ -397,9 +407,14 @@ trainData trainDataGenerator::prepareBatch(){ nsamplesprocessed_+=expect_batchelements; lastbatchsize_ = expect_batchelements; + bool usebatch = true; + if(usebatch_.size()) + usebatch = usebatch_.at(batchcount_); batchcount_++; - if(usebatch_.size() && !usebatch_.at(batchcount_-1))//until valid batch + if(! usebatch){//until valid batch + buffer_store.split(expect_batchelements);//empty split return prepareBatch(); + } return buffer_store.split(expect_batchelements); } diff --git a/compiled/src/c_trainDataGenerator.C b/compiled/src/c_trainDataGenerator.C index e3e5b25..4e12c50 100644 --- a/compiled/src/c_trainDataGenerator.C +++ b/compiled/src/c_trainDataGenerator.C @@ -36,6 +36,7 @@ BOOST_PYTHON_MODULE(c_trainDataGenerator) { .def("shuffleFilelist", &trainDataGenerator::shuffleFilelist) .def("setFileTimeout", &trainDataGenerator::setFileTimeout) + .def("setSquaredElementsLimit", &trainDataGenerator::setSquaredElementsLimit) .def("getNBatches", &trainDataGenerator::getNBatches) diff --git a/training/training_base.py b/training/training_base.py index b653bb3..31493a1 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -15,7 +15,8 @@ from DeepJetCore.DJCLosses import * from DeepJetCore.DJCLayers import * from pdb import set_trace -import keras +import tensorflow as tf +import tensorflow.keras as keras from keras.utils import multi_gpu_model import imp From cd77c772f8732f5b92e4c844d98eb2cc7ac76d5e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 2 Dec 2019 16:18:44 +0100 Subject: [PATCH 179/437] sum of sqares option for batch size --- DataCollection.py | 8 +++++++- compiled/interface/simpleArray.h | 13 +++++++------ compiled/interface/trainDataGenerator.h | 17 ++++++++++++----- compiled/src/c_trainDataGenerator.C | 4 ++++ training/training_base.py | 9 +++++++-- 5 files changed, 37 insertions(+), 14 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 94baf8f..c9b3431 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -37,7 +37,7 @@ def __init__(self, infile = None, nprocs = -1): self.weighterobjects={} self.batch_mode = False self.nprocs=-1 - + self.batch_uses_sum_of_squares=False self.gen = None def setDataClass(self, dataclass): @@ -168,6 +168,9 @@ def writeToFile(self,filename): pickle.dump(self.sourceList, fd,protocol=0 ) pickle.dump(self.dataclass, fd,protocol=0 ) pickle.dump(self.weighterobjects, fd, protocol=0) + pickle.dump(self.__batchsize, fd, protocol=0) + pickle.dump(self.batch_uses_sum_of_squares, fd, protocol=0) + shutil.move(fd.name, filename) @@ -178,6 +181,8 @@ def readFromFile(self,filename): try: self.dataclass=pickle.load(fd) self.weighterobjects=pickle.load(fd) + self.__batchsize = pickle.load(fd) + self.batch_uses_sum_of_squares = pickle.load(fd) except Exception as e: print(e) print("WARNING: wrong dataCollection format. Can still be used for training(!), but it is advised to recreate it: this is possible without converting the original data again using the script createDataCollectionFromTD.py (takes a few seconds)") @@ -499,6 +504,7 @@ def __stackData(self, dataclass, selector): def invokeGenerator(self): self.generator = trainDataGenerator() self.generator.setBatchSize(self.__batchsize) + self.generator.setSquaredElementsLimit(self.batch_uses_sum_of_squares) print("setting up generator...") self.generator.setFileList([self.dataDir+ "/" + s for s in self.samples]) print("..done") diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index d18650c..a7b86ae 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -16,6 +16,7 @@ #include "helper.h" #endif +#include #include #include #include @@ -173,7 +174,7 @@ class simpleArray { /** * assumes that the row splits are along the 1st dimension */ - static size_t findElementSplitLength(const std::vector & rowsplits, + static void findElementSplitLength(const std::vector & rowsplits, size_t nelements, size_t& startat, bool & exceeds_limit, bool sqelementslimit=false); static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); @@ -602,7 +603,7 @@ void simpleArray::cout()const{ } template -size_t simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, +void simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, size_t& startat, bool & exceeds_limit, bool sqelementslimit){ if(startat >= rs.size()) throw std::out_of_range("simpleArray::findElementSplitPoint: startat"); @@ -611,7 +612,7 @@ size_t simpleArray::findElementSplitLength(const std::vector & rs, s size_t elements_accumulated=0; size_t new_elements_accumulated=0; const size_t& start_rowsplit = rs.at(startat); - + size_t totalaccumulated = 0; size_t startedat = startat; if(startedat<1)startedat=1; @@ -633,14 +634,14 @@ size_t simpleArray::findElementSplitLength(const std::vector & rs, s if(elements_accumulated == 0){ exceeds_limit=true; startat++;//skip - return new_elements_accumulated; + return; } - return elements_accumulated; + return; } elements_accumulated = new_elements_accumulated; } startat = rs.size()-1; - return elements_accumulated; + return; } template diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 188ac31..2232fdc 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -74,6 +74,12 @@ class trainDataGenerator{ if(orig_rowsplits_.size()) prepareSplitting(); } + void setSkipTooLargeBatches(bool skipthem){ + skiplargebatches_=skipthem; + if(orig_rowsplits_.size()) + prepareSplitting(); + } + int getNTotal()const{return ntotal_;} void setFileTimeout(size_t seconds){ @@ -122,7 +128,7 @@ class trainDataGenerator{ std::vector usebatch_; int randomcount_; size_t batchsize_; - bool sqelementslimit_; + bool sqelementslimit_,skiplargebatches_; trainData buffer_store, buffer_read; std::thread * readthread_; @@ -140,7 +146,7 @@ class trainDataGenerator{ template trainDataGenerator::trainDataGenerator() :debug(false), - randomcount_(1), batchsize_(2),sqelementslimit_(false), readthread_(0), filecount_(0), nbatches_( + randomcount_(1), batchsize_(2),sqelementslimit_(false),skiplargebatches_(true), readthread_(0), filecount_(0), nbatches_( 0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), batchcount_(0){ } @@ -289,17 +295,18 @@ void trainDataGenerator::prepareSplitting(){ while(startnextat < allrs.size()-1){ bool exceeds=true; size_t splitpoint = startnextat; - auto batchlength = simpleArray::findElementSplitLength(allrs, batchsize_, startnextat,exceeds, sqelementslimit_); + simpleArray::findElementSplitLength(allrs, batchsize_, startnextat,exceeds, sqelementslimit_); + size_t batchlength = startnextat - splitpoint ; splitpoint = startnextat - splitpoint;//since it will have been split off before splits_.push_back(splitpoint); batchlengths.push_back(batchlength); - usebatch_.push_back(!exceeds); + usebatch_.push_back(!exceeds || !skiplargebatches_); if(debug) std::cout << ">>>> batch with size " << batchlength << " use " << !exceeds << " next start "<< startnextat<< " splitpoint "<20) break; //DEBUG diff --git a/compiled/src/c_trainDataGenerator.C b/compiled/src/c_trainDataGenerator.C index 4e12c50..a573299 100644 --- a/compiled/src/c_trainDataGenerator.C +++ b/compiled/src/c_trainDataGenerator.C @@ -37,6 +37,10 @@ BOOST_PYTHON_MODULE(c_trainDataGenerator) { .def("setFileTimeout", &trainDataGenerator::setFileTimeout) .def("setSquaredElementsLimit", &trainDataGenerator::setSquaredElementsLimit) + .def("setSkipTooLargeBatches", &trainDataGenerator::setSkipTooLargeBatches) + + + .def("getNBatches", &trainDataGenerator::getNBatches) diff --git a/training/training_base.py b/training/training_base.py index 31493a1..ae60292 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -326,7 +326,8 @@ def saveModel(self,outfile): def _initTraining(self, nepochs, - batchsize): + batchsize, + use_sum_of_squares=False): if self.submitbatch: @@ -336,6 +337,9 @@ def _initTraining(self, self.train_data.setBatchSize(batchsize) self.val_data.setBatchSize(batchsize) + self.train_data.batch_uses_sum_of_squares=use_sum_of_squares + self.val_data.batch_uses_sum_of_squares=use_sum_of_squares + self.train_data.writeToFile(self.outputDir+'trainsamples.djcdc') self.val_data.writeToFile(self.outputDir+'valsamples.djcdc') @@ -355,6 +359,7 @@ def _initTraining(self, def trainModel(self, nepochs, batchsize, + batchsize_use_sum_of_squares = False, stop_patience=-1, lr_factor=0.5, lr_patience=-1, @@ -371,7 +376,7 @@ def trainModel(self, # write only after the output classes have been added - self._initTraining(nepochs,batchsize) + self._initTraining(nepochs,batchsize, batchsize_use_sum_of_squares) #self.keras_model.save(self.outputDir+'KERAS_check_last_model.h5') print('setting up callbacks') From 8b003d27fa26606404f33384d81f7d270991da36 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 3 Dec 2019 11:46:46 +0100 Subject: [PATCH 180/437] snapshot --- DataCollection.py | 16 ++++++++++------ bin/predict.py | 13 +++++++++---- compiled/interface/trainData.h | 15 +++++++++++++++ training/DeepJet_callbacks.py | 19 ++++++++++++++----- training/training_base.py | 1 + 5 files changed, 49 insertions(+), 15 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index c9b3431..ecd9087 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -29,6 +29,12 @@ def __init__(self, infile = None, nprocs = -1): Constructor ''' self.clear() + + self.batch_uses_sum_of_squares=False + self.gen = None + self.__batchsize=1 + self.optionsdict={} + if infile: self.readFromFile(infile) if not len(self.samples): @@ -37,8 +43,6 @@ def __init__(self, infile = None, nprocs = -1): self.weighterobjects={} self.batch_mode = False self.nprocs=-1 - self.batch_uses_sum_of_squares=False - self.gen = None def setDataClass(self, dataclass): self.dataclass = dataclass @@ -170,8 +174,8 @@ def writeToFile(self,filename): pickle.dump(self.weighterobjects, fd, protocol=0) pickle.dump(self.__batchsize, fd, protocol=0) pickle.dump(self.batch_uses_sum_of_squares, fd, protocol=0) - - + pickle.dump(self.optionsdict, fd, protocol=0) + shutil.move(fd.name, filename) def readFromFile(self,filename): @@ -183,6 +187,7 @@ def readFromFile(self,filename): self.weighterobjects=pickle.load(fd) self.__batchsize = pickle.load(fd) self.batch_uses_sum_of_squares = pickle.load(fd) + self.optionsdict = pickle.load(fd) except Exception as e: print(e) print("WARNING: wrong dataCollection format. Can still be used for training(!), but it is advised to recreate it: this is possible without converting the original data again using the script createDataCollectionFromTD.py (takes a few seconds)") @@ -505,9 +510,8 @@ def invokeGenerator(self): self.generator = trainDataGenerator() self.generator.setBatchSize(self.__batchsize) self.generator.setSquaredElementsLimit(self.batch_uses_sum_of_squares) - print("setting up generator...") self.generator.setFileList([self.dataDir+ "/" + s for s in self.samples]) - print("..done") + def generatorFunction(self): diff --git a/bin/predict.py b/bin/predict.py index 7b33705..e598294 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -47,7 +47,7 @@ parser.add_argument('trainingDataCollection') parser.add_argument('inputSourceFileList') parser.add_argument('outputDir') -parser.add_argument("-b", help="batch size ",default="10") +parser.add_argument("-b", help="batch size ",default="-1") args = parser.parse_args() @@ -82,8 +82,11 @@ def removeTmp(): os.system("rm -rf "+tmpdir) atexit.register(removeTmp) - #reduce memory footprint here - td.writeFromSourceFile(inputdir+"/"+inputfile, dc.weighterobjects, istraining=False, "pred_tmp.djctd") + if inputfile[-5:] == 'djctd': + td.readFromFile(inputdir+"/"+inputfile) + td.writeToFile(tmpdir+"/pred_tmp.djctd") + else: + td.writeFromSourceFile(inputdir+"/"+inputfile, dc.weighterobjects, istraining=False, tmpdir+"/pred_tmp.djctd") x = td.transferFeatureListToNumpy() y = td.transferWeightListToNumpy() @@ -92,8 +95,10 @@ def removeTmp(): td.clear() dc.samples = [tmpdir+"/pred_tmp.djctd"] - dc.setBatchSize(batchsize) + if batchsize>0 : + dc.setBatchSize(batchsize) dc.invokeGenerator() + dc.generator.setSkipTooLargeBatches(False) nbatches = dc.generator.getNBatches() print('predicting '+inputfile) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 9b890d9..8fc94a4 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -94,6 +94,21 @@ class trainData{ return 0; } + int nTotalElements()const{ + if(feature_shapes_.size() && feature_shapes_.at(0).size()){ + int ntotalelems=0; + for(size_t i=0;i< feature_shapes_.at(0).size(); i++){ + ntotalelems = feature_shapes_.at(0).at(i); + if(i>0 && ntotalelems<0) + return std::abs(ntotalelems); + else + return feature_shapes_.at(0).at(0); + } + } + else + return 0; + } + const std::vector > & featureShapes()const{return feature_shapes_;} const std::vector > & truthShapes()const{return truth_shapes_;} const std::vector > & weightShapes()const{return weight_shapes_;} diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 360999a..f2e8fa6 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -267,10 +267,19 @@ def __init__(self, print('PredictCallback: can only be used on epoch end OR after n batches, falling back to epoch end') self.after_n_batches=0 - self.td=TrainData() - self.td.readIn(samplefile) + td=TrainData() + td.readFromFile(samplefile) if use_event>=0: - self.td.skim(event=use_event) + td.skim(use_event) + else: + raise ValueError("PredictCallback: use_event>=0") + + self.batchsize = td.nElements() + self.x = td.transferFeatureListToNumpy() + self.y = td.transferWeightListToNumpy() + self.w = td.transferTruthListToNumpy() + + @@ -279,11 +288,11 @@ def reset(self): def predict_and_call(self,counter): - predicted = self.model.predict(self.td.x) + predicted = self.model.predict(self.x, batch_size=self.batchsize) if not isinstance(predicted, list): predicted=[predicted] - self.function_to_apply(self.call_counter,self.td.x,predicted,self.td.y) + self.function_to_apply(self.call_counter,self.x,predicted,self.y) self.call_counter+=1 def on_epoch_end(self, epoch, logs=None): diff --git a/training/training_base.py b/training/training_base.py index ae60292..02e695b 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -411,6 +411,7 @@ def trainModel(self, #prepare generator + print("setting up generator... can take a while") self.train_data.invokeGenerator() self.val_data.invokeGenerator() #this is fixed From e3c61a031b18b0fcaaa9ffbed56896b2af2b58c8 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 3 Dec 2019 15:24:30 +0100 Subject: [PATCH 181/437] ragged generator upper bound fix --- compiled/interface/simpleArray.h | 23 +++++---- compiled/interface/trainData.h | 6 ++- compiled/interface/trainDataGenerator.h | 68 ++++++++++++++++--------- training/training_base.py | 6 ++- 4 files changed, 67 insertions(+), 36 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index a7b86ae..4d47588 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -174,7 +174,7 @@ class simpleArray { /** * assumes that the row splits are along the 1st dimension */ - static void findElementSplitLength(const std::vector & rowsplits, + static size_t findElementSplitLength(const std::vector & rowsplits, size_t nelements, size_t& startat, bool & exceeds_limit, bool sqelementslimit=false); static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); @@ -603,7 +603,7 @@ void simpleArray::cout()const{ } template -void simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, +size_t simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, size_t& startat, bool & exceeds_limit, bool sqelementslimit){ if(startat >= rs.size()) throw std::out_of_range("simpleArray::findElementSplitPoint: startat"); @@ -614,34 +614,37 @@ void simpleArray::findElementSplitLength(const std::vector & rs, siz const size_t& start_rowsplit = rs.at(startat); size_t totalaccumulated = 0; size_t startedat = startat; - if(startedat<1)startedat=1; - for(size_t i=startedat; i < rs.size();i++){ - size_t to_add = rs.at(i) - rs.at(i-1); + for(size_t i=startedat; i < rs.size()-1;i++){ + size_t to_add = rs.at(i+1) - rs.at(i); if(sqelementslimit) to_add *= to_add; //std::cout << "i "<< i << std::endl; //std::cout << "to_add "<< to_add << std::endl; + //std::cout << "sqrt(to_add) "<< std::sqrt(to_add) << std::endl; //std::cout << "new_elements_accumulated "<< new_elements_accumulated << std::endl; //std::cout << "elements_accumulated "<< elements_accumulated << std::endl; //std::cout << "startat "<< startat << std::endl; - startat = i; //start at next for next iteration + + //start at next for next iteration + new_elements_accumulated += to_add; if(new_elements_accumulated > nelements){ if(elements_accumulated == 0){ exceeds_limit=true; - startat++;//skip - return; + startat = i+1; + return new_elements_accumulated; } - return; + startat = i; + return elements_accumulated; } elements_accumulated = new_elements_accumulated; } startat = rs.size()-1; - return; + return elements_accumulated; } template diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 8fc94a4..b40d1b0 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -87,6 +87,9 @@ class trainData{ */ trainData split(size_t splitindex); + /* + * + */ size_t nElements()const{ if(feature_shapes_.size() && feature_shapes_.at(0).size()) return feature_shapes_.at(0).at(0); @@ -101,12 +104,13 @@ class trainData{ ntotalelems = feature_shapes_.at(0).at(i); if(i>0 && ntotalelems<0) return std::abs(ntotalelems); - else + else if(i>0) return feature_shapes_.at(0).at(0); } } else return 0; + return 0; } const std::vector > & featureShapes()const{return feature_shapes_;} diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 2232fdc..e398543 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -282,50 +282,59 @@ void trainDataGenerator::prepareSplitting(){ } if(debug){ - std::cout << "all row splits " << allrs.size() << std::endl; - for(const auto& s: allrs) + std::cout << "all (first 100) row splits " << allrs.size() << std::endl; + int counter =0; + for(const auto& s: allrs){ std::cout << s << ", " ; + if(counter>100)break; + counter++; + } std::cout << std::endl; } int debugcounter = 0; std::vector batchlengths; - size_t startnextat=1;//zeroth element is zero + size_t startnextat=0; while(startnextat < allrs.size()-1){ bool exceeds=true; - size_t splitpoint = startnextat; - simpleArray::findElementSplitLength(allrs, batchsize_, startnextat,exceeds, sqelementslimit_); - size_t batchlength = startnextat - splitpoint ; - splitpoint = startnextat - splitpoint;//since it will have been split off before + + size_t initialpoint = startnextat; + size_t batchlength = simpleArray::findElementSplitLength(allrs, batchsize_, startnextat,exceeds, sqelementslimit_); + size_t splitpoint = startnextat - initialpoint ;//since it will have been split off before + + if(!skiplargebatches_) + exceeds=false; splits_.push_back(splitpoint); batchlengths.push_back(batchlength); - usebatch_.push_back(!exceeds || !skiplargebatches_); + usebatch_.push_back(!exceeds); - if(debug) - std::cout << ">>>> batch with size " << batchlength << " use " << !exceeds << " next start "<< startnextat<< " splitpoint "<>>> batch with size " << std::sqrt((float)batchlength) << " use " << !exceeds << " next start "<< startnextat<< " splitpoint "<20) break; //DEBUG - ////debugcounter++; + debugcounter++; } if(debug) std::cout << "prepared " << nbatches_ << " batches" << std::endl; - if(debug && batchlengths.size() < 100){ - for(size_t i=0;i< batchlengths.size();i++){ + if(debug){ + size_t nprint = batchlengths.size(); + if(nprint>200)nprint=200; + for(size_t i=0;i< nprint;i++){ std::cout << batchlengths.at(i) ; if(usebatch_.at(i)) - std::cout << " ok, " ; + std::cout << " ok, split " ; else - std::cout << " no, "; + std::cout << " no, split "; std::cout << splits_.at(i) << "; "; } std::cout << std::endl; } + } @@ -372,6 +381,9 @@ trainData trainDataGenerator::prepareBatch(){ size_t bufferelements=buffer_store.nElements(); size_t expect_batchelements = splits_.at(batchcount_); + bool usebatch = true; + if(usebatch_.size()) + usebatch = usebatch_.at(batchcount_); if(debug) std::cout << "expect_batchelements "< trainDataGenerator::prepareBatch(){ readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); } } + + auto thisbatch = buffer_store.split(expect_batchelements); + if(debug) std::cout << "providing batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+expect_batchelements << " elements in buffer before: " << bufferelements << - "\nsplitting at " << expect_batchelements << std::endl; + "\nsplitting at " << expect_batchelements << " use this batch "<< usebatch + << " total elements " << thisbatch.nTotalElements() << std::endl; + + if(debug){ + int dbpcount=0; + for(const auto& s: buffer_store.featureArray(0).rowsplits()){ + std::cout << s << ", "; + if(dbpcount>50)break; + dbpcount++; + } + std::cout << std::endl; + } nsamplesprocessed_+=expect_batchelements; lastbatchsize_ = expect_batchelements; - bool usebatch = true; - if(usebatch_.size()) - usebatch = usebatch_.at(batchcount_); batchcount_++; if(! usebatch){//until valid batch - buffer_store.split(expect_batchelements);//empty split return prepareBatch(); } - return buffer_store.split(expect_batchelements); + return thisbatch; } diff --git a/training/training_base.py b/training/training_base.py index 02e695b..9ef6bef 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -416,14 +416,14 @@ def trainModel(self, self.val_data.invokeGenerator() #this is fixed nbatches_val = self.val_data.generator.getNBatches() + nbatches_train = self.train_data.generator.getNBatches() #self.val_data.generator.debug=True #self.train_data.generator.debug=True #exit() while(self.trainedepoches < nepochs): - self.train_data.generator.shuffleFilelist() + #this can change from epoch to epoch - nbatches_train = self.train_data.generator.getNBatches() print('>>>>Epoch', self.trainedepoches,"/",nepochs) print('training batches: ',nbatches_train) print('validation batches: ',nbatches_val) @@ -444,6 +444,8 @@ def trainModel(self, use_multiprocessing=False, #the threading one doe not loke DJC **trainargs) self.trainedepoches += 1 + self.train_data.generator.shuffleFilelist() + nbatches_train = self.train_data.generator.getNBatches() #might have changed due to shuffeling # self.saveModel("KERAS_model.h5") From 4125fd4e6b2a39361c04a39b39e6ce97ccebdf8c Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 4 Dec 2019 11:06:39 +0100 Subject: [PATCH 182/437] removed obsolete parts, changed module imports in bins to give fast help output --- bin/addPredictionLabels.py | 24 --------------- bin/convertDCtoNumpy.py | 4 ++- bin/convertPre2.0DCtoDC.py | 17 ++++++----- bin/locate_cuda.py | 40 ------------------------- bin/plotLoss.py | 4 ++- bin/predict.py | 61 +++++++++++++++++++------------------- 6 files changed, 47 insertions(+), 103 deletions(-) delete mode 100755 bin/addPredictionLabels.py delete mode 100755 bin/locate_cuda.py diff --git a/bin/addPredictionLabels.py b/bin/addPredictionLabels.py deleted file mode 100755 index a42e071..0000000 --- a/bin/addPredictionLabels.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python -# encoding: utf-8 - -from argparse import ArgumentParser -from DeepJetCore.DataCollection import DataCollection - -parser = ArgumentParser('add custom prediction labels to a dataCollection. Not necessary in the standard workflow') -parser.add_argument('inputDataCollection') -parser.add_argument('--use', help='comma-separated list of prediction labels to be used') -parser.add_argument('outputDataCollection') -args = parser.parse_args() -if not args.use: - raise Exception('labels to be injected must be specified') - -labels= [i for i in args.use.split(',')] - -print('reading data collection') - -dc=DataCollection() -dc.readFromFile(args.inputDataCollection) -print('adding labels:') -print(labels) -dc.defineCustomPredictionLabels(labels) -dc.writeToFile(args.outputDataCollection) diff --git a/bin/convertDCtoNumpy.py b/bin/convertDCtoNumpy.py index e1ca5e7..4e9855a 100755 --- a/bin/convertDCtoNumpy.py +++ b/bin/convertDCtoNumpy.py @@ -2,13 +2,15 @@ # encoding: utf-8 from argparse import ArgumentParser -from DeepJetCore.DataCollection import DataCollection parser = ArgumentParser('convert a data collection to a single set of numpy arrays. Warning, this can produce a large output') parser.add_argument('inputDataCollection') parser.add_argument('outputFilePrefix') args = parser.parse_args() + +from DeepJetCore.DataCollection import DataCollection + print('reading data collection') dc=DataCollection() diff --git a/bin/convertPre2.0DCtoDC.py b/bin/convertPre2.0DCtoDC.py index 5e86078..07f5851 100755 --- a/bin/convertPre2.0DCtoDC.py +++ b/bin/convertPre2.0DCtoDC.py @@ -6,9 +6,18 @@ ''' +from argparse import ArgumentParser + +parser = ArgumentParser('simple program to convert old datacollection format to the new one') +parser.add_argument("infile", help="input \"dc\" file") +parser.add_argument("-c", choices = class_options.keys(), help="set new output class (options: %s)" % ', '.join(class_options.keys()), metavar="Class") + +# process options +args=parser.parse_args() + + import os from multiprocessing import Pool -from argparse import ArgumentParser from DeepJetCore.TrainData_compat import TrainData as TDOld from DeepJetCore.TrainData import TrainData @@ -16,12 +25,6 @@ from DeepJetCore.DataCollection import DataCollection from DeepJetCore.conversion.conversion import class_options -parser = ArgumentParser('simple program to convert old datacollection format to the new one') -parser.add_argument("infile", help="input \"dc\" file") -parser.add_argument("-c", choices = class_options.keys(), help="set new output class (options: %s)" % ', '.join(class_options.keys()), metavar="Class") - -# process options -args=parser.parse_args() infile=args.infile class_name = args.c diff --git a/bin/locate_cuda.py b/bin/locate_cuda.py deleted file mode 100755 index c6540df..0000000 --- a/bin/locate_cuda.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/env python - -import os -import subprocess - -def locate_lib(libname, ldlibpath): - result='' - try: - result = subprocess.check_output(['locate', libname]) - result = result.split('\n') - res=result[0] - for l in result: - if '/usr/' in l: - res=l - break - - result=os.path.dirname(res) - except: - pass - if len(result) and not (result in ldlibpath): - if len(ldlibpath): - ldlibpath+=':'+result+'/' - else: - ldlibpath=result - return ldlibpath - - -def locate_cuda(): - ldlibpath = str(os.environ['LD_LIBRARY_PATH']) - ldlibpath=locate_lib('libcublas.so.10.0',ldlibpath) - ldlibpath=locate_lib('libcublas.so.9.',ldlibpath) - ldlibpath=locate_lib('libcudnn.so.7.6',ldlibpath) - ldlibpath=locate_lib('libcudnn.so.7.5',ldlibpath) - ldlibpath=locate_lib('libcudnn.so.7.4',ldlibpath) - ldlibpath=locate_lib('libcusolver.so.10',ldlibpath) - print(ldlibpath) - - - -locate_cuda() diff --git a/bin/plotLoss.py b/bin/plotLoss.py index 1354351..750afed 100755 --- a/bin/plotLoss.py +++ b/bin/plotLoss.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from DeepJetCore.evaluation import plotLoss from argparse import ArgumentParser @@ -11,6 +10,9 @@ args = parser.parse_args() +from DeepJetCore.evaluation import plotLoss + + infilename=args.inputDir+'/'+args.file diff --git a/bin/predict.py b/bin/predict.py index e598294..b2c9ed4 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -1,5 +1,19 @@ #!/usr/bin/env python +from argparse import ArgumentParser + + +parser = ArgumentParser('Apply a model to a (test) source sample and create friend trees to inject it inthe original ntuple') +parser.add_argument('inputModel') +parser.add_argument('trainingDataCollection') +parser.add_argument('inputSourceFileList') +parser.add_argument('outputDir') +parser.add_argument("-b", help="batch size ",default="-1") + + +args = parser.parse_args() + + import imp from DeepJetCore.DataCollection import DataCollection from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator @@ -14,7 +28,6 @@ from keras.models import load_model from DeepJetCore.DJCLosses import * from DeepJetCore.DJCLayers import * -from argparse import ArgumentParser from keras import backend as K import os import imp @@ -42,15 +55,6 @@ import os -parser = ArgumentParser('Apply a model to a (test) source sample and create friend trees to inject it inthe original ntuple') -parser.add_argument('inputModel') -parser.add_argument('trainingDataCollection') -parser.add_argument('inputSourceFileList') -parser.add_argument('outputDir') -parser.add_argument("-b", help="batch size ",default="-1") - - -args = parser.parse_args() batchsize = int(args.b) #if os.path.isdir(args.outputDir): @@ -77,36 +81,33 @@ outfilename = "pred_"+inputfile print('converting '+inputfile) - tmpdir = tempfile.mkdtemp(suffix="djcpred", dir="/dev/shm") - def removeTmp(): - os.system("rm -rf "+tmpdir) - atexit.register(removeTmp) - if inputfile[-5:] == 'djctd': td.readFromFile(inputdir+"/"+inputfile) - td.writeToFile(tmpdir+"/pred_tmp.djctd") else: - td.writeFromSourceFile(inputdir+"/"+inputfile, dc.weighterobjects, istraining=False, tmpdir+"/pred_tmp.djctd") - - x = td.transferFeatureListToNumpy() - y = td.transferWeightListToNumpy() - w = td.transferTruthListToNumpy() + td.readFromSourceFile(inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) - td.clear() + gen = trainDataGenerator() + gen.setBatchSize(dc.getBatchSize()) + gen.setSquaredElementsLimit(dc.batch_uses_sum_of_squares) + gen.setSkipTooLargeBatches(False) + gen.setBuffer(td) - dc.samples = [tmpdir+"/pred_tmp.djctd"] - if batchsize>0 : - dc.setBatchSize(batchsize) - dc.invokeGenerator() - dc.generator.setSkipTooLargeBatches(False) - nbatches = dc.generator.getNBatches() + def genfunc(): + while(1): + d = gen.getBatch() + return d.transferFeatureListToNumpy() , d.transferTruthListToNumpy() print('predicting '+inputfile) - predicted = model.predict_generator(dc.generatorFunction(),steps=nbatches, + predicted = model.predict_generator(genfunc(),steps=gen.getNBatches(), max_queue_size=1,use_multiprocessing=False,verbose=1) - removeTmp() + x = td.transferFeatureListToNumpy() + w = td.transferWeightListToNumpy() + y = td.transferTruthListToNumpy() + + td.clear() + gen.clear() if not type(predicted) == list: #circumvent that keras return only an array if there is just one list item predicted = [predicted] From c8846158d71dfee971724525c964262324c5a79f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 4 Dec 2019 14:28:58 +0100 Subject: [PATCH 183/437] direct buffer filling trainDataGenerator --- README.md | 2 +- bin/predict.py | 23 ++++--- compiled/interface/trainData.h | 38 ++++++++++- compiled/interface/trainDataGenerator.h | 87 +++++++++++++++++++++---- compiled/src/c_trainData.C | 6 ++ compiled/src/c_trainDataGenerator.C | 10 +-- training/DeepJet_callbacks.py | 34 ++++++---- 7 files changed, 161 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 8222013..72b376a 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ export SINGULARITY_CACHEDIR="/tmp/$(whoami)/singularity" Sometimes you need to try two or three times - singularity is a bit weird. But once the contaienr is launched, everything works smoothly. The message about a missing user group can be safely ignored. -**It is important** that your bashrc does not reset the LD_LIBRARY or PYTHOPATH environment variables. +**It is important** that your bashrc does not reset the ``LD_LIBRARY`` or ``PYTHONPATH`` environment variables. Also **remove any anaconda paths from your bashrc**, because they will reset ``LD_LIBRARY`` and ``PYTHONPATH``. THe system needs to be in a clean environment state within the container (as it should be). Usage diff --git a/bin/predict.py b/bin/predict.py index b2c9ed4..567e121 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -78,14 +78,20 @@ with open(args.inputSourceFileList, "r") as f: for inputfile in f: inputfile = inputfile.replace('\n', '') - outfilename = "pred_"+inputfile - print('converting '+inputfile) + use_inputdir = inputdir + if inputfile[0] == "/": + use_inputdir="" + outfilename = "pred_"+os.path.basename( inputfile ) + if inputfile[-5:] == 'djctd': - td.readFromFile(inputdir+"/"+inputfile) + td.readFromFile(use_inputdir+"/"+inputfile) else: - td.readFromSourceFile(inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) + print('converting '+inputfile) + td.readFromSourceFile(use_inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) + print('predicting ',inputfile) + print('batch size',dc.getBatchSize()) gen = trainDataGenerator() gen.setBatchSize(dc.getBatchSize()) gen.setSquaredElementsLimit(dc.batch_uses_sum_of_squares) @@ -95,11 +101,12 @@ def genfunc(): while(1): d = gen.getBatch() - return d.transferFeatureListToNumpy() , d.transferTruthListToNumpy() + yield d.transferFeatureListToNumpy() , d.transferTruthListToNumpy() - print('predicting '+inputfile) - predicted = model.predict_generator(genfunc(),steps=gen.getNBatches(), - max_queue_size=1,use_multiprocessing=False,verbose=1) + predicted = model.predict_generator(genfunc(), + steps=gen.getNBatches(), + max_queue_size=1, + use_multiprocessing=False,verbose=1) x = td.transferFeatureListToNumpy() diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index b40d1b0..a4866e9 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -124,6 +124,7 @@ class trainData{ //could use a readshape or something! void readShapesFromFile(const std::string& filename); + std::vector getFirstRowsplits()const; std::vector readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency=true); void clear(); @@ -143,7 +144,7 @@ class trainData{ boost::python::list getTruthRaggedFlags()const; - //no ragged support + //has ragged support boost::python::list transferFeatureListToNumpy(); //has ragged support @@ -152,6 +153,30 @@ class trainData{ //no ragged support boost::python::list transferWeightListToNumpy(); + + /* + * the following ones can be improved w.r.t. performance + */ + + + //has ragged support + boost::python::list copyFeatureListToNumpy(){ + auto td = *this; + return td.transferFeatureListToNumpy(); //fast hack + } + + //has ragged support + boost::python::list copyTruthListToNumpy(){ + auto td = *this; + return td.transferTruthListToNumpy(); //fast hack + } + + //no ragged support + boost::python::list copyWeightListToNumpy(){ + auto td = *this; + return td.transferWeightListToNumpy(); //fast hack + } + #endif private: @@ -319,6 +344,17 @@ void trainData::readShapesFromFile(const std::string& filename){ } +template +std::vector trainData::getFirstRowsplits()const{ + for (auto& a : feature_arrays_) + if(a.rowsplits().size()) + return a.rowsplits(); + for (auto& a : truth_arrays_) + if(a.rowsplits().size()) + return a.rowsplits(); + return std::vector(); +} + template std::vector trainData::readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency){ std::vector rowsplits; diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index e398543..f930991 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -58,12 +58,15 @@ class trainDataGenerator{ * Also opens all files (verify) and gets the total sample size */ void setFileList(const std::vector& files){ + clear(); orig_infiles_=files; shuffle_indices_.resize(orig_infiles_.size()); for(size_t i=0;i&); + void setBatchSize(size_t nelements){ batchsize_= nelements; if(orig_rowsplits_.size()) @@ -95,7 +98,10 @@ class trainDataGenerator{ void shuffleFilelist(); void end(); - + /** + * clears all dataset related info but keeps batch size, file timout etc + */ + void clear(); /** * gets Batch. If batchsize is specified, it is up to the user @@ -119,6 +125,7 @@ class trainDataGenerator{ void readBuffer(); void readInfo(); void prepareSplitting(); + bool tdHasRaggedDimension(const trainData& )const; trainData prepareBatch(); std::vector orig_infiles_; @@ -173,7 +180,23 @@ void trainDataGenerator::shuffleFilelist(){ batchcount_=0; } +template +void trainDataGenerator::setBuffer(const trainData& td){ + + clear(); + if(td.featureShapes().size()<1 || td.featureShapes().at(0).size()<1) + throw std::runtime_error("trainDataGenerator::setBuffer: no features filled in trainData object"); + auto hasRagged = tdHasRaggedDimension(td); + + auto rs = td.getFirstRowsplits(); + if(rs.size()) + orig_rowsplits_.push_back(rs); + shuffle_indices_.push_back(0); + ntotal_ = td.nElements(); + buffer_store=td; + prepareSplitting(); +} template void trainDataGenerator::readBuffer(){ @@ -214,19 +237,7 @@ void trainDataGenerator::readInfo(){ throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object "+f); if(firstfile){ - for(const auto& sv: td.featureShapes()) - for(const auto& s:sv) - if(s<0) - hasRagged=true; - for(const auto& sv: td.truthShapes()) - for(const auto& s:sv) - if(s<0) - hasRagged=true; - for(const auto& sv: td.weightShapes()) - for(const auto& s:sv) - if(s<0) - hasRagged=true; - + hasRagged = tdHasRaggedDimension(td); } if(hasRagged){ std::vector rowsplits = td.readShapesAndRowSplitsFromFile(f, firstfile);//check consistency only for first @@ -262,6 +273,12 @@ void trainDataGenerator::prepareSplitting(){ break; } } + if(debug){ + std::cout << "trainDataGenerator::prepareSplitting: splits" <::prepareSplitting(){ } +template +bool trainDataGenerator::tdHasRaggedDimension(const trainData& td)const{ + for(const auto& sv: td.featureShapes()) + for(const auto& s:sv) + if(s<0) + return true; + for(const auto& sv: td.truthShapes()) + for(const auto& s:sv) + if(s<0) + return true; + for(const auto& sv: td.weightShapes()) + for(const auto& s:sv) + if(s<0) + return true; + return false; +} template @@ -371,6 +404,32 @@ void trainDataGenerator::end(){ } } + +template +void trainDataGenerator::clear(){ + end(); + orig_infiles_.clear(); + shuffle_indices_.clear(); + orig_rowsplits_.clear(); + splits_.clear(); + usebatch_.clear(); + randomcount_=0; + + //batchsize_ keep batch size + //sqelementslimit_ keep + //skiplargebatches_ keep + buffer_store.clear(); + buffer_read.clear(); + + filecount_=0; + nbatches_=0; + ntotal_=0; + nsamplesprocessed_=0; + lastbatchsize_=0; + // filetimeout_ keep + batchcount_=0; +} + template trainData trainDataGenerator::getBatch(){ return prepareBatch(); diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index 5f7cce3..234b992 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -49,6 +49,12 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("transferFeatureListToNumpy", &trainData::transferFeatureListToNumpy) .def("transferTruthListToNumpy", &trainData::transferTruthListToNumpy) .def("transferWeightListToNumpy", &trainData::transferWeightListToNumpy) + + + .def("copyFeatureListToNumpy", &trainData::copyFeatureListToNumpy) + .def("copyTruthListToNumpy", &trainData::copyTruthListToNumpy) + .def("copyWeightListToNumpy", &trainData::copyWeightListToNumpy) + ; ; } diff --git a/compiled/src/c_trainDataGenerator.C b/compiled/src/c_trainDataGenerator.C index a573299..9c4b01c 100644 --- a/compiled/src/c_trainDataGenerator.C +++ b/compiled/src/c_trainDataGenerator.C @@ -31,17 +31,19 @@ BOOST_PYTHON_MODULE(c_trainDataGenerator) { np::initialize(); p::class_ >("trainDataGenerator") - .def("setFileList", &trainDataGenerator::setFileListP) .def("setBatchSize", &trainDataGenerator::setBatchSize) + + .def("setFileList", &trainDataGenerator::setFileListP) .def("shuffleFilelist", &trainDataGenerator::shuffleFilelist) + .def("setBuffer", &trainDataGenerator::setBuffer) + + .def("setFileTimeout", &trainDataGenerator::setFileTimeout) .def("setSquaredElementsLimit", &trainDataGenerator::setSquaredElementsLimit) .def("setSkipTooLargeBatches", &trainDataGenerator::setSkipTooLargeBatches) - - - + .def("clear", &trainDataGenerator::clear) .def("getNBatches", &trainDataGenerator::getNBatches) .def("lastBatch", &trainDataGenerator::lastBatch) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index f2e8fa6..d9f2685 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -242,6 +242,7 @@ def __init__(self, from DeepJetCore.TrainData import TrainData +from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator class PredictCallback(Callback): @@ -249,6 +250,7 @@ def __init__(self, samplefile, function_to_apply=None, #needs to be function(counter,[model_input], [predict_output], [truth]) after_n_batches=50, + batchsize=10, on_epoch_end=False, use_event=0, decay_function=None @@ -271,28 +273,38 @@ def __init__(self, td.readFromFile(samplefile) if use_event>=0: td.skim(use_event) - else: - raise ValueError("PredictCallback: use_event>=0") - self.batchsize = td.nElements() - self.x = td.transferFeatureListToNumpy() - self.y = td.transferWeightListToNumpy() - self.w = td.transferTruthListToNumpy() + self.batchsize = 1 + self.td = td - - - + self.gen = trainDataGenerator() + self.gen.setBatchSize(batchsize) + self.gen.setSkipTooLargeBatches(False) + def reset(self): self.call_counter=0 def predict_and_call(self,counter): - predicted = self.model.predict(self.x, batch_size=self.batchsize) + self.gen.setBuffer(self.td) + + def genfunc(): + while(1): + d = self.gen.getBatch() + yield d.transferFeatureListToNumpy() , d.transferTruthListToNumpy() + + predicted = self.model.predict_generator(genfunc(), + steps=self.gen.getNBatches(), + max_queue_size=1, + use_multiprocessing=False, + verbose=2) + if not isinstance(predicted, list): predicted=[predicted] - self.function_to_apply(self.call_counter,self.x,predicted,self.y) + self.function_to_apply(self.call_counter,self.td.copyFeatureListToNumpy(), + predicted,self.td.copyTruthListToNumpy()) self.call_counter+=1 def on_epoch_end(self, epoch, logs=None): From d8f9adaf4ae5a77b14f5158419afe7d3a678cdc7 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 9 Dec 2019 15:22:34 +0100 Subject: [PATCH 184/437] validate fix --- DataCollection.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index ecd9087..859ef3c 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -139,9 +139,10 @@ def validate(self, remove=True, skip_first=0): (this might be changed in future implementations) ''' validsourcelist = len(self.samples) == len(self.sourceList) + newsamples=[] + newsources=[] for i in range(len(self.samples)): if i < skip_first: continue - if i >= len(self.samples): break td = self.dataclass () fullpath=self.getSamplePath(self.samples[i]) print('reading '+fullpath, str(i), '/', str(len(self.samples))) @@ -150,12 +151,15 @@ def validate(self, remove=True, skip_first=0): if td.nElements() < 1: print("warning, no data in file "+fullpath) del td + newsamples.append(self.samples[i]) + if validsourcelist: + newsources.append(self.sourceList[i]) continue except Exception as e: print('problem with file, removing ', fullpath) - del self.samples[i] - if validsourcelist: - del self.sourceList[i] + + self.samples = newsamples + self.newsources = newsources def removeEntry(self,relative_path_to_entry): for i in range(len(self.samples)): From cf339fa7430604f420fedc2028bec3c4a06ab883 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 9 Dec 2019 16:22:07 +0100 Subject: [PATCH 185/437] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 72b376a..6487034 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ This package provides the basic functions for out-of-memory training, resampling For simple use cases, only two files need to be adapted: the actual training data structures, describing how to fill numpy arrays from root trees, and the DNN model itself. Both must be defined in an additional user package. Please refer to the Section 'Usage' for more information. +**If you use DeepJetCore or the containers, please mention it in (internal) documentation and talks :)** + Setup ========== From c84d57f468a4220b33b0aba040cecbece83ce2eb Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 17 Dec 2019 14:15:43 +0100 Subject: [PATCH 186/437] 2.1rc1 --- TrainData.py | 4 ++-- docker/Dockerfile_base | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/TrainData.py b/TrainData.py index b144719..f27fdfd 100644 --- a/TrainData.py +++ b/TrainData.py @@ -77,8 +77,8 @@ def _store(self, x, y, w): self.storeWeightArray(self._maybeConvertToSimpleArray(wa)) w = [] - def readFromSourceFile(self,filename, weighterobjects={}, istraining=False): - x,y,w = self.convertFromSourceFile(filename, weighterobjects, istraining) + def readFromSourceFile(self,filename, weighterobjects={}, istraining=False, **kwargs): + x,y,w = self.convertFromSourceFile(filename, weighterobjects, istraining, **kwargs) self._store(x,y,w) diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index e12abe8..db526b9 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -69,6 +69,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN apt-get install -y zsh RUN apt-get install -y ffmpeg +RUN apt-get install -y nvtop ##gpu specific stuff RUN pip install gpustat From 714682054ede46b53ab587d3f7e4e9659b080bb8 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 17 Dec 2019 14:17:30 +0100 Subject: [PATCH 187/437] readme and new tools --- README.md | 2 ++ bin/createDataCollectionFromTD.py | 50 ++++++++++++++++++++++++++++ bin/mergeOrSplitFiles.py | 54 +++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100755 bin/createDataCollectionFromTD.py create mode 100755 bin/mergeOrSplitFiles.py diff --git a/README.md b/README.md index 72b376a..13e00ca 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ DeepJetCore: Package for training and evaluation of deep neural networks for HEP =============================================================================== +Please mention in presentations/notes when you are using DeepJetCore or a container provided with it and refer to this repository. + (For upgrading from DeepJetCore 1.X to 2.0, please scroll to the bottom) This package provides the basic functions for out-of-memory training, resampling, and basic evaluation. diff --git a/bin/createDataCollectionFromTD.py b/bin/createDataCollectionFromTD.py new file mode 100755 index 0000000..95585b3 --- /dev/null +++ b/bin/createDataCollectionFromTD.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python +# encoding: utf-8 + + +from DeepJetCore.DataCollection import DataCollection +from DeepJetCore.conversion.conversion import class_options +from DeepJetCore.TrainData import TrainData +from argparse import ArgumentParser +import os + +parser = ArgumentParser('program to wrap converted trainData files in a dataCollection and attach a python TrainData class description') +parser.add_argument("-c", choices = class_options.keys(), help="set output class (options: %s)" % ', '.join(class_options.keys()), metavar="Class") +parser.add_argument("-o", help="dataCollection output file name",default="") + +parser.add_argument('files', metavar='N',nargs='+', + help='djctd files to be merged in the DataCollection') + +args=parser.parse_args() + + +if len(args.files) < 1: + print('you must provide at least one input file') + exit() +if not len(args.o): + print('you must provide an output file name') + exit() + +indir = os.path.dirname(args.files[0]) +if len(indir): + indir+="/" +class_name = args.c + +if class_name in class_options: + traind = class_options[class_name] +else: + print('available classes:') + for key, val in class_options.iteritems(): + print(key) + raise Exception('wrong class selection') + +dc = DataCollection() +dc.setDataClass(traind) + +for f in args.files: + dc.samples.append(os.path.basename(f)) + +outfile = args.o +if not outfile[-6:] == ".djcdc": + outfile+=".djcdc" +dc.writeToFile(indir+outfile) \ No newline at end of file diff --git a/bin/mergeOrSplitFiles.py b/bin/mergeOrSplitFiles.py new file mode 100755 index 0000000..25162f4 --- /dev/null +++ b/bin/mergeOrSplitFiles.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# encoding: utf-8 +''' + +@author: jkiesele + +''' + + +from argparse import ArgumentParser +parser = ArgumentParser('merge or split files belonging to a dataCollection differently. The output will be written to the current working directory!') +parser.add_argument("infile", help="input \"dc\" file") +parser.add_argument("nelementsperfile", help="number of entries per file (output), for ragged, maximum number of elements") +parser.add_argument("--randomise", help="randomise order, could be helpful if difference samples need to be mixed", action='store_true') +args=parser.parse_args() + + +from DeepJetCore.DataCollection import DataCollection +from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator + +infile=args.infile +nbatch=int(args.nelementsperfile) +randomise = args.randomise + +dc = DataCollection(infile) +dc2 = DataCollection(infile) +samples = dc.samples + +dir = dc.dataDir +if len(dir)<1: + dir='.' +insamples = [dir+'/'+s for s in samples] + +gen = trainDataGenerator() +gen.setBatchSize(nbatch) +gen.setSkipTooLargeBatches(False) +gen.setFileList(insamples) + +if randomise: + gen.shuffleFileList() + +nbatches = gen.getNBatches() + +newsamples=[] +for i in range(nbatches): + newname = str(samples[0][:-6]+"_n_"+str(i)+".djctd") + newsamples.append(newname) + ntd = gen.getBatch() + print(newname) + ntd.writeToFile(newname) + print('..written') + +dc2.samples = newsamples +dc2.writeToFile(infile[:-5]+"_n.djcdc") \ No newline at end of file From 77e19c892c39ce60642279e4da8985dfb75c4379 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 17 Dec 2019 14:19:07 +0100 Subject: [PATCH 188/437] double message --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9f391b2..e417397 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ DeepJetCore: Package for training and evaluation of deep neural networks for HEP =============================================================================== -Please mention in presentations/notes when you are using DeepJetCore or a container provided with it and refer to this repository. (For upgrading from DeepJetCore 1.X to 2.0, please scroll to the bottom) From 0750b6837517c9b6c4e39b45f6cd64a57ca32d68 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 17 Dec 2019 14:19:58 +0100 Subject: [PATCH 189/437] kwargs in convert --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e417397..75c6009 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ There has been substantial format changes from 1.X to 2.X, including low-level s The TrainData class has been slimmed significantly. Now, the ``__init`` function does not need any additional arguments anymore, and there are no mandatory definitions. Only the following functions should be defined for the interface (all others are deprecated): * ``createWeighterObjects(self, allsourcefiles)``: is not mandatory. It can be used, however to create a dictionary (pickable) objects that depend on the whole dataset (e.g. for numbers for normalisation etc). **Returns**: a dictionary of weighter objects - * ``convertFromSourceFile(self, filename, weighterobjects, istraining)``: is mandatory. This function defines a rule to convert one source file to one output file. The final output should be a list of numpy feature arrays, a list of numpy truth arrays, and a list of numpy weight arrays. The latter can also be empty. The conversion can be done from root e.g. with uproot or similar, but can also use any other input format. **Returns** three items: a list of feature arrays, list of truth arrays, list of weight arrays + * ``convertFromSourceFile(self, filename, weighterobjects, istraining, **kwargs)``: is mandatory. This function defines a rule to convert one source file to one output file. The final output should be a list of numpy feature arrays, a list of numpy truth arrays, and a list of numpy weight arrays. The latter can also be empty. The conversion can be done from root e.g. with uproot or similar, but can also use any other input format. **Returns** three items: a list of feature arrays, list of truth arrays, list of weight arrays * ``writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile)``: is mandatory. Defines how the output of the network should be written back to an output format. This could e.g. be a root tree, which can be a friend to the original tree, or any other output. The function gives optional access to all input features, truth, weights (if any), and the input source file name. **Returns**: nothing Of course any user function, member etc beyond that can be defined, too. From ff5ecf699f76216e7bd9710b6ea82cd4cc44e420 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 17 Dec 2019 14:27:37 +0100 Subject: [PATCH 190/437] ragged description --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 75c6009..5ceb8c7 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,17 @@ The TrainData class has been slimmed significantly. Now, the ``__init`` function Of course any user function, member etc beyond that can be defined, too. + +Ragged Tensors +===================== + +Ragged data structures supported to some extent with workarounds for places where either keras or tensorflow are still missing support. +Only tensors ragged in the first dimension are supported so far, meaning, e.g. a different number of inputs per event, but each input having the same feature length (or more dimensions with fixed sizes). This should cover most usecases already. +To create a ragged data structure, the function ``convertFromSourceFile(self, filename, weighterobjects, istraining, **kwargs)`` must not return a list of numpy arrays, but a list of ``simpleArray``, which is a DeepJetCore class supporting ragged structures. This array can be constructed from two numpy arrays: one describing the row splits (as int, in the same format as tensorflow ragged array row splits) and one containing the data, where the 0th and 1st dimensions are flattened. Then the array can be filled by invoking ``createFromNumpy(data, row_splits``. +For training, the model will receive a list of tensors, where the first one will be the data and the second the row splits. The same applies to the truth. This circumvents incomplete keras support for the moment. + + + For developers ===================== From 868b9bcf9d57dce6b1b4be0fd61d772903bf02ba Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 17 Dec 2019 14:45:56 +0100 Subject: [PATCH 191/437] tag 2.1rc0 --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index ee01cc8..3663fa1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,7 +9,7 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ - git checkout 2.0 && \ + git checkout 2.1rc0 && \ source docker_env.sh && \ cd compiled && \ make -j4 From ff13d27b717d78700020c7fbee55bafb92e532bd Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 17 Dec 2019 14:50:00 +0100 Subject: [PATCH 192/437] release tag --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 3663fa1..959154b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,7 +9,7 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ - git checkout 2.1rc0 && \ + git checkout 2.1rc01 && \ source docker_env.sh && \ cd compiled && \ make -j4 From ac36a48823917edba29e7f59f5690a4372b0da72 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 29 Jan 2020 15:51:26 +0100 Subject: [PATCH 193/437] 2.1 --- DataCollection.py | 5 +++++ TrainData.py | 1 + compiled/interface/trainData.h | 2 +- docker/Dockerfile | 28 +++++++++++++++++++++++++++- docker/Dockerfile_base | 1 + training/DeepJet_callbacks.py | 10 +++++----- training/training_base.py | 21 ++++++++++++++------- 7 files changed, 54 insertions(+), 14 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 859ef3c..36da23c 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -92,9 +92,14 @@ def __radd__(self, other): else: raise ValueError("I don't know how to add DataCollection and %s" % type(other)) + def __len__(self): + return len(self.samples) + def _readShapesIfNeeded(self): if len(self.samples)<1: return + if self.dataclass_instance is None: + self.dataclass_instance = self.dataclass() if self.dataclass_instance.nElements() < 1: self.dataclass_instance.readShapesFromFile(self.getSamplePath(self.samples[0])) diff --git a/TrainData.py b/TrainData.py index f27fdfd..bfc14c0 100644 --- a/TrainData.py +++ b/TrainData.py @@ -14,6 +14,7 @@ from DeepJetCore.compiled.c_trainData import trainData from DeepJetCore.compiled.c_simpleArray import simpleArray +import time def fileTimeOut(fileName, timeOut): ''' diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index a4866e9..289a1fd 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -317,7 +317,7 @@ template void trainData::readFromFile(std::string filename){ clear(); FILE *ifile = fopen(filename.data(), "rb"); - checkFile(ifile); + checkFile(ifile, filename); readNested(feature_shapes_, ifile); readNested(truth_shapes_, ifile); readNested(weight_shapes_, ifile); diff --git a/docker/Dockerfile b/docker/Dockerfile index 959154b..41b7ad4 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,7 +9,6 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ - git checkout 2.1rc01 && \ source docker_env.sh && \ cd compiled && \ make -j4 @@ -20,3 +19,30 @@ ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" #/usr/local/lib is for root ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" + + +# helpers for ragged and cuda compilation + + + +# The fix for TensorFlow + +RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ + mkdir gpus && \ + cd gpus && \ + ln -s /usr/local/cuda cuda + + + +#eclipse rse stuff - make extern + +RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list +RUN apt update +# do not upgrade all, because of cudnn versions etc!!! +#for eclipse stuff +RUN apt install -y default-jre +RUN apt install -y openjdk-11-jre-headless +RUN apt install -y openjdk-8-jre-headless +RUN apt install -y default-jdk +#RUN apt install -y openjdk-9-jre-headless + \ No newline at end of file diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index db526b9..316bb3f 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -76,6 +76,7 @@ RUN pip install gpustat RUN pip install setGPU +RUN apt install -y unzip diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index d9f2685..2616e6d 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -253,13 +253,14 @@ def __init__(self, batchsize=10, on_epoch_end=False, use_event=0, - decay_function=None + decay_function=None, + offset=0 ): super(PredictCallback, self).__init__() self.samplefile=samplefile self.function_to_apply=function_to_apply self.counter=0 - self.call_counter=0 + self.call_counter=offset self.decay_function=decay_function self.after_n_batches=after_n_batches @@ -276,7 +277,6 @@ def __init__(self, self.batchsize = 1 self.td = td - self.gen = trainDataGenerator() self.gen.setBatchSize(batchsize) self.gen.setSkipTooLargeBatches(False) @@ -309,8 +309,6 @@ def genfunc(): def on_epoch_end(self, epoch, logs=None): self.counter=0 - if self.decay_function is not None: - self.after_n_batches=self.decay_function(self.after_n_batches) if not self.run_on_epoch_end: return self.predict_and_call(epoch) @@ -320,6 +318,8 @@ def on_batch_end(self, batch, logs=None): if self.counter>self.after_n_batches: self.counter=0 self.predict_and_call(batch) + if self.decay_function is not None: + self.after_n_batches=self.decay_function(self.call_counter) diff --git a/training/training_base.py b/training/training_base.py index 9ef6bef..f7af9c8 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -18,6 +18,7 @@ import tensorflow as tf import tensorflow.keras as keras from keras.utils import multi_gpu_model +import copy import imp try: @@ -199,8 +200,12 @@ def __init__( self.train_data.useweights=useweights if testrun: - self.train_data.split(testrun_fraction) - self.val_data=self.train_data + if len(self.train_data)>1: + self.train_data.split(testrun_fraction) + + self.train_data.dataclass_instance=None #can't be pickled + self.val_data=copy.deepcopy(self.train_data) + else: self.val_data=self.train_data.split(splittrainandtest) @@ -238,11 +243,12 @@ def modelSet(self): def setModel(self,model,**modelargs): if len(self.keras_inputs)<1: raise Exception('setup data first') - try: - self.keras_model=model(self.keras_inputs,**modelargs) - except BaseException as e: - print('problem in setting model. Reminder: since DJC 2.0, NClassificationTargets and RegressionTargets must not be specified anymore') - raise e + self.keras_model=model(self.keras_inputs,**modelargs) + #try: + # self.keras_model=model(self.keras_inputs,**modelargs) + #except BaseException as e: + # print('problem in setting model. Reminder: since DJC 2.0, NClassificationTargets and RegressionTargets must not be specified anymore') + # raise e if not self.keras_model: raise Exception('Setting model not successful') @@ -403,6 +409,7 @@ def trainModel(self, if not isinstance(additional_callbacks, list): additional_callbacks=[additional_callbacks] self.callbacks.callbacks.extend(additional_callbacks) + print('starting training') if load_in_mem: From e512430f92cce82a5c1eebc09b6053dd46d0630c Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 30 Jan 2020 10:18:15 +0100 Subject: [PATCH 194/437] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5ceb8c7..c01ea25 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ The TrainData class has been slimmed significantly. Now, the ``__init`` function Of course any user function, member etc beyond that can be defined, too. - +For everybody who used the built-in weighting functionality, this function now need to be reimplemented in the user code (in ``createWeighterObjects``). The old implementation can be found here: https://github.com/DL4Jets/DeepJetCore/blob/1.X/TrainData.py#L657-L672 and can be used in the same way in the user code. Ragged Tensors ===================== From 7e84290810c01fc7ca3233641582d8419ae638e3 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 30 Jan 2020 15:47:47 +0100 Subject: [PATCH 195/437] CO --- customObjects.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 customObjects.py diff --git a/customObjects.py b/customObjects.py new file mode 100644 index 0000000..126973f --- /dev/null +++ b/customObjects.py @@ -0,0 +1,34 @@ + +from DeepJetCore.DJCLosses import * +from DeepJetCore.DJCLayers import * +import imp +try: + imp.find_module('Losses') + from Losses import * +except ImportError: + print ('No Losses module found, ignoring at your own risk') + global_loss_list = {} + +try: + imp.find_module('Layers') + from Layers import * +except ImportError: + print ('No Layers module found, ignoring at your own risk') + global_layers_list = {} + +try: + imp.find_module('Metrics') + from Metrics import * +except ImportError: + print ('No metrics module found, ignoring at your own risk') + global_metrics_list = {} + +def get_custom_objects(): + + custom_objs = {} + custom_objs.update(djc_global_loss_list) + custom_objs.update(djc_global_layers_list) + custom_objs.update(global_loss_list) + custom_objs.update(global_layers_list) + custom_objs.update(global_metrics_list) + return custom_objs From bb3bb13790353d5f0671796e28952b5d60590962 Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Sun, 2 Feb 2020 23:23:10 +0100 Subject: [PATCH 196/437] fix empty batch fix empty batch --- compiled/interface/trainDataGenerator.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index f930991..70c6b4e 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -441,6 +441,7 @@ trainData trainDataGenerator::prepareBatch(){ size_t bufferelements=buffer_store.nElements(); size_t expect_batchelements = splits_.at(batchcount_); bool usebatch = true; + if(usebatch_.size()) usebatch = usebatch_.at(batchcount_); @@ -479,6 +480,10 @@ trainData trainDataGenerator::prepareBatch(){ } auto thisbatch = buffer_store.split(expect_batchelements); + if(thisbatch.nTotalElements() < 1){ + //not sure why this can happen, there might be some bigger problem here. This at least prevents crashes. + return prepareBatch(); + } if(debug) std::cout << "providing batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+expect_batchelements << From d8aa1ae471572f5d63d36bc9a8e2d6c577402148 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 10 Feb 2020 17:31:20 +0100 Subject: [PATCH 197/437] tf2 --- docker/Dockerfile | 2 +- docker/Dockerfile_base | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 41b7ad4..f3bd72f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,6 @@ -FROM cernml4reco/djcbase:latest +FROM cernml4reco/djcbase:tf2 ENV DEEPJETCORE /usr/share/DJC/DeepJetCore RUN ldconfig diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 316bb3f..ff55442 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -57,7 +57,7 @@ RUN pip install easydict tqdm RUN pip install Cython RUN pip install numba -RUN pip --no-cache-dir install tensorflow==1.15 +RUN pip --no-cache-dir install tensorflow==2.0 RUN apt-get update --fix-missing @@ -66,17 +66,21 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf #for me ;) + +RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list + +RUN apt-get update --fix-missing RUN apt-get install -y zsh RUN apt-get install -y ffmpeg -RUN apt-get install -y nvtop +#not yet RUN apt-get install -y nvtop ##gpu specific stuff RUN pip install gpustat RUN pip install setGPU -RUN apt install -y unzip +RUN apt-get install -y unzip From f4e41b65273902e237ca3263c8b29c485a4c6aaf Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 10 Feb 2020 18:11:13 +0100 Subject: [PATCH 198/437] fix for tf2 --- training/training_base.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/training/training_base.py b/training/training_base.py index f7af9c8..4e50b9f 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -314,15 +314,7 @@ def saveModel(self,outfile): self.gan.save(self.outputDir+'GAN_'+outfile) self.generator.save(self.outputDir+'GEN_'+outfile) self.discriminator.save(self.outputDir+'DIS_'+outfile) - import tensorflow as tf - import keras.backend as K - tfsession=K.get_session() - saver = tf.train.Saver() - tfoutpath=self.outputDir+outfile+'_tfsession/tf' - import os - os.system('rm -rf '+tfoutpath) - os.system('mkdir -p '+tfoutpath) - saver.save(tfsession, tfoutpath) + #import h5py From 1777ba69565172fab10aea2d77dc885976651743 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 12 Feb 2020 10:51:37 +0100 Subject: [PATCH 199/437] merging to master --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index f3bd72f..158bd2d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,6 @@ -FROM cernml4reco/djcbase:tf2 +FROM cernml4reco/djcbase:latest ENV DEEPJETCORE /usr/share/DJC/DeepJetCore RUN ldconfig @@ -45,4 +45,4 @@ RUN apt install -y openjdk-11-jre-headless RUN apt install -y openjdk-8-jre-headless RUN apt install -y default-jdk #RUN apt install -y openjdk-9-jre-headless - \ No newline at end of file + From 8016dfec8d2d31ea92bc26827a5766b06948194b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 12 Feb 2020 11:13:09 +0100 Subject: [PATCH 200/437] updated readme --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c01ea25..e8d641a 100644 --- a/README.md +++ b/README.md @@ -71,12 +71,21 @@ The general pipeline for inference/prediction is depicted in the following sketc More information on the three function of TrainData that need to be defined by the user (in addition to the training script) is given in the next Section. For the training script, please refer to the example provided with ``createSubpackage.py``. -TrainData definition and notes on upgrading from 1.X to 2.X +TrainData definition and notes on upgrading (from 1.X to 2.X) ========================= There has been substantial format changes from 1.X to 2.X, including low-level support preparations for ragged tensors. Therefore, all data from 1.X needs to be converted or newly created. Also, the interface changed slightly. -The TrainData class has been slimmed significantly. Now, the ``__init`` function does not need any additional arguments anymore, and there are no mandatory definitions. Only the following functions should be defined for the interface (all others are deprecated): +The master branch has also been switched to tensorflow 2.0 recently. This might require adapting subpackages. A workaround for the moment for old subpackages would be to include the following code in the subpackage ``__init__.py``: + +``` +import sys +import tensorflow +tensorflow.compat.v1.disable_eager_execution() +sys.modules["tensorflow"]=tensorflow.compat.v1 +``` + +The TrainData class has been slimmed significantly. Now, the ``__init__`` function does not need any additional arguments anymore, and there are no mandatory definitions. Only the following functions should be defined for the interface (all others are deprecated): * ``createWeighterObjects(self, allsourcefiles)``: is not mandatory. It can be used, however to create a dictionary (pickable) objects that depend on the whole dataset (e.g. for numbers for normalisation etc). **Returns**: a dictionary of weighter objects * ``convertFromSourceFile(self, filename, weighterobjects, istraining, **kwargs)``: is mandatory. This function defines a rule to convert one source file to one output file. The final output should be a list of numpy feature arrays, a list of numpy truth arrays, and a list of numpy weight arrays. The latter can also be empty. The conversion can be done from root e.g. with uproot or similar, but can also use any other input format. **Returns** three items: a list of feature arrays, list of truth arrays, list of weight arrays From 7f28dffcb9147c8c2eab4903bcf0ded0d2e35965 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 14 Feb 2020 17:16:50 +0100 Subject: [PATCH 201/437] added torch for external training, added file check for conversion --- DataCollection.py | 27 ++++++++++++++++++++++----- TrainData.py | 5 +++++ bin/convertFromSource.py | 10 ++++++++-- docker/Dockerfile | 16 ++++++++++++++++ 4 files changed, 51 insertions(+), 7 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 36da23c..ba0696a 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -207,26 +207,42 @@ def readFromFile(self,filename): self.dataDir+='/' - def readSourceListFromFile(self, file, relpath=''): + def readSourceListFromFile(self, file, relpath='', checkfiles=False): self.samples=[] self.sourceList=[] self.__nsamples=0 self.dataDir="" + td=self.dataclass() + fdir=os.path.dirname(file) fdir=os.path.abspath(fdir) fdir=os.path.realpath(fdir) - lines = [line.rstrip('\n') for line in open(file)] + lines = [(line.rstrip('\n')).rstrip(' ') for line in open(file)] for line in lines: if len(line) < 1: continue if relpath: self.sourceList.append(os.path.join(relpath, line)) else: self.sourceList.append(line) - if len(self.sourceList)<1: raise Exception('source samples list empty') + if checkfiles: + print('DataCollection: checking files') + self.sourceList=self.checkSourceFiles() + + def checkSourceFiles(self): + td=self.dataclass() + newsamples=[] + for s in self.sourceList: + if td.fileIsValid(self.getSamplePath(s)): + newsamples.append(s) + else: + print('source file '+s+' seems to be broken, will skip processing it') + + return newsamples + def split(self,ratio): ''' @@ -481,13 +497,14 @@ def __collectWriteInfo(successful,samplename,sampleentries,outputDir): def convertListOfRootFiles(self, inputfile, dataclass, outputDir, takeweightersfrom='', means_only=False, output_name='dataCollection.djcdc', - relpath=''): + relpath='', checkfiles=False): newmeans=True if takeweightersfrom: self.readFromFile(takeweightersfrom) newmeans=False - self.readSourceListFromFile(inputfile, relpath=relpath) + self.dataclass = dataclass + self.readSourceListFromFile(inputfile, relpath=relpath,checkfiles=checkfiles) self.createDataFromRoot( dataclass, outputDir, newmeans, means_only = means_only, diff --git a/TrainData.py b/TrainData.py index bfc14c0..4c9a765 100644 --- a/TrainData.py +++ b/TrainData.py @@ -94,6 +94,11 @@ def createWeighterObjects(self, allsourcefiles): ''' return {} + ### perform a simple and quick check if the file is not corrupt. Can be called in advance to conversion + # return False if file is corrupt + def fileIsValid(self, filename): + return True + ### either of the following need to be defined ## if direct writeout is useful diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index 892880b..b415f2d 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -29,6 +29,7 @@ parser.add_argument("-n", default='', help="(optional) number of child processes") parser.add_argument("--usemeansfrom", default='') parser.add_argument("--nothreads", action='store_true') +parser.add_argument("--checkFiles", action='store_true') parser.add_argument("--means", action='store_true', help='compute only means') parser.add_argument("--nforweighter", default='500000', help='set number of samples to be used for weight and mean calculation') parser.add_argument("--batch", help='Provide a batch ID to be used') @@ -44,6 +45,9 @@ recover=args.r usemeansfrom=args.usemeansfrom nchilds=args.n +dofilecheck=args.checkFiles + +#fileIsValid if args.batch and not (args.usemeansfrom or args.testdatafor): raise ValueError( @@ -108,7 +112,8 @@ infile, traind, outPath, means_only=True, output_name='batch_template.djcdc', - relpath=relpath + relpath=relpath, + checkfiles=dofilecheck ) else: logging.info('Start conversion') @@ -116,7 +121,8 @@ infile, traind, outPath, takeweightersfrom=usemeansfrom, output_name=(args.batch if args.batch else 'dataCollection.djcdc'), - relpath=relpath + relpath=relpath, + checkfiles=dofilecheck ) if args.inRange is not None: diff --git a/docker/Dockerfile b/docker/Dockerfile index 158bd2d..0b2f9bb 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -45,4 +45,20 @@ RUN apt install -y openjdk-11-jre-headless RUN apt install -y openjdk-8-jre-headless RUN apt install -y default-jdk #RUN apt install -y openjdk-9-jre-headless + + + +## torch/jupyter stuff +RUN pip install torch + +RUN pip install gensim && \ + pip install jupyter && \ + pip install prompt-toolkit && \ + pip install seaborn + +EXPOSE 8888 + + + + From 0e5fa76760096a87a1705d82474e3ddfcbe21c00 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 17 Feb 2020 09:12:31 +0100 Subject: [PATCH 202/437] torch packages --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 0b2f9bb..c67b86d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -48,8 +48,8 @@ RUN apt install -y default-jdk -## torch/jupyter stuff -RUN pip install torch +## torch/jupyter stuff +RUN pip install torch future RUN pip install gensim && \ pip install jupyter && \ From 5f28439cb61156605cdc34ac8d37a7f4d7a248b8 Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Mon, 17 Feb 2020 16:03:30 +0100 Subject: [PATCH 203/437] make the batch argument of predict actually usable --- bin/predict.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bin/predict.py b/bin/predict.py index 567e121..0c620d4 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -56,7 +56,7 @@ batchsize = int(args.b) - + #if os.path.isdir(args.outputDir): # raise Exception('output directory must not exists yet') @@ -90,10 +90,13 @@ print('converting '+inputfile) td.readFromSourceFile(use_inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) + print('predicting ',inputfile) - print('batch size',dc.getBatchSize()) gen = trainDataGenerator() - gen.setBatchSize(dc.getBatchSize()) + if batchsize < 1: + batchsize = dc.getBatchSize() + print('batch size',batchsize) + gen.setBatchSize(batchsize) gen.setSquaredElementsLimit(dc.batch_uses_sum_of_squares) gen.setSkipTooLargeBatches(False) gen.setBuffer(td) From 785c9440f65fa56ef2524b33de3f3ff7511637d4 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 21 Feb 2020 13:28:49 +0100 Subject: [PATCH 204/437] more roc functions --- compiled/interface/rocCurve.h | 3 +++ compiled/interface/rocCurveCollection.h | 2 +- compiled/src/c_makeROCs.C | 21 +++++++++++++-------- compiled/src/rocCurve.cpp | 8 ++++---- compiled/src/rocCurveCollection.cpp | 3 ++- docker/Dockerfile_base | 2 +- evaluation/evaluation.py | 12 ++++++++---- 7 files changed, 32 insertions(+), 19 deletions(-) diff --git a/compiled/interface/rocCurve.h b/compiled/interface/rocCurve.h index e033198..2bfb3c6 100644 --- a/compiled/interface/rocCurve.h +++ b/compiled/interface/rocCurve.h @@ -57,6 +57,8 @@ class rocCurve{ linewidth_=width; } + void scaleYAxis(const float& scale){yscale_=scale;} + const TString& name()const{return name_;} TString compatName()const{ TString namecp=name_; @@ -101,6 +103,7 @@ class rocCurve{ int linecol_,linewidth_,linestyle_; bool fullanalysis_; + float yscale_; }; diff --git a/compiled/interface/rocCurveCollection.h b/compiled/interface/rocCurveCollection.h index 66c0667..efe6955 100644 --- a/compiled/interface/rocCurveCollection.h +++ b/compiled/interface/rocCurveCollection.h @@ -53,7 +53,7 @@ class rocCurveCollection{ // const TString& vetotruth, int linecolstyle, const TString& cuts="",int linestyle=1); void addROC(const TString& name, const TString& probability, const TString& truth, - const TString& vetotruth, const TString& linecolstyle, const TString& cuts="",const TString& invalidateif=""); + const TString& vetotruth, const TString& linecolstyle, const TString& cuts="",const TString& invalidateif="", float yscale=1.); void addText(TLatex *l){additionaltext_.push_back(l);} diff --git a/compiled/src/c_makeROCs.C b/compiled/src/c_makeROCs.C index e5f4e2e..73ae674 100644 --- a/compiled/src/c_makeROCs.C +++ b/compiled/src/c_makeROCs.C @@ -36,10 +36,12 @@ void makeROCs( bool logy, bool individual, std::string xaxis, + std::string yaxis, int nbins, std::string treename, double xmin, - std::string experimentlabel,std::string lumilabel,std::string prelimlabel + std::string experimentlabel,std::string lumilabel,std::string prelimlabel, + const boost::python::list yscales ) { std::vector s_intextfiles=toSTLVector(intextfiles); @@ -51,6 +53,7 @@ void makeROCs( std::vector s_cuts = toSTLVector(cuts); std::vector s_invalidate =toSTLVector(invalidate); std::vector s_extralegend=toSTLVector(extralegend); + std::vector s_yscales =toSTLVector(yscales); /* * Size checks!!! */ @@ -60,7 +63,8 @@ void makeROCs( s_names.size() != s_vetos.size()|| s_names.size() != s_colors.size()|| s_names.size() != s_cuts.size() || - s_invalidate.size() != s_names.size()) + s_invalidate.size() != s_names.size() || + s_names.size() != s_yscales.size()) throw std::runtime_error("makeROCs: input lists must have same size"); //make unique list of infiles @@ -109,10 +113,12 @@ void makeROCs( } TString xaxisstr=xaxis; + TString yaxisstr=yaxis; rocCurveCollection rocs; rocs.setNBins(nbins); rocs.setXaxis(xaxisstr); + rocs.setYaxis(yaxisstr); rocs.setCommentLine0(firstcomment.data()); rocs.setCommentLine1(secondcomment.data()); @@ -120,12 +126,11 @@ void makeROCs( rocs.setCMSStyle(usecmsstyle); for(size_t i=0;i loglist(double first, double last, double size){ } -rocCurve::rocCurve():nbins_(100),linecol_(kBlack),linewidth_(1),linestyle_(1),fullanalysis_(true){ +rocCurve::rocCurve():nbins_(100),linecol_(kBlack),linewidth_(1),linestyle_(1),fullanalysis_(true),yscale_(1.){ nrocsCounter++; } -rocCurve::rocCurve(const TString& name):nbins_(100),linecol_(kBlack),linewidth_(1),linestyle_(1),fullanalysis_(true){ +rocCurve::rocCurve(const TString& name):nbins_(100),linecol_(kBlack),linewidth_(1),linestyle_(1),fullanalysis_(true),yscale_(1.){ name_=name; } rocCurve::rocCurve(const TString& name, const TString& probability, const TString& truth, @@ -162,7 +162,7 @@ void rocCurve::process(TChain *c,std::ostream& out){ for(size_t i=0;i misidset=loglist(0.001,1,100); + std::vector misidset=loglist(yscale_*0.001,yscale_*1,yscale_*100); int count=0; double integral=0; for(float eff=0;eff<1;eff+=0.00001){ diff --git a/compiled/src/rocCurveCollection.cpp b/compiled/src/rocCurveCollection.cpp index e4e1c4c..c808fcf 100644 --- a/compiled/src/rocCurveCollection.cpp +++ b/compiled/src/rocCurveCollection.cpp @@ -30,7 +30,7 @@ void rocCurveCollection::addExtraLegendEntry(const TString& entr){ } void rocCurveCollection::addROC(const TString& name, const TString& probability, const TString& truth, - const TString& vetotruth, const TString& linecol, const TString& cuts,const TString& invalidateif){ + const TString& vetotruth, const TString& linecol, const TString& cuts,const TString& invalidateif, float yscale){ rocCurve rc=rocCurve(name,probability,truth,vetotruth,colorToTColor(linecol),lineToTLineStyle(linecol),cuts,invalidateif); rc.setLineWidth(linewidth_); @@ -38,6 +38,7 @@ void rocCurveCollection::addROC(const TString& name, const TString& probability, lc.ToLower() ; if(lc.Contains("dummy")) rc.setLineWidth(0); + rc.scaleYAxis(yscale); roccurves_.push_back(rc); legentries_.push_back(name); } diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index ff55442..3b64b1b 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -57,7 +57,7 @@ RUN pip install easydict tqdm RUN pip install Cython RUN pip install numba -RUN pip --no-cache-dir install tensorflow==2.0 +RUN pip --no-cache-dir install tensorflow-gpu==2.0 RUN apt-get update --fix-missing diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index ecf8e0a..581da18 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -93,15 +93,17 @@ def createColours(colors_list,name_list,nnames=None,extralegend=[]): def makeROCs_async(intextfile, name_list, probabilities_list, truths_list, vetos_list, colors_list, outpdffile, cuts='',cmsstyle=False, firstcomment='',secondcomment='', invalidlist='', - extralegend=None, + extralegend=None, #['solid?udsg','hatched?c']) logY=True, individual=False, xaxis="", + yaxis="", nbins=200, treename='deepntuplizer/tree', xmin=-1, experimentlabel="",lumilabel="",prelimlabel="", - npoints=500):#['solid?udsg','hatched?c']): + npoints=500, + yscales=1.): import copy @@ -136,6 +138,7 @@ def makeROCs_async(intextfile, name_list, probabilities_list, truths_list, vetos vetos_list=makeASequence(vetos_list,len(namelistcopy)) invalidlist=makeASequence(invalidlist,len(namelistcopy)) + yscaleslist = makeASequence(yscales,len(namelistcopy)) from DeepJetCore.compiled import c_makeROCs @@ -151,8 +154,8 @@ def worker(): outpdffile,allcuts,cmsstyle, firstcomment,secondcomment, invalidlist,extralegcopy,logY, - individual,xaxis,nbins,treename,xmin, - experimentlabel,lumilabel,prelimlabel) + individual,xaxis,yaxis,nbins,treename,xmin, + experimentlabel,lumilabel,prelimlabel,yscaleslist) except Exception as e: print('error for these inputs:') @@ -162,6 +165,7 @@ def worker(): print(truths_list) print(vetos_list) print(invalidlist) + print(yscaleslist) raise e From e0ec537cfbdc2eaded983cc3022d1d65b816c5f0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 21 Feb 2020 16:40:01 +0100 Subject: [PATCH 205/437] bugfix in predict, more roc capabilities --- bin/predict.py | 2 +- compiled/interface/rocCurve.h | 1 + compiled/src/c_makeROCs.C | 22 +++++++++++++++++++--- compiled/src/rocCurveCollection.cpp | 7 +++++-- evaluation/evaluation.py | 5 +++-- 5 files changed, 29 insertions(+), 8 deletions(-) diff --git a/bin/predict.py b/bin/predict.py index 0c620d4..d478e93 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -121,7 +121,7 @@ def genfunc(): if not type(predicted) == list: #circumvent that keras return only an array if there is just one list item predicted = [predicted] - td.writeOutPrediction(predicted, x, y, w, args.outputDir + "/" + outfilename, inputfile) + td.writeOutPrediction(predicted, x, y, w, args.outputDir + "/" + outfilename, use_inputdir+"/"+inputfile) outputs.append(outfilename) diff --git a/compiled/interface/rocCurve.h b/compiled/interface/rocCurve.h index 2bfb3c6..f1234a9 100644 --- a/compiled/interface/rocCurve.h +++ b/compiled/interface/rocCurve.h @@ -58,6 +58,7 @@ class rocCurve{ } void scaleYAxis(const float& scale){yscale_=scale;} + const float& getYAxisScaling()const{return yscale_;} const TString& name()const{return name_;} TString compatName()const{ diff --git a/compiled/src/c_makeROCs.C b/compiled/src/c_makeROCs.C index 73ae674..f3bbf5d 100644 --- a/compiled/src/c_makeROCs.C +++ b/compiled/src/c_makeROCs.C @@ -14,6 +14,7 @@ #include "../interface/pythonToSTL.h" #include "friendTreeInjector.h" #include "rocCurveCollection.h" +#include using namespace boost::python; //for some reason.... @@ -41,7 +42,8 @@ void makeROCs( std::string treename, double xmin, std::string experimentlabel,std::string lumilabel,std::string prelimlabel, - const boost::python::list yscales + const boost::python::list yscales, + bool no_friend_tree ) { std::vector s_intextfiles=toSTLVector(intextfiles); @@ -92,7 +94,21 @@ void makeROCs( friendTreeInjector injector((TString)treename); std::vector injectors(u_infiles.size(), friendTreeInjector((TString)treename)); std::vector chains(u_infiles.size()); - if(individual){ + if(no_friend_tree){ + for(size_t i=0;i> b) { + chains.at(i)->Add(b+"/"+treename); + } + } + } + else if(individual){ if(u_infiles.size() != s_names.size()) throw std::runtime_error("makeROCs: file list must have same size as legends etc. in individual mode"); for(size_t i=0;i probhistos,vetohistos,invalidhistos,invalidvetohistos; for(size_t i=0;iClone(tempname); invalidvetohistos.push_back(hd); + if(rc.getYAxisScaling()>maxyscale) + maxyscale=rc.getYAxisScaling(); } @@ -101,9 +104,9 @@ void rocCurveCollection::printRocs(TChain* c, const TString& outpdf, cv->Draw(); cv->cd(); - TH1D haxis=TH1D("AXIS","AXIS",10,0,1); + TH1D haxis=TH1D("AXIS","AXIS",10,0,1.); //haxis.Draw("AXIS"); - haxis.GetYaxis()->SetRangeUser(8e-4,1); + haxis.GetYaxis()->SetRangeUser(8e-4,maxyscale); //haxis.GetYaxis()->SetNdivisions(510); haxis.GetYaxis()->SetTitleSize(0.05); diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index 581da18..9224a93 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -103,7 +103,8 @@ def makeROCs_async(intextfile, name_list, probabilities_list, truths_list, vetos xmin=-1, experimentlabel="",lumilabel="",prelimlabel="", npoints=500, - yscales=1.): + yscales=1., + no_friend_tree=False): import copy @@ -155,7 +156,7 @@ def worker(): firstcomment,secondcomment, invalidlist,extralegcopy,logY, individual,xaxis,yaxis,nbins,treename,xmin, - experimentlabel,lumilabel,prelimlabel,yscaleslist) + experimentlabel,lumilabel,prelimlabel,yscaleslist,no_friend_tree) except Exception as e: print('error for these inputs:') From 19859d73ad35c65a55a41d9fa65dfb5baae49983 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 21 Feb 2020 16:41:28 +0100 Subject: [PATCH 206/437] changed order --- docker/Dockerfile | 61 ++++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index c67b86d..9d772e9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,36 +2,6 @@ FROM cernml4reco/djcbase:latest -ENV DEEPJETCORE /usr/share/DJC/DeepJetCore -RUN ldconfig -RUN cd /usr/share && \ - mkdir DJC && \ - cd DJC && \ - git clone https://github.com/DL4Jets/DeepJetCore && \ - cd DeepJetCore && \ - source docker_env.sh && \ - cd compiled && \ - make -j4 - - -ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" - -#/usr/local/lib is for root -ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" -ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" - - -# helpers for ragged and cuda compilation - - - -# The fix for TensorFlow - -RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ - mkdir gpus && \ - cd gpus && \ - ln -s /usr/local/cuda cuda - #eclipse rse stuff - make extern @@ -62,3 +32,34 @@ EXPOSE 8888 + +ENV DEEPJETCORE /usr/share/DJC/DeepJetCore +RUN ldconfig +RUN cd /usr/share && \ + mkdir DJC && \ + cd DJC && \ + git clone https://github.com/DL4Jets/DeepJetCore && \ + cd DeepJetCore && \ + source docker_env.sh && \ + cd compiled && \ + make -j4 + + +ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" + +#/usr/local/lib is for root +ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" +ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" + + +# helpers for ragged and cuda compilation + + + +# The fix for TensorFlow + +RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ + mkdir gpus && \ + cd gpus && \ + ln -s /usr/local/cuda cuda + \ No newline at end of file From ab8a662b2cb29f8704a39e803da5ca3eb070ce7a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 21 Feb 2020 16:43:49 +0100 Subject: [PATCH 207/437] changes in base, move to TF2 --- docker/Dockerfile | 20 -------------------- docker/Dockerfile_base | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 9d772e9..c5f8812 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -6,29 +6,9 @@ FROM cernml4reco/djcbase:latest #eclipse rse stuff - make extern -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list -RUN apt update -# do not upgrade all, because of cudnn versions etc!!! -#for eclipse stuff -RUN apt install -y default-jre -RUN apt install -y openjdk-11-jre-headless -RUN apt install -y openjdk-8-jre-headless -RUN apt install -y default-jdk -#RUN apt install -y openjdk-9-jre-headless -## torch/jupyter stuff -RUN pip install torch future - -RUN pip install gensim && \ - pip install jupyter && \ - pip install prompt-toolkit && \ - pip install seaborn - -EXPOSE 8888 - - diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 3b64b1b..ca7c5d6 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -83,6 +83,26 @@ RUN pip install setGPU RUN apt-get install -y unzip +RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list +RUN apt update +# do not upgrade all, because of cudnn versions etc!!! +#for eclipse stuff +RUN apt install -y default-jre +RUN apt install -y openjdk-11-jre-headless +RUN apt install -y openjdk-8-jre-headless +RUN apt install -y default-jdk +#RUN apt install -y openjdk-9-jre-headless + + +## torch/jupyter stuff +RUN pip install torch future + +RUN pip install gensim && \ + pip install jupyter && \ + pip install prompt-toolkit && \ + pip install seaborn + +EXPOSE 8888 #ENV DJCenvname DJCpath \ No newline at end of file From a54e660a3660e790ddf242efd87236721d863fe2 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 23 Feb 2020 15:09:56 +0100 Subject: [PATCH 208/437] tiny change --- DataCollection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DataCollection.py b/DataCollection.py index ba0696a..a675c77 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -377,7 +377,7 @@ def writeData_async(index,woq,wrlck): def removefile(): pass else: - tmpinput = tempstoragepath+'/'+str(os.getpid())+os.path.basename(sample) + tmpinput = tempstoragepath+'/'+str(os.getpid())+'_tmp_'+os.path.basename(sample) def removefile(): os.system('rm -f '+tmpinput) From 3789a67d6b6b998a5ff603c6630ffc72c6eeaaf0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 26 Feb 2020 10:46:55 +0100 Subject: [PATCH 209/437] TF2.1 and some bells and whistles on DataCollection and roc curve --- DataCollection.py | 5 +++-- bin/convertFromSource.py | 3 +++ bin/predict.py | 10 +++++----- compiled/src/rocCurve.cpp | 8 ++++---- compiled/src/rocCurveCollection.cpp | 2 +- docker/Dockerfile | 9 --------- docker/Dockerfile_base | 2 +- 7 files changed, 17 insertions(+), 22 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index a675c77..da722f2 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -30,6 +30,7 @@ def __init__(self, infile = None, nprocs = -1): ''' self.clear() + self.istestdata=False self.batch_uses_sum_of_squares=False self.gen = None self.__batchsize=1 @@ -338,7 +339,7 @@ def __writeData(self, sample, outputDir): newname = sbasename[:sbasename.rfind('.')]+'.djctd' newpath=os.path.abspath(outputDir+newname) - td.writeFromSourceFile(sample, self.weighterobjects, istraining=True, outname=newpath) + td.writeFromSourceFile(sample, self.weighterobjects, istraining=not self.istestdata, outname=newpath) print('converted and written '+newname+' in ',sw.getAndReset(),' sec') self.samples.append(newname) @@ -399,7 +400,7 @@ def removefile(): try: logger.info('convertFromSourceFile') - td.writeFromSourceFile(tmpinput, self.weighterobjects, istraining = True, outname=newpath) + td.writeFromSourceFile(tmpinput, self.weighterobjects, istraining = not self.istestdata, outname=newpath) print('converted and written '+newname+' in ',sw.getAndReset(),' sec -', index) out_samplename=newname diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index b415f2d..3baa057 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -36,6 +36,7 @@ parser.add_argument("--noramcopy", action='store_true', help='Do not copy input file to /dev/shm before conversion') parser.add_argument("-v", action='store_true', help='verbose') parser.add_argument("-q", action='store_true', help='quiet') +parser.add_argument("--testdata", action='store_true', help='convert as test data') # process options args=parser.parse_args() @@ -46,6 +47,7 @@ usemeansfrom=args.usemeansfrom nchilds=args.n dofilecheck=args.checkFiles +testdata = args.testdata #fileIsValid @@ -91,6 +93,7 @@ dc = DataCollection(nprocs = (1 if args.nothreads else -1)) dc.meansnormslimit = int(args.nforweighter) dc.no_copy_on_convert = args.noramcopy +dc.istestdata=testdata if len(nchilds): dc.nprocs=int(nchilds) if args.batch is not None: diff --git a/bin/predict.py b/bin/predict.py index d478e93..48fceb7 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -19,11 +19,11 @@ from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator import tempfile import atexit -try: - imp.find_module('setGPU') - import setGPU -except ImportError: - found = False +#try: +# imp.find_module('setGPU') +# import setGPU +#except ImportError: +# found = False from keras.models import load_model from DeepJetCore.DJCLosses import * diff --git a/compiled/src/rocCurve.cpp b/compiled/src/rocCurve.cpp index dcf2592..8cb392e 100644 --- a/compiled/src/rocCurve.cpp +++ b/compiled/src/rocCurve.cpp @@ -124,10 +124,10 @@ void rocCurve::process(TChain *c,std::ostream& out){ nrcc+=nrocsCounter; TCanvas cv;//just a dummy - probh_=TH1D("prob"+nrcc,"prob"+nrcc,nbins_,0,1); - vetoh_=TH1D("veto"+nrcc,"veto"+nrcc,nbins_,0,1); - invalidate_=TH1D("invalid"+nrcc,"invalid"+nrcc,nbins_,0,1); - invalidate_veto_=TH1D("invalid_veto"+nrcc,"invalid_veto"+nrcc,nbins_,0,1); + probh_=TH1D("prob"+nrcc,"prob"+nrcc,nbins_,0,1.+0.00001); + vetoh_=TH1D("veto"+nrcc,"veto"+nrcc,nbins_,0,1.+0.00001); + invalidate_=TH1D("invalid"+nrcc,"invalid"+nrcc,nbins_,0,1.+0.00001); + invalidate_veto_=TH1D("invalid_veto"+nrcc,"invalid_veto"+nrcc,nbins_,0,1.+0.00001); c->Draw(probstr+">>prob"+nrcc,allcuts);//probcuts); diff --git a/compiled/src/rocCurveCollection.cpp b/compiled/src/rocCurveCollection.cpp index 8b6f8e2..d2b8c23 100644 --- a/compiled/src/rocCurveCollection.cpp +++ b/compiled/src/rocCurveCollection.cpp @@ -106,7 +106,7 @@ void rocCurveCollection::printRocs(TChain* c, const TString& outpdf, TH1D haxis=TH1D("AXIS","AXIS",10,0,1.); //haxis.Draw("AXIS"); - haxis.GetYaxis()->SetRangeUser(8e-4,maxyscale); + haxis.GetYaxis()->SetRangeUser(maxyscale*8e-4,maxyscale); //haxis.GetYaxis()->SetNdivisions(510); haxis.GetYaxis()->SetTitleSize(0.05); diff --git a/docker/Dockerfile b/docker/Dockerfile index c5f8812..4297b5a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -4,15 +4,6 @@ FROM cernml4reco/djcbase:latest -#eclipse rse stuff - make extern - - - - - - - - ENV DEEPJETCORE /usr/share/DJC/DeepJetCore RUN ldconfig RUN cd /usr/share && \ diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index ca7c5d6..846e73e 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -57,7 +57,7 @@ RUN pip install easydict tqdm RUN pip install Cython RUN pip install numba -RUN pip --no-cache-dir install tensorflow-gpu==2.0 +RUN pip --no-cache-dir install tensorflow-gpu==2.1 RUN apt-get update --fix-missing From 683b7c7cc1b21d921ef9acf9be0681f47809cd53 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 26 Feb 2020 13:57:04 +0100 Subject: [PATCH 210/437] cuda 10.1 --- docker/Dockerfile_base | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 846e73e..0dc5ba0 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -57,6 +57,25 @@ RUN pip install easydict tqdm RUN pip install Cython RUN pip install numba +#already in the container from nvidia +#RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ +# dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ +# apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub &&\ +# apt-get update &&\ +# wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ +# apt install -y ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ +# apt-get update +# +RUN apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \ + cuda-10-1 \ + libcudnn7=7.6.4.38-1+cuda10.1 \ + libcudnn7-dev=7.6.4.38-1+cuda10.1 + +#will also get new cuda version +RUN apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \ + libnvinfer-dev=6.0.1-1+cuda10.1 \ + libnvinfer-plugin6=6.0.1-1+cuda10.1 + RUN pip --no-cache-dir install tensorflow-gpu==2.1 RUN apt-get update --fix-missing From 7dca38f417193ea2a800b4571583e621759cc402 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 27 Feb 2020 18:05:19 +0100 Subject: [PATCH 211/437] skim bugfix --- compiled/interface/trainData.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 289a1fd..a7d79e6 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -498,15 +498,15 @@ void trainData::skim(size_t batchelement){ throw std::out_of_range("trainData::skim: batch element out of range"); for(auto & a : feature_arrays_){ a.split(batchelement); - a.split(1); + a=a.split(1); } for(auto & a : truth_arrays_){ a.split(batchelement); - a.split(1); + a=a.split(1); } for(auto & a : weight_arrays_){ a.split(batchelement); - a.split(1); + a=a.split(1); } updateShapes(); } From f9362b659303d44bd0773e088286bd7130f75db3 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 14:20:30 +0100 Subject: [PATCH 212/437] snapsho --- docker/Dockerfile | 141 +++++++++++++++++++++++++++++++++++++++-- docker/Dockerfile_base | 12 ++-- 2 files changed, 144 insertions(+), 9 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 4297b5a..be7fd6d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,8 +1,143 @@ -FROM cernml4reco/djcbase:latest +FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 +SHELL ["/bin/bash", "-c"] + +RUN apt-get update +RUN apt-get install -y python2.7-dev python-pip nano emacs +RUN apt-get install -y wget +RUN apt-get install -y libboost-all-dev +RUN apt-get install -y git + + +## root part +RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev +RUN apt-get install -y cmake + +RUN mkdir /temproot && \ + cd /temproot && \ + git clone http://github.com/root-project/root.git && \ + cd root && \ + git checkout -b v6-18-04 v6-18-04 +RUN cd /temproot && \ + mkdir build && \ + cd build && \ + cmake ../root +RUN cd /temproot/build && \ + make -j5 && \ + make install && \ + rm -rf /temproot + + +#ensure import ROOT +ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" + + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y python-tk +RUN apt-get install -y locales + +RUN pip install --upgrade pip + +RUN pip install numpy +RUN pip install root_numpy +RUN pip install scikit-learn +RUN pip install scikit-image +RUN pip install h5py +RUN pip install uproot Pillow scipy seaborn +RUN pip install scikit-learn +RUN pip install scikit-image +RUN pip install matplotlib + +#may be useful +RUN pip install opencv-python +RUN pip install easydict tqdm +RUN pip install Cython +RUN pip install numba + +#already in the container from nvidia +#RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ +# dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ +# apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub &&\ +# apt-get update &&\ +# wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ +# apt install -y ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ +# apt-get update +# +#RUN export DEBIAN_FRONTEND=noninteractive && \ +# apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \ +# cuda-10-1 \ +# libcudnn7=7.6.4.38-1+cuda10.1 \ +# libcudnn7-dev=7.6.4.38-1+cuda10.1 +# +##will also get new cuda version +#RUN export DEBIAN_FRONTEND=noninteractive && \ +# apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \ +# libnvinfer-dev=6.0.1-1+cuda10.1 \ +# libnvinfer-plugin6=6.0.1-1+cuda10.1 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + pip --no-cache-dir install tensorflow-gpu==2.1 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update --fix-missing + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y krb5-user && \ + sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf + +#for me ;) + +RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list + +RUN apt-get update --fix-missing +RUN apt-get install -y zsh + +RUN apt-get install -y ffmpeg +#not yet RUN apt-get install -y nvtop + +##gpu specific stuff +RUN pip install gpustat +RUN pip install setGPU + + +RUN apt-get install -y unzip + + +RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list +RUN apt update +# do not upgrade all, because of cudnn versions etc!!! +#for eclipse stuff +RUN apt install -y default-jre +RUN apt install -y openjdk-11-jre-headless +RUN apt install -y openjdk-8-jre-headless +RUN apt install -y default-jdk +#RUN apt install -y openjdk-9-jre-headless + + + +## torch/jupyter stuff +RUN pip install torch future + +RUN pip install gensim && \ + pip install jupyter && \ + pip install prompt-toolkit && \ + pip install seaborn + +EXPOSE 8888 + + +RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ + mkdir gpus && \ + cd gpus && \ + ln -s /usr/local/cuda cuda + +################################################################################ +# the actual DeepJetCore. Make sure this gets built every time + +ARG BUILD_DATE ENV DEEPJETCORE /usr/share/DJC/DeepJetCore RUN ldconfig @@ -29,8 +164,4 @@ ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" # The fix for TensorFlow -RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ - mkdir gpus && \ - cd gpus && \ - ln -s /usr/local/cuda cuda \ No newline at end of file diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 0dc5ba0..5a65483 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -66,19 +66,23 @@ RUN pip install numba # apt install -y ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ # apt-get update # -RUN apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \ +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \ cuda-10-1 \ libcudnn7=7.6.4.38-1+cuda10.1 \ libcudnn7-dev=7.6.4.38-1+cuda10.1 #will also get new cuda version -RUN apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \ +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \ libnvinfer-dev=6.0.1-1+cuda10.1 \ libnvinfer-plugin6=6.0.1-1+cuda10.1 -RUN pip --no-cache-dir install tensorflow-gpu==2.1 +RUN export DEBIAN_FRONTEND=noninteractive && \ + pip --no-cache-dir install tensorflow-gpu==2.1 -RUN apt-get update --fix-missing +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update --fix-missing RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get install -y krb5-user && \ From 61b515659f6177242d0f46e800d70bfbfaeaba71 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 14:22:27 +0100 Subject: [PATCH 213/437] to auto builds --- docker/Dockerfile | 1 + docker/Dockerfile_base | 131 ----------------------------------------- docker/hooks/build | 7 +++ 3 files changed, 8 insertions(+), 131 deletions(-) delete mode 100644 docker/Dockerfile_base create mode 100644 docker/hooks/build diff --git a/docker/Dockerfile b/docker/Dockerfile index be7fd6d..65376e8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -138,6 +138,7 @@ RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_part # the actual DeepJetCore. Make sure this gets built every time ARG BUILD_DATE +LABEL org.label.build-date=$BUILD_DATE ENV DEEPJETCORE /usr/share/DJC/DeepJetCore RUN ldconfig diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base deleted file mode 100644 index 5a65483..0000000 --- a/docker/Dockerfile_base +++ /dev/null @@ -1,131 +0,0 @@ - - -FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 - - -SHELL ["/bin/bash", "-c"] - -RUN apt-get update -RUN apt-get install -y python2.7-dev python-pip nano emacs -RUN apt-get install -y wget -RUN apt-get install -y libboost-all-dev -RUN apt-get install -y git - - -## root part -RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev -RUN apt-get install -y cmake - -RUN mkdir /temproot && \ - cd /temproot && \ - git clone http://github.com/root-project/root.git && \ - cd root && \ - git checkout -b v6-18-04 v6-18-04 -RUN cd /temproot && \ - mkdir build && \ - cd build && \ - cmake ../root -RUN cd /temproot/build && \ - make -j5 && \ - make install && \ - rm -rf /temproot - - -#ensure import ROOT -ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" - - -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y python-tk -RUN apt-get install -y locales - -RUN pip install --upgrade pip - -RUN pip install numpy -RUN pip install root_numpy -RUN pip install scikit-learn -RUN pip install scikit-image -RUN pip install h5py -RUN pip install uproot Pillow scipy seaborn -RUN pip install scikit-learn -RUN pip install scikit-image -RUN pip install matplotlib - -#may be useful -RUN pip install opencv-python -RUN pip install easydict tqdm -RUN pip install Cython -RUN pip install numba - -#already in the container from nvidia -#RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ -# dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ -# apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub &&\ -# apt-get update &&\ -# wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ -# apt install -y ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ -# apt-get update -# -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \ - cuda-10-1 \ - libcudnn7=7.6.4.38-1+cuda10.1 \ - libcudnn7-dev=7.6.4.38-1+cuda10.1 - -#will also get new cuda version -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \ - libnvinfer-dev=6.0.1-1+cuda10.1 \ - libnvinfer-plugin6=6.0.1-1+cuda10.1 - -RUN export DEBIAN_FRONTEND=noninteractive && \ - pip --no-cache-dir install tensorflow-gpu==2.1 - -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get update --fix-missing - -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y krb5-user && \ - sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf - -#for me ;) - -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list - -RUN apt-get update --fix-missing -RUN apt-get install -y zsh - -RUN apt-get install -y ffmpeg -#not yet RUN apt-get install -y nvtop - -##gpu specific stuff -RUN pip install gpustat -RUN pip install setGPU - - -RUN apt-get install -y unzip - - -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list -RUN apt update -# do not upgrade all, because of cudnn versions etc!!! -#for eclipse stuff -RUN apt install -y default-jre -RUN apt install -y openjdk-11-jre-headless -RUN apt install -y openjdk-8-jre-headless -RUN apt install -y default-jdk -#RUN apt install -y openjdk-9-jre-headless - - - -## torch/jupyter stuff -RUN pip install torch future - -RUN pip install gensim && \ - pip install jupyter && \ - pip install prompt-toolkit && \ - pip install seaborn - -EXPOSE 8888 - -#ENV DJCenvname DJCpath \ No newline at end of file diff --git a/docker/hooks/build b/docker/hooks/build new file mode 100644 index 0000000..7cfc314 --- /dev/null +++ b/docker/hooks/build @@ -0,0 +1,7 @@ +#!/bin/bash + + +# $IMAGE_NAME var is injected into the build so the tag is correct. + + +docker build --build-arg BUILD_DATE=`date -u +”%Y-%m-%dT%H:%M:%SZ”` -t $IMAGE_NAME . \ No newline at end of file From bea7dc59c8df2db8cec245c0a95d6e713115ee0a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 14:24:16 +0100 Subject: [PATCH 214/437] label update --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 65376e8..27ba8f3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -138,7 +138,7 @@ RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_part # the actual DeepJetCore. Make sure this gets built every time ARG BUILD_DATE -LABEL org.label.build-date=$BUILD_DATE +LABEL org.label-schema.build-date=$BUILD_DATE ENV DEEPJETCORE /usr/share/DJC/DeepJetCore RUN ldconfig From 6d221fc04c633c26987f2c08035eceff2780ee0e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 16:46:47 +0100 Subject: [PATCH 215/437] tag snapsho --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 27ba8f3..abfc052 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -79,7 +79,7 @@ RUN pip install numba # libnvinfer-plugin6=6.0.1-1+cuda10.1 RUN export DEBIAN_FRONTEND=noninteractive && \ - pip --no-cache-dir install tensorflow-gpu==2.1 + pip --no-cache-dir install tensorflow-gpu==1.15 RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update --fix-missing From b62732b19c62cffe91b9c3ea615a9c05b01401bf Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 16:47:36 +0100 Subject: [PATCH 216/437] done tagging --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index abfc052..27ba8f3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -79,7 +79,7 @@ RUN pip install numba # libnvinfer-plugin6=6.0.1-1+cuda10.1 RUN export DEBIAN_FRONTEND=noninteractive && \ - pip --no-cache-dir install tensorflow-gpu==1.15 + pip --no-cache-dir install tensorflow-gpu==2.1 RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update --fix-missing From a90cf46f95afddb1c3ace9c859c9801cf2872d6e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 16:59:03 +0100 Subject: [PATCH 217/437] 2.2.+2.1 commit --- docker/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 27ba8f3..a2ce909 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -147,6 +147,7 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ + git checkout 2.2_tf2.1 &&\ source docker_env.sh && \ cd compiled && \ make -j4 From d57e28fda699644b3d8ca110159508e3b1016052 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 17:00:58 +0100 Subject: [PATCH 218/437] 2.2 tf1.15 --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index a2ce909..f358f44 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -79,7 +79,7 @@ RUN pip install numba # libnvinfer-plugin6=6.0.1-1+cuda10.1 RUN export DEBIAN_FRONTEND=noninteractive && \ - pip --no-cache-dir install tensorflow-gpu==2.1 + pip --no-cache-dir install tensorflow-gpu==1.15 RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update --fix-missing @@ -147,7 +147,7 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ - git checkout 2.2_tf2.1 &&\ + git checkout 2.2_tf1.15 &&\ source docker_env.sh && \ cd compiled && \ make -j4 From 68eebee7337dfa839db628f6e11c0ddfd328c755 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 17:01:54 +0100 Subject: [PATCH 219/437] update --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index f358f44..3f0df7e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -79,7 +79,7 @@ RUN pip install numba # libnvinfer-plugin6=6.0.1-1+cuda10.1 RUN export DEBIAN_FRONTEND=noninteractive && \ - pip --no-cache-dir install tensorflow-gpu==1.15 + pip --no-cache-dir install tensorflow-gpu==2.1 RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update --fix-missing @@ -147,7 +147,7 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ - git checkout 2.2_tf1.15 &&\ +# git checkout 2.2_tf1.15 &&\ source docker_env.sh && \ cd compiled && \ make -j4 From 0b58866aa12c4d50391772ecc6c46e1b0dd47f75 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 21:56:37 +0100 Subject: [PATCH 220/437] split bc of auto builds --- docker/Dockerfile | 123 ++--------------------------------------- docker/Dockerfile_base | 107 +++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+), 118 deletions(-) create mode 100644 docker/Dockerfile_base diff --git a/docker/Dockerfile b/docker/Dockerfile index 3f0df7e..724b8b1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,123 +1,14 @@ - -FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 - - -SHELL ["/bin/bash", "-c"] - -RUN apt-get update -RUN apt-get install -y python2.7-dev python-pip nano emacs -RUN apt-get install -y wget -RUN apt-get install -y libboost-all-dev -RUN apt-get install -y git - - -## root part -RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev -RUN apt-get install -y cmake - -RUN mkdir /temproot && \ - cd /temproot && \ - git clone http://github.com/root-project/root.git && \ - cd root && \ - git checkout -b v6-18-04 v6-18-04 -RUN cd /temproot && \ - mkdir build && \ - cd build && \ - cmake ../root -RUN cd /temproot/build && \ - make -j5 && \ - make install && \ - rm -rf /temproot - - -#ensure import ROOT -ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" - - -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y python-tk -RUN apt-get install -y locales - -RUN pip install --upgrade pip - -RUN pip install numpy -RUN pip install root_numpy -RUN pip install scikit-learn -RUN pip install scikit-image -RUN pip install h5py -RUN pip install uproot Pillow scipy seaborn -RUN pip install scikit-learn -RUN pip install scikit-image -RUN pip install matplotlib - -#may be useful -RUN pip install opencv-python -RUN pip install easydict tqdm -RUN pip install Cython -RUN pip install numba - -#already in the container from nvidia -#RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ -# dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ -# apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub &&\ -# apt-get update &&\ -# wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ -# apt install -y ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ -# apt-get update -# -#RUN export DEBIAN_FRONTEND=noninteractive && \ -# apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \ -# cuda-10-1 \ -# libcudnn7=7.6.4.38-1+cuda10.1 \ -# libcudnn7-dev=7.6.4.38-1+cuda10.1 -# -##will also get new cuda version -#RUN export DEBIAN_FRONTEND=noninteractive && \ -# apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \ -# libnvinfer-dev=6.0.1-1+cuda10.1 \ -# libnvinfer-plugin6=6.0.1-1+cuda10.1 +FROM cernml4reco/djcbase:latest RUN export DEBIAN_FRONTEND=noninteractive && \ pip --no-cache-dir install tensorflow-gpu==2.1 - -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get update --fix-missing -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y krb5-user && \ - sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf +RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ + mkdir gpus && \ + cd gpus && \ + ln -s /usr/local/cuda cuda -#for me ;) - -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list - -RUN apt-get update --fix-missing -RUN apt-get install -y zsh - -RUN apt-get install -y ffmpeg -#not yet RUN apt-get install -y nvtop - -##gpu specific stuff -RUN pip install gpustat -RUN pip install setGPU - - -RUN apt-get install -y unzip - - -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list -RUN apt update -# do not upgrade all, because of cudnn versions etc!!! -#for eclipse stuff -RUN apt install -y default-jre -RUN apt install -y openjdk-11-jre-headless -RUN apt install -y openjdk-8-jre-headless -RUN apt install -y default-jdk -#RUN apt install -y openjdk-9-jre-headless - - - ## torch/jupyter stuff RUN pip install torch future @@ -129,10 +20,6 @@ RUN pip install gensim && \ EXPOSE 8888 -RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ - mkdir gpus && \ - cd gpus && \ - ln -s /usr/local/cuda cuda ################################################################################ # the actual DeepJetCore. Make sure this gets built every time diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base new file mode 100644 index 0000000..7a683a1 --- /dev/null +++ b/docker/Dockerfile_base @@ -0,0 +1,107 @@ + +FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 + + +SHELL ["/bin/bash", "-c"] + +RUN apt-get update +RUN apt-get install -y python2.7-dev python-pip nano emacs +RUN apt-get install -y wget +RUN apt-get install -y libboost-all-dev +RUN apt-get install -y git + + +## root part +RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev +RUN apt-get install -y cmake + +RUN mkdir /temproot && \ + cd /temproot && \ + git clone http://github.com/root-project/root.git && \ + cd root && \ + git checkout -b v6-18-04 v6-18-04 +RUN cd /temproot && \ + mkdir build && \ + cd build && \ + cmake ../root +RUN cd /temproot/build && \ + make -j5 && \ + make install && \ + rm -rf /temproot + + +#ensure import ROOT +ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" + + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y python-tk +RUN apt-get install -y locales + +RUN pip install --upgrade pip + +RUN pip install numpy +RUN pip install root_numpy +RUN pip install scikit-learn +RUN pip install scikit-image +RUN pip install h5py +RUN pip install uproot Pillow scipy seaborn +RUN pip install scikit-learn +RUN pip install scikit-image +RUN pip install matplotlib + +#may be useful +RUN pip install opencv-python +RUN pip install easydict tqdm +RUN pip install Cython +RUN pip install numba + +#already in the container from nvidia +#RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ +# dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ +# apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub &&\ +# apt-get update &&\ +# wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ +# apt install -y ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ +# apt-get update +# +#RUN export DEBIAN_FRONTEND=noninteractive && \ +# apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \ +# cuda-10-1 \ +# libcudnn7=7.6.4.38-1+cuda10.1 \ +# libcudnn7-dev=7.6.4.38-1+cuda10.1 +# +##will also get new cuda version +#RUN export DEBIAN_FRONTEND=noninteractive && \ +# apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \ +# libnvinfer-dev=6.0.1-1+cuda10.1 \ +# libnvinfer-plugin6=6.0.1-1+cuda10.1 + + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update --fix-missing + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y krb5-user && \ + sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf + +#for me ;) + +RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list + +RUN apt-get update --fix-missing +RUN apt-get install -y zsh + +RUN apt-get install -y ffmpeg +#not yet RUN apt-get install -y nvtop + +##gpu specific stuff +RUN pip install gpustat +RUN pip install setGPU + + +RUN apt-get install -y unzip + + +RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list +RUN apt update From f76393af6e76dd64fb2c145dd17de3c3b1812a6e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 22:08:13 +0100 Subject: [PATCH 221/437] 2.2 tf2.1 --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 724b8b1..aeaa07f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,5 +1,5 @@ -FROM cernml4reco/djcbase:latest +FROM cernml4reco/djcbase:py2 RUN export DEBIAN_FRONTEND=noninteractive && \ pip --no-cache-dir install tensorflow-gpu==2.1 @@ -34,7 +34,7 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ -# git checkout 2.2_tf1.15 &&\ + git checkout 2.2_tf2.1 &&\ source docker_env.sh && \ cd compiled && \ make -j4 From 02b2951e34222ef2ffcf3fbbf097e3572b364c8a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 22:10:57 +0100 Subject: [PATCH 222/437] TF1.15 tag --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index aeaa07f..67e9bac 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,7 @@ FROM cernml4reco/djcbase:py2 RUN export DEBIAN_FRONTEND=noninteractive && \ - pip --no-cache-dir install tensorflow-gpu==2.1 + pip --no-cache-dir install tensorflow-gpu==1.15 RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ mkdir gpus && \ @@ -34,7 +34,7 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ - git checkout 2.2_tf2.1 &&\ + git checkout 2.2_tf1.15 &&\ source docker_env.sh && \ cd compiled && \ make -j4 From b3030de0dcc3805fadfd54be57de587bb7f44ff6 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 28 Feb 2020 22:12:55 +0100 Subject: [PATCH 223/437] latest tag master --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 67e9bac..146c5fb 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,7 @@ FROM cernml4reco/djcbase:py2 RUN export DEBIAN_FRONTEND=noninteractive && \ - pip --no-cache-dir install tensorflow-gpu==1.15 + pip --no-cache-dir install tensorflow-gpu==2.1 RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ mkdir gpus && \ @@ -34,7 +34,7 @@ RUN cd /usr/share && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ - git checkout 2.2_tf1.15 &&\ +# git checkout 2.2_tf1.15 &&\ source docker_env.sh && \ cd compiled && \ make -j4 From 08a1674e36afe23368e1e0fcb68d63267ff918a5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 9 Mar 2020 15:03:32 +0100 Subject: [PATCH 224/437] readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e8d641a..2913118 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Setup The package comes with a docker file in the subdirectory docker, which will set up a container with the needed environment. **Building / using the container** -For every release, there is a container on dockerhub, the latest release is tagged as ``latest``. +For every release, there is a container on dockerhub, the latest release is tagged. The ``latest`` tag refers to the developing master branch. ``cernml4reco/deepjetcore2:latest`` It can be pulled using docker, or pulled from singularity. For details, please see the corresponding docker or singularity documentation. To build the container, the files can be found in the ``docker`` subdirectory. It is a two-stage process. First the container ``Dockerfile_base`` needs to be built, containing the basic system packages. This will take a while, because root is being compiled within. The output container name must be ``cernml4reco/djcbase:latest``. In the next step, the actual DeepJetCore container should be built on top. **Please make sure to use a release, not the developing master branch!** From f957fb1a6acdaaa745cbe23ea48e52908031a8e2 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 9 Mar 2020 19:30:00 +0100 Subject: [PATCH 225/437] splitting and test --- compiled/interface/simpleArray.h | 166 ++++++++++++++++++------ compiled/interface/trainDataGenerator.h | 46 +++---- testing/CI/testGenerator_splitting.py | 122 +++++++++++++++++ 3 files changed, 262 insertions(+), 72 deletions(-) create mode 100644 testing/CI/testGenerator_splitting.py diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 4d47588..6621b5b 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -26,6 +26,7 @@ #include "version.h" #include #include +#include namespace djc{ @@ -176,6 +177,24 @@ class simpleArray { */ static size_t findElementSplitLength(const std::vector & rowsplits, size_t nelements, size_t& startat, bool & exceeds_limit, bool sqelementslimit=false); + + /** + * Split indices can directly be used with the split() function. + * Returns e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} + */ + static std::vector getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit=false, std::vector& size_ok=std::vector()); + + /** + * Split indices can directly be used with the split() function. + * Returns e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} + */ + static std::vector getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit=false, std::vector& size_ok=std::vector()); + + static std::vector dataSplitToSplitIndices(const std::vector& data_splits); + static std::vector splitToDataSplitIndices(const std::vector& data_splits); + static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); @@ -218,6 +237,10 @@ class simpleArray { void checkSize(size_t idx)const; void checkRaggedIndex(size_t i, size_t j)const; + static std::vector priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit=false, std::vector& size_ok=std::vector()); + + #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS std::vector makeNumpyShape()const; @@ -370,8 +393,15 @@ template simpleArray simpleArray::split(size_t splitindex) { simpleArray out; if (!shape_.size() || ( !isRagged() && splitindex > shape_.at(0))) { + std::stringstream errMsg; + errMsg << "simpleArray::split: splitindex > shape_[0] : "; + if(shape_.size()) + errMsg << splitindex << ", " << shape_.at(0); + else + errMsg <<"shape size: " << shape_.size() <<" empty array cannot be split."; + cout(); throw std::runtime_error( - "simpleArray::split: splitindex > shape_[0]"); + errMsg.str().c_str()); } if(splitindex == shape_.at(0)){//exactly the whole array out = *this; @@ -602,51 +632,105 @@ void simpleArray::cout()const{ std::cout << std::endl; } + + template -size_t simpleArray::findElementSplitLength(const std::vector & rs, size_t nelements, - size_t& startat, bool & exceeds_limit, bool sqelementslimit){ - if(startat >= rs.size()) - throw std::out_of_range("simpleArray::findElementSplitPoint: startat"); - - exceeds_limit=false; - size_t elements_accumulated=0; - size_t new_elements_accumulated=0; - const size_t& start_rowsplit = rs.at(startat); - size_t totalaccumulated = 0; - size_t startedat = startat; - - for(size_t i=startedat; i < rs.size()-1;i++){ - size_t to_add = rs.at(i+1) - rs.at(i); - if(sqelementslimit) - to_add *= to_add; - - //std::cout << "i "<< i << std::endl; - //std::cout << "to_add "<< to_add << std::endl; - //std::cout << "sqrt(to_add) "<< std::sqrt(to_add) << std::endl; - //std::cout << "new_elements_accumulated "<< new_elements_accumulated << std::endl; - //std::cout << "elements_accumulated "<< elements_accumulated << std::endl; - //std::cout << "startat "<< startat << std::endl; - - - //start at next for next iteration - - - new_elements_accumulated += to_add; - if(new_elements_accumulated > nelements){ - if(elements_accumulated == 0){ - exceeds_limit=true; - startat = i+1; - return new_elements_accumulated; - } - startat = i; - return elements_accumulated; + std::vector simpleArray::priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit, std::vector& size_ok){ + + std::vector outIdxs; + size_ok.clear(); + if(rowsplits.size()<1) + return outIdxs; + + size_t i_old=0; + size_t s_old = 0; + size_t i_s = 0; + while (true) { + + size_t s = rowsplits.at(i_s); + size_t delta = s - s_old; + size_t i_splitat = rowsplits.size()+1; + + if (sqelementslimit) + delta *= delta; + + if (delta > nelements_limit && i_s != i_old+1) { + i_splitat = i_s - 1; + i_s--; + } + else if (delta == nelements_limit || + i_s == rowsplits.size() - 1 || + (delta > nelements_limit && i_s == i_old+1)) { + i_splitat = i_s; + } + + + if (i_splitat < rowsplits.size()+1) { //split + bool is_good = (rowsplits.at(i_splitat) - rowsplits.at(i_old) + <= nelements_limit); + size_ok.push_back(is_good); + + + if(datasplit) + outIdxs.push_back(i_splitat); + else + outIdxs.push_back(i_splitat - i_old); + + + std::cout << "i_old " << i_old << "\n"; + std::cout << "i_s " << i_s << "\n"; + std::cout << "s_old " << s_old << "\n"; + std::cout << "s " << s << "\n"; + std::cout << "i_splitat " << i_splitat << "\n"; + std::cout << "is_good " << is_good << "\n"; + std::cout << "i_splitat - i_old " << i_splitat - i_old << "\n"; + std::cout << std::endl; + + i_old = i_splitat; + s_old = rowsplits.at(i_old); + //i_s = i_splitat; + } - elements_accumulated = new_elements_accumulated; + i_s++; + if(i_s == rowsplits.size()) + break; } - startat = rs.size()-1; - return elements_accumulated; + + return outIdxs; +} +/** + * Split indices can directly be used with the split() function. + * Returns e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} + */ +template +std::vector simpleArray::getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit, std::vector& size_ok){ + return priv_getSplitIndices(false, rowsplits, nelements_limit, sqelementslimit, size_ok); } +/** + * Split indices can directly be used with the split() function. + * Returns e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} + */ + +template +std::vector simpleArray::getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit, std::vector& size_ok){ + return priv_getSplitIndices(true, rowsplits, nelements_limit, sqelementslimit, size_ok); +} + +template +std::vector simpleArray::dataSplitToSplitIndices(const std::vector& data_splits){ + return std::vector(); +} + +template +std::vector simpleArray::splitToDataSplitIndices(const std::vector& data_splits){ + return std::vector(); +} + + template std::vector simpleArray::readRowSplitsFromFileP(FILE *& ifile, bool seeknext){ diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 70c6b4e..bdbf019 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -142,6 +142,7 @@ class trainDataGenerator{ std::string nextread_; size_t filecount_; size_t nbatches_; + size_t npossiblebatches_; size_t ntotal_; size_t nsamplesprocessed_; size_t lastbatchsize_; @@ -154,7 +155,7 @@ class trainDataGenerator{ template trainDataGenerator::trainDataGenerator() :debug(false), randomcount_(1), batchsize_(2),sqelementslimit_(false),skiplargebatches_(true), readthread_(0), filecount_(0), nbatches_( - 0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), + 0), npossiblebatches_(0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), batchcount_(0){ } @@ -309,40 +310,22 @@ void trainDataGenerator::prepareSplitting(){ std::cout << std::endl; } - int debugcounter = 0; + splits_ = simpleArray::getSplitIndices(allrs, batchsize_,sqelementslimit_ , usebatch_); - std::vector batchlengths; - size_t startnextat=0; - while(startnextat < allrs.size()-1){ - bool exceeds=true; - - size_t initialpoint = startnextat; - size_t batchlength = simpleArray::findElementSplitLength(allrs, batchsize_, startnextat,exceeds, sqelementslimit_); - size_t splitpoint = startnextat - initialpoint ;//since it will have been split off before - - if(!skiplargebatches_) - exceeds=false; - - splits_.push_back(splitpoint); - batchlengths.push_back(batchlength); - usebatch_.push_back(!exceeds); - - if(debug && debugcounter<100) - std::cout << ">>>> batch with size " << std::sqrt((float)batchlength) << " use " << !exceeds << " next start "<< startnextat<< " splitpoint "<200)nprint=200; for(size_t i=0;i< nprint;i++){ - std::cout << batchlengths.at(i) ; + std::cout << i ; if(usebatch_.at(i)) std::cout << " ok, split " ; else @@ -374,7 +357,7 @@ bool trainDataGenerator::tdHasRaggedDimension(const trainData& td)const{ template bool trainDataGenerator::lastBatch()const{ - return batchcount_ >= getNBatches() -1 ; + return batchcount_ >= npossiblebatches_ -1 ; } @@ -480,16 +463,17 @@ trainData trainDataGenerator::prepareBatch(){ } auto thisbatch = buffer_store.split(expect_batchelements); + if(thisbatch.nTotalElements() < 1){ //not sure why this can happen, there might be some bigger problem here. This at least prevents crashes. - return prepareBatch(); + // return prepareBatch(); } if(debug) std::cout << "providing batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+expect_batchelements << " elements in buffer before: " << bufferelements << "\nsplitting at " << expect_batchelements << " use this batch "<< usebatch - << " total elements " << thisbatch.nTotalElements() << std::endl; + << " total elements " << thisbatch.nTotalElements() << " elements left in buffer " << buffer_store.nElements()<< std::endl; if(debug){ int dbpcount=0; diff --git a/testing/CI/testGenerator_splitting.py b/testing/CI/testGenerator_splitting.py new file mode 100644 index 0000000..b125672 --- /dev/null +++ b/testing/CI/testGenerator_splitting.py @@ -0,0 +1,122 @@ + +from DeepJetCore.compiled.c_simpleArray import simpleArray +from DeepJetCore.TrainData import TrainData +import numpy as np +import time +import copy +from DeepJetCore.TrainData import TrainData + +data = np.arange(0, 64 , dtype='float32') +data = np.reshape(data, [-1,2]) + +rowsplits = np.array([0, 2, 3, 7, 8, 11, 18, 19, 23, 25, 27, len(data)], dtype='int64') + +truth = np.arange(0, len(rowsplits)-1 , dtype='float32') + +batchsizes = [3, + 5, + 10] + +expected_elmts = [[2,None,1,1,None,1,None,1,1,None], + [2,2,1,None,2,2,1], + [4,2,4,1] + ] + +#print(data) + + +#arr.readFromFile("testfile.djcd") + + +#id, rs = arr.transferToNumpy() + +print(data) +print(rowsplits) + + +#arr.readFromFile("testfile_plain.djcd") +# +#id, rs = arr.transferToNumpy() +# +#print(id) +#print(rs) +# +print("now for the creation, see if it checks out") +arr = simpleArray() + +#check for mem leaks +arr.createFromNumpy(data, rowsplits)#), rowsplits) + +trutharr = simpleArray() +trutharr.createFromNumpy(truth, np.array([])) + +truth_array = simpleArray() +truth_array.createFromNumpy(truth, np.array([])) + + +arr.cout() + +td = TrainData() +td.storeFeatureArray(arr) +td.storeTruthArray(truth_array) + + +print('td.nElements()',td.nElements()) + + +filenames = ["file1.djctd"] +for f in filenames: + td.writeToFile(f) + +print("check generator") +from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator + + + + +for b in range(len(batchsizes)): + batchsize=batchsizes[b] + expected_here = expected_elmts[b] + + gen = trainDataGenerator() + gen.debug=True + #gen.setSquaredElementsLimit(True) + gen.setBatchSize(batchsize) + print('batchsize',batchsize) + print('reading in info') + gen.setFileList(filenames) + print('done reading in') + + + #print("expect: 5, 4, 4, 5, 4, 4 = 6 ") + nbatches = gen.getNBatches() + #print(nbatches) + print("gen.getNTotal()", gen.getNTotal()) # <- bullshit + print("gen.getNBatches()", gen.getNBatches()) + + + #gen.debug=True + i_e = 0 + for i in range(nbatches): + print("batch", i, "is last ", gen.lastBatch()) + d = gen.getBatch() + nelems=d.nElements() + if expected_here[i_e] is None: + i_e += 1 + assert expected_here[i_e] == nelems + i_e += 1 + + + + + + + + + + + + + + + From 9346b9e6ff5ad80cd36a0ea177fda6088cc50fce Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 10 Mar 2020 09:06:09 +0100 Subject: [PATCH 226/437] removing debug output --- compiled/interface/simpleArray.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 6621b5b..92a95e6 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -678,14 +678,14 @@ template outIdxs.push_back(i_splitat - i_old); - std::cout << "i_old " << i_old << "\n"; - std::cout << "i_s " << i_s << "\n"; - std::cout << "s_old " << s_old << "\n"; - std::cout << "s " << s << "\n"; - std::cout << "i_splitat " << i_splitat << "\n"; - std::cout << "is_good " << is_good << "\n"; - std::cout << "i_splitat - i_old " << i_splitat - i_old << "\n"; - std::cout << std::endl; + //std::cout << "i_old " << i_old << "\n"; + //std::cout << "i_s " << i_s << "\n"; + //std::cout << "s_old " << s_old << "\n"; + //std::cout << "s " << s << "\n"; + //std::cout << "i_splitat " << i_splitat << "\n"; + //std::cout << "is_good " << is_good << "\n"; + //std::cout << "i_splitat - i_old " << i_splitat - i_old << "\n"; + //std::cout << std::endl; i_old = i_splitat; s_old = rowsplits.at(i_old); From e68a9a36fc4eb12b0c38956dafc1f611eb8ae267 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 10 Mar 2020 14:18:52 +0100 Subject: [PATCH 227/437] fixes for generator in case the data runs out --- DataCollection.py | 12 ++---- compiled/interface/trainDataGenerator.h | 10 +++++ compiled/src/c_trainDataGenerator.C | 2 + testing/CI/testGenerator_splitting.py | 52 ++++++++++++++++++++++++- training/DeepJet_callbacks.py | 4 +- 5 files changed, 68 insertions(+), 12 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index da722f2..e4dc58f 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -542,21 +542,15 @@ def invokeGenerator(self): def generatorFunction(self): - - while(1): - ##needs to be adapted - # - # Use tf.ragged.from_rowsplits (or similar) - # + while(not self.generator.isEmpty()): + data = self.generator.getBatch() + #print("batch size ", data.nElements()) xout = data.transferFeatureListToNumpy() wout = data.transferWeightListToNumpy() yout = data.transferTruthListToNumpy() - #debug - #if self.generator.lastBatch(): # returns true if less than the previous batch size remains - # print('\nlastbatch') if len(wout)>0: yield (xout,yout,wout) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index bdbf019..8737ead 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -93,6 +93,8 @@ class trainDataGenerator{ bool lastBatch()const; + bool isEmpty()const; + void prepareNextEpoch(); void shuffleFilelist(); @@ -360,6 +362,11 @@ bool trainDataGenerator::lastBatch()const{ return batchcount_ >= npossiblebatches_ -1 ; } +template +bool trainDataGenerator::isEmpty()const{ + return batchcount_ >= splits_.size(); +} + template void trainDataGenerator::prepareNextEpoch(){ @@ -420,6 +427,9 @@ trainData trainDataGenerator::getBatch(){ template trainData trainDataGenerator::prepareBatch(){ + if(batchcount_ >= splits_.size()){ + throw std::runtime_error("trainDataGenerator::prepareBatch: asking for more batches than in dataset"); + } size_t bufferelements=buffer_store.nElements(); size_t expect_batchelements = splits_.at(batchcount_); diff --git a/compiled/src/c_trainDataGenerator.C b/compiled/src/c_trainDataGenerator.C index 9c4b01c..38338f5 100644 --- a/compiled/src/c_trainDataGenerator.C +++ b/compiled/src/c_trainDataGenerator.C @@ -47,6 +47,8 @@ BOOST_PYTHON_MODULE(c_trainDataGenerator) { .def("getNBatches", &trainDataGenerator::getNBatches) .def("lastBatch", &trainDataGenerator::lastBatch) + .def("isEmpty", &trainDataGenerator::isEmpty) + .def("prepareNextEpoch", &trainDataGenerator::prepareNextEpoch) .def("getBatch", &trainDataGenerator::getBatch) diff --git a/testing/CI/testGenerator_splitting.py b/testing/CI/testGenerator_splitting.py index b125672..9350f57 100644 --- a/testing/CI/testGenerator_splitting.py +++ b/testing/CI/testGenerator_splitting.py @@ -107,9 +107,59 @@ i_e += 1 - +print('testing direct buffering') + + +for b in range(len(batchsizes)): + batchsize=batchsizes[b] + expected_here = expected_elmts[b] + + gen = trainDataGenerator() + gen.debug=True + #gen.setSquaredElementsLimit(True) + gen.setBatchSize(batchsize) + print('batchsize',batchsize) + print('setting buffer') + gen.setBuffer(td) + print('done setting buffer') + + + #print("expect: 5, 4, 4, 5, 4, 4 = 6 ") + nbatches = gen.getNBatches() + #print(nbatches) + print("gen.getNTotal()", gen.getNTotal()) # <- bullshit + print("gen.getNBatches()", gen.getNBatches()) + + #gen.debug=True + i_e = 0 + for i in range(nbatches): + print("batch", i, "is last ", gen.lastBatch()) + d = gen.getBatch() + nelems=d.nElements() + if expected_here[i_e] is None: + i_e += 1 + assert expected_here[i_e] == nelems + i_e += 1 + + + + +print('checking 1 example generator') + +td.skim(0) +gen = trainDataGenerator() +gen.setBuffer(td) +d = gen.getBatch() +nelems=d.nElements() + +assert nelems == 1 + + + + + diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 2616e6d..bf50a7a 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -290,10 +290,10 @@ def predict_and_call(self,counter): self.gen.setBuffer(self.td) def genfunc(): - while(1): + while(not self.gen.isEmpty()): d = self.gen.getBatch() yield d.transferFeatureListToNumpy() , d.transferTruthListToNumpy() - + predicted = self.model.predict_generator(genfunc(), steps=self.gen.getNBatches(), max_queue_size=1, From 4e3b4e0c381b22a345be6e98682cb524dc42e375 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 10 Mar 2020 18:01:54 +0100 Subject: [PATCH 228/437] compressed docker file --- docker/Dockerfile | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 146c5fb..3cf52e0 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,20 +2,14 @@ FROM cernml4reco/djcbase:py2 RUN export DEBIAN_FRONTEND=noninteractive && \ - pip --no-cache-dir install tensorflow-gpu==2.1 - -RUN cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ + pip --no-cache-dir install tensorflow-gpu==2.1 && \ + cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ mkdir gpus && \ cd gpus && \ ln -s /usr/local/cuda cuda ## torch/jupyter stuff -RUN pip install torch future - -RUN pip install gensim && \ - pip install jupyter && \ - pip install prompt-toolkit && \ - pip install seaborn +RUN pip install torch future gensim jupyter prompt-toolkit seaborn EXPOSE 8888 @@ -28,8 +22,9 @@ ARG BUILD_DATE LABEL org.label-schema.build-date=$BUILD_DATE ENV DEEPJETCORE /usr/share/DJC/DeepJetCore -RUN ldconfig -RUN cd /usr/share && \ + +RUN ldconfig && \ + cd /usr/share && \ mkdir DJC && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ From 406e070c9202552c601e5bdf532b56718efa7214 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 13 Mar 2020 13:27:06 +0100 Subject: [PATCH 229/437] incorporating options for eager training --- modeltools.py | 38 ++++++++++++++++++++++++++++++++++++++ training/training_base.py | 18 +++++++++++++++++- 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/modeltools.py b/modeltools.py index 2fc5e1c..820df02 100644 --- a/modeltools.py +++ b/modeltools.py @@ -109,3 +109,41 @@ def apply_weights_where_possible(target_model, weight_model): return target_model + + + + + +################# wrappers for keras models in DJC + +import tensorflow as tf + +class DJCKerasModel(tf.keras.models.Model): + ''' + Base class to implement automatic shape feeding as in DJC + Interfaces smoothly with training_base + ''' + def __init__(self,*args,**kwargs): + + super(DJCKerasModel, self).__init__(*args,dynamic=False,**kwargs) + self.keras_input_shapes=None + self._is_djc_keras_model = True + + def setInputShape(self,keras_inputs): + self.keras_input_shapes=[i.shape for i in keras_inputs] + + def build(self,input_shapes): + super(DJCKerasModel,self).build(self.keras_input_shapes) + + + + + + + + + + + + + diff --git a/training/training_base.py b/training/training_base.py index 4e50b9f..b174f7a 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -240,10 +240,25 @@ def __del__(self): def modelSet(self): return not self.keras_model==None + def setDJCKerasModel(self,model,*args,**kwargs): + if len(self.keras_inputs)<1: + raise Exception('setup data first') + self.keras_model=model(*args,**kwargs) + if hasattr(self.keras_model, "_is_djc_keras_model"): + self.keras_model.setInputShape(self.keras_inputs) + self.keras_model.build(None) + if not self.keras_model: + raise Exception('Setting DJCKerasModel not successful') + + def setModel(self,model,**modelargs): if len(self.keras_inputs)<1: raise Exception('setup data first') self.keras_model=model(self.keras_inputs,**modelargs) + if hasattr(self.keras_model, "_is_djc_keras_model"): #compatibility + self.keras_model.setInputShape(self.keras_inputs) + self.keras_model.build(None) + #try: # self.keras_model=model(self.keras_inputs,**modelargs) #except BaseException as e: @@ -357,6 +372,7 @@ def _initTraining(self, def trainModel(self, nepochs, batchsize, + run_eagerly=False, batchsize_use_sum_of_squares = False, stop_patience=-1, lr_factor=0.5, @@ -372,7 +388,7 @@ def trainModel(self, **trainargs): - + self.keras_model.run_eagerly=run_eagerly # write only after the output classes have been added self._initTraining(nepochs,batchsize, batchsize_use_sum_of_squares) From 51706e56817279817ff0d353256614b0c1a8706e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 13 Mar 2020 15:59:59 +0100 Subject: [PATCH 230/437] some new debug outputs and testing scripts --- compiled/interface/simpleArray.h | 24 +++++++------ compiled/interface/trainDataGenerator.h | 6 ++-- testing/CI/testRaggedOperations.py | 48 +++++++++++++++++++++++++ training/training_base.py | 6 ++-- 4 files changed, 67 insertions(+), 17 deletions(-) create mode 100644 testing/CI/testRaggedOperations.py diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 92a95e6..1beab15 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -183,14 +183,14 @@ class simpleArray { * Returns e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} */ static std::vector getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit=false, std::vector& size_ok=std::vector()); + bool sqelementslimit=false, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); /** * Split indices can directly be used with the split() function. * Returns e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} */ static std::vector getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit=false, std::vector& size_ok=std::vector()); + bool sqelementslimit=false, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); static std::vector dataSplitToSplitIndices(const std::vector& data_splits); static std::vector splitToDataSplitIndices(const std::vector& data_splits); @@ -238,7 +238,7 @@ class simpleArray { void checkRaggedIndex(size_t i, size_t j)const; static std::vector priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit=false, std::vector& size_ok=std::vector()); + bool sqelementslimit=false, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); @@ -636,10 +636,11 @@ void simpleArray::cout()const{ template std::vector simpleArray::priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit, std::vector& size_ok){ + bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split){ std::vector outIdxs; size_ok.clear(); + nelemtns_per_split.clear(); if(rowsplits.size()<1) return outIdxs; @@ -667,10 +668,11 @@ template if (i_splitat < rowsplits.size()+1) { //split - bool is_good = (rowsplits.at(i_splitat) - rowsplits.at(i_old) - <= nelements_limit); - size_ok.push_back(is_good); + size_t nelements = rowsplits.at(i_splitat) - rowsplits.at(i_old); + bool is_good = nelements <= nelements_limit; + size_ok.push_back(is_good); + nelemtns_per_split.push_back(nelements); if(datasplit) outIdxs.push_back(i_splitat); @@ -705,8 +707,8 @@ template */ template std::vector simpleArray::getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit, std::vector& size_ok){ - return priv_getSplitIndices(false, rowsplits, nelements_limit, sqelementslimit, size_ok); + bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split){ + return priv_getSplitIndices(false, rowsplits, nelements_limit, sqelementslimit, size_ok, nelemtns_per_split); } /** @@ -716,8 +718,8 @@ std::vector simpleArray::getSplitIndices(const std::vector template std::vector simpleArray::getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit, std::vector& size_ok){ - return priv_getSplitIndices(true, rowsplits, nelements_limit, sqelementslimit, size_ok); + bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split){ + return priv_getSplitIndices(true, rowsplits, nelements_limit, sqelementslimit, size_ok, nelemtns_per_split); } template diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 8737ead..7f1f2c0 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -311,8 +311,8 @@ void trainDataGenerator::prepareSplitting(){ } std::cout << std::endl; } - - splits_ = simpleArray::getSplitIndices(allrs, batchsize_,sqelementslimit_ , usebatch_); + std::vector nelems_per_split; + splits_ = simpleArray::getSplitIndices(allrs, batchsize_,sqelementslimit_ , usebatch_, nelems_per_split); nbatches_=0; npossiblebatches_=0; @@ -332,7 +332,7 @@ void trainDataGenerator::prepareSplitting(){ std::cout << " ok, split " ; else std::cout << " no, split "; - std::cout << splits_.at(i) << "; "; + std::cout << splits_.at(i) << "; nelements "<< nelems_per_split.at(i)<< std::endl; } std::cout << std::endl; } diff --git a/testing/CI/testRaggedOperations.py b/testing/CI/testRaggedOperations.py new file mode 100644 index 0000000..84d65e9 --- /dev/null +++ b/testing/CI/testRaggedOperations.py @@ -0,0 +1,48 @@ + +from DeepJetCore.compiled.c_simpleArray import simpleArray +import numpy as np + +data = np.arange(0, 64 , dtype='float32') +data = np.reshape(data, [-1,2]) +rowsplits = np.array([0, 2, 3, 7, 8, 11, 18, 19, 23, 25, 27, 32], dtype='int64') + +arr = simpleArray() +arr.createFromNumpy(data, rowsplits) + +arr2 = simpleArray() +arr2.createFromNumpy(data, rowsplits) + +arr.append(arr2) + + +arr3 = arr.split(11) + +np1,rs1 = arr.copyToNumpy(False) +np3,rs3 = arr3.copyToNumpy(False) + +assert np.all(np1 == np3) and np.all(np1 == data) +assert np.all(rs1 == rs3) and np.all(rs1 == rowsplits) + +arr4 = arr.split(1) +np4,rs4 = arr.copyToNumpy(False) +arrexp_np4 = np.arange(4, 64 , dtype='float32') +arrexp_np4 = np.reshape(arrexp_np4, [-1,2]) +rsexp_rs4 = np.array([2, 3, 7, 8, 11, 18, 19, 23, 25, 27, 32], dtype='int64')-2 + + +np5,rs5 = arr4.copyToNumpy(False) +exp_np5 = np.arange(0, 4 , dtype='float32') +exp_np5 = np.reshape(exp_np5, [-1,2]) +exp_rs5 = np.array([0, 2], dtype='int64') + + +assert np.all(np5 == exp_np5) and np.all(rs5 == exp_rs5) + +arr.append(arr4) +np6,rs6 = arr.copyToNumpy(False) +exp_np6 = np.concatenate( [np.arange(4, 64 , dtype='float32'), np.arange(0, 4 , dtype='float32')], axis=-1) +exp_np6 = np.reshape(exp_np6, [-1,2]) +exp_rs6 = np.concatenate([rsexp_rs4, np.array([32], dtype='int64')], axis=-1) + +assert np.all(np6 == exp_np6) and np.all(rs6 == exp_rs6) + diff --git a/training/training_base.py b/training/training_base.py index b174f7a..f4d9ccf 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -432,10 +432,10 @@ def trainModel(self, #this is fixed nbatches_val = self.val_data.generator.getNBatches() nbatches_train = self.train_data.generator.getNBatches() - #self.val_data.generator.debug=True + #self.train_data.generator.debug=True - #exit() - + #self.train_data.generator.shuffleFilelist() + #self.train_data.generator.debug=False while(self.trainedepoches < nepochs): #this can change from epoch to epoch From a12114f67c5e28474e7ad93424dba3a1ec5bf39e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 13 Mar 2020 16:39:45 +0100 Subject: [PATCH 231/437] cleanup and finally fixed predetermined batch size problem with ragged arrays --- compiled/interface/simpleArray.h | 51 ++++++++++++++++++------- compiled/interface/trainDataGenerator.h | 10 ++--- 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 1beab15..e0eaa38 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -197,6 +197,9 @@ class simpleArray { static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); + static std::vector mergeRowSplits(const std::vector & rowsplitsa, const std::vector & rowsplitsb); + + static std::vector splitRowSplits(std::vector & rowsplits, const size_t& splitpoint); #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS int isize() const { @@ -447,13 +450,7 @@ simpleArray simpleArray::split(size_t splitindex) { shape_.at(0) = shape_.at(0) - splitindex; if(isRagged()){ - out.rowsplits_ = std::vector (rowsplits_.begin(),rowsplits_.begin()+splitindex+1); - int outnelements = out.rowsplits_.at(out.rowsplits_.size()-1); - rowsplits_ = std::vector (rowsplits_.begin()+splitindex,rowsplits_.end()); - for(size_t i=0;i::append(const simpleArray& a) { //need copy in case this == &a auto ars = a.rowsplits_; - size_t oldrssize = rowsplits_.size(); - int nelements = rowsplits_.at(oldrssize-1); - size_t newrssize = oldrssize + ars.size()-1; - rowsplits_.resize(newrssize); - for(size_t i=0;i simpleArray::readRowSplitsFromFileP(FILE *& ifile, bool return rowsplits; } +template +std::vector simpleArray::mergeRowSplits(const std::vector & rowsplitsa, const std::vector & rowsplitsb){ + if(rowsplitsb.size()<1) + return rowsplitsa; + if(rowsplitsa.size()<1) + return rowsplitsb; + std::vector out=rowsplitsa; + out.resize(out.size() + rowsplitsb.size()-1); + int64_t lasta = rowsplitsa.at(rowsplitsa.size()-1); + + for(size_t i=0;i +std::vector simpleArray::splitRowSplits(std::vector & rowsplits, const size_t& splitpoint){ + + if(splitpoint >= rowsplits.size()) + throw std::out_of_range("simpleArray::splitRowSplits: split index out of range"); + + int64_t rsatsplitpoint = rowsplits.at(splitpoint); + std::vector out = std::vector (rowsplits.begin(),rowsplits.begin()+splitpoint+1); + std::vector rhs = std::vector(rowsplits.size()-splitpoint); + for(size_t i=0;i void simpleArray::copyFrom(const simpleArray& a) { diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 7f1f2c0..8cea07f 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -293,11 +293,7 @@ void trainDataGenerator::prepareSplitting(){ if(i==0 || allrs.size()==0){ allrs=thisrs;} else{ - size_t lastelemidx = allrs.size()-1; - size_t lastnelements = allrs.at(lastelemidx); - allrs.resize(lastelemidx+thisrs.size()); - for(size_t j=0;j::mergeRowSplits(allrs,thisrs); } } @@ -383,7 +379,7 @@ void trainDataGenerator::prepareNextEpoch(){ nsamplesprocessed_=0; batchcount_=0; nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); - readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); + //reading thread is being called from getBatch directly on demand } template void trainDataGenerator::end(){ @@ -452,7 +448,7 @@ trainData trainDataGenerator::prepareBatch(){ buffer_read.clear(); bufferelements = buffer_store.nElements(); - if(debug) + if(debug || true) std::cout << "nprocessed " << nsamplesprocessed_ << " file " << filecount_ << " in buffer " << bufferelements << " file read " << nextread_ << " totalfiles " << orig_infiles_.size() << " total events "<< ntotal_<< std::endl; From 4d10c0ef3223df1ac884138cee8e2ead730f4855 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 13 Mar 2020 18:17:23 +0100 Subject: [PATCH 232/437] removed stray debug message --- compiled/interface/trainDataGenerator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 8cea07f..22a4885 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -448,7 +448,7 @@ trainData trainDataGenerator::prepareBatch(){ buffer_read.clear(); bufferelements = buffer_store.nElements(); - if(debug || true) + if(debug) std::cout << "nprocessed " << nsamplesprocessed_ << " file " << filecount_ << " in buffer " << bufferelements << " file read " << nextread_ << " totalfiles " << orig_infiles_.size() << " total events "<< ntotal_<< std::endl; From 4c23c6d1bb6d73fb84b90d2d00cad87abe14b151 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 13 Mar 2020 18:43:23 +0100 Subject: [PATCH 233/437] small performance improvement --- compiled/interface/trainDataGenerator.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 22a4885..5715460 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -379,7 +379,9 @@ void trainDataGenerator::prepareNextEpoch(){ nsamplesprocessed_=0; batchcount_=0; nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); - //reading thread is being called from getBatch directly on demand + filecount_++; + readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); + } template void trainDataGenerator::end(){ From caec2db06db781d7ea1e5b4b7bba73b344db244a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 17 Mar 2020 19:06:15 +0100 Subject: [PATCH 234/437] added versioning and some viewer tools --- __init__.py | 2 ++ docker/Dockerfile | 2 ++ 2 files changed, 4 insertions(+) diff --git a/__init__.py b/__init__.py index e0d2b50..908bdea 100644 --- a/__init__.py +++ b/__init__.py @@ -12,3 +12,5 @@ import matplotlib matplotlib.use('Agg') + +__version__ = '2.3' \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index 3cf52e0..d12b3e2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,8 @@ FROM cernml4reco/djcbase:py2 +RUN apt-get install -y evince eog + RUN export DEBIAN_FRONTEND=noninteractive && \ pip --no-cache-dir install tensorflow-gpu==2.1 && \ cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ From 34c405023c2059eb2c322b0675face80230eb3db Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 17 Mar 2020 21:03:02 +0100 Subject: [PATCH 235/437] CUDA 10.1 as default in base --- docker/Dockerfile_base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 7a683a1..91f87a6 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -1,5 +1,5 @@ -FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 +FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 SHELL ["/bin/bash", "-c"] From 3bb3eb548ad8c28e7669166606661aaa8819c05a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 18 Mar 2020 11:33:18 +0100 Subject: [PATCH 236/437] cuda 10.1 --- docker/Dockerfile | 4 +--- docker/Dockerfile_base | 2 ++ training/DeepJet_callbacks.py | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index d12b3e2..92b2033 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,7 +1,5 @@ -FROM cernml4reco/djcbase:py2 - -RUN apt-get install -y evince eog +FROM cernml4reco/djcbase:py2_latest RUN export DEBIAN_FRONTEND=noninteractive && \ pip --no-cache-dir install tensorflow-gpu==2.1 && \ diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 91f87a6..420c290 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -102,6 +102,8 @@ RUN pip install setGPU RUN apt-get install -y unzip +RUN apt-get install -y evince eog + RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list RUN apt update diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index bf50a7a..2ae88c8 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -60,6 +60,8 @@ def __init__(self,outputDir,plotLoss=False): self.plotLoss=plotLoss def on_epoch_end(self,epoch, logs={}): + if len(logs)<1: + return import os lossfile=os.path.join( self.outputDir, 'losses.log') print('\n***callbacks***\nsaving losses to '+lossfile) From f357c2859f4f537de5fa31528204b3a04f7417a6 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 24 Mar 2020 18:53:25 +0100 Subject: [PATCH 237/437] more debug functions for generator --- compiled/interface/trainDataGenerator.h | 32 ++++++++++++++----------- compiled/src/c_trainDataGenerator.C | 2 +- testing/CI/testGenerator_splitting.py | 2 +- training/training_base.py | 2 ++ 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 5715460..d2bd389 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -114,7 +114,7 @@ class trainDataGenerator{ */ trainData getBatch(); //if no threading batch index can be given? just for future? - bool debug; + int debuglevel; #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS void setFileListP(boost::python::list files){ @@ -155,7 +155,7 @@ class trainDataGenerator{ template -trainDataGenerator::trainDataGenerator() :debug(false), +trainDataGenerator::trainDataGenerator() :debuglevel(0), randomcount_(1), batchsize_(2),sqelementslimit_(false),skiplargebatches_(true), readthread_(0), filecount_(0), nbatches_( 0), npossiblebatches_(0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), batchcount_(0){ @@ -208,7 +208,11 @@ void trainDataGenerator::readBuffer(){ while(ntries < filetimeout_){ if(io::fileExists(nextread_)){ try{ + if(debuglevel>0) + std::cout << "reading file " << nextread_ << std::endl; buffer_read.readFromFile(nextread_); + if(debuglevel>0) + std::cout << "reading file " << nextread_ << " done"<< std::endl; return; } catch(std::exception & e){ //if there are data glitches we don't want the whole training fail immediately @@ -244,15 +248,15 @@ void trainDataGenerator::readInfo(){ } if(hasRagged){ std::vector rowsplits = td.readShapesAndRowSplitsFromFile(f, firstfile);//check consistency only for first - if(debug) - std::cout << "rowsplits.size() " <1) + std::cout << "rowsplits.size() " <0) + std::cout << "trainDataGenerator::readInfo: total elements "<< ntotal_ <::prepareSplitting(){ break; } } - if(debug){ + if(debuglevel>1){ std::cout << "trainDataGenerator::prepareSplitting: splits" <::prepareSplitting(){ } } - if(debug){ + if(debuglevel>1){ std::cout << "all (first 100) row splits " << allrs.size() << std::endl; int counter =0; for(const auto& s: allrs){ @@ -319,7 +323,7 @@ void trainDataGenerator::prepareSplitting(){ } - if(debug){ + if(debuglevel>1){ size_t nprint = splits_.size(); if(nprint>200)nprint=200; for(size_t i=0;i< nprint;i++){ @@ -436,7 +440,7 @@ trainData trainDataGenerator::prepareBatch(){ if(usebatch_.size()) usebatch = usebatch_.at(batchcount_); - if(debug) + if(debuglevel>2) std::cout << "expect_batchelements "< trainDataGenerator::prepareBatch(){ buffer_read.clear(); bufferelements = buffer_store.nElements(); - if(debug) + if(debuglevel>2) std::cout << "nprocessed " << nsamplesprocessed_ << " file " << filecount_ << " in buffer " << bufferelements << " file read " << nextread_ << " totalfiles " << orig_infiles_.size() << " total events "<< ntotal_<< std::endl; @@ -462,7 +466,7 @@ trainData trainDataGenerator::prepareBatch(){ nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); - if(debug) + if(debuglevel>0) std::cout << "start new read on file "<< nextread_ < trainDataGenerator::prepareBatch(){ // return prepareBatch(); } - if(debug) + if(debuglevel>2) std::cout << "providing batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+expect_batchelements << " elements in buffer before: " << bufferelements << "\nsplitting at " << expect_batchelements << " use this batch "<< usebatch << " total elements " << thisbatch.nTotalElements() << " elements left in buffer " << buffer_store.nElements()<< std::endl; - if(debug){ + if(debuglevel>3){ int dbpcount=0; for(const auto& s: buffer_store.featureArray(0).rowsplits()){ std::cout << s << ", "; diff --git a/compiled/src/c_trainDataGenerator.C b/compiled/src/c_trainDataGenerator.C index 38338f5..761fc2c 100644 --- a/compiled/src/c_trainDataGenerator.C +++ b/compiled/src/c_trainDataGenerator.C @@ -54,7 +54,7 @@ BOOST_PYTHON_MODULE(c_trainDataGenerator) { .def("getNTotal", &trainDataGenerator::getNTotal) - .def_readwrite("debug", &trainDataGenerator::debug); + .def_readwrite("debuglevel", &trainDataGenerator::debuglevel); ; } diff --git a/testing/CI/testGenerator_splitting.py b/testing/CI/testGenerator_splitting.py index 9350f57..ef9a414 100644 --- a/testing/CI/testGenerator_splitting.py +++ b/testing/CI/testGenerator_splitting.py @@ -79,7 +79,7 @@ expected_here = expected_elmts[b] gen = trainDataGenerator() - gen.debug=True + gen.debuglevel=100 #gen.setSquaredElementsLimit(True) gen.setBatchSize(batchsize) print('batchsize',batchsize) diff --git a/training/training_base.py b/training/training_base.py index f4d9ccf..9505e6b 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -457,6 +457,8 @@ def trainModel(self, max_queue_size=1, #handled by DJC validation_freq=1, use_multiprocessing=False, #the threading one doe not loke DJC + shuffle=False, + workers=0,#run gen on main thread **trainargs) self.trainedepoches += 1 self.train_data.generator.shuffleFilelist() From 93c6e60acdee5299243a2b8e7d3807a87b163197 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 26 Mar 2020 21:38:06 +0100 Subject: [PATCH 238/437] moving to python3 step 1. testEnvironment works --- DataCollection.py | 5 +- TrainData.py | 2 +- __init__.py | 5 +- bin/batch_conversion.py | 2 +- bin/check_conversion.py | 2 +- bin/convertDCtoNumpy.py | 2 +- bin/convertFromSource.py | 2 +- bin/convertPre2.0DCtoDC.py | 2 +- bin/convertPre2.0TDtoTD.py | 2 +- bin/convertToPB.py | 2 +- bin/convertToTF.py | 2 +- bin/createDataCollectionFromTD.py | 2 +- bin/createSubpackage.py | 2 +- bin/extractDjcCppInterface.py | 2 +- bin/mergeDataCollections.py | 2 +- bin/mergeOrSplitFiles.py | 2 +- bin/plotLoss.py | 2 +- bin/predict.py | 2 +- bin/prepare_for_deployment.py | 2 +- bin/testEnvironment.py | 6 +- bin/validateData.py | 2 +- compiled/Makefile | 10 +-- conversion/conversion.py | 1 + docker/Dockerfile | 25 ++++--- docker/Dockerfile_base | 105 +++++++++-------------------- evaluation/__init__.py | 2 +- preprocessing/__init__.py | 2 +- testing/batch_explosion.py | 8 +-- testing/datastructures/__init__.py | 2 +- testing/files/filelist.txt | 6 -- training/DeepJet_callbacks.py | 4 +- training/tokenTools.py | 13 ++-- training/training_base.py | 2 +- 33 files changed, 92 insertions(+), 140 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index e4dc58f..aaff1b2 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -16,7 +16,7 @@ import copy import time import logging -from stopwatch import stopwatch +from DeepJetCore.stopwatch import stopwatch logger = logging.getLogger(__name__) @@ -550,8 +550,7 @@ def generatorFunction(self): xout = data.transferFeatureListToNumpy() wout = data.transferWeightListToNumpy() yout = data.transferTruthListToNumpy() - - + if len(wout)>0: yield (xout,yout,wout) else: diff --git a/TrainData.py b/TrainData.py index 4c9a765..5ef3902 100644 --- a/TrainData.py +++ b/TrainData.py @@ -59,7 +59,7 @@ def readIn(self,fileprefix,shapesOnly=False): def _maybeConvertToSimpleArray(self,a): if str(type(a)) == "": return a - elif str(type(a)) == "": + elif str(type(a)) == "" or str(type(a)) == "": rs = np.array([]) arr = simpleArray() arr.createFromNumpy(a, rs) diff --git a/__init__.py b/__init__.py index 908bdea..1d635d8 100644 --- a/__init__.py +++ b/__init__.py @@ -10,7 +10,4 @@ import tensorflow as tf sys.modules["keras"] = tf.keras -import matplotlib -matplotlib.use('Agg') - -__version__ = '2.3' \ No newline at end of file +__version__ = '3.0' \ No newline at end of file diff --git a/bin/batch_conversion.py b/bin/batch_conversion.py index 4e1eca6..4d93184 100755 --- a/bin/batch_conversion.py +++ b/bin/batch_conversion.py @@ -1,4 +1,4 @@ -#!/bin/env python +#!/bin/env python3 import os import logging diff --git a/bin/check_conversion.py b/bin/check_conversion.py index 3877fbc..9feccee 100755 --- a/bin/check_conversion.py +++ b/bin/check_conversion.py @@ -1,4 +1,4 @@ -#! /bin/env python +#! /bin/env python3 from argparse import ArgumentParser from pdb import set_trace diff --git a/bin/convertDCtoNumpy.py b/bin/convertDCtoNumpy.py index 4e9855a..1935207 100755 --- a/bin/convertDCtoNumpy.py +++ b/bin/convertDCtoNumpy.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # encoding: utf-8 from argparse import ArgumentParser diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index 3baa057..c5c0cd4 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # encoding: utf-8 ''' diff --git a/bin/convertPre2.0DCtoDC.py b/bin/convertPre2.0DCtoDC.py index 07f5851..9b0c111 100755 --- a/bin/convertPre2.0DCtoDC.py +++ b/bin/convertPre2.0DCtoDC.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # encoding: utf-8 ''' diff --git a/bin/convertPre2.0TDtoTD.py b/bin/convertPre2.0TDtoTD.py index 862f028..a0fd72d 100755 --- a/bin/convertPre2.0TDtoTD.py +++ b/bin/convertPre2.0TDtoTD.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # encoding: utf-8 ''' diff --git a/bin/convertToPB.py b/bin/convertToPB.py index f41fef9..7217641 100755 --- a/bin/convertToPB.py +++ b/bin/convertToPB.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 #script that takes model in .h5 format as input as spits out the graph format used in CMSSW diff --git a/bin/convertToTF.py b/bin/convertToTF.py index 8a22ce5..dfffd17 100755 --- a/bin/convertToTF.py +++ b/bin/convertToTF.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import imp try: diff --git a/bin/createDataCollectionFromTD.py b/bin/createDataCollectionFromTD.py index 95585b3..2e550fe 100755 --- a/bin/createDataCollectionFromTD.py +++ b/bin/createDataCollectionFromTD.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # encoding: utf-8 diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index d139c7a..20e4ed9 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # encoding: utf-8 diff --git a/bin/extractDjcCppInterface.py b/bin/extractDjcCppInterface.py index 9dceae5..7b3c221 100755 --- a/bin/extractDjcCppInterface.py +++ b/bin/extractDjcCppInterface.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 from argparse import ArgumentParser diff --git a/bin/mergeDataCollections.py b/bin/mergeDataCollections.py index f113e90..7b96d32 100755 --- a/bin/mergeDataCollections.py +++ b/bin/mergeDataCollections.py @@ -1,4 +1,4 @@ -#! /bin/env python +#! /bin/env python3 from argparse import ArgumentParser from DeepJetCore.DataCollection import DataCollection diff --git a/bin/mergeOrSplitFiles.py b/bin/mergeOrSplitFiles.py index 25162f4..152971a 100755 --- a/bin/mergeOrSplitFiles.py +++ b/bin/mergeOrSplitFiles.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # encoding: utf-8 ''' diff --git a/bin/plotLoss.py b/bin/plotLoss.py index 750afed..b4f38b0 100755 --- a/bin/plotLoss.py +++ b/bin/plotLoss.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 diff --git a/bin/predict.py b/bin/predict.py index 48fceb7..ae476ec 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 from argparse import ArgumentParser diff --git a/bin/prepare_for_deployment.py b/bin/prepare_for_deployment.py index daa77aa..34ceb77 100755 --- a/bin/prepare_for_deployment.py +++ b/bin/prepare_for_deployment.py @@ -1,4 +1,4 @@ -#! /bin/env python +#! /bin/env python3 from argparse import ArgumentParser diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py index 1ced780..d5cb3be 100755 --- a/bin/testEnvironment.py +++ b/bin/testEnvironment.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 print('importing tensorflow...') @@ -29,7 +29,7 @@ b = keras.layers.Dense(10)(a) model = keras.models.Model(inputs=a, outputs=b) model.compile(optimizer='adam',loss='mse') -model.fit(x=features, y=truth, batch_size=100, epochs=20) +model.fit(x=features, y=truth, batch_size=100, epochs=3) print('loading DeepJetCore compiled library...') @@ -55,7 +55,7 @@ cd {djc_base}/testing rm -rf batchExplode export PYTHONPATH=`pwd`:$PYTHONPATH -python batch_explosion.py batchDC/dataCollection.djcdc batchExplode +python3 batch_explosion.py batchDC/dataCollection.djcdc batchExplode '''.format(djc_base=djc_base) os.system(script) diff --git a/bin/validateData.py b/bin/validateData.py index 691754c..a2fcbc6 100755 --- a/bin/validateData.py +++ b/bin/validateData.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 diff --git a/compiled/Makefile b/compiled/Makefile index cd6b380..e979c9e 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -1,7 +1,7 @@ # location of the Boost Python include files and library -PYTHON_INCLUDE = `python-config --includes` -PYTHON_LIB=`python-config --libs` +PYTHON_INCLUDE = `python3-config --includes` +PYTHON_LIB=`python3-config --libs` LINUXADD= #-Wl --export-dynamic @@ -28,7 +28,7 @@ classdict.so: classdict.cxx %: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx - g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIB) -lboost_python -lboost_numpy $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ + g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIB) -lboost_python3 -lboost_numpy3 $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ mv $@ ../bin/ #helpers @@ -40,10 +40,10 @@ obj/%.o: src/%.cpp #pack helpers in lib libdeepjetcorehelpers.so: $(OBJ_FILES) - g++ -o $@ -shared -fPIC $(LINUXADD) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lboost_python -lboost_numpy + g++ -o $@ -shared -fPIC $(LINUXADD) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lboost_python3 -lboost_numpy3 %.so: %.o libdeepjetcorehelpers.so libquicklz.so - g++ -o $(@) -shared -fPIC $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lboost_python -lboost_numpy -L./ -ldeepjetcorehelpers + g++ -o $(@) -shared -fPIC $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lboost_python3 -lboost_numpy3 -L./ -ldeepjetcorehelpers %.o: src/%.C g++ $(ROOTCFLAGS) -O2 -I./interface $(PYTHON_INCLUDE) -fPIC -c -o $(@) $< diff --git a/conversion/conversion.py b/conversion/conversion.py index 2bd386a..a24a0ee 100644 --- a/conversion/conversion.py +++ b/conversion/conversion.py @@ -1,4 +1,5 @@ try: + import datastructures from datastructures import * except ImportError: print('datastructure modules not found. Please define a DeepJetCore submodule') diff --git a/docker/Dockerfile b/docker/Dockerfile index 92b2033..a6777bb 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,20 +1,23 @@ -FROM cernml4reco/djcbase:py2_latest +FROM cernml4reco/djcbase:devpy3 + + + +################################################################################ +# Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip --no-cache-dir install tensorflow-gpu==2.1 && \ - cd /usr/local/lib/python2.7/dist-packages/tensorflow_core/include/third_party && \ - mkdir gpus && \ - cd gpus && \ - ln -s /usr/local/cuda cuda - -## torch/jupyter stuff -RUN pip install torch future gensim jupyter prompt-toolkit seaborn + pip3 --no-cache-dir install tensorflow-gpu==2.2.0-rc1 -EXPOSE 8888 - +#RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow_core/include/third_party && \ +# mkdir gpus && \ +# cd gpus && \ +# ln -s /usr/local/cuda cuda + + + ################################################################################ # the actual DeepJetCore. Make sure this gets built every time diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 420c290..ff8d88f 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -4,14 +4,28 @@ FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 SHELL ["/bin/bash", "-c"] -RUN apt-get update -RUN apt-get install -y python2.7-dev python-pip nano emacs -RUN apt-get install -y wget -RUN apt-get install -y libboost-all-dev -RUN apt-get install -y git +RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list && apt-get update --fix-missing + + +#base +RUN apt-get install -y python3.6-dev python3-pip +RUN pip3 install --upgrade pip +RUN ldconfig + +#basic user tools +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y git wget nano emacs \ + evince eog ffmpeg unzip zsh python3-tk locales \ + htop +RUN apt-get update --fix-missing +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y krb5-user && \ + sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf +RUN apt-get update --fix-missing -## root part + +############ root part RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev RUN apt-get install -y cmake @@ -32,78 +46,23 @@ RUN cd /temproot/build && \ #ensure import ROOT ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" +RUN ldconfig +############ END root part -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y python-tk -RUN apt-get install -y locales - -RUN pip install --upgrade pip - -RUN pip install numpy -RUN pip install root_numpy -RUN pip install scikit-learn -RUN pip install scikit-image -RUN pip install h5py -RUN pip install uproot Pillow scipy seaborn -RUN pip install scikit-learn -RUN pip install scikit-image -RUN pip install matplotlib - -#may be useful -RUN pip install opencv-python -RUN pip install easydict tqdm -RUN pip install Cython -RUN pip install numba - -#already in the container from nvidia -#RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ -# dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb &&\ -# apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub &&\ -# apt-get update &&\ -# wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ -# apt install -y ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb &&\ -# apt-get update -# -#RUN export DEBIAN_FRONTEND=noninteractive && \ -# apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \ -# cuda-10-1 \ -# libcudnn7=7.6.4.38-1+cuda10.1 \ -# libcudnn7-dev=7.6.4.38-1+cuda10.1 -# -##will also get new cuda version -#RUN export DEBIAN_FRONTEND=noninteractive && \ -# apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \ -# libnvinfer-dev=6.0.1-1+cuda10.1 \ -# libnvinfer-plugin6=6.0.1-1+cuda10.1 - - -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get update --fix-missing - -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y krb5-user && \ - sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf - -#for me ;) - -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list - -RUN apt-get update --fix-missing -RUN apt-get install -y zsh - -RUN apt-get install -y ffmpeg -#not yet RUN apt-get install -y nvtop +### boost +RUN apt-get install -y libboost-all-dev -##gpu specific stuff -RUN pip install gpustat -RUN pip install setGPU +############ PIP packages -RUN apt-get install -y unzip +RUN pip3 install --upgrade setuptools +RUN pip3 install numpy root_numpy scikit-learn scikit-image h5py matplotlib uproot Pillow scipy seaborn +RUN pip3 install opencv-python easydict tqdm Cython numba -RUN apt-get install -y evince eog +RUN pip3 install gpustat setGPU +## torch/jupyter stuff +RUN pip3 install torch future gensim jupyter prompt-toolkit +EXPOSE 8888 -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list -RUN apt update diff --git a/evaluation/__init__.py b/evaluation/__init__.py index 8abba1e..992ec08 100644 --- a/evaluation/__init__.py +++ b/evaluation/__init__.py @@ -4,7 +4,7 @@ from pdb import set_trace #gather all the files here -modules = [basename(i.replace('.py','')) for i in glob('%s/[A-Za-z]*.py' % dirname(__file__))] +modules = ["DeepJetCore.evaluation."+basename(i.replace('.py','')) for i in glob('%s/[A-Za-z]*.py' % dirname(__file__))] __all__ = [] structure_list=[] for module_name in modules: diff --git a/preprocessing/__init__.py b/preprocessing/__init__.py index 8abba1e..e94f962 100644 --- a/preprocessing/__init__.py +++ b/preprocessing/__init__.py @@ -4,7 +4,7 @@ from pdb import set_trace #gather all the files here -modules = [basename(i.replace('.py','')) for i in glob('%s/[A-Za-z]*.py' % dirname(__file__))] +modules = ["DeepJetCore.preprocessing."+basename(i.replace('.py','')) for i in glob('%s/[A-Za-z]*.py' % dirname(__file__))] __all__ = [] structure_list=[] for module_name in modules: diff --git a/testing/batch_explosion.py b/testing/batch_explosion.py index 255390a..bcec20d 100644 --- a/testing/batch_explosion.py +++ b/testing/batch_explosion.py @@ -40,16 +40,16 @@ def testequal(xout,yout): #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) train.compileModel(learningrate=0.001, - loss=['categorical_crossentropy'], - metrics=['accuracy']) + loss=['categorical_crossentropy'],) + #metrics=['accuracy']) print(train.keras_model.summary()) model,history = train.trainModel(nepochs=10, verbose=2, batchsize=10000, - + run_eagerly=True, load_in_mem = False, - plot_batch_loss = True) + plot_batch_loss = False) diff --git a/testing/datastructures/__init__.py b/testing/datastructures/__init__.py index c6a6e23..ae93a87 100644 --- a/testing/datastructures/__init__.py +++ b/testing/datastructures/__init__.py @@ -6,7 +6,7 @@ from pdb import set_trace #gather all the files here -modules = [basename(i.replace('.py','')) for i in glob('%s/[A-Za-z]*.py' % dirname(__file__))] +modules = ["datastructures."+basename(i.replace('.py','')) for i in glob('%s/[A-Za-z]*.py' % dirname(__file__))] __all__ = [] structure_list=[] for module_name in modules: diff --git a/testing/files/filelist.txt b/testing/files/filelist.txt index efcee7a..9945fab 100644 --- a/testing/files/filelist.txt +++ b/testing/files/filelist.txt @@ -2,9 +2,3 @@ root_file0.root root_file1.root root_file2.root root_file3.root -root_file4.root -root_file5.root -root_file6.root -root_file7.root -root_file8.root -root_file9.root diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 2ae88c8..d5b35f4 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -143,7 +143,7 @@ def on_batch_end(self, batch, logs={}): self.counter = 0 elapsed = time() - self.start cop = {} - for i, j in logs.iteritems(): + for i, j in logs.items(): cop[i] = float(j) cop['elapsed'] = elapsed self.points.append(cop) @@ -155,7 +155,7 @@ def __init__(self,cutofftime_hours=48): self.cutofftime_hours=cutofftime_hours def on_epoch_begin(self, epoch, logs=None): - from tokenTools import checkTokens + from .tokenTools import checkTokens checkTokens(self.cutofftime_hours) class saveCheckPointDeepJet(Callback): diff --git a/training/tokenTools.py b/training/tokenTools.py index 7c5bdaf..87dfc39 100644 --- a/training/tokenTools.py +++ b/training/tokenTools.py @@ -1,10 +1,9 @@ -renewtokens=True +#not used for now + def renew_token_process(): - - if not renewtokens: - return + return import subprocess import time @@ -18,8 +17,8 @@ def renew_token_process(): time.sleep(3600) def checkTokens(cutofftime_hours=48): - if not renewtokens: - return True + return + import subprocess import os @@ -55,7 +54,7 @@ def checkTokens(cutofftime_hours=48): try: tokentime=datetime.datetime(2000+int(year),int(month),int(day),int(hour)) except: - print 'Failed to set token time with mm/dd/yy, attempting dd/mm/yy permutation' + print('Failed to set token time with mm/dd/yy, attempting dd/mm/yy permutation') tokentime=datetime.datetime(2000+int(year),int(day),int(month),int(hour)) diff=tokentime-thistime diff --git a/training/training_base.py b/training/training_base.py index 9505e6b..d241ca7 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -358,7 +358,7 @@ def _initTraining(self, #make sure tokens don't expire from .tokenTools import checkTokens, renew_token_process - from thread import start_new_thread + from _thread import start_new_thread if self.renewtokens: print('starting afs backgrounder') From e2994dafbd93d89e7ca2678092ecc44ec91ac62d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 26 Mar 2020 21:45:55 +0100 Subject: [PATCH 239/437] first auto container attempt --- docker/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index a6777bb..fd121c8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -11,10 +11,10 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ -#RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow_core/include/third_party && \ -# mkdir gpus && \ -# cd gpus && \ -# ln -s /usr/local/cuda cuda +RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ + mkdir gpus && \ + cd gpus && \ + ln -s /usr/local/cuda cuda From 0beb2d4cb58c9d40a9581ff8681eb6659774668a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 27 Mar 2020 09:57:20 +0100 Subject: [PATCH 240/437] snapshot of py3 dev --- DataCollection.py | 10 ++++------ bin/testEnvironment.py | 40 ++++++++++++++++++++++---------------- testing/batch_explosion.py | 11 ++--------- training/training_base.py | 38 +++++++++++++++++++++++------------- 4 files changed, 54 insertions(+), 45 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index aaff1b2..b02ce96 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -521,9 +521,6 @@ def getSamplePath(self,samplefile): return self.dataDir+'/'+samplefile def __stackData(self, dataclass, selector): - # - # FIXME: use underlying trainData.append here (improvement) - # td=self.dataclass() out=[] firstcall=True @@ -551,10 +548,11 @@ def generatorFunction(self): wout = data.transferWeightListToNumpy() yout = data.transferTruthListToNumpy() + out = (xout,yout) if len(wout)>0: - yield (xout,yout,wout) - else: - yield (xout,yout) + out = (xout,yout,wout) + + yield out \ No newline at end of file diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py index d5cb3be..4e2d9df 100755 --- a/bin/testEnvironment.py +++ b/bin/testEnvironment.py @@ -8,6 +8,8 @@ print('importing DeepJetCore base') import DeepJetCore print(DeepJetCore.__file__) +import os +djc_base = os.environ.get('DEEPJETCORE') print('importing DJC masked tf.keras as keras...') @@ -21,15 +23,19 @@ print('running random training in keras...') -features = numpy.random.rand(1000, 10) -truth = features +def gen(): + while(True): + features = numpy.random.rand(100, 10) + truth = features + yield (features,truth) -a = Input(shape=(10,)) -b = keras.layers.Dense(10)(a) +a = [Input(shape=(10,))] +b = [keras.layers.Dense(10)(a[0])] model = keras.models.Model(inputs=a, outputs=b) -model.compile(optimizer='adam',loss='mse') -model.fit(x=features, y=truth, batch_size=100, epochs=3) +model.compile(optimizer='adam',loss='mse',metrics=['accuracy']) +model.fit(x=gen(), steps_per_epoch=100, batch_size=100, epochs=3) + print('loading DeepJetCore compiled library...') @@ -37,18 +43,18 @@ print('basic packages seem to be compiled... testing conversion') -import os -djc_base = os.environ.get('DEEPJETCORE') -script=''' -#!/bin/bash -cd {djc_base}/testing -rm -rf batchDC -export PYTHONPATH=`pwd`:$PYTHONPATH -convertFromSource.py -i files/filelist.txt -o batchDC -c TrainData_testBatch -n 1 -'''.format(djc_base=djc_base) -os.system(script) -print('testing batch explosion. Please check batch loss plot afterwards for smoothness. Warnings about the callback time can be ignored.') +if True: + script=''' + #!/bin/bash + cd {djc_base}/testing + rm -rf batchDC + export PYTHONPATH=`pwd`:$PYTHONPATH + convertFromSource.py -i files/filelist.txt -o batchDC -c TrainData_testBatch -n 1 + '''.format(djc_base=djc_base) + os.system(script) + + print('testing batch explosion. Please check batch loss plot afterwards for smoothness. Warnings about the callback time can be ignored.') script=''' #!/bin/bash diff --git a/testing/batch_explosion.py b/testing/batch_explosion.py index bcec20d..2c2778d 100644 --- a/testing/batch_explosion.py +++ b/testing/batch_explosion.py @@ -26,29 +26,22 @@ def model_for_test(Inputs): train=training_base(testrun=False) -def testequal(xout,yout): - - print(np.all(xout[0]==yout[0][:,0:1])) - -#train.train_data.test_output_function=testequal from DeepJetCore.DJCLosses import dummy_loss train.setModel(model_for_test) -#train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) train.compileModel(learningrate=0.001, - loss=['categorical_crossentropy'],) + loss='categorical_crossentropy',metrics='accuracy') #metrics=['accuracy']) print(train.keras_model.summary()) model,history = train.trainModel(nepochs=10, verbose=2, - batchsize=10000, - run_eagerly=True, + batchsize=1000, load_in_mem = False, plot_batch_loss = False) diff --git a/training/training_base.py b/training/training_base.py index d241ca7..aa7840e 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -447,19 +447,31 @@ def trainModel(self, self.train_data.generator.prepareNextEpoch() self.val_data.generator.prepareNextEpoch() - self.keras_model.fit_generator(self.train_data.generatorFunction() , - steps_per_epoch=nbatches_train, - epochs=self.trainedepoches + 1, - initial_epoch=self.trainedepoches, - callbacks=self.callbacks.callbacks, - validation_data=self.val_data.generatorFunction(), - validation_steps=nbatches_val, #)#, - max_queue_size=1, #handled by DJC - validation_freq=1, - use_multiprocessing=False, #the threading one doe not loke DJC - shuffle=False, - workers=0,#run gen on main thread - **trainargs) + #self.keras_model.fit_generator(self.train_data.generatorFunction() , + # steps_per_epoch=nbatches_train, + # epochs=self.trainedepoches + 1, + # initial_epoch=self.trainedepoches, + # callbacks=self.callbacks.callbacks, + # validation_data=self.val_data.generatorFunction(), + # validation_steps=nbatches_val, #)#, + # max_queue_size=1, #handled by DJC + # validation_freq=1, + # use_multiprocessing=False, #the threading one doe not loke DJC + # shuffle=False, + # workers=0,#run gen on main thread + # **trainargs) + self.keras_model.fit(self.train_data.generatorFunction(), + steps_per_epoch=nbatches_train, + epochs=self.trainedepoches + 1, + initial_epoch=self.trainedepoches, + callbacks=self.callbacks.callbacks, + validation_data=self.val_data.generatorFunction(), + validation_steps=nbatches_val, + max_queue_size=1, + use_multiprocessing=False, + workers=0, + **trainargs + ) self.trainedepoches += 1 self.train_data.generator.shuffleFilelist() nbatches_train = self.train_data.generator.getNBatches() #might have changed due to shuffeling From eb1438fc3a00dce750006c6442d3b710c84e14d8 Mon Sep 17 00:00:00 2001 From: jkiesele Date: Fri, 27 Mar 2020 12:01:59 +0100 Subject: [PATCH 241/437] some updates --- bin/testEnvironment.py | 2 +- docker/Dockerfile | 12 ++++++------ testing/batch_explosion.py | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py index 4e2d9df..1409e8c 100755 --- a/bin/testEnvironment.py +++ b/bin/testEnvironment.py @@ -34,7 +34,7 @@ def gen(): b = [keras.layers.Dense(10)(a[0])] model = keras.models.Model(inputs=a, outputs=b) model.compile(optimizer='adam',loss='mse',metrics=['accuracy']) -model.fit(x=gen(), steps_per_epoch=100, batch_size=100, epochs=3) +model.fit(x=gen(), steps_per_epoch=100, epochs=3) print('loading DeepJetCore compiled library...') diff --git a/docker/Dockerfile b/docker/Dockerfile index fd121c8..24d16f8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -7,14 +7,14 @@ FROM cernml4reco/djcbase:devpy3 # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.2.0-rc1 + pip3 --no-cache-dir install tensorflow-gpu==2.1 - -RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ - mkdir gpus && \ - cd gpus && \ - ln -s /usr/local/cuda cuda +#2.2.0-rc1 +#RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ +# mkdir gpus && \ +# cd gpus && \ +# ln -s /usr/local/cuda cuda diff --git a/testing/batch_explosion.py b/testing/batch_explosion.py index 2c2778d..b4922cf 100644 --- a/testing/batch_explosion.py +++ b/testing/batch_explosion.py @@ -34,7 +34,7 @@ def model_for_test(Inputs): train.compileModel(learningrate=0.001, - loss='categorical_crossentropy',metrics='accuracy') + loss='categorical_crossentropy',metrics=['accuracy']) #metrics=['accuracy']) From 1e60b434cf7c65e9423b6a8daa8fb2f453680997 Mon Sep 17 00:00:00 2001 From: jkiesele Date: Fri, 27 Mar 2020 12:11:03 +0100 Subject: [PATCH 242/437] experimental docker file --- docker/Dockerfile | 8 ++++++- docker/Dockerfile_exp | 54 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 docker/Dockerfile_exp diff --git a/docker/Dockerfile b/docker/Dockerfile index 24d16f8..889b5f2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,5 +1,5 @@ -FROM cernml4reco/djcbase:devpy3 +FROM cernml4reco/djcbase:py3 @@ -10,6 +10,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ pip3 --no-cache-dir install tensorflow-gpu==2.1 +#2.1 +RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow_core/include/third_party && \ + mkdir gpus && \ + cd gpus && \ + ln -s /usr/local/cuda cuda + #2.2.0-rc1 #RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ # mkdir gpus && \ diff --git a/docker/Dockerfile_exp b/docker/Dockerfile_exp new file mode 100644 index 0000000..079309a --- /dev/null +++ b/docker/Dockerfile_exp @@ -0,0 +1,54 @@ + +FROM cernml4reco/djcbase:py3 + + + +################################################################################ +# Tensorflow + +RUN export DEBIAN_FRONTEND=noninteractive && \ + pip3 --no-cache-dir install tensorflow-gpu==2.2.0-rc1 + + +#2.2.0-rc1 +RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ + mkdir gpus && \ + cd gpus && \ + ln -s /usr/local/cuda cuda + + + +################################################################################ +# the actual DeepJetCore. Make sure this gets built every time + +ARG BUILD_DATE +LABEL org.label-schema.build-date=$BUILD_DATE + +ENV DEEPJETCORE /usr/share/DJC/DeepJetCore + +RUN ldconfig && \ + cd /usr/share && \ + mkdir DJC && \ + cd DJC && \ + git clone https://github.com/DL4Jets/DeepJetCore && \ + cd DeepJetCore && \ +# git checkout 2.2_tf1.15 &&\ + source docker_env.sh && \ + cd compiled && \ + make -j4 + + +ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" + +#/usr/local/lib is for root +ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" +ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" + + +# helpers for ragged and cuda compilation + + + +# The fix for TensorFlow + + \ No newline at end of file From 21daf2639d8caf652d35c03be80c3e27f5f2f17c Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 28 Mar 2020 15:30:00 +0100 Subject: [PATCH 243/437] python3 migration, will tag as 3.0 --- docker/Dockerfile_base | 9 +++++- environment/activateROOT.sh | 23 --------------- environment/djcenv.conda | 59 ------------------------------------- environment/djcenv.pip | 42 -------------------------- environment/djcenv_gpu.pip | 42 -------------------------- environment/setup_djcenv.sh | 48 ------------------------------ modeltools.py | 32 ++------------------ 7 files changed, 11 insertions(+), 244 deletions(-) delete mode 100644 environment/activateROOT.sh delete mode 100644 environment/djcenv.conda delete mode 100644 environment/djcenv.pip delete mode 100644 environment/djcenv_gpu.pip delete mode 100755 environment/setup_djcenv.sh diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index ff8d88f..4a27a4e 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -63,6 +63,13 @@ RUN pip3 install opencv-python easydict tqdm Cython numba RUN pip3 install gpustat setGPU ## torch/jupyter stuff -RUN pip3 install torch future gensim jupyter prompt-toolkit +RUN pip3 install torch future gensim jupyter prompt-toolkit torch_geometric EXPOSE 8888 +#for singularity panic +RUN adduser --disabled-password --gecos "" dummyuser + + + + + diff --git a/environment/activateROOT.sh b/environment/activateROOT.sh deleted file mode 100644 index 9db0bbc..0000000 --- a/environment/activateROOT.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -# hack to make root-numpy and ROOT work properly in python -# this is necessary because the original package that is checked -# out by conda is broken - -cd ${CONDA_PREFIX} -source bin/thisroot.sh -cd - - -echo "Activate: ROOT has been sourced. Environment settings are ready. " -echo "ROOTSYS="${ROOTSYS} - -if [ -n "${LD_LIBRARY_PATH}" ]; then - unset LD_LIBRARY_PATH -fi - - -if [ -n "${DYLD_LIBRARY_PATH}" ]; then - unset DYLD_LIBRARY_PATH -fi - - diff --git a/environment/djcenv.conda b/environment/djcenv.conda deleted file mode 100644 index 31ff785..0000000 --- a/environment/djcenv.conda +++ /dev/null @@ -1,59 +0,0 @@ -# This file may be used to create an environment using: -# $ conda create --name --file -# platform: linux-64 -@EXPLICIT -https://repo.continuum.io/pkgs/main/linux-64/ca-certificates-2019.1.23-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libgfortran-3.0.0-1.tar.bz2 -https://repo.continuum.io/pkgs/main/linux-64/libstdcxx-ng-8.2.0-hdf63c60_1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/expat-2.1.0-0.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/fftw-3.3.4-2.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/glibc-2.12.2-3.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/gmp-5.1.2-3.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/gsl-1.16-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/icu-54.1-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/jbig-2.1-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/jpeg-9b-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libffi-3.2.1-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libgcc-5.2.0-0.tar.bz2 -https://repo.continuum.io/pkgs/main/linux-64/libgcc-ng-8.2.0-hdf63c60_1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libiconv-1.14-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libxcb-1.12-1.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/linux-headers-2.6.32-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/mkl-2017.0.1-0.tar.bz2 -https://repo.continuum.io/pkgs/main/linux-64/ncurses-6.0-h9df7e31_2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/openssl-1.0.1k-1.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/pcre-8.37-5.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/readline-6.2-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/sqlite-3.13.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/system-5.8-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/tk-8.5.18-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/xz-5.2.2-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/zlib-1.2.8-3.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/dbus-1.10.10-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/glib-2.43.0-1.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/hdf5-1.8.17-1.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/isl-0.12.2-2.tar.bz2 -https://repo.continuum.io/pkgs/main/linux-64/libedit-3.1-heed3624_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libpng-1.6.27-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libtiff-4.0.6-3.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/libxml2-2.9.4-0.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/mpfr-3.1.2-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/python-2.7.5-3.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/boost-1.61.0-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/main/linux-64/certifi-2019.3.9-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/cloog-0.18.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/freetype-2.5.5-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/gstreamer-1.8.0-0.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/mpc-1.0.1-2.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/numexpr-2.6.2-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/scikit-learn-0.18.2-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/wheel-0.29.0-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/fontconfig-2.12.1-3.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/gcc-4.8.2-25.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/graphviz-2.38.0-4.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/gst-plugins-base-1.8.0-0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/pytables-3.3.0-np113py27_0.tar.bz2 -https://repo.continuum.io/pkgs/main/linux-64/setuptools-41.0.1-py27_0.tar.bz2 -https://repo.continuum.io/pkgs/free/linux-64/qt-5.6.2-3.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/root-6.04-py2.7_gcc4.8.2.tar.bz2 -https://conda.anaconda.org/NLeSC/linux-64/root-numpy-4.4.0-root6.04_py2.7.tar.bz2 diff --git a/environment/djcenv.pip b/environment/djcenv.pip deleted file mode 100644 index 07635d5..0000000 --- a/environment/djcenv.pip +++ /dev/null @@ -1,42 +0,0 @@ -absl-py==0.7.1 -astor==0.7.1 -backports.weakref==1.0.post1 -bleach==1.5.0 -blessings==1.7 -certifi==2019.3.9 -cycler==0.10.0 -enum34==1.1.6 -funcsigs==1.0.2 -functools32==3.2.3.post2 -futures==3.2.0 -gast==0.2.2 -gpustat==0.5.0 -grpcio==1.20.1 -h5py==2.9.0 -html5lib==0.9999999 -Keras==2.2.4 -Keras-Applications==1.0.7 -Keras-Preprocessing==1.0.9 -Markdown==3.1 -matplotlib==2.0.0 -mock==2.0.0 -numexpr==2.6.2 -numpy==1.16.3 -pbr==2.0.0 -protobuf==3.7.1 -psutil==5.6.2 -pyparsing==2.2.0 -python-dateutil==2.6.0 -pytz==2016.10 -PyYAML==5.1 -root-numpy==4.4.0.dev0 -scikit-learn==0.18.2 -scipy==1.2.1 -six==1.12.0 -subprocess32==3.2.7 -tables==3.3.0 -tensorboard==1.13.1 -tensorflow-estimator==1.13.0 -tensorflow==1.13.1 -termcolor==1.1.0 -Werkzeug==0.15.2 diff --git a/environment/djcenv_gpu.pip b/environment/djcenv_gpu.pip deleted file mode 100644 index 460f2ff..0000000 --- a/environment/djcenv_gpu.pip +++ /dev/null @@ -1,42 +0,0 @@ -absl-py==0.7.1 -astor==0.7.1 -backports.weakref==1.0.post1 -bleach==1.5.0 -blessings==1.7 -cycler==0.10.0 -enum34==1.1.6 -funcsigs==1.0.2 -functools32==3.2.3.post2 -futures==3.2.0 -gast==0.2.2 -gpustat==0.5.0 -grpcio==1.20.1 -h5py==2.9.0 -html5lib==0.9999999 -Keras==2.2.4 -Keras-Applications==1.0.7 -Keras-Preprocessing==1.0.9 -Markdown==3.1 -matplotlib==2.0.0 -mock==2.0.0 -numexpr==2.6.2 -numpy==1.16.3 -pbr==2.0.0 -protobuf==3.7.1 -psutil==5.6.2 -pyparsing==2.2.0 -python-dateutil==2.6.0 -pytz==2016.10 -PyYAML==5.1 -root-numpy==4.4.0.dev0 -scikit-learn==0.18.2 -scipy==1.2.1 -setGPU==0.0.7 -six==1.12.0 -subprocess32==3.2.7 -tables==3.3.0 -tensorboard==1.13.1 -tensorflow-estimator==1.13.0 -tensorflow-gpu==1.13.1 -termcolor==1.1.0 -Werkzeug==0.15.2 diff --git a/environment/setup_djcenv.sh b/environment/setup_djcenv.sh deleted file mode 100755 index 1f2f789..0000000 --- a/environment/setup_djcenv.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -if [ ! `which conda` ] -then -echo Please install the anaconda package manager -exit 1 -fi - - -addstring="" - -if [[ $1 == "gpu" ]] -then - echo "setting up for gpu usage" - addstring="_${1}" -fi - - - -envfile=djcenv.conda -envname="${envfile%.*}${addstring}" -pipfile="${envfile%.*}.pip" -pipfilegpu="${envfile%.*}_gpu.pip" - - -conda create --copy --name $envname python=2.7.13 -conda install --name $envname --file $envfile - -source activate $envname - -if [ $addstring ] -then - pip install -r $pipfilegpu - pip install setGPU -else - pip install -r $pipfile -fi - - -cp activateROOT.sh $CONDA_PREFIX/etc/conda/activate.d/activateROOT.sh - -echo "please ignore the warning that come with the following installation" - -conda install -c menpo ffmpeg - -echo "stop ignoring the warnings again" - -echo "environment set up. Please activate it with \"source activate ${envname}\"" - diff --git a/modeltools.py b/modeltools.py index 820df02..bbba4f4 100644 --- a/modeltools.py +++ b/modeltools.py @@ -1,31 +1,6 @@ -import imp -try: - imp.find_module('Losses') - from Losses import * -except ImportError: - print 'No Losses module found, ignoring at your own risk' - global_loss_list = {} - -try: - imp.find_module('Layers') - from Layers import * -except ImportError: - print 'No Layers module found, ignoring at your own risk' - global_layers_list = {} - -try: - imp.find_module('Metrics') - from Metrics import * -except ImportError: - print 'No metrics module found, ignoring at your own risk' - global_metrics_list = {} - - - -custom_objs = {} -custom_objs.update(global_loss_list) -custom_objs.update(global_layers_list) -custom_objs.update(global_metrics_list) +from DeepJetCore.customObjects import * + +custom_objs = get_custom_objects() def getLayer(model, name): @@ -35,7 +10,6 @@ def getLayer(model, name): - def printLayerInfosAndWeights(model, noweights=False): for layer in model.layers: g=layer.get_config() From f0802109aeeb118d8ed753cc923948e06194210e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 28 Mar 2020 15:45:01 +0100 Subject: [PATCH 244/437] readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2913118..fcaddaf 100644 --- a/README.md +++ b/README.md @@ -20,13 +20,13 @@ The package comes with a docker file in the subdirectory docker, which will set **Building / using the container** For every release, there is a container on dockerhub, the latest release is tagged. The ``latest`` tag refers to the developing master branch. -``cernml4reco/deepjetcore2:latest`` +``cernml4reco/deepjetcore3:latest`` It can be pulled using docker, or pulled from singularity. For details, please see the corresponding docker or singularity documentation. -To build the container, the files can be found in the ``docker`` subdirectory. It is a two-stage process. First the container ``Dockerfile_base`` needs to be built, containing the basic system packages. This will take a while, because root is being compiled within. The output container name must be ``cernml4reco/djcbase:latest``. In the next step, the actual DeepJetCore container should be built on top. **Please make sure to use a release, not the developing master branch!** +To build the container, the files can be found in the ``docker`` subdirectory. It is a two-stage process. First the container ``Dockerfile_base`` needs to be built, containing the basic system packages. This will take a while, because root is being compiled within. The output container name must be ``cernml4reco/djcbase:py3``. In the next step, the actual DeepJetCore container should be built on top. **Please make sure to use a release, not the developing master branch!** **Users with access to Cernbox** can just run the container through the prepared script at: -``/eos/home-j/jkiesele/singularity/run_deepjetcore2.sh`` +``/eos/home-j/jkiesele/singularity/run_deepjetcore3.sh`` Every user who has subscribed to the e-group ml-deepjetcore will have read access to the containers. The cache dir can get rather large and is normally located at ~/.singularity/cache. To avoid filling up the home afs, the cache can be set to /tmp or the work afs. Once the container is fully closed, the cache can be safely deleted. Singularity reacts to environment variables, e.g. From da06ea1c59031bf0e3c7ccb29ad86edd332bf899 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 28 Mar 2020 17:12:35 +0100 Subject: [PATCH 245/437] backups after n batches --- training/DeepJet_callbacks.py | 25 ++++++++++++++++++------- training/training_base.py | 9 +++++++-- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index d5b35f4..cbd4fdd 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -160,16 +160,26 @@ def on_epoch_begin(self, epoch, logs=None): class saveCheckPointDeepJet(Callback): ''' - this seems obvious, however for some reason the keras model checkpoint fails - to save the optimizer state, needed for resuming a training. Therefore this explicit - implementation. + Slight extension of the normal checkpoint to multiple checkpoints per epoch ''' - def __init__(self,outputDir,model): - self.outputDir=outputDir + def __init__(self,outputFile,model,check_n_batches=-1): + self.outputFile=outputFile self.djmodel=model + self.counter=0 + self.check_n_batches=check_n_batches + + def on_batch_end(self,batch,logs={}): + if self.check_n_batches < 1: + return + if self.counter < self.check_n_batches: + self.counter+=1 + return + self.djmodel.save(self.outputFile) + self.counter=0 + def on_epoch_end(self,epoch, logs={}): - self.djmodel.save(self.outputDir+"/KERAS_check_model_last.h5") + self.djmodel.save(self.outputFile) class DeepJet_callbacks(object): @@ -184,6 +194,7 @@ def __init__(self, outputDir='', minTokenLifetime=5, checkperiod=10, + backup_after_batches=-1, checkperiodoffset=0, plotLossEachEpoch=True, additional_plots=None, @@ -222,7 +233,7 @@ def __init__(self, verbose=1,period=checkperiod, save_weights_only=False) self.callbacks.append(self.modelcheckperiod) - self.modelcheck=saveCheckPointDeepJet(outputDir,model) + self.modelcheck=saveCheckPointDeepJet(outputDir+"/KERAS_check_model_last.h5",model,backup_after_batches) self.callbacks.append(self.modelcheck) if stop_patience>0: diff --git a/training/training_base.py b/training/training_base.py index aa7840e..d64e1fb 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -227,11 +227,14 @@ def __init__( self.outputDir+'/KERAS_model.h5' if os.path.isfile(kfile): self.loadModel(kfile) - self.trainedepoches=sum(1 for line in open(self.outputDir+'losses.log')) + self.trainedepoches=0 + for line in open(self.outputDir+'losses.log'): + valloss = line.split(' ')[1][:-1] + if not valloss == "None": + self.trainedepoches+=1 else: print('no model found in existing output dir, starting training from scratch') - def __del__(self): if hasattr(self, 'train_data'): del self.train_data @@ -381,6 +384,7 @@ def trainModel(self, lr_cooldown=6, lr_minimum=0.000001, checkperiod=10, + backup_after_batches=-1, additional_plots=None, additional_callbacks=None, load_in_mem = False, @@ -408,6 +412,7 @@ def trainModel(self, lr_minimum=lr_minimum, outputDir=self.outputDir, checkperiod=checkperiod, + backup_after_batches=backup_after_batches, checkperiodoffset=self.trainedepoches, additional_plots=additional_plots, batch_loss = plot_batch_loss, From d86939d860e0ad9b230c6377b39872edd03a8b22 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 28 Mar 2020 17:46:05 +0100 Subject: [PATCH 246/437] tf2.2rc2 in exp --- docker/Dockerfile_exp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile_exp b/docker/Dockerfile_exp index 079309a..fd13a39 100644 --- a/docker/Dockerfile_exp +++ b/docker/Dockerfile_exp @@ -7,10 +7,10 @@ FROM cernml4reco/djcbase:py3 # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.2.0-rc1 + pip3 --no-cache-dir install tensorflow-gpu==2.2.0-rc2 -#2.2.0-rc1 +#2.2.0-rc2 RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ cd gpus && \ From 325c6c1c6477829b9f43183e0f3d5928418e4e63 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 3 Apr 2020 11:31:41 +0200 Subject: [PATCH 247/437] torch geometric in base and fix for gpu selection in training base --- docker/Dockerfile_base | 10 +++++++++- training/training_base.py | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 4a27a4e..4b44b4f 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -63,7 +63,15 @@ RUN pip3 install opencv-python easydict tqdm Cython numba RUN pip3 install gpustat setGPU ## torch/jupyter stuff -RUN pip3 install torch future gensim jupyter prompt-toolkit torch_geometric +RUN pip3 install future gensim jupyter prompt-toolkit +RUN export CUDA="cu101" && \ + pip3 install torch-scatter==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.4.0.html && \ + pip3 install torch-sparse==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.4.0.html && \ + pip3 install torch-cluster==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.4.0.html && \ + pip3 install torch-spline-conv==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.4.0.html && \ + pip3 install torch-geometric + + EXPOSE 8888 #for singularity panic diff --git a/training/training_base.py b/training/training_base.py index d64e1fb..3250f42 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -89,7 +89,7 @@ def __init__( parser.add_argument('inputDataCollection') parser.add_argument('outputDir') parser.add_argument('--modelMethod', help='Method to be used to instantiate model in derived training class', metavar='OPT', default=None) - parser.add_argument("--gpu", help="select specific GPU", metavar="OPT", default=-1) + parser.add_argument("--gpu", help="select specific GPU", metavar="OPT", default="") parser.add_argument("--gpufraction", help="select memory fraction for GPU", type=float, metavar="OPT", default=-1) parser.add_argument("--submitbatch", help="submits the job to condor" , default=False, action="store_true") parser.add_argument("--walltime", help="sets the wall time for the batch job, format: 1d5h or 2d or 3h etc" , default='1d') @@ -112,7 +112,7 @@ def __init__( import matplotlib #if no X11 use below matplotlib.use('Agg') - if args.gpu<0: + if not len(args.gpu): import imp try: imp.find_module('setGPU') @@ -140,7 +140,7 @@ def __init__( import keras self.ngpus=1 - if (not args.gpu<0) and len(args.gpu): + if len(args.gpu): self.ngpus=len([i for i in args.gpu.split(',')]) print('running on '+str(self.ngpus)+ ' gpus') From e0d8c0db41222d9663a689208e5b589e32be7355 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 14 Apr 2020 16:11:30 +0200 Subject: [PATCH 248/437] readme for non keras training --- README.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/README.md b/README.md index fcaddaf..5e734d6 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,59 @@ To create a ragged data structure, the function ``convertFromSourceFile(self, fi For training, the model will receive a list of tensors, where the first one will be the data and the second the row splits. The same applies to the truth. This circumvents incomplete keras support for the moment. +Using the data pipeline directly +===================== + +The data pipeline can also be used without the training_base class sourrounding it. The DataCollection can be opened and a generator function can be invoked that returns the data batch-by-batch. An example is given here: + +``` +from DeepJetCore.DataCollection import DataCollection +train_data = DataCollection("path/to/your/dataCollection.dc") + +# splits off 10% of the training dataset for validation. Can be used in the same way as train_data +val_data=train_data.split(0.9) + +# Set the batch size. +# If the data is ragged in dimension 1 (see convert options), +# then this is the maximum number of elements per batch, which could be distributed differently +# to individual examples. E.g., if the first example has 50 elements, the second 48, and the third 30, +# and the batch size is set to 100, it would return the first two examples (in total 99 elements) in +# the first batch etc. This is helpful to avoid out-of-memory errors during training + +train_data.setBatchSize(100) + +# prepare the generator + +train_data.invokeGenerator() + +# loop over epochs here ... + +train_data.generator.shuffleFilelist() +train_data.generator.prepareNextEpoch() + +# this number can differ from epoch to epoch for ragged data! +nbatches = train_data.generator.getNBatches() + +for b in range(nbatches): + + #should not happen unless files are broken (will give additional errors) + if train_data.generator.isEmpty(): + raise Exception("ran out of data") + + # this returns a TrainData object. + data = train_data.generator.getBatch() + + features_list = data.transferFeatureListToNumpy() + truth_list = data.transferTruthListToNumpy() + weight_list = data.transferWeightListToNumpy() #optional + + # do your training + + +# end epoch loop + +``` + For developers ===================== From 429feb9c0cc719eefe94df9076f2724eb5c5b3f6 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 15 Apr 2020 13:12:21 +0200 Subject: [PATCH 249/437] more py3 adjustments --- DataCollection.py | 1 + TrainData.py | 2 +- bin/convertToPB.py | 29 ++------------------- bin/predict.py | 49 +++-------------------------------- bin/prepare_for_deployment.py | 36 +++---------------------- 5 files changed, 11 insertions(+), 106 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index b02ce96..02154b0 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -237,6 +237,7 @@ def checkSourceFiles(self): td=self.dataclass() newsamples=[] for s in self.sourceList: + logger.info('checking '+self.getSamplePath(s)) if td.fileIsValid(self.getSamplePath(s)): newsamples.append(s) else: diff --git a/TrainData.py b/TrainData.py index 5ef3902..a8c4424 100644 --- a/TrainData.py +++ b/TrainData.py @@ -32,7 +32,7 @@ def fileTimeOut(fileName, timeOut): print('file I/O problems... waiting for filesystem to become available for '+fileName) while not os.path.isdir(filepath): if counter > timeOut: - print('...file could not be opened within '+str(timeOut)+ ' seconds') + raise Exception('...file could not be opened within '+str(timeOut)+ ' seconds') counter+=1 time.sleep(1) diff --git a/bin/convertToPB.py b/bin/convertToPB.py index 7217641..6d22040 100755 --- a/bin/convertToPB.py +++ b/bin/convertToPB.py @@ -16,35 +16,10 @@ from DeepJetCore.DJCLayers import * from argparse import ArgumentParser from keras import backend as K -import imp -try: - imp.find_module('Losses') - from Losses import * -except ImportError: - print 'No Losses module found, ignoring at your own risk' - global_loss_list = {} - -try: - imp.find_module('Layers') - from Layers import * -except ImportError: - print 'No Layers module found, ignoring at your own risk' - global_layers_list = {} - -try: - imp.find_module('Metrics') - from Metrics import * -except ImportError: - print 'No metrics module found, ignoring at your own risk' - global_metrics_list = {} +from DeepJetCore.customObjects import get_custom_objects -custom_objs = {} -custom_objs.update(djc_global_loss_list) -custom_objs.update(djc_global_layers_list) -custom_objs.update(global_loss_list) -custom_objs.update(global_layers_list) -custom_objs.update(global_metrics_list) +custom_objs = get_custom_objects() sess = tf.Session() from keras.models import load_model diff --git a/bin/predict.py b/bin/predict.py index ae476ec..507e1c9 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -12,6 +12,7 @@ args = parser.parse_args() +batchsize = int(args.b) import imp @@ -19,54 +20,12 @@ from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator import tempfile import atexit -#try: -# imp.find_module('setGPU') -# import setGPU -#except ImportError: -# found = False - +import os from keras.models import load_model -from DeepJetCore.DJCLosses import * -from DeepJetCore.DJCLayers import * from keras import backend as K -import os -import imp -try: - imp.find_module('Losses') - from Losses import * -except ImportError: - print 'No Losses module found, ignoring at your own risk' - global_loss_list = {} - -try: - imp.find_module('Layers') - from Layers import * -except ImportError: - print 'No Layers module found, ignoring at your own risk' - global_layers_list = {} - -try: - imp.find_module('Metrics') - from Metrics import * -except ImportError: - print 'No metrics module found, ignoring at your own risk' - global_metrics_list = {} - -import os - - -batchsize = int(args.b) - -#if os.path.isdir(args.outputDir): -# raise Exception('output directory must not exists yet') - -custom_objs = {} -custom_objs.update(djc_global_loss_list) -custom_objs.update(djc_global_layers_list) -custom_objs.update(global_loss_list) -custom_objs.update(global_layers_list) -custom_objs.update(global_metrics_list) +from DeepJetCore.customObjects import get_custom_objects +custom_objs = get_custom_objects() model=load_model(args.inputModel, custom_objects=custom_objs) dc = DataCollection(args.trainingDataCollection) diff --git a/bin/prepare_for_deployment.py b/bin/prepare_for_deployment.py index 34ceb77..253a1d5 100755 --- a/bin/prepare_for_deployment.py +++ b/bin/prepare_for_deployment.py @@ -13,45 +13,15 @@ from keras.models import load_model from keras import backend as K from tensorflow.python.tools import optimize_for_inference_lib -from DeepJetCore.DJCLosses import * -from DeepJetCore.DJCLayers import * +from DeepJetCore.customObjects import get_custom_objects + +custom_objs = get_custom_objects() import tensorflow as tf sess = tf.Session() K.set_session(sess) -import imp -try: - imp.find_module('Losses') - from Losses import * -except ImportError: - print 'No Losses module found, ignoring at your own risk' - global_loss_list = {} - -try: - imp.find_module('Layers') - from Layers import * -except ImportError: - print 'No Layers module found, ignoring at your own risk' - global_layers_list = {} - -try: - imp.find_module('Metrics') - from Metrics import * -except ImportError: - print 'No metrics module found, ignoring at your own risk' - global_metrics_list = {} - -def format_name(name): - if ':' not in name: return name - else: - return name.split(':')[0] - -custom_objs = {} -custom_objs.update(global_loss_list) -custom_objs.update(global_layers_list) -custom_objs.update(global_metrics_list) K.set_learning_phase(False) #FUNDAMENTAL! this MUST be before loading the model! model=load_model(args.model, custom_objects=custom_objs) From 545ae25dc610d95fdd5be26ec504def51483fca8 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 15 Apr 2020 13:22:36 +0200 Subject: [PATCH 250/437] another py3 fix --- training/training_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/training/training_base.py b/training/training_base.py index 3250f42..8bda1e7 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -174,7 +174,7 @@ def __init__( isNewTraining=True if os.path.isdir(self.outputDir): if not (resumeSilently or recreate_silently): - var = raw_input('output dir exists. To recover a training, please type "yes"\n') + var = input('output dir exists. To recover a training, please type "yes"\n') if not var == 'yes': raise Exception('output directory must not exists yet') isNewTraining=False From 20739634a57ca3eceb248e5c9ddf516075c0d3ff Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 20 Apr 2020 11:32:58 +0200 Subject: [PATCH 251/437] some features for ROCs, python3 fix in preprocessing, valdata can be passed directly to trainingbase --- bin/predict.py | 2 +- compiled/interface/rocCurve.h | 2 ++ compiled/src/rocCurve.cpp | 34 +++++++++++++++++++++++++---- compiled/src/rocCurveCollection.cpp | 2 +- env.sh | 22 ------------------- evaluation/evaluation.py | 10 ++++----- preprocessing/preprocessing.py | 20 ++++++++--------- training/training_base.py | 22 ++++++++++++------- 8 files changed, 63 insertions(+), 51 deletions(-) delete mode 100644 env.sh diff --git a/bin/predict.py b/bin/predict.py index 507e1c9..1bae741 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -61,7 +61,7 @@ gen.setBuffer(td) def genfunc(): - while(1): + while(not gen.isEmpty()): d = gen.getBatch() yield d.transferFeatureListToNumpy() , d.transferTruthListToNumpy() diff --git a/compiled/interface/rocCurve.h b/compiled/interface/rocCurve.h index f1234a9..bf21776 100644 --- a/compiled/interface/rocCurve.h +++ b/compiled/interface/rocCurve.h @@ -106,6 +106,8 @@ class rocCurve{ bool fullanalysis_; float yscale_; + double scaledSoftsign(double x, double scaler)const; + }; diff --git a/compiled/src/rocCurve.cpp b/compiled/src/rocCurve.cpp index 8cb392e..8ff9a20 100644 --- a/compiled/src/rocCurve.cpp +++ b/compiled/src/rocCurve.cpp @@ -75,6 +75,7 @@ rocCurve::~rocCurve(){ //empty for now } + //now done in a simple tree-Draw way - if optmisation needed: switch to putting rocs in a loop (TBI) void rocCurve::process(TChain *c,std::ostream& out){ @@ -123,12 +124,31 @@ void rocCurve::process(TChain *c,std::ostream& out){ TString nrcc=""; nrcc+=nrocsCounter; + //the bins should be log scale towards high probabilities if nbins>200 + //map over modified softsign + + TCanvas cv;//just a dummy - probh_=TH1D("prob"+nrcc,"prob"+nrcc,nbins_,0,1.+0.00001); - vetoh_=TH1D("veto"+nrcc,"veto"+nrcc,nbins_,0,1.+0.00001); - invalidate_=TH1D("invalid"+nrcc,"invalid"+nrcc,nbins_,0,1.+0.00001); - invalidate_veto_=TH1D("invalid_veto"+nrcc,"invalid_veto"+nrcc,nbins_,0,1.+0.00001); + if(nbins_<201){ + probh_=TH1D("prob"+nrcc,"prob"+nrcc,nbins_,0,1.+0.00001); + vetoh_=TH1D("veto"+nrcc,"veto"+nrcc,nbins_,0,1.+0.00001); + invalidate_=TH1D("invalid"+nrcc,"invalid"+nrcc,nbins_,0,1.+0.00001); + invalidate_veto_=TH1D("invalid_veto"+nrcc,"invalid_veto"+nrcc,nbins_,0,1.+0.00001); + } + else{ + std::vector binning; + double scaler=20; + for(float i=0.;i<(float)nbins_ + 0.1;i++){ + double x = i / ((float)nbins_-1.)+0.000001; + double bc = scaledSoftsign(x,scaler); + binning.push_back(bc); + } + probh_=TH1D("prob"+nrcc,"prob"+nrcc,nbins_,&binning.at(0)); + vetoh_=TH1D("veto"+nrcc,"veto"+nrcc,nbins_,&binning.at(0)); + invalidate_=TH1D("invalid"+nrcc,"invalid"+nrcc,nbins_,&binning.at(0)); + invalidate_veto_=TH1D("invalid_veto"+nrcc,"invalid_veto"+nrcc,nbins_,&binning.at(0)); + } c->Draw(probstr+">>prob"+nrcc,allcuts);//probcuts); c->Draw(probstr+">>veto"+nrcc,vetostr); @@ -208,6 +228,12 @@ void rocCurve::process(TChain *c,std::ostream& out){ } +double rocCurve::scaledSoftsign(double x, double d)const{ + double norm = 1. /(d / (1+ fabs(d))); + double softs = d*x /(1 + fabs(d*x)); + return norm*softs; +} + diff --git a/compiled/src/rocCurveCollection.cpp b/compiled/src/rocCurveCollection.cpp index d2b8c23..8d5e546 100644 --- a/compiled/src/rocCurveCollection.cpp +++ b/compiled/src/rocCurveCollection.cpp @@ -106,7 +106,7 @@ void rocCurveCollection::printRocs(TChain* c, const TString& outpdf, TH1D haxis=TH1D("AXIS","AXIS",10,0,1.); //haxis.Draw("AXIS"); - haxis.GetYaxis()->SetRangeUser(maxyscale*8e-4,maxyscale); + haxis.GetYaxis()->SetRangeUser(maxyscale*8e-6,maxyscale); //haxis.GetYaxis()->SetNdivisions(510); haxis.GetYaxis()->SetTitleSize(0.05); diff --git a/env.sh b/env.sh deleted file mode 100644 index 084ab44..0000000 --- a/env.sh +++ /dev/null @@ -1,22 +0,0 @@ - - -if command -v nvidia-smi > /dev/null -then - source activate djcenv_gpu -else - source activate djcenv -fi - -export DEEPJETCORE=`pwd` - -export PATH=`pwd`/bin:$PATH -export PYTHONPATH=`pwd`/../:$PYTHONPATH -if [ $LD_LIBRARY_PATH ] -then - export LD_LIBRARY_PATH=`pwd`/compiled/:$LD_LIBRARY_PATH -else - export LD_LIBRARY_PATH=`pwd`/compiled/ -fi -export LD_LIBRARY_PATH=`locate_cuda.py` -export LD_PRELOAD=$CONDA_PREFIX/lib/libmkl_core.so:$CONDA_PREFIX/lib/libmkl_sequential.so - diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index 9224a93..ace15ae 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -46,14 +46,14 @@ def makeASequence(arg,length): - isseq=(not hasattr(arg, "strip") and - hasattr(arg, "__getitem__") or - hasattr(arg, "__iter__")) + isseq=((not hasattr(arg, "strip")) and + (hasattr(arg, "__getitem__") or + hasattr(arg, "__iter__"))) out=[] if isseq: if len(arg)==length: return arg - for i in range(length/len(arg)): + for i in range(int(length/len(arg))): out.extend(arg) else: for i in range(length): @@ -128,7 +128,7 @@ def makeROCs_async(intextfile, name_list, probabilities_list, truths_list, vetos colors_list=createColours(colors_list,namelistcopy,nnames,extralegcopy) - + #check if multi-input file files=makeASequence(intextfile,len(namelistcopy)) diff --git a/preprocessing/preprocessing.py b/preprocessing/preprocessing.py index 67db40f..230051e 100644 --- a/preprocessing/preprocessing.py +++ b/preprocessing/preprocessing.py @@ -539,8 +539,8 @@ def MeanNormZeroPad(Filename_in,MeanNormTuple,inbranches_listlist,nMaxslist,neve #print(array) return array -def read2DArray(filename, treename, branchname, nevents, xsize, ysize, - rebinx=1,rebiny=1, +def read2DArray(filename, treename, branchname, nevents: int, xsize: int, ysize: int, + rebinx: int=1,rebiny: int=1, zeropad=False): if xsize%rebinx or ysize%rebiny: @@ -548,13 +548,13 @@ def read2DArray(filename, treename, branchname, nevents, xsize, ysize, from DeepJetCore.compiled import c_arrayReads - array = numpy.zeros((nevents,xsize/rebinx, ysize/rebiny,1) , dtype='float32') + array = numpy.zeros((nevents,xsize//rebinx, ysize//rebiny,1) , dtype='float32') ncut=numpy.array([0],dtype='float32') c_arrayReads.read2DArray(array,filename, treename, branchname,rebinx,rebiny,zeropad, False, ncut) return array -def readListArray(filename, treename, branchname, nevents, list_size, n_feat_per_element, +def readListArray(filename, treename, branchname, nevents: int, list_size: int, n_feat_per_element: int, zeropad=False, list_size_cut=False): @@ -573,8 +573,8 @@ def readListArray(filename, treename, branchname, nevents, list_size, n_feat_per return array -def read3DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, - rebinx=1,rebiny=1,rebinz=1, +def read3DArray(filename, treename, branchname, nevents: int, xsize: int, ysize: int, zsize: int, + rebinx: int=1,rebiny: int=1,rebinz: int=1, zeropad=False): if xsize%rebinx or ysize%rebiny or zsize%rebinz: @@ -582,14 +582,14 @@ def read3DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, from DeepJetCore.compiled import c_arrayReads - array = numpy.zeros((nevents,xsize/rebinx, ysize/rebiny,zsize/rebinz,1) , dtype='float32') + array = numpy.zeros((nevents,xsize//rebinx, ysize//rebiny,zsize//rebinz,1) , dtype='float32') c_arrayReads.read3DArray(array,filename, treename, branchname,rebinx,rebiny,rebinz,zeropad) return array -def read4DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, fsize, - rebinx=1,rebiny=1,rebinz=1,rebinf=1, +def read4DArray(filename, treename, branchname, nevents: int, xsize: int, ysize: int, zsize: int, fsize: int, + rebinx: int=1,rebiny: int=1,rebinz: int=1,rebinf: int=1, zeropad=False): if xsize%rebinx or ysize%rebiny or zsize%rebinz or fsize%rebinf: @@ -598,7 +598,7 @@ def read4DArray(filename, treename, branchname, nevents, xsize, ysize, zsize, fs from DeepJetCore.compiled import c_arrayReads - array = numpy.zeros((nevents,xsize/rebinx, ysize/rebiny,zsize/rebinz,fsize/rebinf,1) , dtype='float32') + array = numpy.zeros((nevents,xsize//rebinx, ysize//rebiny,zsize//rebinz,fsize//rebinf,1) , dtype='float32') print(array.shape) diff --git a/training/training_base.py b/training/training_base.py index 8bda1e7..e8edbb8 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -94,6 +94,7 @@ def __init__( parser.add_argument("--submitbatch", help="submits the job to condor" , default=False, action="store_true") parser.add_argument("--walltime", help="sets the wall time for the batch job, format: 1d5h or 2d or 3h etc" , default='1d') parser.add_argument("--isbatchrun", help="is batch run", default=False, action="store_true") + parser.add_argument("--valdata", help="set validation dataset (optional)", default="") args = parser.parse_args() @@ -199,15 +200,20 @@ def __init__( self.train_data.readFromFile(self.inputData) self.train_data.useweights=useweights - if testrun: - if len(self.train_data)>1: - self.train_data.split(testrun_fraction) - - self.train_data.dataclass_instance=None #can't be pickled - self.val_data=copy.deepcopy(self.train_data) + if len(args.valdata): + print('using validation data from ',args.valdata) + self.val_data = DataCollection(args.valdata) + + else: + if testrun: + if len(self.train_data)>1: + self.train_data.split(testrun_fraction) - else: - self.val_data=self.train_data.split(splittrainandtest) + self.train_data.dataclass_instance=None #can't be pickled + self.val_data=copy.deepcopy(self.train_data) + + else: + self.val_data=self.train_data.split(splittrainandtest) From 3c9200a19f837c316771d29cc9209556ea349864 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 21 Apr 2020 13:53:52 +0200 Subject: [PATCH 252/437] some more predict options and - more importantly - bugfix for traindata files beyond 8 GB --- __init__.py | 7 +---- bin/predict.py | 13 ++++++++-- compiled/Makefile | 8 +++--- compiled/interface/quicklzWrapper.h | 14 +++++----- compiled/interface/trainData.h | 34 +++++++++++++++++++++++-- compiled/interface/trainDataGenerator.h | 3 ++- compiled/src/c_trainData.C | 1 + training/gpuTools.py | 15 +++++++++++ training/training_base.py | 13 ++-------- 9 files changed, 76 insertions(+), 32 deletions(-) create mode 100644 training/gpuTools.py diff --git a/__init__.py b/__init__.py index 1d635d8..a45b838 100644 --- a/__init__.py +++ b/__init__.py @@ -1,10 +1,5 @@ -import imp -try: - imp.find_module('setGPU') - import setGPU -except: - pass + import sys import tensorflow as tf diff --git a/bin/predict.py b/bin/predict.py index 1bae741..3269db3 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -9,6 +9,8 @@ parser.add_argument('inputSourceFileList') parser.add_argument('outputDir') parser.add_argument("-b", help="batch size ",default="-1") +parser.add_argument("--gpu", help="select specific GPU", metavar="OPT", default="") +parser.add_argument("--unbuffered", help="do not read input in memory buffered mode (for lower memory consumption on fast disks)", default=False, action="store_true") args = parser.parse_args() @@ -24,12 +26,15 @@ from keras.models import load_model from keras import backend as K from DeepJetCore.customObjects import get_custom_objects +from DeepJetCore.training.gpuTools import DJCSetGPUs + +DJCSetGPUs(args.gpu) custom_objs = get_custom_objects() model=load_model(args.inputModel, custom_objects=custom_objs) dc = DataCollection(args.trainingDataCollection) -td = dc.dataclass() + outputs = [] inputdir = os.path.abspath(os.path.dirname(args.inputSourceFileList)) os.system('mkdir -p '+args.outputDir) @@ -42,9 +47,13 @@ use_inputdir="" outfilename = "pred_"+os.path.basename( inputfile ) + td = dc.dataclass() if inputfile[-5:] == 'djctd': - td.readFromFile(use_inputdir+"/"+inputfile) + if args.unbuffered: + td.readFromFile(use_inputdir+"/"+inputfile) + else: + td.readFromFileBuffered(use_inputdir+"/"+inputfile) else: print('converting '+inputfile) td.readFromSourceFile(use_inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) diff --git a/compiled/Makefile b/compiled/Makefile index e979c9e..8eb782a 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -16,7 +16,7 @@ MODULES := $(wildcard src/*.C) MODULES_OBJ_FILES := $(addprefix ./,$(notdir $(MODULES:.C=.o))) MODULES_SHARED_LIBS := $(addprefix ./,$(notdir $(MODULES:.C=.so))) - +#CFLAGS := -g all: $(MODULES_SHARED_LIBS) $(patsubst to_bin/%.cpp, %, $(wildcard to_bin/*.cpp)) classdict.so @@ -40,13 +40,13 @@ obj/%.o: src/%.cpp #pack helpers in lib libdeepjetcorehelpers.so: $(OBJ_FILES) - g++ -o $@ -shared -fPIC $(LINUXADD) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lboost_python3 -lboost_numpy3 + g++ -o $@ -shared -fPIC $(LINUXADD) $(CFLAGS) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lboost_python3 -lboost_numpy3 %.so: %.o libdeepjetcorehelpers.so libquicklz.so - g++ -o $(@) -shared -fPIC $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lboost_python3 -lboost_numpy3 -L./ -ldeepjetcorehelpers + g++ -o $(@) -shared -g -fPIC $(CFLAGS) $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lboost_python3 -lboost_numpy3 -L./ -ldeepjetcorehelpers %.o: src/%.C - g++ $(ROOTCFLAGS) -O2 -I./interface $(PYTHON_INCLUDE) -fPIC -c -o $(@) $< + g++ $(ROOTCFLAGS) -O2 -g -I./interface $(PYTHON_INCLUDE) -fPIC $(CFLAGS) -c -o $(@) $< diff --git a/compiled/interface/quicklzWrapper.h b/compiled/interface/quicklzWrapper.h index 260e2f2..c3c6046 100644 --- a/compiled/interface/quicklzWrapper.h +++ b/compiled/interface/quicklzWrapper.h @@ -16,6 +16,7 @@ #include #include "IO.h" #include "version.h" +#include #define QUICKLZ_MAXCHUNK (0xffffffff - 400) @@ -109,20 +110,21 @@ template size_t quicklz::readCompressedBlock(FILE *& ifile, T * arr){ size_t chunk = 0; - size_t readbytes = 0; - size_t writepos = 0; size_t allread = 0; char* src = 0; + char * dst = (char*)(void*)arr; while (chunk < nchunks_ && totalbytes_) { + //std::cout << "chunk with size " << chunksizes_.at(chunk) <<" size of " << sizeof(T) <<" total bytes "<< totalbytes_ << std::endl; src = new char[chunksizes_.at(chunk)]; io::readFromFile(src, ifile, 0, chunksizes_.at(chunk)); - readbytes += qlz_size_decompressed(src); + size_t readbytes = qlz_size_decompressed(src); + //std::cout << "bytes to be decompressed " << readbytes << std::endl; - allread += qlz_decompress(src, arr, state_decompress_); - writepos = readbytes; + allread += qlz_decompress(src, dst, state_decompress_); + //std::cout << "decompress success " << readbytes << " allread " << allread << std::endl; chunk++; - arr += writepos / sizeof(T); + dst += readbytes; delete src; } if (allread != totalbytes_) { diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index a7d79e6..cdb37a7 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -119,7 +119,12 @@ class trainData{ void writeToFile(std::string filename)const; - void readFromFile(std::string filename); + void readFromFile(std::string filename){ + priv_readFromFile(filename,false); + } + void readFromFileBuffered(std::string filename){ + priv_readFromFile(filename,true); + } //could use a readshape or something! void readShapesFromFile(const std::string& filename); @@ -180,6 +185,9 @@ class trainData{ #endif private: + + void priv_readFromFile(std::string filename, bool memcp); + void checkFile(FILE *& f, const std::string& filename="")const; void writeArrayVector(const std::vector >&, FILE *&) const; @@ -314,9 +322,27 @@ void trainData::writeToFile(std::string filename)const{ } template -void trainData::readFromFile(std::string filename){ +void trainData::priv_readFromFile(std::string filename, bool memcp){ clear(); FILE *ifile = fopen(filename.data(), "rb"); + char *buf = 0; + if(memcp){ + FILE *diskfile = ifile; + fseek(diskfile, 0, SEEK_END); + size_t fsize = ftell(diskfile); + fseek(diskfile, 0, SEEK_SET); /* same as rewind(f); */ + + buf = new char[fsize]; + int ret = fread(buf, 1, fsize, diskfile); + if(!ret){ + delete buf; + throw std::runtime_error("trainData::readFromFile: could not read file in memcp mode"); + } + fclose(diskfile); + + ifile = fmemopen(buf,fsize,"r"); + } + checkFile(ifile, filename); readNested(feature_shapes_, ifile); readNested(truth_shapes_, ifile); @@ -327,6 +353,10 @@ void trainData::readFromFile(std::string filename){ weight_arrays_ = readArrayVector(ifile); fclose(ifile); + //std::cout << "read done, free"<::readBuffer(){ try{ if(debuglevel>0) std::cout << "reading file " << nextread_ << std::endl; - buffer_read.readFromFile(nextread_); + //use mem buffered read, read whole file in one go and then decompress etc from memory + buffer_read.readFromFileBuffered(nextread_); if(debuglevel>0) std::cout << "reading file " << nextread_ << " done"<< std::endl; return; diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index 234b992..3375cbf 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -38,6 +38,7 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("readShapesFromFile", &trainData::readShapesFromFile) .def("readFromFile", &trainData::readFromFile) + .def("readFromFileBuffered", &trainData::readFromFileBuffered) .def("writeToFile", &trainData::writeToFile) .def("clear", &trainData::clear) diff --git a/training/gpuTools.py b/training/gpuTools.py new file mode 100644 index 0000000..f59343d --- /dev/null +++ b/training/gpuTools.py @@ -0,0 +1,15 @@ +import os + +def DJCSetGPUs(gpus_string: str =""): + if not len(gpus_string): + import imp + try: + imp.find_module('setGPU') + import setGPU + except Exception as e: + print('DeepJetCore.DJCSetGPU: no GPU specified and automatic setting impossible') + raise e + else: + os.environ['CUDA_DEVICE_ORDER'] = 'PCI_BUS_ID' + os.environ['CUDA_VISIBLE_DEVICES'] = gpus_string + print('running on GPU(s) '+gpus_string) \ No newline at end of file diff --git a/training/training_base.py b/training/training_base.py index e8edbb8..f184158 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -19,6 +19,7 @@ import tensorflow.keras as keras from keras.utils import multi_gpu_model import copy +from .gpuTools import DJCSetGPUs import imp try: @@ -113,17 +114,7 @@ def __init__( import matplotlib #if no X11 use below matplotlib.use('Agg') - if not len(args.gpu): - import imp - try: - imp.find_module('setGPU') - import setGPU - except : - found = False - else: - os.environ['CUDA_DEVICE_ORDER'] = 'PCI_BUS_ID' - os.environ['CUDA_VISIBLE_DEVICES'] = str(args.gpu) - print('running on GPU(s) '+str(args.gpu)) + DJCSetGPUs(args.gpu) if args.gpufraction>0 and args.gpufraction<1: import sys From c55fff38e39c2747b0e384d3443bc98c1195060b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 21 Apr 2020 22:45:43 +0200 Subject: [PATCH 253/437] slicing for simpleArrays and massively improved data pipeline, less copy operations --- compiled/interface/simpleArray.h | 99 +++++++++++++++++++++++++ compiled/interface/trainData.h | 31 ++++++++ compiled/interface/trainDataGenerator.h | 24 ++++-- compiled/src/c_simpleArray.C | 1 + testing/CI/testRaggedOperations.py | 8 ++ 5 files changed, 157 insertions(+), 6 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index e0eaa38..1f2d590 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -125,6 +125,14 @@ class simpleArray { */ simpleArray split(size_t splitindex); + simpleArray getSlice(size_t splitindex_begin, size_t splitindex_end) const; + + /* + * + */ + size_t validSlices(std::vector splits)const; + bool validSlice(size_t splitindex_begin, size_t splitindex_end)const; + /* * appends along first axis * Cann append to an empty array (same as copy) @@ -460,6 +468,97 @@ simpleArray simpleArray::split(size_t splitindex) { return out; } + + +template +simpleArray simpleArray::getSlice(size_t splitindex_begin, size_t splitindex_end) const{ + simpleArray out; + if (!shape_.size() || ( !isRagged() && (splitindex_end > shape_.at(0) || splitindex_begin > shape_.at(0))) ) { + std::stringstream errMsg; + errMsg << "simpleArray::slice: splitindex_end > shape_[0] : "; + if(shape_.size()) + errMsg << splitindex_end << ", " << shape_.at(0); + else + errMsg <<"shape size: " << shape_.size() <<" empty array cannot be split."; + cout(); + throw std::runtime_error( + errMsg.str().c_str()); + } + if(splitindex_end == shape_.at(0) && splitindex_begin==0){//exactly the whole array + out = *this; + return out; + } + + if(isRagged() && (splitindex_end >= rowsplits_.size() || splitindex_begin>= rowsplits_.size())){ + std::cout << "split index " << splitindex_end << " - "<< splitindex_begin<< " allowed: " << rowsplits_.size()<< std::endl; + throw std::runtime_error( + "simpleArray::slice: ragged split index out of range"); + } + + //for arrays larger than 8/16(?) GB, size_t is crucial + size_t splitpoint_start = splitindex_begin; + size_t splitpoint_end = splitindex_end; + if(isRagged()){ + splitpoint_start = rowsplits_.at(splitindex_begin); + splitpoint_end = rowsplits_.at(splitindex_end); + for (size_t i = 2; i < shape_.size(); i++){ + splitpoint_start *= (size_t)std::abs(shape_.at(i)); + splitpoint_end *= (size_t)std::abs(shape_.at(i)); + } + } + else{ + for (size_t i = 1; i < shape_.size(); i++){ + splitpoint_start *= (size_t)std::abs(shape_.at(i)); + splitpoint_end *= (size_t)std::abs(shape_.at(i)); + } + } + + T * odata = new T[splitpoint_end-splitpoint_start]; + memcpy(odata, data_+splitpoint_start, (splitpoint_end-splitpoint_start) * sizeof(T)); + + out.data_ = odata; + + out.shape_ = shape_; + out.shape_.at(0) = splitindex_end-splitindex_begin; + + if(isRagged()){ + auto rscopy = rowsplits_; + rscopy = splitRowSplits(rscopy, splitindex_end); + splitRowSplits(rscopy, splitindex_begin); + out.rowsplits_ = rscopy; + out.shape_ = out.shapeFromRowsplits(); + } + /// + out.size_ = sizeFromShape(out.shape_); + return out; + +} + + +template +size_t simpleArray::validSlices(std::vector splits)const{ + size_t out=0; + if(!isRagged()){ + while(splits.at(out) <= shape_.at(0) && out< splits.size()) + out++; + return out; + } + else{ + while(splits.at(out) < rowsplits_.size() && out < splits.size()) + out++; + return out; + } +} + +template +bool simpleArray::validSlice(size_t splitindex_begin, size_t splitindex_end)const{ + if (!shape_.size() || ( !isRagged() && (splitindex_end > shape_.at(0) || splitindex_begin > shape_.at(0))) ) + return false; + if(isRagged() && (splitindex_end >= rowsplits_.size() || splitindex_begin>= rowsplits_.size())) + return false; + return true; +} + /* * Merges along first axis */ diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index cdb37a7..386ecd9 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -86,6 +86,9 @@ class trainData{ * Returns the second part, leaves the first. */ trainData split(size_t splitindex); + trainData getSlice(size_t splitindex_begin, size_t splitindex_end)const; + + bool validSlice(size_t splitindex_begin, size_t splitindex_end)const ; /* * @@ -300,6 +303,34 @@ trainData trainData::split(size_t splitindex) { out.updateShapes(); return out; } +template +trainData trainData::getSlice(size_t splitindex_begin, size_t splitindex_end)const{ + trainData out; + + for (const auto& a : feature_arrays_) + out.feature_arrays_.push_back(a.getSlice(splitindex_begin,splitindex_end)); + for (const auto& a : truth_arrays_) + out.truth_arrays_.push_back(a.getSlice(splitindex_begin,splitindex_end)); + for (const auto& a : weight_arrays_) + out.weight_arrays_.push_back(a.getSlice(splitindex_begin,splitindex_end)); + + out.updateShapes(); + return out; +} + +template +bool trainData::validSlice(size_t splitindex_begin, size_t splitindex_end)const{ + for (const auto& a : feature_arrays_) + if(! a.validSlice(splitindex_begin,splitindex_end)) + return false; + for (const auto& a : truth_arrays_) + if(! a.validSlice(splitindex_begin,splitindex_end)) + return false; + for (const auto& a : weight_arrays_) + if(! a.validSlice(splitindex_begin,splitindex_end)) + return false; + return true; +} template void trainData::writeToFile(std::string filename)const{ diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 8a1ad74..d600a22 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -150,7 +150,7 @@ class trainDataGenerator{ size_t lastbatchsize_; size_t filetimeout_; size_t batchcount_; - + size_t lastbuffersplit_; }; @@ -158,7 +158,7 @@ template trainDataGenerator::trainDataGenerator() :debuglevel(0), randomcount_(1), batchsize_(2),sqelementslimit_(false),skiplargebatches_(true), readthread_(0), filecount_(0), nbatches_( 0), npossiblebatches_(0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), - batchcount_(0){ + batchcount_(0),lastbuffersplit_(0){ } template @@ -442,18 +442,21 @@ trainData trainDataGenerator::prepareBatch(){ usebatch = usebatch_.at(batchcount_); if(debuglevel>2) - std::cout << "expect_batchelements "<join(); delete readthread_; readthread_=0; } + if(lastbuffersplit_) + buffer_store = buffer_store.getSlice(lastbuffersplit_,buffer_store.nElements());//cut the front part buffer_store.append(buffer_read); buffer_read.clear(); bufferelements = buffer_store.nElements(); + lastbuffersplit_=0; if(debuglevel>2) std::cout << "nprocessed " << nsamplesprocessed_ << " file " << filecount_ << " in buffer " << bufferelements @@ -475,7 +478,15 @@ trainData trainDataGenerator::prepareBatch(){ } } - auto thisbatch = buffer_store.split(expect_batchelements); + if( ! buffer_store.validSlice(lastbuffersplit_, lastbuffersplit_+expect_batchelements)){ + throw std::runtime_error("trainDataGenerator::prepareBatch: split error"); + } + + //auto thisbatch = buffer_store.split(expect_batchelements); + auto thisbatch = buffer_store.getSlice(lastbuffersplit_, lastbuffersplit_+expect_batchelements); + + lastbuffersplit_+=expect_batchelements; + // validSlice if(thisbatch.nTotalElements() < 1){ //not sure why this can happen, there might be some bigger problem here. This at least prevents crashes. @@ -484,7 +495,8 @@ trainData trainDataGenerator::prepareBatch(){ if(debuglevel>2) std::cout << "providing batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+expect_batchelements << - " elements in buffer before: " << bufferelements << + ", slice " << lastbuffersplit_-expect_batchelements << "-" << lastbuffersplit_ << + "\nelements in buffer before: " << bufferelements << "\nsplitting at " << expect_batchelements << " use this batch "<< usebatch << " total elements " << thisbatch.nTotalElements() << " elements left in buffer " << buffer_store.nElements()<< std::endl; diff --git a/compiled/src/c_simpleArray.C b/compiled/src/c_simpleArray.C index 9e6ee2c..9370cef 100644 --- a/compiled/src/c_simpleArray.C +++ b/compiled/src/c_simpleArray.C @@ -35,6 +35,7 @@ BOOST_PYTHON_MODULE(c_simpleArray) { .def("copyToNumpy", &simpleArray::copyToNumpy) .def("isRagged", &simpleArray::isRagged) .def("split", &simpleArray::split) + .def("getSlice", &simpleArray::getSlice) .def("append", &simpleArray::append) .def("cout", &simpleArray::cout) .def("size", &simpleArray::isize); diff --git a/testing/CI/testRaggedOperations.py b/testing/CI/testRaggedOperations.py index 84d65e9..6d110c8 100644 --- a/testing/CI/testRaggedOperations.py +++ b/testing/CI/testRaggedOperations.py @@ -9,6 +9,14 @@ arr = simpleArray() arr.createFromNumpy(data, rowsplits) +slice = arr.getSlice(2,6) +nps,rss = slice.copyToNumpy(False) +nps_exp = np.array([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],dtype='float32') +nps_exp = np.reshape(nps_exp, [-1,2]) +rss_exp = np.array([0,4,5,8,15],dtype='int64') + +assert np.all(nps_exp == nps) and np.all(rss_exp == rss) + arr2 = simpleArray() arr2.createFromNumpy(data, rowsplits) From 187f0e209504fb2c678a2233d04de3c48510e9e6 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 21 Apr 2020 22:50:54 +0200 Subject: [PATCH 254/437] also made >8GB safe for split function --- compiled/interface/simpleArray.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 1f2d590..cd7a75c 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -429,15 +429,15 @@ simpleArray simpleArray::split(size_t splitindex) { //get split point for data ///insert rowsplit logic below - int splitpoint = splitindex; + size_t splitpoint = splitindex; if(isRagged()){ splitpoint = rowsplits_.at(splitindex); for (size_t i = 2; i < shape_.size(); i++) - splitpoint *= std::abs(shape_.at(i)); + splitpoint *= (size_t)std::abs(shape_.at(i)); } else{ for (size_t i = 1; i < shape_.size(); i++) - splitpoint *= std::abs(shape_.at(i)); + splitpoint *= (size_t)std::abs(shape_.at(i)); } From 2c7c7b4742f0c3c8ecb3fd3bff5092bb3c646077 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 30 Apr 2020 13:07:44 +0200 Subject: [PATCH 255/437] bugfix in generator if used for more than one call in buffer mode --- compiled/interface/colorToTColor.h | 10 ++- compiled/interface/helper.h | 16 ++++ compiled/interface/trainDataGenerator.h | 16 +++- compiled/src/c_makePlots.C | 107 +++++++++++++----------- compiled/src/rocCurve.cpp | 2 +- evaluation/evaluation.py | 21 +++-- training/DeepJet_callbacks.py | 30 ++++++- 7 files changed, 141 insertions(+), 61 deletions(-) diff --git a/compiled/interface/colorToTColor.h b/compiled/interface/colorToTColor.h index 010101d..f195b74 100644 --- a/compiled/interface/colorToTColor.h +++ b/compiled/interface/colorToTColor.h @@ -45,8 +45,13 @@ int lineToTLineStyle(const TString& str){ int colorToTColor(const TString& str){ TString copstr=str; - copstr.ToLower(); + TColor col; + if(copstr.BeginsWith("#")){ + copstr.Resize(7); + return col.GetColor(copstr); + } + copstr.ToLower(); if(copstr.Contains("black")) return kBlack; @@ -93,7 +98,8 @@ int colorToTColor(const TString& str){ * green\n\ * darkgreen\n\ * purple\n\ - * darkpurple"< +T* getLineDouble(const T * h); /** * transfers ownership of the data to numpy array if no copy. @@ -87,4 +89,18 @@ boost::python::numpy::ndarray STLToNumpy(const T * data, const std::vector& } + +template +T* getLineDouble(const T * h){ + T* h2 = (T*)h->Clone(h->GetName()+(TString)"dline"); + h2->SetLineWidth(h->GetLineWidth()+1); + h2->SetLineColor(kBlack); + h2->SetLineColorAlpha(kBlack,0.8); + return h2; +} + + + + + #endif /* DEEPJET_MODULES_INTERFACE_HELPER_H_ */ diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index d600a22..6e43b85 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -181,6 +181,7 @@ void trainDataGenerator::shuffleFilelist(){ //redo splits etc prepareSplitting(); batchcount_=0; + lastbuffersplit_=0; } template @@ -197,6 +198,7 @@ void trainDataGenerator::setBuffer(const trainData& td){ shuffle_indices_.push_back(0); ntotal_ = td.nElements(); buffer_store=td; + lastbuffersplit_=0; prepareSplitting(); } @@ -259,6 +261,7 @@ void trainDataGenerator::readInfo(){ if(debuglevel>0) std::cout << "trainDataGenerator::readInfo: total elements "<< ntotal_ <::prepareNextEpoch(){ filecount_=0; nsamplesprocessed_=0; batchcount_=0; + lastbuffersplit_=0; nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); filecount_++; readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); @@ -419,6 +423,7 @@ void trainDataGenerator::clear(){ ntotal_=0; nsamplesprocessed_=0; lastbatchsize_=0; + lastbuffersplit_=0; // filetimeout_ keep batchcount_=0; } @@ -430,7 +435,8 @@ trainData trainDataGenerator::getBatch(){ template trainData trainDataGenerator::prepareBatch(){ - if(batchcount_ >= splits_.size()){ + if(isEmpty()){ + std::cout << "trainDataGenerator::prepareBatch: batchcount " << batchcount_ << ", available: " << splits_.size() << std::endl; throw std::runtime_error("trainDataGenerator::prepareBatch: asking for more batches than in dataset"); } @@ -464,9 +470,13 @@ trainData trainDataGenerator::prepareBatch(){ << " total events "<< ntotal_<< std::endl; if(nsamplesprocessed_ + bufferelements < ntotal_){ - if (filecount_ >= orig_infiles_.size()) + if (filecount_ >= orig_infiles_.size()){ + std::cout << "trainDataGenerator::prepareBatch: filecount: "<< filecount_ <<" infiles "<< orig_infiles_.size()<< + " processed: "<< nsamplesprocessed_ << " buffer: "<< bufferelements << " total "<< ntotal_ << std::endl; throw std::runtime_error( - "trainDataGenerator::getBatch: more batches requested than data in the sample"); + "trainDataGenerator::prepareBatch: more file reads requested than batches in the sample"); + + } nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); diff --git a/compiled/src/c_makePlots.C b/compiled/src/c_makePlots.C index 4f6957a..b95d316 100644 --- a/compiled/src/c_makePlots.C +++ b/compiled/src/c_makePlots.C @@ -13,6 +13,7 @@ #include #include #include "../interface/pythonToSTL.h" +#include "../interface/helper.h" #include "friendTreeInjector.h" #include "TROOT.h" #include "colorToTColor.h" @@ -23,6 +24,7 @@ #include "TFile.h" #include "TStyle.h" #include +#include "TEfficiency.h" using namespace boost::python; //for some reason.... @@ -31,6 +33,15 @@ static void mergeOverflow(TH1F*h){ h->SetBinContent(1,h->GetBinContent(1)+h->GetBinContent(0)); } +void setStyles(TH1* h){ + h->GetXaxis()->SetTitleSize(0.05); + h->GetXaxis()->SetTitleOffset(0.0); + h->GetXaxis()->SetLabelSize(0.05); + h->GetYaxis()->SetTitleSize(0.05); + h->GetYaxis()->SetTitleOffset(1.0); + h->GetYaxis()->SetLabelSize(0.05); +} + void makePlots( const boost::python::list intextfiles, @@ -226,7 +237,7 @@ void makeEffPlots( std::string outfile, std::string xaxis, std::string yaxis, - int rebinfactor, + int nbins, bool setLogY, float Xmin, float Xmax, @@ -301,7 +312,15 @@ void makeEffPlots( injector.createChain(); TChain* c=injector.getChain(); - std::vector allhistos; + + TString tfileout=toutfile; + tfileout=tfileout(0,tfileout.Length()-4); + tfileout+=".root"; + + TFile * f = new TFile(tfileout,"RECREATE"); + TCanvas cv("plots"); + std::vector allhistos; + TH1F * axishisto=new TH1F("AXIS","AXIS",nbins,Xmin,Xmax); TLegend * leg=new TLegend(0.2,0.75,0.8,0.88); leg->SetBorderSize(0); @@ -312,11 +331,6 @@ void makeEffPlots( float max=-1e100; float min=1e100; - TString tfileout=toutfile; - tfileout=tfileout(0,tfileout.Length()-4); - tfileout+=".root"; - - TFile * f = new TFile(tfileout,"RECREATE"); gStyle->SetOptStat(0); for(size_t i=0;iDraw(s_vars.at(i)+">>"+tmpname,numcuts,addstr); - TH1F *numhisto = (TH1F*) gROOT->FindObject(tmpname); - if(rebinfactor>1) - numhisto->Rebin(rebinfactor); - TH1F *denhisto=(TH1F *)numhisto->Clone(tmpname+"den"); + TH1F *denhisto=(TH1F *)numhisto->Clone(tmpname+"den"); c->Draw(s_vars.at(i)+">>"+tmpname+"den",s_cutsden.at(i),addstr); - for(int bin=0;bin<=numhisto->GetNbinsX();bin++){ - float denbin=denhisto->GetBinContent(bin); - if(denbin){ - numhisto->SetBinContent(bin, numhisto->GetBinContent(bin)/denbin); - } - else{ - numhisto->SetBinContent(bin,0); - } - } - TH1F *histo = numhisto; //(TH1F *)()->Clone(tmpname) ; - histo->SetLineColor(colorToTColor(s_colors.at(i))); - histo->SetLineStyle(lineToTLineStyle(s_colors.at(i))); - histo->SetTitle(s_names.at(i)); - histo->SetName(s_names.at(i)); + TEfficiency* eff = new TEfficiency(s_names.at(i),s_names.at(i),nbins,Xmin,Xmax); + //eff->SetUseWeightedEvents(true); + //eff->SetStatisticOption(TEfficiency::kFNormal); - histo->SetFillStyle(0); - histo->SetLineWidth(2); + eff->SetTotalHistogram(*denhisto,""); + eff->SetPassedHistogram(*numhisto,""); - float tmax=histo->GetMaximum(); - float tmin=histo->GetMinimum(); - if(tmax>max)max=tmax; - if(tminSetLineColor(colorToTColor(s_colors.at(i))); + eff->SetLineStyle(lineToTLineStyle(s_colors.at(i))); - histo->Write(); + + eff->SetFillStyle(0); + eff->SetLineWidth(2); + + allhistos.push_back(eff); + eff->Draw();//for some reason + eff->Write(); + + // if(i) + // delete numhisto; + + // delete denhisto; } @@ -374,19 +379,27 @@ void makeEffPlots( leg->AddEntry(allhistos.at(i-1),s_names.at(i-1),"l"); } - TCanvas cv("plots"); if(setLogY) cv.SetLogy(); - allhistos.at(0)->Draw("AXIS"); - allhistos.at(0)->GetYaxis()->SetRangeUser(min,1.3*max); //space for legend on top - allhistos.at(0)->GetXaxis()->SetTitle(xaxis.data()); - if(XminGetXaxis()->SetRangeUser(Xmin,Xmax); - allhistos.at(0)->GetYaxis()->SetTitle(yaxis.data()); + cv.SetLeftMargin(0.15); + cv.SetBottomMargin(0.15); + + axishisto->Draw("AXIS"); + // axishisto->SetLineColorAlpha(kBlack,0.8); + axishisto->GetYaxis()->SetRangeUser(0,1.3); //space for legend on top + if(OverrideMax>OverrideMin) + axishisto->GetYaxis()->SetRangeUser(OverrideMin,OverrideMax); + + axishisto->GetXaxis()->SetTitle(xaxis.data()); + axishisto->GetYaxis()->SetTitle(yaxis.data()); + setStyles(axishisto); + axishisto->Draw("AXIS"); - allhistos.at(0)->Draw("AXIS"); for(size_t i=0;iDraw("same,hist"); + auto ld=getLineDouble(allhistos.at(i)); + ld->Draw("same,P"); + allhistos.at(i)->Draw("same,P"); } leg->Draw("same"); diff --git a/compiled/src/rocCurve.cpp b/compiled/src/rocCurve.cpp index 8ff9a20..77c047a 100644 --- a/compiled/src/rocCurve.cpp +++ b/compiled/src/rocCurve.cpp @@ -197,7 +197,7 @@ void rocCurve::process(TChain *c,std::ostream& out){ out << "eff @ misid @ discr value\n\n"; - std::vector misidset=loglist(yscale_*0.001,yscale_*1,yscale_*100); + std::vector misidset=loglist(yscale_*0.00001,yscale_*1,yscale_*100); int count=0; double integral=0; for(float eff=0;eff<1;eff+=0.00001){ diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index ace15ae..c9383fc 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -21,7 +21,13 @@ from __future__ import print_function -colormap=['red' +colormap=[ + "#5e3c99", + "#e66101", + "#fdb863", + "#b2abd2", + + 'red' , 'blue' , 'darkgreen' , 'purple' @@ -31,7 +37,12 @@ , 'darkpurple' , 'gray'] -dashedcolormap=['red','red,dashed' +dashedcolormap=[ + "#5e3c99","#5e3c99,dashed", + "#e66101","#e66101,dashed", + "#fdb863","#fdb863,dashed", + "#b2abd2","#b2abd2,dashed", + 'red','red,dashed' , 'blue','blue,dashed' , 'darkgreen','darkgreen,dashed' , 'purple','purple,dashed' @@ -215,7 +226,7 @@ def worker(): def makeEffPlots_async(intextfile, name_list, variables, cutsnum,cutsden, colours, outpdffile, xaxis='',yaxis='', minimum=1e100,maximum=-1e100, - rebinfactor=1, SetLogY = False, Xmin = 100, Xmax = -100. , + nbins=-1, SetLogY = False, Xmin = 100, Xmax = -100. , treename="deepntuplizer/tree"): @@ -228,12 +239,12 @@ def makeEffPlots_async(intextfile, name_list, variables, cutsnum,cutsden, colour - import c_makePlots + from DeepJetCore.compiled import c_makePlots def worker(): try: c_makePlots.makeEffPlots(files_list,name_list, variables_list,cutsnum_list,cutsden_list,colours_list, - outpdffile,xaxis,yaxis,rebinfactor,SetLogY, Xmin, Xmax,minimum,maximum,treename) + outpdffile,xaxis,yaxis,nbins,SetLogY, Xmin, Xmax,minimum,maximum,treename) except Exception as e: print('error for these inputs:') print(files_list) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index cbd4fdd..fb3d1cd 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -65,6 +65,13 @@ def on_epoch_end(self,epoch, logs={}): import os lossfile=os.path.join( self.outputDir, 'losses.log') print('\n***callbacks***\nsaving losses to '+lossfile) + + # problem with new keras version calling callbacks even after exceptions + if logs.get('loss') is None: + return + if logs.get('val_loss') is None: + return + self.loss.append(logs.get('loss')) self.val_loss.append(logs.get('val_loss')) f = open(lossfile, 'a') @@ -103,11 +110,18 @@ def __init__(self,outputDir,plotLoss=False): self.plotLoss=plotLoss def on_batch_end(self,batch,logs={}): + if len(logs)<1: + return + if logs.get('loss') is None: + return + if logs.get('val_loss') is None: + return self.loss.append(logs.get('loss')) self.val_loss.append(logs.get('val_loss')) def on_epoch_end(self,epoch,logs={}): + import os blossfile=os.path.join( self.outputDir, 'batch_losses.log') f = open(blossfile, 'a') @@ -163,10 +177,12 @@ class saveCheckPointDeepJet(Callback): Slight extension of the normal checkpoint to multiple checkpoints per epoch ''' - def __init__(self,outputFile,model,check_n_batches=-1): + def __init__(self,outputFile,model,check_n_batches=-1,nrotate=3): self.outputFile=outputFile self.djmodel=model self.counter=0 + self.rotate_idx=0 + self.rotations=[str(i) for i in range(nrotate)] self.check_n_batches=check_n_batches def on_batch_end(self,batch,logs={}): @@ -175,10 +191,19 @@ def on_batch_end(self,batch,logs={}): if self.counter < self.check_n_batches: self.counter+=1 return - self.djmodel.save(self.outputFile) + self.djmodel.save(self.outputFile[:-3]+'_rot_'+self.rotations[self.rotate_idx]+'.h5') self.counter=0 + self.rotate_idx += 1 + if self.rotate_idx >= len(self.rotations): + self.rotate_idx=0 def on_epoch_end(self,epoch, logs={}): + if len(logs)<1: + return + if logs.get('loss') is None: + return + if logs.get('val_loss') is None: + return self.djmodel.save(self.outputFile) @@ -301,7 +326,6 @@ def reset(self): def predict_and_call(self,counter): self.gen.setBuffer(self.td) - def genfunc(): while(not self.gen.isEmpty()): d = self.gen.getBatch() From 62c092fb71db2abff8c226292da87670eeec033c Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 1 May 2020 14:18:45 +0200 Subject: [PATCH 256/437] fixes --- training/DeepJet_callbacks.py | 1 + training/training_base.py | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index fb3d1cd..81cf8e6 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -192,6 +192,7 @@ def on_batch_end(self,batch,logs={}): self.counter+=1 return self.djmodel.save(self.outputFile[:-3]+'_rot_'+self.rotations[self.rotate_idx]+'.h5') + self.djmodel.save(self.outputFile) self.counter=0 self.rotate_idx += 1 if self.rotate_idx >= len(self.rotations): diff --git a/training/training_base.py b/training/training_base.py index f184158..0e9e436 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -225,10 +225,13 @@ def __init__( if os.path.isfile(kfile): self.loadModel(kfile) self.trainedepoches=0 - for line in open(self.outputDir+'losses.log'): - valloss = line.split(' ')[1][:-1] - if not valloss == "None": - self.trainedepoches+=1 + if os.path.isfile(self.outputDir+'losses.log'): + for line in open(self.outputDir+'losses.log'): + valloss = line.split(' ')[1][:-1] + if not valloss == "None": + self.trainedepoches+=1 + else: + print('incomplete epochs, starting from the beginning but with pretrained model') else: print('no model found in existing output dir, starting training from scratch') From b57cb68ce5879e56cfeba5c405ff764d290afe08 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 11 May 2020 12:13:42 +0200 Subject: [PATCH 257/437] some improvements --- compiled/interface/trainDataGenerator.h | 1 + training/training_base.py | 23 +++++------------------ 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 6e43b85..0b1d2c8 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -386,6 +386,7 @@ void trainDataGenerator::prepareNextEpoch(){ filecount_=0; nsamplesprocessed_=0; batchcount_=0; + lastbatchsize_=0; lastbuffersplit_=0; nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); filecount_++; diff --git a/training/training_base.py b/training/training_base.py index 0e9e436..750d677 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -436,7 +436,6 @@ def trainModel(self, self.val_data.invokeGenerator() #this is fixed nbatches_val = self.val_data.generator.getNBatches() - nbatches_train = self.train_data.generator.getNBatches() #self.train_data.generator.debug=True #self.train_data.generator.shuffleFilelist() @@ -444,27 +443,16 @@ def trainModel(self, while(self.trainedepoches < nepochs): #this can change from epoch to epoch - print('>>>>Epoch', self.trainedepoches,"/",nepochs) - print('training batches: ',nbatches_train) - print('validation batches: ',nbatches_val) #calculate steps for this epoch #feed info below self.train_data.generator.prepareNextEpoch() self.val_data.generator.prepareNextEpoch() + nbatches_train = self.train_data.generator.getNBatches() #might have changed due to shuffeling + + print('>>>>Epoch', self.trainedepoches,"/",nepochs) + print('training batches: ',nbatches_train) + print('validation batches: ',nbatches_val) - #self.keras_model.fit_generator(self.train_data.generatorFunction() , - # steps_per_epoch=nbatches_train, - # epochs=self.trainedepoches + 1, - # initial_epoch=self.trainedepoches, - # callbacks=self.callbacks.callbacks, - # validation_data=self.val_data.generatorFunction(), - # validation_steps=nbatches_val, #)#, - # max_queue_size=1, #handled by DJC - # validation_freq=1, - # use_multiprocessing=False, #the threading one doe not loke DJC - # shuffle=False, - # workers=0,#run gen on main thread - # **trainargs) self.keras_model.fit(self.train_data.generatorFunction(), steps_per_epoch=nbatches_train, epochs=self.trainedepoches + 1, @@ -479,7 +467,6 @@ def trainModel(self, ) self.trainedepoches += 1 self.train_data.generator.shuffleFilelist() - nbatches_train = self.train_data.generator.getNBatches() #might have changed due to shuffeling # self.saveModel("KERAS_model.h5") From 649cde381a7b4d6ddec0e5dbf8495a3868d53be3 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 19 May 2020 11:51:16 +0200 Subject: [PATCH 258/437] some fixes and more sanity checks in the data pipeline --- compiled/interface/c_helper.h | 64 +++++++++++++++++++++++++ compiled/interface/helper.h | 23 ++------- compiled/interface/simpleArray.h | 45 ++++++++++------- compiled/interface/trainDataGenerator.h | 17 +++++-- 4 files changed, 109 insertions(+), 40 deletions(-) create mode 100644 compiled/interface/c_helper.h diff --git a/compiled/interface/c_helper.h b/compiled/interface/c_helper.h new file mode 100644 index 0000000..e4bdb64 --- /dev/null +++ b/compiled/interface/c_helper.h @@ -0,0 +1,64 @@ +/* + * helper.h + * + * Created on: 8 Apr 2017 + * Author: jkiesele + */ + +#ifndef DEEPJET_MODULES_INTERFACE_CHELPER_H_ +#define DEEPJET_MODULES_INTERFACE_CHELPER_H_ + + +#include +#include +#include "TString.h" +#include "TObject.h" +#include "TString.h" +#include +#include +#include + +TString prependXRootD(const TString& path); + +bool isApprox(const float& a , const float& b, float eps=0.001); + +float deltaPhi(const float& phi1, const float& phi2); + +void checkTObject(const TObject * o, TString msg); + +template +T* getLineDouble(const T * h); + +template +std::string to_str(const T& t){ + std::stringstream ss; + ss << t; + return ss.str(); +} + +template +std::string to_str(const std::vector& t){ + std::stringstream ss; + ss << "["; + for(const auto& v:t) + ss << " " << to_str(v); + ss << " ]"; + return ss.str(); +} + + + +template +T* getLineDouble(const T * h){ + T* h2 = (T*)h->Clone(h->GetName()+(TString)"dline"); + h2->SetLineWidth(h->GetLineWidth()+1); + h2->SetLineColor(kBlack); + h2->SetLineColorAlpha(kBlack,0.8); + return h2; +} + + + + + +#endif /* DEEPJET_MODULES_INTERFACE_HELPER_H_ */ diff --git a/compiled/interface/helper.h b/compiled/interface/helper.h index 1305c51..1b6ec4e 100644 --- a/compiled/interface/helper.h +++ b/compiled/interface/helper.h @@ -17,17 +17,9 @@ #include "TString.h" #include "TObject.h" #include "TString.h" - -TString prependXRootD(const TString& path); - -bool isApprox(const float& a , const float& b, float eps=0.001); - -float deltaPhi(const float& phi1, const float& phi2); - -void checkTObject(const TObject * o, TString msg); - -template -T* getLineDouble(const T * h); +#include +#include +#include "c_helper.h" /** * transfers ownership of the data to numpy array if no copy. @@ -90,15 +82,6 @@ boost::python::numpy::ndarray STLToNumpy(const T * data, const std::vector& -template -T* getLineDouble(const T * h){ - T* h2 = (T*)h->Clone(h->GetName()+(TString)"dline"); - h2->SetLineWidth(h->GetLineWidth()+1); - h2->SetLineColor(kBlack); - h2->SetLineColorAlpha(kBlack,0.8); - return h2; -} - diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index cd7a75c..d41e0b2 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -16,6 +16,7 @@ #include "helper.h" #endif +#include "c_helper.h" #include #include #include @@ -179,26 +180,20 @@ class simpleArray { const T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; - //static - /** - * assumes that the row splits are along the 1st dimension - */ - static size_t findElementSplitLength(const std::vector & rowsplits, - size_t nelements, size_t& startat, bool & exceeds_limit, bool sqelementslimit=false); /** * Split indices can directly be used with the split() function. * Returns e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} */ static std::vector getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit=false, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); + bool sqelementslimit=false, bool strict_limit=true, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); /** * Split indices can directly be used with the split() function. * Returns e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} */ static std::vector getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit=false, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); + bool sqelementslimit=false, bool strict_limit=true, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); static std::vector dataSplitToSplitIndices(const std::vector& data_splits); static std::vector splitToDataSplitIndices(const std::vector& data_splits); @@ -249,7 +244,7 @@ class simpleArray { void checkRaggedIndex(size_t i, size_t j)const; static std::vector priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit=false, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); + bool sqelementslimit=false, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector(), bool strict_limit=true); @@ -494,6 +489,11 @@ simpleArray simpleArray::getSlice(size_t splitindex_begin, size_t splitind throw std::runtime_error( "simpleArray::slice: ragged split index out of range"); } + if(splitindex_end == splitindex_begin){ + //throw std::runtime_error("simpleArray::slice: attempt to create empty slice"); + //actually, allow this here and let the problem be handled further down the line, just throw warning for now + std::cout << "simpleArray::slice: WARNING: attempt to create empty slice at "<< splitindex_begin <::cout()const{ template std::vector simpleArray::priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split){ + bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split, bool strict_limit){ std::vector outIdxs; size_ok.clear(); @@ -757,10 +757,17 @@ template } - if (i_splitat < rowsplits.size()+1) { //split + if (i_splitat < rowsplits.size() ) { //split + + if(i_splitat==i_old){ + //sanity check, should not happen + std::cout <<"simpleArray::priv_getSplitIndices: attempting empty split at " << i_splitat << std::endl; + throw std::runtime_error("simpleArray::priv_getSplitIndices: attempting empty split"); + } + size_t nelements = rowsplits.at(i_splitat) - rowsplits.at(i_old); - bool is_good = nelements <= nelements_limit; + bool is_good = (!strict_limit || nelements <= nelements_limit) && nelements>0;//safety for zero element splits size_ok.push_back(is_good); nelemtns_per_split.push_back(nelements); @@ -785,7 +792,7 @@ template } i_s++; - if(i_s == rowsplits.size()) + if(i_s >= rowsplits.size()) break; } @@ -797,8 +804,8 @@ template */ template std::vector simpleArray::getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split){ - return priv_getSplitIndices(false, rowsplits, nelements_limit, sqelementslimit, size_ok, nelemtns_per_split); + bool sqelementslimit, bool strict_limit, std::vector& size_ok, std::vector& nelemtns_per_split){ + return priv_getSplitIndices(false, rowsplits, nelements_limit, sqelementslimit, size_ok, nelemtns_per_split,strict_limit); } /** @@ -808,8 +815,8 @@ std::vector simpleArray::getSplitIndices(const std::vector template std::vector simpleArray::getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split){ - return priv_getSplitIndices(true, rowsplits, nelements_limit, sqelementslimit, size_ok, nelemtns_per_split); + bool sqelementslimit, bool strict_limit, std::vector& size_ok, std::vector& nelemtns_per_split){ + return priv_getSplitIndices(true, rowsplits, nelements_limit, sqelementslimit, size_ok, nelemtns_per_split,strict_limit); } template @@ -1209,6 +1216,10 @@ std::vector simpleArray::padRowsplits()const{ if(out.size()){ size_t presize = rowsplits_.size(); size_t nelements = rowsplits_.at(rowsplits_.size()-1); + if((nelements<1 && !shape_.size()) || nelements!=-shape_.at(1)){ + throw std::runtime_error("simpleArray::padRowsplits: rowsplit format seems broken. Total number of entries at last entry: "+ + to_str(nelements)+" row splits: "+to_str(rowsplits_)+ " versus actual shape "+to_str(shape_)); + } out.resize(nelements,0); out.at(out.size()-1) = presize; } diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 0b1d2c8..7481551 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -316,7 +316,7 @@ void trainDataGenerator::prepareSplitting(){ std::cout << std::endl; } std::vector nelems_per_split; - splits_ = simpleArray::getSplitIndices(allrs, batchsize_,sqelementslimit_ , usebatch_, nelems_per_split); + splits_ = simpleArray::getSplitIndices(allrs, batchsize_,sqelementslimit_ , skiplargebatches_, usebatch_, nelems_per_split); nbatches_=0; npossiblebatches_=0; @@ -444,6 +444,9 @@ trainData trainDataGenerator::prepareBatch(){ size_t bufferelements=buffer_store.nElements(); size_t expect_batchelements = splits_.at(batchcount_); bool usebatch = true; + + if(!expect_batchelements)//sanity check + throw std::runtime_error("trainDataGenerator::prepareBatch: expected elements zero!"); if(usebatch_.size()) usebatch = usebatch_.at(batchcount_); @@ -459,8 +462,16 @@ trainData trainDataGenerator::prepareBatch(){ readthread_=0; } if(lastbuffersplit_) - buffer_store = buffer_store.getSlice(lastbuffersplit_,buffer_store.nElements());//cut the front part - buffer_store.append(buffer_read); + if(lastbuffersplit_ != buffer_store.nElements()){ + buffer_store = buffer_store.getSlice(lastbuffersplit_,buffer_store.nElements());//cut the front part + buffer_store.append(buffer_read); + } + else{ //was used completely + buffer_store = std::move(buffer_read); + } + else //first one + buffer_store = std::move(buffer_read); + buffer_read.clear(); bufferelements = buffer_store.nElements(); lastbuffersplit_=0; From 51b87ee86073f2a4b965b17494ad03c55a6a8449 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 19 May 2020 13:30:39 +0200 Subject: [PATCH 259/437] fixed problem with 1 element row splits --- compiled/interface/simpleArray.h | 4 +++- compiled/interface/trainDataGenerator.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index d41e0b2..32e5545 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -1211,7 +1211,7 @@ inline void destroyManagerCObject(PyObject* self) { } template -std::vector simpleArray::padRowsplits()const{ +std::vector simpleArray::padRowsplits()const{ //rs 0, 1, 1 element std::vector out = rowsplits_; if(out.size()){ size_t presize = rowsplits_.size(); @@ -1220,6 +1220,8 @@ std::vector simpleArray::padRowsplits()const{ throw std::runtime_error("simpleArray::padRowsplits: rowsplit format seems broken. Total number of entries at last entry: "+ to_str(nelements)+" row splits: "+to_str(rowsplits_)+ " versus actual shape "+to_str(shape_)); } + if(nelements<3)//keep format of [rs ], nelements + nelements=3; out.resize(nelements,0); out.at(out.size()-1) = presize; } diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 7481551..f778675 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -539,6 +539,7 @@ trainData trainDataGenerator::prepareBatch(){ if(! usebatch){//until valid batch return prepareBatch(); } + return thisbatch; } From b8779957c8d71b4e01639d181d1ecfed2eab542b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 20 May 2020 12:57:32 +0200 Subject: [PATCH 260/437] batch plotting --- evaluation/evaluation.py | 2 +- training/DeepJet_callbacks.py | 87 +++++++++++++++++++++++++++++++---- 2 files changed, 80 insertions(+), 9 deletions(-) diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index c9383fc..5d40d4a 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -376,7 +376,7 @@ def plotBatchLoss(infilename,outfilename,range): plt.xlabel('batch') plt.legend() plt.ylim([0,6.2]) - plt.show() + #plt.show() plt.savefig(outfilename) #why does this crash? plt.close() diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 81cf8e6..650b2ff 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -9,6 +9,11 @@ from ..evaluation import plotLoss from ..evaluation import plotBatchLoss +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt +import numpy as np + from keras.callbacks import Callback, EarlyStopping,History,ModelCheckpoint #, ReduceLROnPlateau # , TensorBoard # loss per epoch from time import time @@ -102,39 +107,105 @@ def on_epoch_end(self,epoch, logs={}): class batch_callback_begin(Callback): - def __init__(self,outputDir,plotLoss=False): + def __init__(self,outputDir,plotLoss=False,plot_frequency=-1,batch_frequency=1): self.outputDir=outputDir self.loss=[] self.val_loss=[] self.full_logs=[] self.plotLoss=plotLoss + self.plot_frequency=plot_frequency + self.plotcounter=0 + self.batch_frequency=batch_frequency + self.batchcounter=0 + + + + def read(self): + + import os + if not os.path.isfile(self.outputDir+'/batch_losses.log') : + return + blossfile=os.path.join( self.outputDir, 'batch_losses.log') + f = open(blossfile, 'r') + self.loss = [] + for line in f: + if len(line)<1: continue + tl=float(line.split(' ')[0]) + self.loss.append(tl) + + f.close() + def on_batch_end(self,batch,logs={}): if len(logs)<1: return if logs.get('loss') is None: return - if logs.get('val_loss') is None: + self.batchcounter += 1 + + if not self.batch_frequency == self.batchcounter: return + self.batchcounter=0 + self.loss.append(logs.get('loss')) - self.val_loss.append(logs.get('val_loss')) + + if self.plot_frequency<0: + return + self.plotcounter+=1 + if self.plot_frequency == self.plotcounter: + self.plot() + self.plotcounter = 0 - def on_epoch_end(self,epoch,logs={}): + def _plot(self): + if len(self.loss) < 2: + return + batches = [self.batch_frequency*i for i in range(len(self.loss))] + plt.close() + plt.plot(batches,self.loss,'r-',label='loss') + + def smooth(y, box_pts): + box = np.ones(box_pts)/box_pts + y_smooth = np.convolve(y, box, mode='same') + return y_smooth + + if len(batches) > 50: + smoothed = smooth(self.loss,50) + #remove where the simple smoothing doesn't give reasonable results + plt.plot(batches[25:-25],smoothed[25:-25],'g-',label='smoothed') + plt.legend() + + plt.xlabel("# batches") + plt.ylabel("training loss") + plt.yscale("log") + plt.savefig(self.outputDir+'/batch_losses.pdf') + plt.close() + + + def plot(self): + self._plot() + + def save(self): import os blossfile=os.path.join( self.outputDir, 'batch_losses.log') f = open(blossfile, 'a') for i in range(len(self.loss)): f.write(str(self.loss[i])) - f.write(" ") - f.write(str(self.val_loss[i])) f.write("\n") self.loss=[] self.val_loss=[] - f.close() + f.close() + - plotBatchLoss(self.outputDir+'/batch_losses.log',self.outputDir+'/batch_losses.pdf',[]) + def on_epoch_end(self,epoch,logs={}): + self.plot() + self.save() + + def on_epoch_begin(self, epoch, logs=None): + self.read() + if len(self.loss): + self.plot() class newline_callbacks_end(Callback): def on_epoch_end(self,epoch, logs={}): From 5aee46ffc6a94985bfe96011fbd597dcbab03eaa Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 22 May 2020 13:12:39 +0200 Subject: [PATCH 261/437] fixed possible bug - thanks Max --- compiled/interface/trainData.h | 1 + 1 file changed, 1 insertion(+) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 386ecd9..a7b1279 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -454,6 +454,7 @@ void trainData::clear() { feature_arrays_.clear(); truth_arrays_.clear(); weight_arrays_.clear(); + updateShapes(); } template From 43a821e04b7645ba02208069eeb90d930ba9ba31 Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Fri, 22 May 2020 17:50:59 +0200 Subject: [PATCH 262/437] do not reset weighterobjects --- DataCollection.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 02154b0..3622690 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -35,15 +35,15 @@ def __init__(self, infile = None, nprocs = -1): self.gen = None self.__batchsize=1 self.optionsdict={} + self.weighterobjects={} + self.batch_mode = False + self.nprocs=-1 if infile: self.readFromFile(infile) if not len(self.samples): raise Exception("no valid datacollection found in "+infile) - self.weighterobjects={} - self.batch_mode = False - self.nprocs=-1 def setDataClass(self, dataclass): self.dataclass = dataclass @@ -556,4 +556,4 @@ def generatorFunction(self): yield out - \ No newline at end of file + From 4aac67f6415124345cbfb511d16ccd6f72e6785f Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Fri, 22 May 2020 20:56:21 +0200 Subject: [PATCH 263/437] Fix layer freeze --- modeltools.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modeltools.py b/modeltools.py index bbba4f4..43c09b4 100644 --- a/modeltools.py +++ b/modeltools.py @@ -20,9 +20,11 @@ def printLayerInfosAndWeights(model, noweights=False): def fixLayersContaining(m, fixOnlyContaining, invert=False): - isseq=(not hasattr(fixOnlyContaining, "strip") and - hasattr(fixOnlyContaining, "__getitem__") or - hasattr(fixOnlyContaining, "__iter__")) + import collections.abc + if isinstance(fixOnlyContaining, collections.abc.Sequence) and not isinstance(fixOnlyContaining, str): + isseq=True + else: + isseq=False if not isseq: fixOnlyContaining=[fixOnlyContaining] if invert: @@ -34,7 +36,7 @@ def fixLayersContaining(m, fixOnlyContaining, invert=False): m.get_layer(index=layidx).trainable=True else: for layidx in range(len(m.layers)): - for ident in fixOnlyContaining: + for ident in fixOnlyContaining: if len(ident) and ident in m.get_layer(index=layidx).name: m.get_layer(index=layidx).trainable=False return m From a218a4395748f287a1e18bd6bdc71f1470df72b5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 25 May 2020 14:47:25 +0200 Subject: [PATCH 264/437] some better help --- README.md | 2 +- bin/convertFromSource.py | 7 +++++-- bin/createSubpackage.py | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5e734d6..6ec8090 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ In general, the following steps are needed for a training and evaluation: * Convert the root ntuples into the training data format using convertFromSource.py. Please consider the help message for options (``convertFromSource.py -h``). The input is a list of root files contained in a text file. An example dataset is generated when setting up the subpackage. It can be found in subpackage/example_data. Different files should be used for training and testing. To convert the training data, execute ``convertFromSource.py -i -o -c TrainData_example``, with TrainData_example being the data structure defined before. The test data will be directly read by from the source files (see below). * Train the model. The convertFromSource.py script creates a set of output files and a descriptor (dataCollection.djcdc). This descriptor is fed to the training file which contains the model definition and an instance of the trainingbase class. An example is given in subpackage/Train/training_example.py. - This file is called with ``python training_example.py /path/to/data/dataCollection.djcdc ``. More options are provided and described when calling ``python training_example.py -h``. + This file is called with ``python3 training_example.py /path/to/data/dataCollection.djcdc ``. More options are provided and described when calling ``python3 training_example.py -h``. * Once the training is done, the model can be used to predict the output of the model for the test data: ``predict.py /path/to/the/model.h5 /path/to/the/training/dataCollection.djcdc ``. Please keep in mind that the output can become large (not the case in the example). * For plotting, there are a few simple wrappers provided, which can be found in DeepJetCore/evaluation/evaluation.py, for making ROCs and simple plots. As input, these functions take the text file created by the predict.py script. diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index c5c0cd4..89c5b92 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -20,10 +20,10 @@ from DeepJetCore.conversion.conversion import class_options parser = ArgumentParser('program to convert source files to traindata format') -parser.add_argument("-i", help="set input sample description (output from the check.py script)", metavar="FILE") +parser.add_argument("-i", help="set input sample description (output from the check.py script)", metavar="FILE", default='') parser.add_argument("--inRange", nargs=2, type=int, help="Input line numbers") parser.add_argument("--noRelativePaths", help="Assume input samples are absolute paths with respect to working directory", default=False, action="store_true") -parser.add_argument("-o", help="set output path", metavar="PATH") +parser.add_argument("-o", help="set output path", metavar="PATH", default='') parser.add_argument("-c", choices = class_options.keys(), help="set output class (options: %s)" % ', '.join(class_options.keys()), metavar="Class") parser.add_argument("-r", help="set path to snapshot that got interrupted", metavar="FILE", default='') parser.add_argument("-n", default='', help="(optional) number of child processes") @@ -42,6 +42,9 @@ args=parser.parse_args() infile=args.i outPath=args.o +if len(infile)<1 or len(outfile)<1: + parser.print_help() + exit() class_name=args.c recover=args.r usemeansfrom=args.usemeansfrom diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 20e4ed9..f24a1df 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -186,7 +186,7 @@ def my_model(Inputs,otheroption): checkperiod=1, # saves a checkpoint model every N epochs verbose=1) -print('Since the training is done, use the predict.py script to predict the model output on you test sample, e.g.: predict.py /KERAS_model.h5 /trainsamples.djcdc /test.txt ') +print('Since the training is done, use the predict.py script to predict the model output on your test sample, e.g.: predict.py /KERAS_model.h5 /trainsamples.djcdc /test.txt ') ''' datastructures_init = ''' From bf109d809320d9cbe47cb58399841a53664c3762 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 25 May 2020 15:16:20 +0200 Subject: [PATCH 265/437] better help --- bin/convertFromSource.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index 89c5b92..a19dcbc 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -20,23 +20,24 @@ from DeepJetCore.conversion.conversion import class_options parser = ArgumentParser('program to convert source files to traindata format') -parser.add_argument("-i", help="set input sample description (output from the check.py script)", metavar="FILE", default='') -parser.add_argument("--inRange", nargs=2, type=int, help="Input line numbers") -parser.add_argument("--noRelativePaths", help="Assume input samples are absolute paths with respect to working directory", default=False, action="store_true") -parser.add_argument("-o", help="set output path", metavar="PATH", default='') -parser.add_argument("-c", choices = class_options.keys(), help="set output class (options: %s)" % ', '.join(class_options.keys()), metavar="Class") +parser.add_argument("-i", help="input file list (required)", metavar="FILE", default='') +parser.add_argument("-o", help="set output path (required)", metavar="PATH", default='') +parser.add_argument("-c", choices = class_options.keys(), help="set output class (required, options: %s)" % ', '.join(class_options.keys()), metavar="Class") parser.add_argument("-r", help="set path to snapshot that got interrupted", metavar="FILE", default='') +parser.add_argument("--testdata", action='store_true', help='convert as test data') parser.add_argument("-n", default='', help="(optional) number of child processes") -parser.add_argument("--usemeansfrom", default='') +parser.add_argument("--checkFiles", action='store_true', help="enables file checking (requires fileIsValid function of TrainData to be defined)") +parser.add_argument("--noRelativePaths", help="Assume input samples are absolute paths with respect to working directory", default=False, action="store_true") + +parser.add_argument("--inRange", nargs=2, type=int, help="(for batching) input line numbers") +parser.add_argument("--usemeansfrom", default='', help='(for batching)') parser.add_argument("--nothreads", action='store_true') -parser.add_argument("--checkFiles", action='store_true') -parser.add_argument("--means", action='store_true', help='compute only means') -parser.add_argument("--nforweighter", default='500000', help='set number of samples to be used for weight and mean calculation') -parser.add_argument("--batch", help='Provide a batch ID to be used') +parser.add_argument("--means", action='store_true', help='(for batching) compute only means') +parser.add_argument("--nforweighter", default='500000', help='set number of samples to be used for weighter object creation') +parser.add_argument("--batch", help='(for batching) provide a batch ID to be used') parser.add_argument("--noramcopy", action='store_true', help='Do not copy input file to /dev/shm before conversion') parser.add_argument("-v", action='store_true', help='verbose') parser.add_argument("-q", action='store_true', help='quiet') -parser.add_argument("--testdata", action='store_true', help='convert as test data') # process options args=parser.parse_args() From 9e21160980b361c16cef5602aaa08dac62f28c9f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 27 May 2020 09:26:37 +0200 Subject: [PATCH 266/437] small bugfix --- training/DeepJet_callbacks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 650b2ff..ba44254 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -189,7 +189,7 @@ def save(self): import os blossfile=os.path.join( self.outputDir, 'batch_losses.log') - f = open(blossfile, 'a') + f = open(blossfile, 'w') for i in range(len(self.loss)): f.write(str(self.loss[i])) f.write("\n") From 04695414ee26e40c6497048802c5137dab9935f0 Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Fri, 29 May 2020 08:44:41 +0200 Subject: [PATCH 267/437] Make convertDCtoNP usuable, adding a argument to do it on a subset of files. --- DataCollection.py | 43 ++++++++++++++++++++++++++++++++++++++--- bin/convertDCtoNumpy.py | 9 +++++---- 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 3622690..275617a 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -295,7 +295,15 @@ def recoverCreateDataFromRootFromSnapshot(self, snapshotfile): self.__writeData_async_andCollect(finishedsamples,outputDir) self.writeToFile(outputDir+'/dataCollection.djcdc') + def getAllLabels(self,nfiles=-1): + return self.extract_features(self.dataclass,'y',nfiles) + def getAllFeatures(self,nfiles=-1): + return self.extract_features(self.dataclass,'x',nfiles) + + def getAllWeights(self,nfiles=-1): + return self.extract_features(self.dataclass,'w',nfiles) + def createDataFromRoot( self, dataclass, outputDir, redo_meansandweights=True, means_only=False, dir_check=True @@ -520,14 +528,44 @@ def getSamplePath(self,samplefile): if samplefile[0] == '/': return samplefile return self.dataDir+'/'+samplefile - + + def extract_features(self, dataclass, selector,nfiles): + import numpy as np + td=self.dataclass() + firstcall=True + count = 0 + for sample in self.samples: + count+=1; + td.readFromFile(self.getSamplePath(sample)) + #make this generic + thislist=[] + if selector == 'x': + thislist=td.transferFeatureListToNumpy() + if selector == 'y': + thislist=td.transferTruthListToNumpy() + if selector == 'w': + thislist=td.transferWeightListToNumpy() + if firstcall: + out=thislist + firstcall=False + else: + for i in range(0,len(thislist)): + if len(thislist[i].shape) > 1: + out[i] = np.vstack( (out[i], thislist[i] ) ) + else: + out[i] = np.append(out[i],thislist[i]) + if nfiles > 0: + if count > nfiles: + break + return out + def __stackData(self, dataclass, selector): td=self.dataclass() out=[] firstcall=True for sample in self.samples: td2 = self.dataclass() - td2.readIn(self.getSamplePath(sample)) + td2.readFromFile(self.getSamplePath(sample)) td.append(td2) return td @@ -552,7 +590,6 @@ def generatorFunction(self): out = (xout,yout) if len(wout)>0: out = (xout,yout,wout) - yield out diff --git a/bin/convertDCtoNumpy.py b/bin/convertDCtoNumpy.py index 1935207..25807c5 100755 --- a/bin/convertDCtoNumpy.py +++ b/bin/convertDCtoNumpy.py @@ -6,6 +6,7 @@ parser = ArgumentParser('convert a data collection to a single set of numpy arrays. Warning, this can produce a large output') parser.add_argument('inputDataCollection') parser.add_argument('outputFilePrefix') +parser.add_argument("--nfiles", help="select number of files to be converted, default is every file", type=int, default=-1) args = parser.parse_args() @@ -15,15 +16,15 @@ dc=DataCollection() dc.readFromFile(args.inputDataCollection) - +nfiles = args.nfiles print('producing feature array') -feat=dc.getAllFeatures() +feat=dc.getAllFeatures(nfiles=nfiles) print('producing truth array') -truth=dc.getAllLabels() +truth=dc.getAllLabels(nfiles=nfiles) print('producing weight array') -weight=dc.getAllWeights() +weight=dc.getAllWeights(nfiles=nfiles) from numpy import save From f48c46498226b9dce139e3554ce7307668494f94 Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Fri, 29 May 2020 08:45:14 +0200 Subject: [PATCH 268/437] added the load_in_mem method --- training/training_base.py | 94 ++++++++++++++++++++++----------------- 1 file changed, 54 insertions(+), 40 deletions(-) diff --git a/training/training_base.py b/training/training_base.py index 750d677..ce0c8b3 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -223,6 +223,7 @@ def __init__( if os.path.isfile(self.outputDir+'/KERAS_check_model_last.h5') else \ self.outputDir+'/KERAS_model.h5' if os.path.isfile(kfile): + print(kfile) self.loadModel(kfile) self.trainedepoches=0 if os.path.isfile(self.outputDir+'losses.log'): @@ -388,6 +389,7 @@ def trainModel(self, additional_plots=None, additional_callbacks=None, load_in_mem = False, + max_files = -1, plot_batch_loss = False, **trainargs): @@ -426,52 +428,64 @@ def trainModel(self, print('starting training') if load_in_mem: - raise Exception('to be re-implemented later!') - #else: + print('make features') + X_train = self.train_data.getAllFeatures(nfiles=max_files) + X_test = self.val_data.getAllFeatures(nfiles=max_files) + print('make truth') + Y_train = self.train_data.getAllLabels(nfiles=max_files) + Y_test = self.val_data.getAllLabels(nfiles=max_files) + self.keras_model.fit(X_train, Y_train, batch_size=batchsize, epochs=nepochs, + callbacks=self.callbacks.callbacks, + validation_data=(X_test, Y_test), + max_queue_size=1, + use_multiprocessing=False, + workers=0, + **trainargs) + else: - #prepare generator + #prepare generator - print("setting up generator... can take a while") - self.train_data.invokeGenerator() - self.val_data.invokeGenerator() - #this is fixed - nbatches_val = self.val_data.generator.getNBatches() + print("setting up generator... can take a while") + self.train_data.invokeGenerator() + self.val_data.invokeGenerator() + #this is fixed + nbatches_val = self.val_data.generator.getNBatches() - #self.train_data.generator.debug=True - #self.train_data.generator.shuffleFilelist() - #self.train_data.generator.debug=False - while(self.trainedepoches < nepochs): + #self.train_data.generator.debug=True + #self.train_data.generator.shuffleFilelist() + #self.train_data.generator.debug=False + while(self.trainedepoches < nepochs): - #this can change from epoch to epoch - #calculate steps for this epoch - #feed info below - self.train_data.generator.prepareNextEpoch() - self.val_data.generator.prepareNextEpoch() - nbatches_train = self.train_data.generator.getNBatches() #might have changed due to shuffeling + #this can change from epoch to epoch + #calculate steps for this epoch + #feed info below + self.train_data.generator.prepareNextEpoch() + self.val_data.generator.prepareNextEpoch() + nbatches_train = self.train_data.generator.getNBatches() #might have changed due to shuffeling - print('>>>>Epoch', self.trainedepoches,"/",nepochs) - print('training batches: ',nbatches_train) - print('validation batches: ',nbatches_val) + print('>>>>Epoch', self.trainedepoches,"/",nepochs) + print('training batches: ',nbatches_train) + print('validation batches: ',nbatches_val) - self.keras_model.fit(self.train_data.generatorFunction(), - steps_per_epoch=nbatches_train, - epochs=self.trainedepoches + 1, - initial_epoch=self.trainedepoches, - callbacks=self.callbacks.callbacks, - validation_data=self.val_data.generatorFunction(), - validation_steps=nbatches_val, - max_queue_size=1, - use_multiprocessing=False, - workers=0, - **trainargs - ) - self.trainedepoches += 1 - self.train_data.generator.shuffleFilelist() - # - - self.saveModel("KERAS_model.h5") - del self.train_data.generator - del self.val_data.generator + self.keras_model.fit(self.train_data.generatorFunction(), + steps_per_epoch=nbatches_train, + epochs=self.trainedepoches + 1, + initial_epoch=self.trainedepoches, + callbacks=self.callbacks.callbacks, + validation_data=self.val_data.generatorFunction(), + validation_steps=nbatches_val, + max_queue_size=1, + use_multiprocessing=False, + workers=0, + **trainargs + ) + self.trainedepoches += 1 + self.train_data.generator.shuffleFilelist() + # + + self.saveModel("KERAS_model.h5") + del self.train_data.generator + del self.val_data.generator return self.keras_model, self.callbacks.history From 9690c68f0304a6ece390250286cdc0e8de63e3c9 Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Tue, 2 Jun 2020 10:37:39 +0200 Subject: [PATCH 269/437] fix wrong variable name --- bin/convertFromSource.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index a19dcbc..3cf027d 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -43,7 +43,7 @@ args=parser.parse_args() infile=args.i outPath=args.o -if len(infile)<1 or len(outfile)<1: +if len(infile)<1 or len(outPath)<1: parser.print_help() exit() class_name=args.c From d08d885920850da5556e8c5e3955e1fc8311b299 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 7 Jun 2020 11:58:04 +0200 Subject: [PATCH 270/437] small fixes and safety measures --- DataCollection.py | 1 + bin/convertFromSource.py | 16 +++++++--------- compiled/interface/trainDataGenerator.h | 4 ++-- docker/Dockerfile | 3 ++- docker/Dockerfile_base | 1 + training/training_base.py | 8 +++----- 6 files changed, 16 insertions(+), 17 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 275617a..ef95130 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -592,5 +592,6 @@ def generatorFunction(self): out = (xout,yout,wout) yield out + raise Exception("DataCollection.generatorFunction: generator ran out of samples. This should not have happened, please report bug.") diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index 3cf027d..470b161 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -26,12 +26,13 @@ parser.add_argument("-r", help="set path to snapshot that got interrupted", metavar="FILE", default='') parser.add_argument("--testdata", action='store_true', help='convert as test data') parser.add_argument("-n", default='', help="(optional) number of child processes") +parser.add_argument("--nothreads", action='store_true', help='only spawn one process') parser.add_argument("--checkFiles", action='store_true', help="enables file checking (requires fileIsValid function of TrainData to be defined)") parser.add_argument("--noRelativePaths", help="Assume input samples are absolute paths with respect to working directory", default=False, action="store_true") +parser.add_argument("--useweightersfrom", default='', help='(for test data or batching) use weighter objects from a different data collection') + parser.add_argument("--inRange", nargs=2, type=int, help="(for batching) input line numbers") -parser.add_argument("--usemeansfrom", default='', help='(for batching)') -parser.add_argument("--nothreads", action='store_true') parser.add_argument("--means", action='store_true', help='(for batching) compute only means') parser.add_argument("--nforweighter", default='500000', help='set number of samples to be used for weighter object creation') parser.add_argument("--batch", help='(for batching) provide a batch ID to be used') @@ -48,18 +49,15 @@ exit() class_name=args.c recover=args.r -usemeansfrom=args.usemeansfrom +useweightersfrom=args.useweightersfrom nchilds=args.n dofilecheck=args.checkFiles testdata = args.testdata #fileIsValid -if args.batch and not (args.usemeansfrom or args.testdatafor): - raise ValueError( - 'When running in batch mode you should also ' - 'provide a means source through the --usemeansfrom option' - ) +if args.batch: + raise ValueError('batching not implemented at the moment.') if args.v: logging.getLogger().setLevel(logging.DEBUG) @@ -126,7 +124,7 @@ logging.info('Start conversion') dc.convertListOfRootFiles( infile, traind, outPath, - takeweightersfrom=usemeansfrom, + takeweightersfrom=useweightersfrom, output_name=(args.batch if args.batch else 'dataCollection.djcdc'), relpath=relpath, checkfiles=dofilecheck diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index f778675..ec24c7f 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -467,10 +467,10 @@ trainData trainDataGenerator::prepareBatch(){ buffer_store.append(buffer_read); } else{ //was used completely - buffer_store = std::move(buffer_read); + buffer_store = buffer_read;//std::move(buffer_read); //possible opt. implement move for trainData fully } else //first one - buffer_store = std::move(buffer_read); + buffer_store = buffer_read;//std::move(buffer_read); buffer_read.clear(); bufferelements = buffer_store.nElements(); diff --git a/docker/Dockerfile b/docker/Dockerfile index 889b5f2..234ac5a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -53,7 +53,8 @@ ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" # helpers for ragged and cuda compilation - +# for kenneth +RUN apt-get install -y vim # The fix for TensorFlow diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 4b44b4f..7c966f4 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -76,6 +76,7 @@ EXPOSE 8888 #for singularity panic RUN adduser --disabled-password --gecos "" dummyuser +RUN apt-get install -y vim diff --git a/training/training_base.py b/training/training_base.py index ce0c8b3..69f6441 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -449,11 +449,8 @@ def trainModel(self, self.train_data.invokeGenerator() self.val_data.invokeGenerator() #this is fixed - nbatches_val = self.val_data.generator.getNBatches() + - #self.train_data.generator.debug=True - #self.train_data.generator.shuffleFilelist() - #self.train_data.generator.debug=False while(self.trainedepoches < nepochs): #this can change from epoch to epoch @@ -462,8 +459,9 @@ def trainModel(self, self.train_data.generator.prepareNextEpoch() self.val_data.generator.prepareNextEpoch() nbatches_train = self.train_data.generator.getNBatches() #might have changed due to shuffeling + nbatches_val = self.val_data.generator.getNBatches() - print('>>>>Epoch', self.trainedepoches,"/",nepochs) + print('>>>> epoch', self.trainedepoches,"/",nepochs) print('training batches: ',nbatches_train) print('validation batches: ',nbatches_val) From 3d7a58dfe1d27a68e8e8a3c8d1449b4a3173f51a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 11 Jun 2020 09:04:44 +0200 Subject: [PATCH 271/437] small fix for recover --- bin/convertFromSource.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index 470b161..3a985d2 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -44,7 +44,7 @@ args=parser.parse_args() infile=args.i outPath=args.o -if len(infile)<1 or len(outPath)<1: +if (len(infile)<1 or len(outPath)<1) and not len(args.r): parser.print_help() exit() class_name=args.c From b20cdcbe54c41685f61dba0b40e05026c83c981f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 12 Jun 2020 10:56:00 +0200 Subject: [PATCH 272/437] fixes --- DataCollection.py | 5 ++++- bin/convertFromSource.py | 4 ++-- bin/mergeDataCollections.py | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index ef95130..03100cf 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -578,6 +578,9 @@ def invokeGenerator(self): def generatorFunction(self): + if self.generator.isEmpty(): + raise Exception("DataCollection.generatorFunction: generator called with insufficient samples.") + while(not self.generator.isEmpty()): data = self.generator.getBatch() @@ -592,6 +595,6 @@ def generatorFunction(self): out = (xout,yout,wout) yield out - raise Exception("DataCollection.generatorFunction: generator ran out of samples. This should not have happened, please report bug.") + diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index 3a985d2..082bc96 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -104,9 +104,9 @@ traind=None if class_name in class_options: traind = class_options[class_name] -elif not recover and not testdatafor: +elif not recover: print('available classes:') - for key, val in class_options.iteritems(): + for key, val in class_options.items(): print(key) raise Exception('wrong class selection') diff --git a/bin/mergeDataCollections.py b/bin/mergeDataCollections.py index 7b96d32..5e98bcc 100755 --- a/bin/mergeDataCollections.py +++ b/bin/mergeDataCollections.py @@ -1,4 +1,4 @@ -#! /bin/env python3 +#!/bin/env python3 from argparse import ArgumentParser from DeepJetCore.DataCollection import DataCollection From e618fa626c01b103d73591a26c559c3b873a6990 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 12 Jun 2020 14:47:07 +0200 Subject: [PATCH 273/437] better modularisation of data generator and data collection. notice readme change --- DataCollection.py | 30 ++++++------------------------ README.md | 18 +++++++----------- bin/predict.py | 11 +++-------- docker/Dockerfile_exp | 2 +- training/DeepJet_callbacks.py | 10 +++------- training/training_base.py | 21 ++++++++++----------- 6 files changed, 30 insertions(+), 62 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 03100cf..b4d990c 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -6,7 +6,7 @@ from DeepJetCore.TrainData import TrainData -from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator +from DeepJetCore.dataPipeline import TrainDataGenerator import tensorflow as tf import tempfile import pickle @@ -570,30 +570,12 @@ def __stackData(self, dataclass, selector): return td def invokeGenerator(self): - self.generator = trainDataGenerator() - self.generator.setBatchSize(self.__batchsize) - self.generator.setSquaredElementsLimit(self.batch_uses_sum_of_squares) - self.generator.setFileList([self.dataDir+ "/" + s for s in self.samples]) - + generator = TrainDataGenerator() + generator.setBatchSize(self.__batchsize) + generator.setSquaredElementsLimit(self.batch_uses_sum_of_squares) + generator.setFileList([self.dataDir+ "/" + s for s in self.samples]) + return generator - def generatorFunction(self): - - if self.generator.isEmpty(): - raise Exception("DataCollection.generatorFunction: generator called with insufficient samples.") - - while(not self.generator.isEmpty()): - - data = self.generator.getBatch() - - #print("batch size ", data.nElements()) - xout = data.transferFeatureListToNumpy() - wout = data.transferWeightListToNumpy() - yout = data.transferTruthListToNumpy() - - out = (xout,yout) - if len(wout)>0: - out = (xout,yout,wout) - yield out diff --git a/README.md b/README.md index 6ec8090..d551881 100644 --- a/README.md +++ b/README.md @@ -127,28 +127,24 @@ train_data.setBatchSize(100) # prepare the generator -train_data.invokeGenerator() +gen = train_data.invokeGenerator() # loop over epochs here ... -train_data.generator.shuffleFilelist() -train_data.generator.prepareNextEpoch() +gen.shuffleFilelist() +gen.prepareNextEpoch() # this number can differ from epoch to epoch for ragged data! -nbatches = train_data.generator.getNBatches() +nbatches = gen.getNBatches() for b in range(nbatches): #should not happen unless files are broken (will give additional errors) - if train_data.generator.isEmpty(): + if gen.isEmpty(): raise Exception("ran out of data") - # this returns a TrainData object. - data = train_data.generator.getBatch() - - features_list = data.transferFeatureListToNumpy() - truth_list = data.transferTruthListToNumpy() - weight_list = data.transferWeightListToNumpy() #optional + # weights are optional, each of these is a list of numpy arrays + features_list, truth_list, weight_list = gen.feedNumpyData() # do your training diff --git a/bin/predict.py b/bin/predict.py index 3269db3..5044845 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -19,7 +19,7 @@ import imp from DeepJetCore.DataCollection import DataCollection -from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator +from DeepJetCore.dataPipeline import TrainDataGenerator import tempfile import atexit import os @@ -60,7 +60,7 @@ print('predicting ',inputfile) - gen = trainDataGenerator() + gen = TrainDataGenerator() if batchsize < 1: batchsize = dc.getBatchSize() print('batch size',batchsize) @@ -69,12 +69,7 @@ gen.setSkipTooLargeBatches(False) gen.setBuffer(td) - def genfunc(): - while(not gen.isEmpty()): - d = gen.getBatch() - yield d.transferFeatureListToNumpy() , d.transferTruthListToNumpy() - - predicted = model.predict_generator(genfunc(), + predicted = model.predict_generator(gen.feedNumpyData(), steps=gen.getNBatches(), max_queue_size=1, use_multiprocessing=False,verbose=1) diff --git a/docker/Dockerfile_exp b/docker/Dockerfile_exp index fd13a39..9b77e13 100644 --- a/docker/Dockerfile_exp +++ b/docker/Dockerfile_exp @@ -7,7 +7,7 @@ FROM cernml4reco/djcbase:py3 # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.2.0-rc2 + pip3 --no-cache-dir install tensorflow-gpu==2.2.0 #2.2.0-rc2 diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index ba44254..4a53613 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -352,7 +352,7 @@ def __init__(self, from DeepJetCore.TrainData import TrainData -from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator +from DeepJetCore.dataPipeline import TrainDataGenerator class PredictCallback(Callback): @@ -387,7 +387,7 @@ def __init__(self, self.batchsize = 1 self.td = td - self.gen = trainDataGenerator() + self.gen = TrainDataGenerator() self.gen.setBatchSize(batchsize) self.gen.setSkipTooLargeBatches(False) @@ -398,12 +398,8 @@ def reset(self): def predict_and_call(self,counter): self.gen.setBuffer(self.td) - def genfunc(): - while(not self.gen.isEmpty()): - d = self.gen.getBatch() - yield d.transferFeatureListToNumpy() , d.transferTruthListToNumpy() - predicted = self.model.predict_generator(genfunc(), + predicted = self.model.predict_generator(self.gen.feedNumpyData(), steps=self.gen.getNBatches(), max_queue_size=1, use_multiprocessing=False, diff --git a/training/training_base.py b/training/training_base.py index 69f6441..fdf76b1 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -446,8 +446,8 @@ def trainModel(self, #prepare generator print("setting up generator... can take a while") - self.train_data.invokeGenerator() - self.val_data.invokeGenerator() + traingen = self.train_data.invokeGenerator() + valgen = self.val_data.invokeGenerator() #this is fixed @@ -456,21 +456,21 @@ def trainModel(self, #this can change from epoch to epoch #calculate steps for this epoch #feed info below - self.train_data.generator.prepareNextEpoch() - self.val_data.generator.prepareNextEpoch() - nbatches_train = self.train_data.generator.getNBatches() #might have changed due to shuffeling - nbatches_val = self.val_data.generator.getNBatches() + traingen.prepareNextEpoch() + valgen.prepareNextEpoch() + nbatches_train = traingen.getNBatches() #might have changed due to shuffeling + nbatches_val = valgen.getNBatches() print('>>>> epoch', self.trainedepoches,"/",nepochs) print('training batches: ',nbatches_train) print('validation batches: ',nbatches_val) - self.keras_model.fit(self.train_data.generatorFunction(), + self.keras_model.fit(traingen.feedNumpyData(), steps_per_epoch=nbatches_train, epochs=self.trainedepoches + 1, initial_epoch=self.trainedepoches, callbacks=self.callbacks.callbacks, - validation_data=self.val_data.generatorFunction(), + validation_data=valgen.feedNumpyData(), validation_steps=nbatches_val, max_queue_size=1, use_multiprocessing=False, @@ -478,12 +478,11 @@ def trainModel(self, **trainargs ) self.trainedepoches += 1 - self.train_data.generator.shuffleFilelist() + traingen.shuffleFilelist() # self.saveModel("KERAS_model.h5") - del self.train_data.generator - del self.val_data.generator + return self.keras_model, self.callbacks.history From 0980b440b36121a79d5c5a13d6ee443f5d4f1327 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 12 Jun 2020 14:49:53 +0200 Subject: [PATCH 274/437] and add the forgotten file --- dataPipeline.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 dataPipeline.py diff --git a/dataPipeline.py b/dataPipeline.py new file mode 100644 index 0000000..ccb769b --- /dev/null +++ b/dataPipeline.py @@ -0,0 +1,28 @@ + +from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator + + +class TrainDataGenerator(trainDataGenerator): + + def __init__(self): + trainDataGenerator.__init__(self) + + def feedNumpyData(self): + + for b in range(self.getNBatches()): + try: + data = self.getBatch() + + xout = data.transferFeatureListToNumpy() + wout = data.transferWeightListToNumpy() + yout = data.transferTruthListToNumpy() + + out = (xout,yout) + if len(wout)>0: + out = (xout,yout,wout) + yield out + except Exception as e: + print("TrainDataGenerator: an exception was raised in batch",b,":", e) + raise e + + \ No newline at end of file From 9385affc8e1491b9d09e8ff09a192ae01b847bf1 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 12 Jun 2020 14:51:24 +0200 Subject: [PATCH 275/437] some more helpful text --- dataPipeline.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dataPipeline.py b/dataPipeline.py index ccb769b..00a4b41 100644 --- a/dataPipeline.py +++ b/dataPipeline.py @@ -22,7 +22,7 @@ def feedNumpyData(self): out = (xout,yout,wout) yield out except Exception as e: - print("TrainDataGenerator: an exception was raised in batch",b,":", e) + print("TrainDataGenerator: an exception was raised in batch",b," out of ", self.getNBatches(),', expection: ', e) raise e \ No newline at end of file From ccb1fa4109e53d0b3865b434e62f2d935d0aa62d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 12 Jun 2020 14:53:41 +0200 Subject: [PATCH 276/437] fixed readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d551881..24e4328 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ gen.prepareNextEpoch() # this number can differ from epoch to epoch for ragged data! nbatches = gen.getNBatches() +generator=gen.feedNumpyData() for b in range(nbatches): @@ -144,7 +145,7 @@ for b in range(nbatches): raise Exception("ran out of data") # weights are optional, each of these is a list of numpy arrays - features_list, truth_list, weight_list = gen.feedNumpyData() + features_list, truth_list, weight_list = next(generator) # do your training From e9e8df32fcfcc34d42f0bf2344ffa9a9cdf3ffc8 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 17 Jun 2020 14:24:38 +0200 Subject: [PATCH 277/437] small fix --- evaluation/evaluation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index 5d40d4a..c6dc147 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -336,7 +336,7 @@ def plotLoss(infilename,outfilename,range): plt.ylim(range) elif automax>0: plt.ylim([automin*0.9,automax*1.1]) - plt.show() + #plt.show() plt.savefig(outfilename, format='pdf') #why does this crash? plt.close() From 75f24a10f86364bdf8833e52702125e6ccd006a3 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 17 Jun 2020 14:43:27 +0200 Subject: [PATCH 278/437] fix --- compiled/interface/trainDataGenerator.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index ec24c7f..663155a 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -469,9 +469,9 @@ trainData trainDataGenerator::prepareBatch(){ else{ //was used completely buffer_store = buffer_read;//std::move(buffer_read); //possible opt. implement move for trainData fully } - else //first one - buffer_store = buffer_read;//std::move(buffer_read); - + else{ //first one + buffer_store.append(buffer_read);//std::move(buffer_read); + } buffer_read.clear(); bufferelements = buffer_store.nElements(); lastbuffersplit_=0; From 4ced8b6f46b4b727d8b5fbde873f5c86ef73dc83 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 19 Jun 2020 18:40:32 +0200 Subject: [PATCH 279/437] no hooks --- docker/hooks/build | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 docker/hooks/build diff --git a/docker/hooks/build b/docker/hooks/build deleted file mode 100644 index 7cfc314..0000000 --- a/docker/hooks/build +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - - -# $IMAGE_NAME var is injected into the build so the tag is correct. - - -docker build --build-arg BUILD_DATE=`date -u +”%Y-%m-%dT%H:%M:%SZ”` -t $IMAGE_NAME . \ No newline at end of file From fd96e0e5e09fa425f405529310b4e9d5166b32ad Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 23 Jun 2020 16:02:43 +0200 Subject: [PATCH 280/437] zenodo citation --- README.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 24e4328..a32cc93 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,32 @@ This package provides the basic functions for out-of-memory training, resampling For simple use cases, only two files need to be adapted: the actual training data structures, describing how to fill numpy arrays from root trees, and the DNN model itself. Both must be defined in an additional user package. Please refer to the Section 'Usage' for more information. -**If you use DeepJetCore or the containers, please mention it in (internal) documentation and talks :)** +**If you use DeepJetCore or the containers, please mention it in (internal) documentation and talks and cite the zenodo entry:** + +``` +@software{kieseler_jan_2020_3670882, + author = {Kieseler, Jan and + Stoye, Markus and + Verzetti, Mauro and + Silva, Pedro and + MEHTA, Swapneel Sundeep and + Stakia, Anna and + IIYAMA, Yutaro and + Bols, Emil and + QASIM, Shah Rukh and + KIRSCHENMANN, Henning and + Qu, Huilin and + Rieger, Marcel and + Gouskos, Loukas}, + title = {DeepJetCore}, + month = feb, + year = 2020, + publisher = {Zenodo}, + version = {2.0}, + doi = {10.5281/zenodo.3670882}, + url = {https://doi.org/10.5281/zenodo.3670882} +} +``` Setup From 6fa29b39bef5b1483404b4c9bdfb06356c3936c5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 23 Jun 2020 16:04:15 +0200 Subject: [PATCH 281/437] just the link is enough --- README.md | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/README.md b/README.md index a32cc93..5d5e3dd 100644 --- a/README.md +++ b/README.md @@ -12,30 +12,7 @@ Please refer to the Section 'Usage' for more information. **If you use DeepJetCore or the containers, please mention it in (internal) documentation and talks and cite the zenodo entry:** -``` -@software{kieseler_jan_2020_3670882, - author = {Kieseler, Jan and - Stoye, Markus and - Verzetti, Mauro and - Silva, Pedro and - MEHTA, Swapneel Sundeep and - Stakia, Anna and - IIYAMA, Yutaro and - Bols, Emil and - QASIM, Shah Rukh and - KIRSCHENMANN, Henning and - Qu, Huilin and - Rieger, Marcel and - Gouskos, Loukas}, - title = {DeepJetCore}, - month = feb, - year = 2020, - publisher = {Zenodo}, - version = {2.0}, - doi = {10.5281/zenodo.3670882}, - url = {https://doi.org/10.5281/zenodo.3670882} -} -``` +https://zenodo.org/record/3670882/export/hx Setup From e48d14fbc3aef1951f84a23e3ccdf816f9bf5917 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 7 Jul 2020 10:17:59 +0200 Subject: [PATCH 282/437] more versatile inputs to predict.py , more robust file reading handling in trainData --- bin/predict.py | 114 +++++++++++++++++++-------------- compiled/interface/trainData.h | 3 + 2 files changed, 70 insertions(+), 47 deletions(-) diff --git a/bin/predict.py b/bin/predict.py index 5044845..600a6b2 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -28,6 +28,26 @@ from DeepJetCore.customObjects import get_custom_objects from DeepJetCore.training.gpuTools import DJCSetGPUs +inputdatafiles=[] +inputdir=None + +## prepare input lists for different file formats + +if args.inputSourceFileList[-6:] == ".djcdc": + print('reading from data collection',args.inputSourceFileList) + predsamples = DataCollection(args.inputSourceFileList) + inputdir = predsamples.dataDir + for s in predsamples.samples: + inputdatafiles.append(s) + +else: + print('reading from text file',args.inputSourceFileList) + inputdir = os.path.abspath(os.path.dirname(args.inputSourceFileList)) + with open(args.inputSourceFileList, "r") as f: + for s in f: + inputdatafiles.append(s.replace('\n', '').replace(" ","")) + + DJCSetGPUs(args.gpu) custom_objs = get_custom_objects() @@ -36,58 +56,58 @@ dc = DataCollection(args.trainingDataCollection) outputs = [] -inputdir = os.path.abspath(os.path.dirname(args.inputSourceFileList)) os.system('mkdir -p '+args.outputDir) -with open(args.inputSourceFileList, "r") as f: - for inputfile in f: - inputfile = inputfile.replace('\n', '') - use_inputdir = inputdir - if inputfile[0] == "/": - use_inputdir="" - outfilename = "pred_"+os.path.basename( inputfile ) - - td = dc.dataclass() - if inputfile[-5:] == 'djctd': - if args.unbuffered: - td.readFromFile(use_inputdir+"/"+inputfile) - else: - td.readFromFileBuffered(use_inputdir+"/"+inputfile) +for inputfile in inputdatafiles: + + print('predicting ',inputdir+"/"+inputfile) + + use_inputdir = inputdir + if inputfile[0] == "/": + use_inputdir="" + outfilename = "pred_"+os.path.basename( inputfile ) + + td = dc.dataclass() + + if inputfile[-5:] == 'djctd': + if args.unbuffered: + td.readFromFile(use_inputdir+"/"+inputfile) else: - print('converting '+inputfile) - td.readFromSourceFile(use_inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) - + td.readFromFileBuffered(use_inputdir+"/"+inputfile) + else: + print('converting '+inputfile) + td.readFromSourceFile(use_inputdir+"/"+inputfile, dc.weighterobjects, istraining=False) + - print('predicting ',inputfile) - gen = TrainDataGenerator() - if batchsize < 1: - batchsize = dc.getBatchSize() - print('batch size',batchsize) - gen.setBatchSize(batchsize) - gen.setSquaredElementsLimit(dc.batch_uses_sum_of_squares) - gen.setSkipTooLargeBatches(False) - gen.setBuffer(td) - - predicted = model.predict_generator(gen.feedNumpyData(), - steps=gen.getNBatches(), - max_queue_size=1, - use_multiprocessing=False,verbose=1) - - - x = td.transferFeatureListToNumpy() - w = td.transferWeightListToNumpy() - y = td.transferTruthListToNumpy() - - td.clear() - gen.clear() - - if not type(predicted) == list: #circumvent that keras return only an array if there is just one list item - predicted = [predicted] - td.writeOutPrediction(predicted, x, y, w, args.outputDir + "/" + outfilename, use_inputdir+"/"+inputfile) - - outputs.append(outfilename) - + gen = TrainDataGenerator() + if batchsize < 1: + batchsize = dc.getBatchSize() + print('batch size',batchsize) + gen.setBatchSize(batchsize) + gen.setSquaredElementsLimit(dc.batch_uses_sum_of_squares) + gen.setSkipTooLargeBatches(False) + gen.setBuffer(td) + + predicted = model.predict_generator(gen.feedNumpyData(), + steps=gen.getNBatches(), + max_queue_size=1, + use_multiprocessing=False,verbose=1) + + + x = td.transferFeatureListToNumpy() + w = td.transferWeightListToNumpy() + y = td.transferTruthListToNumpy() + + td.clear() + gen.clear() + + if not type(predicted) == list: #circumvent that keras return only an array if there is just one list item + predicted = [predicted] + td.writeOutPrediction(predicted, x, y, w, args.outputDir + "/" + outfilename, use_inputdir+"/"+inputfile) + + outputs.append(outfilename) + with open(args.outputDir + "/outfiles.txt","w") as f: diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index a7b1279..45a8249 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -359,6 +359,9 @@ void trainData::priv_readFromFile(std::string filename, bool memcp){ char *buf = 0; if(memcp){ FILE *diskfile = ifile; + //check if exists before trying to memcp. + checkFile(ifile, filename); //not set at start but won't be used + fseek(diskfile, 0, SEEK_END); size_t fsize = ftell(diskfile); fseek(diskfile, 0, SEEK_SET); /* same as rewind(f); */ From 3abb832808a8da4538d02a701aa8ac83983ee715 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 15 Jul 2020 09:21:16 +0200 Subject: [PATCH 283/437] better documentation and reaidng initial model weights easily --- bin/predict.py | 12 ++++++------ modeltools.py | 2 +- training/training_base.py | 6 ++++++ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/bin/predict.py b/bin/predict.py index 600a6b2..0e71c95 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -3,14 +3,14 @@ from argparse import ArgumentParser -parser = ArgumentParser('Apply a model to a (test) source sample and create friend trees to inject it inthe original ntuple') +parser = ArgumentParser('Apply a model to a (test) source sample.') parser.add_argument('inputModel') -parser.add_argument('trainingDataCollection') -parser.add_argument('inputSourceFileList') -parser.add_argument('outputDir') -parser.add_argument("-b", help="batch size ",default="-1") +parser.add_argument('trainingDataCollection', help="the training data collection. Used to infer data format and batch size.") +parser.add_argument('inputSourceFileList', help="can be text or a DataCollection file in the same directory as the sample files.") +parser.add_argument('outputDir', help="will be created if it doesn't exist.") +parser.add_argument("-b", help="batch size, overrides the batch size from the training data collection.",default="-1") parser.add_argument("--gpu", help="select specific GPU", metavar="OPT", default="") -parser.add_argument("--unbuffered", help="do not read input in memory buffered mode (for lower memory consumption on fast disks)", default=False, action="store_true") +parser.add_argument("--unbuffered", help="do not read input in memory buffered mode (for lower memory consumption on fast disks)", default=False, action="store_true") args = parser.parse_args() diff --git a/modeltools.py b/modeltools.py index 43c09b4..e5e54b4 100644 --- a/modeltools.py +++ b/modeltools.py @@ -81,7 +81,7 @@ def apply_weights_where_possible(target_model, weight_model): layer_a.set_weights(layer_b.get_weights()) except: print('unable to copy weights for layer ', layer_a.name) - print(layer_a.weights,'\n',layer_b.weights) + #print(layer_a.weights,'\n',layer_b.weights) return target_model diff --git a/training/training_base.py b/training/training_base.py index fdf76b1..8871f1a 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -96,6 +96,7 @@ def __init__( parser.add_argument("--walltime", help="sets the wall time for the batch job, format: 1d5h or 2d or 3h etc" , default='1d') parser.add_argument("--isbatchrun", help="is batch run", default=False, action="store_true") parser.add_argument("--valdata", help="set validation dataset (optional)", default="") + parser.add_argument("--takeweights", help="Applies weights from the model given as relative or absolute path. Matches by names and skips layers that don't match.", default="") args = parser.parse_args() @@ -140,6 +141,7 @@ def __init__( self.keras_inputsshapes=[] self.keras_model=None self.keras_model_method=args.modelMethod + self.keras_weight_model_path=args.takeweights self.train_data=None self.val_data=None self.startlearningrate=None @@ -263,6 +265,10 @@ def setModel(self,model,**modelargs): self.keras_model.setInputShape(self.keras_inputs) self.keras_model.build(None) + if len(self.keras_weight_model_path): + from DeepJetCore.modeltools import apply_weights_where_possible, load_model + self.keras_model = apply_weights_where_possible(self.keras_model, + load_model(self.keras_weight_model_path)) #try: # self.keras_model=model(self.keras_inputs,**modelargs) #except BaseException as e: From 7a2ed6c9ce6c59a72e959ea2b115f780b7f2590f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 15 Jul 2020 17:53:51 +0200 Subject: [PATCH 284/437] more bells and whistles on predict --- bin/predict.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/predict.py b/bin/predict.py index 0e71c95..86acfd4 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -6,7 +6,7 @@ parser = ArgumentParser('Apply a model to a (test) source sample.') parser.add_argument('inputModel') parser.add_argument('trainingDataCollection', help="the training data collection. Used to infer data format and batch size.") -parser.add_argument('inputSourceFileList', help="can be text or a DataCollection file in the same directory as the sample files.") +parser.add_argument('inputSourceFileList', help="can be text file or a DataCollection file in the same directory as the sample files, or just a single traindata file.") parser.add_argument('outputDir', help="will be created if it doesn't exist.") parser.add_argument("-b", help="batch size, overrides the batch size from the training data collection.",default="-1") parser.add_argument("--gpu", help="select specific GPU", metavar="OPT", default="") @@ -40,6 +40,10 @@ for s in predsamples.samples: inputdatafiles.append(s) +elif args.inputSourceFileList[-6:] == ".djctd": + inputdir = os.path.abspath(os.path.dirname(args.inputSourceFileList)) + infile = os.path.basename(args.inputSourceFileList) + inputdatafiles.append(infile) else: print('reading from text file',args.inputSourceFileList) inputdir = os.path.abspath(os.path.dirname(args.inputSourceFileList)) From 26aa4e396948304b32e9e64e2bd4733b8e331a51 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 16 Jul 2020 11:07:13 +0200 Subject: [PATCH 285/437] easy recover training --- training/training_base.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/training/training_base.py b/training/training_base.py index 8871f1a..e5fbd94 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -184,7 +184,13 @@ def __init__( #copy configuration to output dir if not args.isbatchrun: - shutil.copyfile(scriptname,self.outputDir+os.path.basename(scriptname)) + try: + shutil.copyfile(scriptname,self.outputDir+os.path.basename(scriptname)) + except shutil.SameFileError: + pass + except BaseException as e: + raise e + self.copied_script = self.outputDir+os.path.basename(scriptname) else: self.copied_script = scriptname From 8953dda1649bc75d59d7c2f9f963e8d7212b631f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 3 Aug 2020 09:54:58 +0200 Subject: [PATCH 286/437] added stop gradient layer --- DJCLayers.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/DJCLayers.py b/DJCLayers.py index e8fd301..1d86828 100644 --- a/DJCLayers.py +++ b/DJCLayers.py @@ -6,6 +6,18 @@ +class StopGradient(Layer): + def __init__(self, **kwargs): + super(StopGradient, self).__init__(**kwargs) + + def compute_output_shape(self, input_shape): + return input_shape + + def call(self, inputs): + return tf.stop_gradient(inputs) + +djc_global_layers_list['StopGradient']=StopGradient + class SelectFeatures(Layer): def __init__(self, index_left, index_right, **kwargs): super(SelectFeatures, self).__init__(**kwargs) From 7ef694c3d81b2878f5799940a6ddf0801f72534d Mon Sep 17 00:00:00 2001 From: Emil Bols Date: Wed, 5 Aug 2020 09:17:45 +0000 Subject: [PATCH 287/437] fix lxplus --- training/gpuTools.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/training/gpuTools.py b/training/gpuTools.py index f59343d..62300a2 100644 --- a/training/gpuTools.py +++ b/training/gpuTools.py @@ -6,10 +6,11 @@ def DJCSetGPUs(gpus_string: str =""): try: imp.find_module('setGPU') import setGPU - except Exception as e: - print('DeepJetCore.DJCSetGPU: no GPU specified and automatic setting impossible') - raise e + except : + print('No GPUs found, running on CPU') + #print('DeepJetCore.DJCSetGPU: no GPU specified and automatic setting impossible') + #raise e else: os.environ['CUDA_DEVICE_ORDER'] = 'PCI_BUS_ID' os.environ['CUDA_VISIBLE_DEVICES'] = gpus_string - print('running on GPU(s) '+gpus_string) \ No newline at end of file + print('running on GPU(s) '+gpus_string) From f806409de467a28fa465ff1ec09e2db53f83f743 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 14 Aug 2020 12:26:18 +0200 Subject: [PATCH 288/437] script to validate input files --- bin/validateFiles.py | 46 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 bin/validateFiles.py diff --git a/bin/validateFiles.py b/bin/validateFiles.py new file mode 100755 index 0000000..80882fc --- /dev/null +++ b/bin/validateFiles.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 + + +from argparse import ArgumentParser +import os +from DeepJetCore.conversion.conversion import class_options +import tqdm + +parser = ArgumentParser('Check if all files in a file list and remove broken entries\n') +parser.add_argument('inputFileList') +parser.add_argument("-c", choices = class_options.keys(), help="set output class (required, options: %s)" % ', '.join(class_options.keys()), metavar="Class") + +args=parser.parse_args() + +class_name=args.c + +traind = None +if class_name in class_options: + traind = class_options[class_name]() +else: + print('available classes:') + for key, val in class_options.items(): + print(key) + exit() + +infiles = [] +inputdir = os.path.abspath(os.path.dirname(args.inputFileList)) +if len(inputdir): + inputdir+="/" + +with open(args.inputFileList, "r") as f: + for s in f: + if len(s): + infiles.append(s[:-1])#remove '\n' + +os.system("cp -f "+args.inputFileList+" "+args.inputFileList+".backup") + +removedfiles=[] +with open(args.inputFileList, "w") as f: + for s in tqdm.tqdm(infiles): + if traind.fileIsValid(inputdir+s): + f.write(s+'\n') + else: + removedfiles.append(inputdir+s) + +print('files removed',removedfiles) \ No newline at end of file From 61f9ed4b896c4460e739323bd645c40fb0c3ab86 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 14 Aug 2020 16:22:02 +0200 Subject: [PATCH 289/437] some fixes --- evaluation/evaluation.py | 1 - training/DeepJet_callbacks.py | 43 ++++++++++++++++++++--------------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index c6dc147..078bff0 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -19,7 +19,6 @@ # # -from __future__ import print_function colormap=[ "#5e3c99", diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 4a53613..69ab653 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -3,14 +3,15 @@ @author: jkiesele ''' -from __future__ import print_function + +import matplotlib +matplotlib.use('Agg') + from .ReduceLROnPlateau import ReduceLROnPlateau from ..evaluation import plotLoss from ..evaluation import plotBatchLoss -import matplotlib -matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np @@ -86,24 +87,30 @@ def on_epoch_end(self,epoch, logs={}): f.write("\n") f.close() learnfile=os.path.join( self.outputDir, 'learn.log') - with open(learnfile, 'a') as f: - f.write(str(float(K.get_value(self.model.optimizer.lr)))+'\n') - - lossfile=os.path.join( self.outputDir, 'full_info.log') - if os.path.isfile(lossfile): - with open(lossfile, 'r') as infile: - self.full_logs=json.load(infile) + try: + with open(learnfile, 'a') as f: + f.write(str(float(K.get_value(self.model.optimizer.lr)))+'\n') - normed = {} - for vv in logs: - normed[vv] = float(logs[vv]) - self.full_logs.append(normed) - - with open(lossfile, 'w') as out: - out.write(json.dumps(self.full_logs)) + lossfile=os.path.join( self.outputDir, 'full_info.log') + if os.path.isfile(lossfile): + with open(lossfile, 'r') as infile: + self.full_logs=json.load(infile) + + normed = {} + for vv in logs: + normed[vv] = float(logs[vv]) + self.full_logs.append(normed) + with open(lossfile, 'w') as out: + out.write(json.dumps(self.full_logs)) + except: + pass + if self.plotLoss: - plotLoss(self.outputDir+'/losses.log',self.outputDir+'/losses.pdf',[]) + try: + plotLoss(self.outputDir+'/losses.log',self.outputDir+'/losses.pdf',[]) + except: + pass class batch_callback_begin(Callback): From 33f13e5d5cba6246c3d0b724a865cdfc2a41b9ed Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 18 Aug 2020 12:10:20 +0200 Subject: [PATCH 290/437] rebuild model when taking weights --- training/training_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/training/training_base.py b/training/training_base.py index e5fbd94..99189c4 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -250,7 +250,7 @@ def __del__(self): del self.val_data def modelSet(self): - return not self.keras_model==None + return (not self.keras_model==None) and not len(self.keras_weight_model_path) def setDJCKerasModel(self,model,*args,**kwargs): if len(self.keras_inputs)<1: From 0535c3599722ab1a6056805d3012d0a82dc928f5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 19 Aug 2020 10:47:31 +0200 Subject: [PATCH 291/437] more printout for model tools --- modeltools.py | 1 + 1 file changed, 1 insertion(+) diff --git a/modeltools.py b/modeltools.py index e5e54b4..dfc7856 100644 --- a/modeltools.py +++ b/modeltools.py @@ -79,6 +79,7 @@ def apply_weights_where_possible(target_model, weight_model): if layer_a.name == layer_b.name: try: layer_a.set_weights(layer_b.get_weights()) + print('using weights from ', layer_a.name) except: print('unable to copy weights for layer ', layer_a.name) #print(layer_a.weights,'\n',layer_b.weights) From 6f6f19c47a99bd711f001a9fac26a507d81d219c Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 7 Sep 2020 10:54:37 +0200 Subject: [PATCH 292/437] more testing, small fix --- DataCollection.py | 1 + testing/CI/testRaggedGenerator.py | 155 ++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 testing/CI/testRaggedGenerator.py diff --git a/DataCollection.py b/DataCollection.py index b4d990c..429b5d7 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -38,6 +38,7 @@ def __init__(self, infile = None, nprocs = -1): self.weighterobjects={} self.batch_mode = False self.nprocs=-1 + self.no_copy_on_convert=True if infile: self.readFromFile(infile) diff --git a/testing/CI/testRaggedGenerator.py b/testing/CI/testRaggedGenerator.py new file mode 100644 index 0000000..16db35f --- /dev/null +++ b/testing/CI/testRaggedGenerator.py @@ -0,0 +1,155 @@ +import numpy as np +from DeepJetCore.TrainData import TrainData +from DeepJetCore.DataCollection import DataCollection +import shutil + +class RaggedTester(object): + def __init__(self, auto_create=0): + self.max_per_rs=3478 + self.fill_freq=11 + self.fill_content=11 + self.data=np.zeros((0,1),dtype='float32') + self.rs=np.array([],dtype='int64') + if auto_create > 0: + self.data,self.rs = self.createData(auto_create) + + def createEvent(self,length: int): + a = np.zeros((length,1),dtype='float32') + for i in range(length//self.fill_freq - 1): + a[(i+1)*self.fill_freq,0] = self.fill_content + a[0]=1000 + a[-1]=2000 + return a + + def checkEvent(self,a): + boundary = a[0,0] == 1000 and a[-1,0] == 2000 + internal=True + for i in range(len(a)//self.fill_freq -1): + if not a[(i+1)*self.fill_freq,0] == self.fill_content: + internal = False + return boundary and internal + + + def createData(self,ntotal): + segments = np.random.randint(2,self.max_per_rs,size=ntotal) #8347 + row_splits = [0] + data=[] + for s in segments: + data.append(self.createEvent(s)) + row_splits.append(s+row_splits[-1]) + + return np.concatenate(data), np.array(row_splits,dtype='int64') + + def checkData(self,data,rs): + inputOk=True + for i in range(len(rs)-1): + ea=data[rs[i]:rs[i+1]] + inputOk = inputOk and self.checkEvent(ea) + return inputOk + +import tempfile +class TempFileList(object): + def __init__(self, length=1): + self._files=[tempfile.NamedTemporaryFile(delete=True) for _ in range(length)] + self.filenames = [f.name for f in self._files] + + def __del__(self): + for f in self._files: + f.close() + + + +class TempDir(object): + def __init__(self, delete=True): + self.path = tempfile.mkdtemp() + self.delete=delete + print(self.path) + + def __del__(self): + if not self.delete: + return + shutil.rmtree(self.path) + +class TempDirName(object): + def __init__(self): + td=TempDir(delete=True) + self.path=td.path + del td + + + +## self-consistency check + +raggedtester=RaggedTester() + +class TrainData_test(TrainData): + + def convertFromSourceFile(self, filename, weighterobjects, istraining): + global raggedtester + import hashlib + from DeepJetCore.compiled.c_simpleArray import simpleArray + + seed = int(hashlib.sha1(filename.encode('utf-8')).hexdigest(), 16) % (10 ** 8) + np.random.seed(seed) + nsamples = np.random.randint(12,5415,size=1) + data,rs = raggedtester.createData(nsamples) + + farr = simpleArray() + farr.createFromNumpy(data, rs) + + return [farr],[],[] + + + +class RaggedGeneratorTester(object): + def __init__(self, + n_files=20, + n_per_batch=2078, + ): + + self.files = TempFileList(n_files) + self.dcoutdir = TempDirName() + self.n_per_batch=n_per_batch + + def __del__(self): + shutil.rmtree(self.dcoutdir.path) + + + def test(self): + + passed = True + + dc = DataCollection() + dc.dataclass = TrainData_test + dc.sourceList = [f for f in self.files.filenames] + dc.createDataFromRoot(TrainData_test, outputDir=self.dcoutdir.path) + + gen = dc.invokeGenerator() + gen.setBatchSize(self.n_per_batch) + + for epoch in range(10): + gen.prepareNextEpoch() + print("epoch",epoch,'batches',gen.getNBatches()) + for b in range(gen.getNBatches()): + d,_ = next(gen.feedNumpyData()) + data,rs = d[0],d[1] + rs = np.array(rs[:,0],dtype='int') + rs = rs[:rs[-1]] + if not raggedtester.checkData(data, rs): + print('epoch',epoch, 'batch',b,'broken') + passed=False + break + print('shuffling') + gen.shuffleFilelist() + + return passed + + +tester = RaggedGeneratorTester() +tester.test() + + + + + + From 5f1055971b8fca595beb502c89683e5d730c3bb2 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 8 Sep 2020 20:03:12 +0200 Subject: [PATCH 293/437] mostly new containers --- DJCLosses.py | 2 +- docker/Dockerfile_base | 13 ++++++++----- docker/Dockerfile_exp | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/DJCLosses.py b/DJCLosses.py index 5500d4e..a01bf4f 100644 --- a/DJCLosses.py +++ b/DJCLosses.py @@ -6,6 +6,6 @@ def dummy_loss(truth, pred): #t = tf.Print(truth,[truth],'truth ') #p = tf.Print(pred,[pred],'pred ') - return tf.reduce_mean(truth)+tf.reduce_mean(pred) + return (tf.reduce_mean(truth)-tf.reduce_mean(pred))**2 djc_global_loss_list['dummy_loss']=dummy_loss \ No newline at end of file diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 7c966f4..64f33fd 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -64,11 +64,10 @@ RUN pip3 install gpustat setGPU ## torch/jupyter stuff RUN pip3 install future gensim jupyter prompt-toolkit -RUN export CUDA="cu101" && \ - pip3 install torch-scatter==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.4.0.html && \ - pip3 install torch-sparse==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.4.0.html && \ - pip3 install torch-cluster==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.4.0.html && \ - pip3 install torch-spline-conv==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.4.0.html && \ +RUN pip3 install torch-scatter==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.6.0.html && \ + pip3 install torch-sparse==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.6.0.html && \ + pip3 install torch-cluster==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.6.0.html && \ + pip3 install torch-spline-conv==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.6.0.html && \ pip3 install torch-geometric @@ -78,6 +77,10 @@ EXPOSE 8888 RUN adduser --disabled-password --gecos "" dummyuser RUN apt-get install -y vim +#some tex things +RUN apt install -y texlive ghostscript dvipng + + diff --git a/docker/Dockerfile_exp b/docker/Dockerfile_exp index 9b77e13..b753111 100644 --- a/docker/Dockerfile_exp +++ b/docker/Dockerfile_exp @@ -1,5 +1,5 @@ -FROM cernml4reco/djcbase:py3 +FROM cernml4reco/djcbase:latest @@ -7,7 +7,7 @@ FROM cernml4reco/djcbase:py3 # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.2.0 + pip3 --no-cache-dir install tensorflow-gpu==2.3.0 #2.2.0-rc2 From b8347d8aca7add83a7e2f20bb1ff74653e7e4337 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 20 Sep 2020 17:57:00 +0200 Subject: [PATCH 294/437] switch to TF2.3 --- docker/Dockerfile | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 234ac5a..82a91ad 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,5 +1,5 @@ -FROM cernml4reco/djcbase:py3 +FROM cernml4reco/djcbase:latest @@ -7,21 +7,14 @@ FROM cernml4reco/djcbase:py3 # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.1 + pip3 --no-cache-dir install tensorflow-gpu==2.3.0 -#2.1 -RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow_core/include/third_party && \ + +RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ cd gpus && \ - ln -s /usr/local/cuda cuda - -#2.2.0-rc1 -#RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ -# mkdir gpus && \ -# cd gpus && \ -# ln -s /usr/local/cuda cuda - + ln -s /usr/local/cuda cuda ################################################################################ From 2b0f80d0622fd79d256066952aa3d77e73602c98 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 23 Sep 2020 09:18:02 +0200 Subject: [PATCH 295/437] better handling of inpurs of other types --- DataCollection.py | 8 ++++++++ compiled/interface/trainData.h | 20 ++++++++++++++++++++ compiled/src/c_trainData.C | 1 + training/training_base.py | 17 +++++++++++++---- 4 files changed, 42 insertions(+), 4 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 429b5d7..95bfb25 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -125,6 +125,14 @@ def getKerasFeatureShapes(self): self._readShapesIfNeeded() return self.dataclass_instance.getKerasFeatureShapes() + def getKerasFeatureDTypes(self): + if len(self.samples)<1: + raise Exception("DataCollection.getKerasFeatureDTypes: no files") + return [] + self._readShapesIfNeeded() + return self.dataclass_instance.getKerasFeatureDTypes() + + def getInputShapes(self): print('DataCollection:getInputShapes deprecated, use getKerasFeatureShapes ') return self.getKerasFeatureShapes() diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 45a8249..50d2cdd 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -145,6 +145,7 @@ class trainData{ #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS boost::python::list getKerasFeatureShapes()const; + boost::python::list getKerasFeatureDTypes()const; // not needed boost::python::list getKerasTruthShapes()const; // not needed boost::python::list getKerasWeightShapes()const; @@ -602,6 +603,25 @@ boost::python::list trainData::getKerasFeatureShapes()const{ } return out; } + +template +boost::python::list trainData::getKerasFeatureDTypes()const{ + boost::python::list out; + for(const auto& a: feature_shapes_){ + bool isragged=false; + for(size_t i=0;i //boost::python::list trainData::getKerasTruthShapes()const{ // boost::python::list out; diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index 3375cbf..441ab7f 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -45,6 +45,7 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("skim", &trainData::skim) .def("getKerasFeatureShapes", &trainData::getKerasFeatureShapes) + .def("getKerasFeatureDTypes", &trainData::getKerasFeatureDTypes) .def("getTruthRaggedFlags", &trainData::getTruthRaggedFlags) .def("transferFeatureListToNumpy", &trainData::transferFeatureListToNumpy) diff --git a/training/training_base.py b/training/training_base.py index 99189c4..47ba56c 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -216,14 +216,23 @@ def __init__( - shapes=self.train_data.getKerasFeatureShapes() + shapes = self.train_data.getKerasFeatureShapes() + inputdtypes = self.train_data.getKerasFeatureDTypes() + inputnames=['input_'+str(i+1) for i in range(len(shapes))] + + dataclass_instance = self.train_data.dataclass() + if hasattr(dataclass_instance, 'input_names'): + inputnames=dataclass_instance.input_names + print("shapes", shapes) + print("inputdtypes", inputdtypes) + print("inputnames", inputnames) self.keras_inputs=[] self.keras_inputsshapes=[] - - for s in shapes: - self.keras_inputs.append(keras.layers.Input(shape=s)) + counter=0 + for s,dt,n in zip(shapes,inputdtypes,inputnames): + self.keras_inputs.append(keras.layers.Input(shape=s, dtype=dt, name=n)) self.keras_inputsshapes.append(s) if not isNewTraining: From 726516e988bd316b6ee16b9e1cb9c3652fe462a6 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 23 Sep 2020 09:50:36 +0200 Subject: [PATCH 296/437] small fixes --- modeltools.py | 6 +++--- training/training_base.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modeltools.py b/modeltools.py index dfc7856..0965f35 100644 --- a/modeltools.py +++ b/modeltools.py @@ -50,16 +50,16 @@ def set_trainable(m, patterns, value): m.get_layer(index=layidx).trainable = value return m -def setAllTrainable(m): +def setAllTrainable(m, val=True): for layidx in range(len(m.layers)): - m.get_layer(index=layidx).trainable = True + m.get_layer(index=layidx).trainable = val return m def loadModelAndFixLayers(filename,fixOnlyContaining): #import keras from keras.models import load_model - m=load_model(filename) + m=load_model(filename, custom_objects=custom_objs) fixLayersContaining(m, fixOnlyContaining) diff --git a/training/training_base.py b/training/training_base.py index 47ba56c..f9a2d44 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -419,7 +419,7 @@ def trainModel(self, # write only after the output classes have been added self._initTraining(nepochs,batchsize, batchsize_use_sum_of_squares) - #self.keras_model.save(self.outputDir+'KERAS_check_last_model.h5') + self.keras_model.save(self.outputDir+'KERAS_untrained_model.h5') print('setting up callbacks') from .DeepJet_callbacks import DeepJet_callbacks minTokenLifetime = 5 From b7b1e021736510cac083973dddc2c7129969526b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 29 Sep 2020 17:30:27 +0200 Subject: [PATCH 297/437] no need for training data collection --- bin/predict.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/bin/predict.py b/bin/predict.py index 86acfd4..704250e 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -57,7 +57,14 @@ custom_objs = get_custom_objects() model=load_model(args.inputModel, custom_objects=custom_objs) -dc = DataCollection(args.trainingDataCollection) +dc = None +if args.inputSourceFileList[-6:] == ".djcdc" and not args.trainingDataCollection[-6:] == ".djcdc": + dc = DataCollection(args.inputSourceFileList) + if batchsize < 1: + batchsize = 1 + print('No training data collection given. Using batch size of',batchsize) +else: + dc = DataCollection(args.trainingDataCollection) outputs = [] os.system('mkdir -p '+args.outputDir) From 6bafdd200f4849fe6d20d986f6cc5ed7d1edc1b5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 26 Oct 2020 11:44:05 +0100 Subject: [PATCH 298/437] mostly changes on the container. includes tf probability now. in addition, started data shuffling devs --- compiled/interface/simpleArray.h | 151 ++++++++++++++++---- compiled/interface/trainDataGenerator.h | 4 +- compiled/to_bin/_testSimpleArrayAndTD.cpp | 2 +- compiled/to_bin/_testSimpleArrayShuffle.cpp | 69 +++++++++ docker/Dockerfile | 2 +- docker/Dockerfile_exp | 5 +- training/training_base.py | 42 +++--- 7 files changed, 223 insertions(+), 52 deletions(-) create mode 100644 compiled/to_bin/_testSimpleArrayShuffle.cpp diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 32e5545..042d831 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -56,6 +56,9 @@ class simpleArray { simpleArray(simpleArray &&); simpleArray& operator=(simpleArray &&); + bool operator==(const simpleArray& rhs)const; + bool operator!=(const simpleArray& rhs)const { return !(*this == rhs); } + void clear(); //reshapes if possible, creates new else @@ -134,12 +137,16 @@ class simpleArray { size_t validSlices(std::vector splits)const; bool validSlice(size_t splitindex_begin, size_t splitindex_end)const; + + simpleArray shuffle(const std::vector& shuffle_idxs)const; /* * appends along first axis * Cann append to an empty array (same as copy) */ void append(const simpleArray& a); + + /* file IO here * format: non compressed header (already writing rowsplits!): * size, shape.size(), [shape], rowsplits.size(), [rowsplits], compr: [data] @@ -183,20 +190,28 @@ class simpleArray { /** * Split indices can directly be used with the split() function. - * Returns e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} + * Returns elements e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} */ static std::vector getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, bool sqelementslimit=false, bool strict_limit=true, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); /** * Split indices can directly be used with the split() function. - * Returns e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} + * Returns row splits e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} */ static std::vector getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, bool sqelementslimit=false, bool strict_limit=true, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); - static std::vector dataSplitToSplitIndices(const std::vector& data_splits); - static std::vector splitToDataSplitIndices(const std::vector& data_splits); + /** + * Transforms row splits to n_elements per ragged sample + */ + static std::vector dataSplitToSplitIndices(const std::vector& row_splits); + + /** + * Transforms n_elements per ragged sample to row splits + */ + static std::vector splitToDataSplitIndices(const std::vector& data_splits); + static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); @@ -235,6 +250,9 @@ class simpleArray { std::vector padRowsplits()const; + void getFlatSplitPoints(size_t splitindex_begin, size_t splitindex_end, + size_t & splitpoint_start, size_t & splitpoint_end)const; + void copyFrom(const simpleArray& a); void moveFrom(simpleArray && a); size_t sizeFromShape(const std::vector& shape) const; @@ -348,6 +366,24 @@ simpleArray& simpleArray::operator=(simpleArray && a) { return *this; } +template +bool simpleArray::operator==(const simpleArray& rhs)const{ + if(this == &rhs) + return true; + if(size_!=rhs.size_) + return false; + if(shape_!=rhs.shape_) + return false; + if(rowsplits_!=rhs.rowsplits_) + return false; + //finally check data + for(size_t i=0;i void simpleArray::clear() { @@ -496,22 +532,9 @@ simpleArray simpleArray::getSlice(size_t splitindex_begin, size_t splitind } //for arrays larger than 8/16(?) GB, size_t is crucial - size_t splitpoint_start = splitindex_begin; - size_t splitpoint_end = splitindex_end; - if(isRagged()){ - splitpoint_start = rowsplits_.at(splitindex_begin); - splitpoint_end = rowsplits_.at(splitindex_end); - for (size_t i = 2; i < shape_.size(); i++){ - splitpoint_start *= (size_t)std::abs(shape_.at(i)); - splitpoint_end *= (size_t)std::abs(shape_.at(i)); - } - } - else{ - for (size_t i = 1; i < shape_.size(); i++){ - splitpoint_start *= (size_t)std::abs(shape_.at(i)); - splitpoint_end *= (size_t)std::abs(shape_.at(i)); - } - } + size_t splitpoint_start, splitpoint_end; + getFlatSplitPoints(splitindex_begin,splitindex_end, + splitpoint_start, splitpoint_end ); T * odata = new T[splitpoint_end-splitpoint_start]; memcpy(odata, data_+splitpoint_start, (splitpoint_end-splitpoint_start) * sizeof(T)); @@ -559,6 +582,45 @@ bool simpleArray::validSlice(size_t splitindex_begin, size_t splitindex_end)c return true; } + + +template +simpleArray simpleArray::shuffle(const std::vector& shuffle_idxs)const{ + //check + bool isvalid = true; + for(const auto& idx: shuffle_idxs){ + isvalid &= validSlice(idx,idx+1); + } + if(!isvalid) + throw std::runtime_error("simpleArray::shuffle: indices not valid"); + + //copy data + auto out=*this; + size_t next=0; + for(const auto idx: shuffle_idxs){ + + size_t source_splitpoint_start, source_splitpoint_end; + getFlatSplitPoints(idx,idx+1, + source_splitpoint_start, source_splitpoint_end ); +std::cout << "source_splitpoint_start, source_splitpoint_end " << source_splitpoint_start <<" " << source_splitpoint_end << std::endl;//DEBUG + size_t n_elements = source_splitpoint_end-source_splitpoint_start; + memcpy(out.data_+next, + data_+source_splitpoint_start,n_elements * sizeof(T)); + + next+=n_elements; + } + //recreate row splits + if(isRagged()){ + auto nelems = dataSplitToSplitIndices(rowsplits_); + auto new_nelems=nelems; + for(size_t i=0;i simpleArray::getSplitIndices(const std::vector /** * Split indices can directly be used with the split() function. - * Returns e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} + * Returns row splits e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} */ template @@ -819,14 +881,33 @@ std::vector simpleArray::getDataSplitIndices(const std::vector -std::vector simpleArray::dataSplitToSplitIndices(const std::vector& data_splits){ - return std::vector(); +std::vector simpleArray::dataSplitToSplitIndices(const std::vector& row_splits){ + if(!row_splits.size()) + throw std::runtime_error("simpleArray::dataSplitToSplitIndices: row splits empty"); + auto out = std::vector(row_splits.size()-1); + for(size_t i=0;i -std::vector simpleArray::splitToDataSplitIndices(const std::vector& data_splits){ - return std::vector(); +std::vector simpleArray::splitToDataSplitIndices(const std::vector& n_elements){ + auto out = std::vector(n_elements.size()+1); + out.at(0)=0; + int64_t last=0; + for(size_t i=0;i simpleArray::splitRowSplits(std::vector & rowsp return out; } +template +void simpleArray::getFlatSplitPoints(size_t splitindex_begin, size_t splitindex_end, + size_t & splitpoint_start, size_t & splitpoint_end)const{ + splitpoint_start = splitindex_begin; + splitpoint_end = splitindex_end; + if(isRagged()){ + splitpoint_start = rowsplits_.at(splitindex_begin); + splitpoint_end = rowsplits_.at(splitindex_end); + for (size_t i = 2; i < shape_.size(); i++){ + splitpoint_start *= (size_t)std::abs(shape_.at(i)); + splitpoint_end *= (size_t)std::abs(shape_.at(i)); + } + } + else{ + for (size_t i = 1; i < shape_.size(); i++){ + splitpoint_start *= (size_t)std::abs(shape_.at(i)); + splitpoint_end *= (size_t)std::abs(shape_.at(i)); + } + } +} template void simpleArray::copyFrom(const simpleArray& a) { diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 663155a..ba89a0b 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -204,7 +204,7 @@ void trainDataGenerator::setBuffer(const trainData& td){ } template -void trainDataGenerator::readBuffer(){ +void trainDataGenerator::readBuffer(){ //inject by file shuffle here size_t ntries = 0; std::exception caught; while(ntries < filetimeout_){ @@ -297,7 +297,7 @@ void trainDataGenerator::prepareSplitting(){ std::vector allrs; for(size_t i=0;i & farr){ int main(){ - +//#define igonrefownow #ifdef igonrefownow simpleArray farr({5,2,1}); diff --git a/compiled/to_bin/_testSimpleArrayShuffle.cpp b/compiled/to_bin/_testSimpleArrayShuffle.cpp new file mode 100644 index 0000000..58b3ba6 --- /dev/null +++ b/compiled/to_bin/_testSimpleArrayShuffle.cpp @@ -0,0 +1,69 @@ + + +#include "../interface/simpleArray.h" +#include + +int main(){ + + using namespace djc; + + std::vector v={2,3,4,52,35,67,3}; + + for(auto vv:v) + std::cout << "v " << vv << std::endl; + + auto rs = simpleArray::splitToDataSplitIndices(v); + + for(auto rss:rs) + std::cout << "rs " << rss << std::endl; + + auto v2 = simpleArray::dataSplitToSplitIndices(rs); + + for(auto vv:v2) + std::cout << "v2 " << vv << std::endl; + + + //test non ragged shuffle + + simpleArray farr({5,2,1}); + for(float i=0;i rowsplits = {0,2,5,6,8}; + + farr=simpleArray ({4,-1,2},rowsplits); + + std::cout << "size " << farr.size() << std::endl; + + for(float i=0;i 1: + import tensorflow as tf + self.dist_strat_scope = tf.distribute.MirroredStrategy() self.keras_inputs=[] self.keras_inputsshapes=[] @@ -241,7 +231,12 @@ def __init__( self.outputDir+'/KERAS_model.h5' if os.path.isfile(kfile): print(kfile) - self.loadModel(kfile) + + if self.dist_strat_scope is not None: + with self.dist_strat_scope.scope(): + self.loadModel(kfile) + else: + self.loadModel(kfile) self.trainedepoches=0 if os.path.isfile(self.outputDir+'losses.log'): for line in open(self.outputDir+'losses.log'): @@ -275,7 +270,11 @@ def setDJCKerasModel(self,model,*args,**kwargs): def setModel(self,model,**modelargs): if len(self.keras_inputs)<1: raise Exception('setup data first') - self.keras_model=model(self.keras_inputs,**modelargs) + if self.dist_strat_scope is not None: + with self.dist_strat_scope.scope(): + self.keras_model=model(self.keras_inputs,**modelargs) + else: + self.keras_model=model(self.keras_inputs,**modelargs) if hasattr(self.keras_model, "_is_djc_keras_model"): #compatibility self.keras_model.setInputShape(self.keras_inputs) self.keras_model.build(None) @@ -323,7 +322,6 @@ def compileModel(self, if self.ngpus>1 and not self.submitbatch: print('Model being compiled for '+str(self.ngpus)+' gpus') - self.keras_model = ModelMGPU(self.keras_model, gpus=self.ngpus) self.startlearningrate=learningrate @@ -335,8 +333,12 @@ def compileModel(self, self.optimizer = Adam(lr=self.startlearningrate) - - self.keras_model.compile(optimizer=self.optimizer,metrics=metrics,**compileargs) + + if self.dist_strat_scope is not None: + with self.dist_strat_scope.scope(): + self.keras_model.compile(optimizer=self.optimizer,metrics=metrics,**compileargs) + else: + self.keras_model.compile(optimizer=self.optimizer,metrics=metrics,**compileargs) if print_models: print(self.keras_model.summary()) self.compiled=True From 6dbcc66bf9c78bc15f38be0e169f49161a03e264 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 26 Oct 2020 13:29:06 +0100 Subject: [PATCH 299/437] added full sub shuffeling capabilities --- compiled/interface/simpleArray.h | 1 - compiled/interface/trainData.h | 18 ++++++++ compiled/interface/trainDataGenerator.h | 55 +++++++++++++++++++++---- testing/CI/testRaggedGenerator.py | 31 +++++++------- 4 files changed, 81 insertions(+), 24 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 042d831..8b61b80 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -602,7 +602,6 @@ simpleArray simpleArray::shuffle(const std::vector& shuffle_idxs)c size_t source_splitpoint_start, source_splitpoint_end; getFlatSplitPoints(idx,idx+1, source_splitpoint_start, source_splitpoint_end ); -std::cout << "source_splitpoint_start, source_splitpoint_end " << source_splitpoint_start <<" " << source_splitpoint_end << std::endl;//DEBUG size_t n_elements = source_splitpoint_end-source_splitpoint_start; memcpy(out.data_+next, data_+source_splitpoint_start,n_elements * sizeof(T)); diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 50d2cdd..bcdd1ed 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -88,6 +88,8 @@ class trainData{ trainData split(size_t splitindex); trainData getSlice(size_t splitindex_begin, size_t splitindex_end)const; + trainData shuffle(const std::vector& shuffle_idxs)const; + bool validSlice(size_t splitindex_begin, size_t splitindex_end)const ; /* @@ -319,6 +321,22 @@ trainData trainData::getSlice(size_t splitindex_begin, size_t splitindex_e return out; } +template +trainData trainData::shuffle(const std::vector& shuffle_idxs)const{ + trainData out; + + for (const auto& a : feature_arrays_) + out.feature_arrays_.push_back(a.shuffle(shuffle_idxs)); + for (const auto& a : truth_arrays_) + out.truth_arrays_.push_back(a.shuffle(shuffle_idxs)); + for (const auto& a : weight_arrays_) + out.weight_arrays_.push_back(a.shuffle(shuffle_idxs)); + + out.updateShapes(); + return out; + +} + template bool trainData::validSlice(size_t splitindex_begin, size_t splitindex_end)const{ for (const auto& a : feature_arrays_) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index ba89a0b..31bb77a 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -60,9 +60,6 @@ class trainDataGenerator{ void setFileList(const std::vector& files){ clear(); orig_infiles_=files; - shuffle_indices_.resize(orig_infiles_.size()); - for(size_t i=0;i&); @@ -126,12 +123,15 @@ class trainDataGenerator{ private: void readBuffer(); void readInfo(); + std::vector subShuffleRowSplits(const std::vector& thisrs, + const std::vector& s_idx)const; void prepareSplitting(); bool tdHasRaggedDimension(const trainData& )const; trainData prepareBatch(); std::vector orig_infiles_; std::vector shuffle_indices_; + std::vector > sub_shuffle_indices_; std::vector > orig_rowsplits_; std::vector splits_; std::vector usebatch_; @@ -142,6 +142,7 @@ class trainDataGenerator{ trainData buffer_store, buffer_read; std::thread * readthread_; std::string nextread_; + size_t nextreadIdx_; size_t filecount_; size_t nbatches_; size_t npossiblebatches_; @@ -156,7 +157,7 @@ class trainDataGenerator{ template trainDataGenerator::trainDataGenerator() :debuglevel(0), - randomcount_(1), batchsize_(2),sqelementslimit_(false),skiplargebatches_(true), readthread_(0), filecount_(0), nbatches_( + randomcount_(1), batchsize_(2),sqelementslimit_(false),skiplargebatches_(true), readthread_(0), nextreadIdx_(0), filecount_(0), nbatches_( 0), npossiblebatches_(0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), batchcount_(0),lastbuffersplit_(0){ } @@ -178,6 +179,10 @@ void trainDataGenerator::shuffleFilelist(){ randomcount_++; std::shuffle(std::begin(shuffle_indices_),std::end(shuffle_indices_),g); + for(const auto i:shuffle_indices_) + std::shuffle(std::begin(sub_shuffle_indices_.at(i)), + std::end(sub_shuffle_indices_.at(i)),g); + //redo splits etc prepareSplitting(); batchcount_=0; @@ -196,6 +201,10 @@ void trainDataGenerator::setBuffer(const trainData& td){ if(rs.size()) orig_rowsplits_.push_back(rs); shuffle_indices_.push_back(0); + std::vector vec; + for(size_t i=0;i::readBuffer(){ //inject by file shuffle here buffer_read.readFromFileBuffered(nextread_); if(debuglevel>0) std::cout << "reading file " << nextread_ << " done"<< std::endl; + buffer_read = buffer_read.shuffle(sub_shuffle_indices_.at(nextreadIdx_)); return; } catch(std::exception & e){ //if there are data glitches we don't want the whole training fail immediately @@ -238,6 +248,11 @@ void trainDataGenerator::readInfo(){ ntotal_=0; bool hasRagged=false; bool firstfile=true; + + shuffle_indices_.resize(orig_infiles_.size()); + for(size_t i=0;i td; @@ -246,6 +261,13 @@ void trainDataGenerator::readInfo(){ if(td.featureShapes().size()<1 || td.featureShapes().at(0).size()<1) throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object "+f); + //create sub_shuffle_idxs + std::vector vec; + for(size_t i=0;i::readInfo(){ prepareSplitting(); } +template +std::vector trainDataGenerator::subShuffleRowSplits(const std::vector& thisrs, + const std::vector& s_idx)const{ + + auto nelems = simpleArray::dataSplitToSplitIndices(thisrs); + auto snelems=nelems; + //shuffle + for(size_t si=0;si::splitToDataSplitIndices(snelems); + +} template void trainDataGenerator::prepareSplitting(){ @@ -297,7 +332,10 @@ void trainDataGenerator::prepareSplitting(){ std::vector allrs; for(size_t i=0;i::prepareNextEpoch(){ batchcount_=0; lastbatchsize_=0; lastbuffersplit_=0; - nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); + nextreadIdx_ = shuffle_indices_.at(filecount_); + nextread_ = orig_infiles_.at(nextreadIdx_); filecount_++; readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); @@ -408,6 +447,7 @@ void trainDataGenerator::clear(){ end(); orig_infiles_.clear(); shuffle_indices_.clear(); + sub_shuffle_indices_.clear(); orig_rowsplits_.clear(); splits_.clear(); usebatch_.clear(); @@ -490,7 +530,8 @@ trainData trainDataGenerator::prepareBatch(){ } - nextread_ = orig_infiles_.at(shuffle_indices_.at(filecount_)); + nextreadIdx_ = shuffle_indices_.at(filecount_); + nextread_ = orig_infiles_.at(nextreadIdx_); if(debuglevel>0) std::cout << "start new read on file "<< nextread_ < self.n_per_batch: + print('maximum batch size exceeded for batch ',b, 'epoch', epoch) + print('shuffling') gen.shuffleFilelist() From e46df7512fec752efb7fddc4fb5b1b61819ac2a0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 2 Nov 2020 16:28:24 +0100 Subject: [PATCH 300/437] better TrainData python interface --- compiled/interface/trainData.h | 28 ++++++++++++++++++++++++++++ compiled/src/c_trainData.C | 8 +++++--- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index bcdd1ed..765cac5 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -155,6 +155,11 @@ class trainData{ boost::python::list getTruthRaggedFlags()const; + + boost::python::list featureList(); + boost::python::list truthList(); + boost::python::list weightList(); + //has ragged support boost::python::list transferFeatureListToNumpy(); @@ -685,6 +690,29 @@ boost::python::list trainData::getTruthRaggedFlags()const{ return out; } + +template +boost::python::list trainData::featureList(){ + boost::python::list out; + for(auto &a: feature_arrays_) + out.append(a); + return out; +} +template +boost::python::list trainData::truthList(){ + boost::python::list out; + for(auto &a: truth_arrays_) + out.append(a); + return out; +} +template +boost::python::list trainData::weightList(){ + boost::python::list out; + for(auto &a: weight_arrays_) + out.append(a); + return out; +} + template boost::python::list trainData::transferFeatureListToNumpy(){ namespace p = boost::python; diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index 441ab7f..7f78fcd 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -19,13 +19,15 @@ BOOST_PYTHON_MODULE(c_trainData) { np::initialize(); p::class_ >("trainData") + + .def("storeFeatureArray", &trainData::storeFeatureArray) .def("storeTruthArray", &trainData::storeTruthArray) .def("storeWeightArray", &trainData::storeWeightArray) - // .def("featureArray", &trainData::featureArray) - // .def("truthArray", &trainData::truthArray) - // .def("weightArray", &trainData::weightArray) + .def("featureList", &trainData::featureList) + .def("truthList", &trainData::truthList) + .def("weightList", &trainData::weightList) .def("nFeatureArrays", &trainData::nFeatureArrays) .def("nTruthArrays", &trainData::nTruthArrays) From f1fd792de7ca4f70866987f087fb9e94c8ce436a Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Mon, 7 Dec 2020 14:20:03 +0100 Subject: [PATCH 301/437] fix: uproot -> uproot3 --- bin/createSubpackage.py | 2 +- docker/Dockerfile_base | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index f24a1df..1f5feca 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -115,7 +115,7 @@ def convertFromSourceFile(self, filename, weighterobjects, istraining): print('feature_array',feature_array.shape) - import uproot + import uproot3 as uproot urfile = uproot.open(filename)["tree"] truth = np.concatenate([np.expand_dims(urfile.array("isA"), axis=1) , diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 64f33fd..a69929c 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -57,7 +57,7 @@ RUN apt-get install -y libboost-all-dev ############ PIP packages RUN pip3 install --upgrade setuptools -RUN pip3 install numpy root_numpy scikit-learn scikit-image h5py matplotlib uproot Pillow scipy seaborn +RUN pip3 install numpy root_numpy scikit-learn scikit-image h5py matplotlib uproot3 Pillow scipy seaborn RUN pip3 install opencv-python easydict tqdm Cython numba RUN pip3 install gpustat setGPU From 9794544294a626a054ed4e86f8cb44fcd3fe1a53 Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Mon, 7 Dec 2020 14:37:11 +0100 Subject: [PATCH 302/437] feat: add conda recipe --- README.md | 15 +++ compiled/Makefile_conda | 54 ++++++++ conda_env.yml | 281 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 350 insertions(+) create mode 100644 compiled/Makefile_conda create mode 100644 conda_env.yml diff --git a/README.md b/README.md index 5d5e3dd..f3b8fcb 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,21 @@ The message about a missing user group can be safely ignored. **It is important** that your bashrc does not reset the ``LD_LIBRARY`` or ``PYTHONPATH`` environment variables. Also **remove any anaconda paths from your bashrc**, because they will reset ``LD_LIBRARY`` and ``PYTHONPATH``. THe system needs to be in a clean environment state within the container (as it should be). +**Building with conda** +In case of lack of access to singularity or docker, it's possible to build the environment using conda. This _should_ work anywhere since conda +pulls tensorflow's CUDA dependencies.; +``` +git clone https://github.com/DL4Jets/DeepJetCore.git +cd DeepJetCore +# This will take some time (includes ROOT, tensorflow-gpu, CUDA...) +conda env create -f conda_env.yml +conda activate DJC2 +# Build compiled modules with a modified Makefile +source docker_env.sh # sets up paths, never mind the name +cd compiled +make -f Makefile_conda -j4 # conda needs slightly different lib names +``` + Usage ========== diff --git a/compiled/Makefile_conda b/compiled/Makefile_conda new file mode 100644 index 0000000..bd7200f --- /dev/null +++ b/compiled/Makefile_conda @@ -0,0 +1,54 @@ + +# location of the Boost Python include files and library +PYTHON_INCLUDE = `python3-config --includes` +PYTHON_LIB=`python3-config --libs` + + +LINUXADD= #-Wl --export-dynamic +ROOTSTUFF=`root-config --libs --glibs --ldflags` +ROOTCFLAGS=`root-config --cflags` +CPP_FILES := $(wildcard src/*.cpp) +OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) + +BINS := $(patsubst bin/%.cpp, %, $(wildcard bin/*.cpp)) + +MODULES := $(wildcard src/*.C) +MODULES_OBJ_FILES := $(addprefix ./,$(notdir $(MODULES:.C=.o))) +MODULES_SHARED_LIBS := $(addprefix ./,$(notdir $(MODULES:.C=.so))) + +#CFLAGS := -g + +all: $(MODULES_SHARED_LIBS) $(patsubst to_bin/%.cpp, %, $(wildcard to_bin/*.cpp)) classdict.so + +classdict.cxx: src/LinkDef.h + rootcling -v4 -f $@ -rmf classdict.rootmap -rml classdict.so $^ + +classdict.so: classdict.cxx + g++ $(ROOTCFLAGS) $(ROOTSTUFF) -std=c++17 -fPIC -shared -o classdict.so classdict.cxx + + +%: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx + g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIB) -lboost_python36 -lboost_numpy36 $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ + mv $@ ../bin/ + +#helpers +libquicklz.so: + gcc -shared -O2 -fPIC src/quicklz.c -o libquicklz.so + +obj/%.o: src/%.cpp + g++ $(CFLAGS) $(PYTHON_INCLUDE) $(ROOTCFLAGS) -I./interface -O2 -fPIC -c -o $@ $< + +#pack helpers in lib +libdeepjetcorehelpers.so: $(OBJ_FILES) + g++ -o $@ -shared -fPIC $(LINUXADD) $(CFLAGS) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lboost_python36 -lboost_numpy36 + +%.so: %.o libdeepjetcorehelpers.so libquicklz.so + g++ -o $(@) -shared -g -fPIC $(CFLAGS) $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lboost_python36 -lboost_numpy36 -L./ -ldeepjetcorehelpers + +%.o: src/%.C + g++ $(ROOTCFLAGS) -O2 -g -I./interface $(PYTHON_INCLUDE) -fPIC $(CFLAGS) -c -o $(@) $< + + + +clean: + rm -f $(OBJ_FILES) $(SHARED_LIBS) $(MODULES_SHARED_LIBS) $(MODULES_OBJ_FILES) libdeepjetcorehelpers.so libquicklz.so classdict.so classdict.cxx classdict.rootmap classdict_rdict.pcm diff --git a/conda_env.yml b/conda_env.yml new file mode 100644 index 0000000..6cdb9df --- /dev/null +++ b/conda_env.yml @@ -0,0 +1,281 @@ +name: DJC2 +channels: + - conda-forge + - defaults +dependencies: + - _libgcc_mutex=0.1=conda_forge + - _openmp_mutex=4.5=1_gnu + - _tflow_select=2.1.0=gpu + - absl-py=0.11.0=py36h5fab9bb_0 + - afterimage=1.21=ha9998ff_1003 + - aiohttp=3.7.3=py36h1d69622_0 + - argon2-cffi=20.1.0=py36h1d69622_2 + - astor=0.8.1=pyh9f0ad1d_0 + - astunparse=1.6.3=py_0 + - async-timeout=3.0.1=py_1000 + - async_generator=1.10=py_0 + - attrs=20.3.0=pyhd3deb0d_0 + - backports=1.0=py_2 + - backports.functools_lru_cache=1.6.1=py_0 + - binutils=2.35.1=hdd6e379_0 + - binutils_impl_linux-64=2.35.1=h17ad2fc_0 + - binutils_linux-64=2.35=hc3fd857_29 + - bleach=3.2.1=pyh9f0ad1d_0 + - blinker=1.4=py_1 + - boost=1.74.0=py36h8e82bdb_2 + - boost-cpp=1.74.0=h9359b55_0 + - brotlipy=0.7.0=py36he6145b8_1001 + - bzip2=1.0.8=h7f98852_4 + - c-ares=1.17.1=h36c2ea0_0 + - c-compiler=1.1.3=h7f98852_0 + - ca-certificates=2020.12.5=ha878542_0 + - cachetools=4.1.1=py_0 + - cairo=1.16.0=h9f066cc_1006 + - certifi=2020.12.5=py36h5fab9bb_0 + - cffi=1.14.4=py36hc120d54_1 + - cfitsio=3.470=hb418390_7 + - chardet=3.0.4=py36h9880bd3_1008 + - click=7.1.2=pyh9f0ad1d_0 + - compilers=1.1.3=ha770c72_0 + - cryptography=3.2.1=py36h6ec43e4_0 + - cudatoolkit=10.1.243=h036e899_6 + - cudnn=7.6.5=cuda10.1_0 + - cupti=10.1.168=0 + - cxx-compiler=1.1.3=h4bd325d_0 + - davix=0.7.6=hb44b51d_0 + - decorator=4.4.2=py_0 + - defusedxml=0.6.0=py_0 + - entrypoints=0.3=pyhd8ed1ab_1003 + - expat=2.2.9=he1b5a44_2 + - fftw=3.3.8=nompi_h8cb7ab2_1114 + - fontconfig=2.13.1=h7e3eb15_1002 + - fortran-compiler=1.1.3=h1990efc_0 + - freetype=2.10.4=h7ca028e_0 + - fribidi=1.0.10=h36c2ea0_0 + - ftgl=2.4.0=hbcb1f35_0 + - gast=0.3.3=py_0 + - gcc_impl_linux-64=9.3.0=h28f5a38_17 + - gcc_linux-64=9.3.0=h7247604_29 + - gdk-pixbuf=2.42.0=h0536704_1 + - gettext=0.19.8.1=h0b5b191_1005 + - gfortran_impl_linux-64=9.3.0=h2bb4189_17 + - gfortran_linux-64=9.3.0=ha1c937c_29 + - giflib=5.2.1=h36c2ea0_2 + - gl2ps=1.4.2=h0708190_0 + - glew=2.1.0=h9c3ff4c_2 + - glib=2.66.3=h9c3ff4c_1 + - google-auth=1.23.0=pyhd8ed1ab_0 + - google-auth-oauthlib=0.4.1=py_2 + - google-pasta=0.2.0=pyh8c360ce_0 + - graphite2=1.3.13=h58526e2_1001 + - graphviz=2.42.3=h0511662_0 + - grpcio=1.34.0=py36h8e87921_0 + - gsl=2.6=hf94e986_0 + - gxx_impl_linux-64=9.3.0=h53cdd4c_17 + - gxx_linux-64=9.3.0=h0d07fa4_29 + - harfbuzz=2.7.2=ha5b49bf_1 + - hdf5=1.10.6=nompi_h6a2412b_1112 + - icu=67.1=he1b5a44_0 + - idna=2.10=pyh9f0ad1d_0 + - idna_ssl=1.1.0=py36h9f0ad1d_1001 + - importlib-metadata=3.1.1=pyhd8ed1ab_0 + - importlib_metadata=3.1.1=hd8ed1ab_0 + - ipykernel=5.3.4=py36he448a4c_1 + - ipyparallel=6.3.0=py36h9f0ad1d_1 + - ipython=5.8.0=py36_1 + - ipython_genutils=0.2.0=py_1 + - jinja2=2.11.2=pyh9f0ad1d_0 + - jpeg=9d=h36c2ea0_0 + - jsonschema=3.2.0=py_2 + - jupyter_client=6.1.7=py_0 + - jupyter_core=4.7.0=py36h5fab9bb_0 + - jupyterlab_pygments=0.1.2=pyh9f0ad1d_0 + - keras-preprocessing=1.1.0=py_0 + - kernel-headers_linux-64=2.6.32=h77966d4_13 + - krb5=1.17.2=h926e7f8_0 + - ld_impl_linux-64=2.35.1=hed1e6ac_0 + - libblas=3.9.0=3_openblas + - libcblas=3.9.0=3_openblas + - libcurl=7.71.1=hcdd3856_8 + - libcxx=11.0.0=h0efe328_1 + - libcxxabi=11.0.0=ha770c72_1 + - libedit=3.1.20191231=he28a2e2_2 + - libev=4.33=h516909a_1 + - libffi=3.3=h58526e2_1 + - libgcc-devel_linux-64=9.3.0=hfd08b2a_17 + - libgcc-ng=9.3.0=h5dbcf3e_17 + - libgfortran-ng=9.3.0=he4bcb1c_17 + - libgfortran5=9.3.0=he4bcb1c_17 + - libglib=2.66.3=h1f3bc88_1 + - libglu=9.0.0=he1b5a44_1001 + - libgomp=9.3.0=h5dbcf3e_17 + - libiconv=1.16=h516909a_0 + - liblapack=3.9.0=3_openblas + - libllvm10=10.0.1=he513fc3_3 + - libnghttp2=1.41.0=h8cfc5f6_2 + - libopenblas=0.3.12=pthreads_h4812303_1 + - libpng=1.6.37=h21135ba_2 + - libprotobuf=3.14.0=h780b84a_0 + - librsvg=2.50.2=h3442318_1 + - libsodium=1.0.18=h36c2ea0_1 + - libssh2=1.9.0=hab1572f_5 + - libstdcxx-devel_linux-64=9.3.0=h4084dd6_17 + - libstdcxx-ng=9.3.0=h2ae2ef3_17 + - libtiff=4.1.0=h4f3a223_6 + - libtool=2.4.6=h58526e2_1007 + - libuuid=2.32.1=h7f98852_1000 + - libwebp-base=1.1.0=h36c2ea0_3 + - libxcb=1.13=h14c3975_1002 + - libxml2=2.9.10=h68273f3_2 + - llvmlite=0.35.0=py36h05121d2_0 + - lz4-c=1.9.2=he1b5a44_3 + - markdown=3.3.3=pyh9f0ad1d_0 + - markupsafe=1.1.1=py36he6145b8_2 + - metakernel=0.27.5=pyhd3deb0d_0 + - mistune=0.8.4=py36h1d69622_1002 + - multidict=4.7.5=py36h8c4c3a4_2 + - nbclient=0.5.1=py_0 + - nbconvert=6.0.7=py36h5fab9bb_3 + - nbformat=5.0.8=py_0 + - ncurses=6.2=h58526e2_4 + - nest-asyncio=1.4.3=pyhd8ed1ab_0 + - notebook=6.1.5=py36h5fab9bb_0 + - numba=0.52.0=py36h284efc9_0 + - numpy=1.19.4=py36h8732dcd_1 + - oauthlib=3.0.1=py_0 + - openssl=1.1.1h=h516909a_0 + - opt_einsum=3.3.0=py_0 + - packaging=20.7=pyhd3deb0d_0 + - pandoc=2.11.2=h36c2ea0_0 + - pandocfilters=1.4.2=py_1 + - pango=1.42.4=h69149e4_5 + - pcre=8.44=he1b5a44_0 + - pexpect=4.8.0=pyh9f0ad1d_2 + - pickleshare=0.7.5=py_1003 + - pip=20.3.1=pyhd8ed1ab_0 + - pixman=0.40.0=h36c2ea0_0 + - portalocker=1.7.0=py36h9f0ad1d_1 + - prometheus_client=0.9.0=pyhd3deb0d_0 + - prompt_toolkit=1.0.15=py_1 + - protobuf=3.14.0=py36hc4f0c31_0 + - pthread-stubs=0.4=h36c2ea0_1001 + - ptyprocess=0.6.0=py_1001 + - pyasn1=0.4.8=py_0 + - pyasn1-modules=0.2.7=py_0 + - pycparser=2.20=pyh9f0ad1d_2 + - pygments=2.7.2=py_0 + - pyjwt=1.7.1=py_0 + - pyopenssl=20.0.0=pyhd8ed1ab_0 + - pyparsing=2.4.7=pyh9f0ad1d_0 + - pyrsistent=0.17.3=py36h1d69622_1 + - pysocks=1.7.1=py36h9880bd3_2 + - pythia8=8.244=py36hc4f0c31_2 + - python=3.6.11=hffdb5ce_3_cpython + - python-dateutil=2.8.1=py_0 + - python_abi=3.6=1_cp36m + - pyzmq=20.0.0=py36h2b1bd32_1 + - readline=8.0=he28a2e2_2 + - requests=2.25.0=pyhd3deb0d_0 + - requests-oauthlib=1.3.0=pyh9f0ad1d_0 + - root=6.22.6=py36heda87ca_0 + - root-binaries=6.22.6=py36heda87ca_0 + - root-dependencies=6.22.6=py36heda87ca_0 + - root_base=6.22.6=py36h74e3adb_0 + - rsa=4.6=pyh9f0ad1d_0 + - send2trash=1.5.0=py_0 + - simplegeneric=0.8.1=py_1 + - six=1.15.0=pyh9f0ad1d_0 + - sqlite=3.34.0=h74cdb3f_0 + - sysroot_linux-64=2.12=h77966d4_13 + - tbb=2020.2=hc9558a2_0 + - tbb-devel=2020.2=hc9558a2_0 + - tensorboard=2.4.0=pyhd8ed1ab_0 + - tensorboard-plugin-wit=1.7.0=pyh9f0ad1d_0 + - tensorflow=2.2.0=gpu_py36hf933387_0 + - tensorflow-base=2.2.0=gpu_py36h8a81be8_0 + - tensorflow-estimator=2.2.0=pyh95af2a2_0 + - tensorflow-gpu=2.2.0=h0d30ee6_0 + - termcolor=1.1.0=py_2 + - terminado=0.9.1=py36h5fab9bb_1 + - testpath=0.4.4=py_0 + - tk=8.6.10=hed695b0_1 + - tornado=6.1=py36h1d69622_0 + - traitlets=4.3.3=py36h9f0ad1d_1 + - typing-extensions=3.7.4.3=0 + - typing_extensions=3.7.4.3=py_0 + - urllib3=1.25.11=py_0 + - vdt=0.4.3=h9c3ff4c_0 + - wcwidth=0.2.5=pyh9f0ad1d_2 + - webencodings=0.5.1=py_1 + - werkzeug=1.0.1=pyh9f0ad1d_0 + - wheel=0.36.1=pyhd3deb0d_0 + - wrapt=1.12.1=py36h1d69622_2 + - xorg-fixesproto=5.0=h14c3975_1002 + - xorg-kbproto=1.0.7=h14c3975_1002 + - xorg-libice=1.0.10=h516909a_0 + - xorg-libsm=1.2.3=h84519dc_1000 + - xorg-libx11=1.6.12=h516909a_0 + - xorg-libxau=1.0.9=h14c3975_0 + - xorg-libxcursor=1.2.0=h516909a_0 + - xorg-libxdmcp=1.1.3=h516909a_0 + - xorg-libxext=1.3.4=h516909a_0 + - xorg-libxfixes=5.0.3=h516909a_1004 + - xorg-libxft=2.3.3=h71203ad_0 + - xorg-libxpm=3.5.13=h516909a_0 + - xorg-libxrender=0.9.10=h516909a_1002 + - xorg-libxt=1.1.5=h516909a_1003 + - xorg-renderproto=0.11.1=h14c3975_1002 + - xorg-xextproto=7.3.0=h14c3975_1002 + - xorg-xproto=7.0.31=h7f98852_1007 + - xrootd=5.0.3=py36h4ad382e_0 + - xxhash=0.8.0=h7f98852_1 + - xz=5.2.5=h516909a_1 + - yarl=1.6.3=py36h1d69622_0 + - zeromq=4.3.3=h58526e2_3 + - zipp=3.4.0=py_0 + - zlib=1.2.11=h516909a_1010 + - zstd=1.4.5=h6597ccf_2 + - pip: + - awkward0==0.15.1 + - blessings==1.7 + - cached-property==1.5.2 + - cycler==0.10.0 + - cython==0.29.21 + - easydict==1.9 + - future==0.18.2 + - gensim==3.8.3 + - gpustat==0.6.0 + - h5py==3.1.0 + - imageio==2.9.0 + - ipywidgets==7.5.1 + - joblib==0.17.0 + - jupyter==1.0.0 + - jupyter-console==5.2.0 + - kiwisolver==1.3.1 + - matplotlib==3.3.3 + - networkx==2.5 + - nvidia-ml-py3==7.352.0 + - opencv-python==4.4.0.46 + - pandas==1.1.4 + - pillow==8.0.1 + - psutil==5.7.3 + - pytz==2020.4 + - pywavelets==1.1.1 + - qtconsole==5.0.1 + - qtpy==1.9.0 + - root-numpy==4.8.0 + - scikit-image==0.17.2 + - scikit-learn==0.23.2 + - scipy==1.5.4 + - seaborn==0.11.0 + - setgpu==0.0.7 + - setuptools==51.0.0 + - smart-open==4.0.1 + - threadpoolctl==2.1.0 + - tifffile==2020.9.3 + - tqdm==4.54.1 + - uproot==4.0.0 + - uproot3==3.14.1 + - uproot3-methods==0.10.0 + - widgetsnbextension==3.5.1 +prefix: /beegfs/desy/user/anovak/miniconda3/envs/DLtest From 3357c77cfe8db889d303db41b88ba82869233ec0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 7 Dec 2020 17:28:34 +0100 Subject: [PATCH 303/437] update torch geometric --- docker/Dockerfile_base | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index a69929c..ebb47ed 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -64,12 +64,11 @@ RUN pip3 install gpustat setGPU ## torch/jupyter stuff RUN pip3 install future gensim jupyter prompt-toolkit -RUN pip3 install torch-scatter==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.6.0.html && \ - pip3 install torch-sparse==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.6.0.html && \ - pip3 install torch-cluster==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.6.0.html && \ - pip3 install torch-spline-conv==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.6.0.html && \ - pip3 install torch-geometric - +RUN pip3 install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.7.0+cu101.html && \ + pip3 install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.7.0+cu101.html && \ + pip3 install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.7.0+cu101.html && \ + pip3 install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.7.0+cu101.html && \ + pip3 install torch-geometric EXPOSE 8888 From 07e7d80adbd79e35444b436816c4f68a3ef09ca5 Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Mon, 7 Dec 2020 18:15:43 +0100 Subject: [PATCH 304/437] ci: build conda env in GHA --- .github/workflows/CI.yml | 113 +++++++++++++++++++++++++++++++++++++++ bin/predict.py | 3 +- conda_env.yml | 4 +- 3 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/CI.yml diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..94f6149 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,113 @@ +name: CI/CD + +on: + push: + branches: + - 'ci*' + pull_request: + # Run daily at 0:01 UTC + schedule: + - cron: '1 0 * * *' + +jobs: + test: + name: "🐍 ${{ matrix.python-version }} • ${{ matrix.runs-on }}" + runs-on: ${{ matrix.runs-on }} + strategy: + matrix: + # just one for now + runs-on: [ubuntu-latest] + python-version: [3.6] + + defaults: + run: + shell: "bash -l {0}" + + steps: + - uses: actions/checkout@master + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: 'Setup conda env' + uses: conda-incubator/setup-miniconda@v2 + with: + activate-environment: DJC2 + environment-file: conda_env.yml + python-version: 3.6 + auto-activate-base: false + + - name: "Check conda env" + run: | + conda env list + conda info + conda list + + - name: Set env vars 1 + run: | + # normally one would `source docker_env.sh` but GHA can't do this + # It's not possible to chain these - an exported env var only becomes available in next step + echo "DEEPJETCORE=$( pwd -P)" >> $GITHUB_ENV + echo "PATH=$( pwd -P)/bin:$PATH" >> $GITHUB_ENV + echo "PYTHONPATH=$( pwd -P)/../:$PYTHONPATH" >> $GITHUB_ENV + echo "LD_LIBRARY_PATH=$( pwd -P)/compiled/" >> $GITHUB_ENV + # just hardcode it + echo "PYTHONPATH=/home/runner/work/DeepJetCore/DeepJetCore/bin:/home/runner/work/DeepJetCore/DeepJetCore:/home/runner/work/DeepJetCore:$PYTHONPATH" >> $GITHUB_ENV + + - name: Check env vars 1 + run: | + echo "DEEPJETCORE" + echo $DEEPJETCORE + echo "PATH" + echo $PATH + echo "PYTHONPATH" + echo $PYTHONPATH + echo "LD_LIBRARY_PATH" + echo $LD_LIBRARY_PATH + python -c "import DeepJetCore" + + - name: Compile + run: | + cd $DEEPJETCORE/compiled + make -f Makefile_conda -j4 + + - name: Create subpackage + run: | + python bin/createSubpackage.py --data here + + - name: Set env vars 2 + run: | + # normally one would `source env.sh` but GHA can't do this + # It's not possible to chain these - an exported env var only becomes available in next step + echo "DEEPJETCORE_SUBPACKAGE=$DEEPJETCORE/here" >> $GITHUB_ENV + echo "PATH=$HERE/scripts:$PATH" >> $GITHUB_ENV + echo "LD_LIBRARY_PATH=$HERE/modules/compiled:$LD_LIBRARY_PATH" >> $GITHUB_ENV + # just hardcode it + echo "PYTHONPATH=/home/runner/work/DeepJetCore/DeepJetCore/here/modules:/home/runner/work/DeepJetCore/DeepJetCore/here/modules/datastructures:/home/runner/work/DeepJetCore/DeepJetCore/here/modules/compiled:$PYTHONPATH" >> $GITHUB_ENV + + - name: Check env vars 2 + run: | + echo "DEEPJETCORE_SUBPACKAGE" + echo $DEEPJETCORE_SUBPACKAGE + echo "PYTHONPATH" + echo $PYTHONPATH + echo "PATH" + echo $PATH + echo "LD_LIBRARY_PATH" + echo $LD_LIBRARY_PATH + + - name: Convert files + run: | + cd $DEEPJETCORE + python bin/convertFromSource.py -i here/example_data/train_files.txt -o here/dctrain -c TrainData_example + + - name: "Run training" + run: | + # cd $DEEPJETCORE + python here/Train/training_example.py here/dctrain/dataCollection.djcdc here/training + + - name: "Run eval" + run: | + predict.py here/training/KERAS_model.h5 here/training/trainsamples.djcdc here/example_data/test_files.txt here/out_predict \ No newline at end of file diff --git a/bin/predict.py b/bin/predict.py index 704250e..d4db0eb 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -56,7 +56,8 @@ custom_objs = get_custom_objects() -model=load_model(args.inputModel, custom_objects=custom_objs) +print("X",args.inputModel, custom_objs ) +model=load_model(args.inputModel, custom_objects=custom_objs, compile=True) dc = None if args.inputSourceFileList[-6:] == ".djcdc" and not args.trainingDataCollection[-6:] == ".djcdc": dc = DataCollection(args.inputSourceFileList) diff --git a/conda_env.yml b/conda_env.yml index 6cdb9df..6685d85 100644 --- a/conda_env.yml +++ b/conda_env.yml @@ -73,6 +73,7 @@ dependencies: - gsl=2.6=hf94e986_0 - gxx_impl_linux-64=9.3.0=h53cdd4c_17 - gxx_linux-64=9.3.0=h0d07fa4_29 + - h5py=2.10.0=nompi_py36ha233d17_105 - harfbuzz=2.7.2=ha5b49bf_1 - hdf5=1.10.6=nompi_h6a2412b_1112 - icu=67.1=he1b5a44_0 @@ -245,7 +246,6 @@ dependencies: - future==0.18.2 - gensim==3.8.3 - gpustat==0.6.0 - - h5py==3.1.0 - imageio==2.9.0 - ipywidgets==7.5.1 - joblib==0.17.0 @@ -278,4 +278,4 @@ dependencies: - uproot3==3.14.1 - uproot3-methods==0.10.0 - widgetsnbextension==3.5.1 -prefix: /beegfs/desy/user/anovak/miniconda3/envs/DLtest +prefix: /beegfs/desy/user/anovak/miniconda3/envs/DJC2 From b28fbf19d019ec9bf1b4cb4d248bfd2b2e60ad9a Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Tue, 8 Dec 2020 17:47:58 +0100 Subject: [PATCH 305/437] ci: remove conda prefix --- conda_env.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/conda_env.yml b/conda_env.yml index 6685d85..73f9288 100644 --- a/conda_env.yml +++ b/conda_env.yml @@ -278,4 +278,3 @@ dependencies: - uproot3==3.14.1 - uproot3-methods==0.10.0 - widgetsnbextension==3.5.1 -prefix: /beegfs/desy/user/anovak/miniconda3/envs/DJC2 From ed9c54385169691f4eecc5d815f604aab862980e Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Tue, 8 Dec 2020 22:30:10 +0100 Subject: [PATCH 306/437] ci: run conda env for 3.6 and 3.7 --- .github/workflows/CI.yml | 5 +- README.md | 2 +- compiled/Makefile_conda | 9 +- conda_env.yml | 300 ++++----------------------------------- conda_env_exact.yml | 280 ++++++++++++++++++++++++++++++++++++ 5 files changed, 315 insertions(+), 281 deletions(-) create mode 100644 conda_env_exact.yml diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 94f6149..f9aa44e 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -17,7 +17,7 @@ jobs: matrix: # just one for now runs-on: [ubuntu-latest] - python-version: [3.6] + python-version: [3.6, 3.7] defaults: run: @@ -36,7 +36,8 @@ jobs: with: activate-environment: DJC2 environment-file: conda_env.yml - python-version: 3.6 + #python-version: 3.6 + python-version: ${{ matrix.python-version }} auto-activate-base: false - name: "Check conda env" diff --git a/README.md b/README.md index f3b8fcb..a3bb70b 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ pulls tensorflow's CUDA dependencies.; git clone https://github.com/DL4Jets/DeepJetCore.git cd DeepJetCore # This will take some time (includes ROOT, tensorflow-gpu, CUDA...) -conda env create -f conda_env.yml +conda env create -f conda_env.yml # if that fails use conda_env_exact.yml with entirele fixed versions conda activate DJC2 # Build compiled modules with a modified Makefile source docker_env.sh # sets up paths, never mind the name diff --git a/compiled/Makefile_conda b/compiled/Makefile_conda index bd7200f..34ef3d1 100644 --- a/compiled/Makefile_conda +++ b/compiled/Makefile_conda @@ -3,6 +3,9 @@ PYTHON_INCLUDE = `python3-config --includes` PYTHON_LIB=`python3-config --libs` +# as 36, 37 or 38 to get the right lboost +PYTHON_VERSION=$(shell python -c 'import sys; print("%d%d"% sys.version_info[0:2])') + LINUXADD= #-Wl --export-dynamic ROOTSTUFF=`root-config --libs --glibs --ldflags` @@ -28,7 +31,7 @@ classdict.so: classdict.cxx %: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx - g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIB) -lboost_python36 -lboost_numpy36 $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ + g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIB) -lboost_python$(PYTHON_VERSION) -lboost_numpy$(PYTHON_VERSION) $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ mv $@ ../bin/ #helpers @@ -40,10 +43,10 @@ obj/%.o: src/%.cpp #pack helpers in lib libdeepjetcorehelpers.so: $(OBJ_FILES) - g++ -o $@ -shared -fPIC $(LINUXADD) $(CFLAGS) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lboost_python36 -lboost_numpy36 + g++ -o $@ -shared -fPIC $(LINUXADD) $(CFLAGS) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lboost_python$(PYTHON_VERSION) -lboost_numpy$(PYTHON_VERSION) %.so: %.o libdeepjetcorehelpers.so libquicklz.so - g++ -o $(@) -shared -g -fPIC $(CFLAGS) $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lboost_python36 -lboost_numpy36 -L./ -ldeepjetcorehelpers + g++ -o $(@) -shared -g -fPIC $(CFLAGS) $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lboost_python$(PYTHON_VERSION) -lboost_numpy$(PYTHON_VERSION) -L./ -ldeepjetcorehelpers %.o: src/%.C g++ $(ROOTCFLAGS) -O2 -g -I./interface $(PYTHON_INCLUDE) -fPIC $(CFLAGS) -c -o $(@) $< diff --git a/conda_env.yml b/conda_env.yml index 73f9288..fa2b17f 100644 --- a/conda_env.yml +++ b/conda_env.yml @@ -1,280 +1,30 @@ -name: DJC2 +name: DJC2alt channels: - conda-forge - defaults dependencies: - - _libgcc_mutex=0.1=conda_forge - - _openmp_mutex=4.5=1_gnu - - _tflow_select=2.1.0=gpu - - absl-py=0.11.0=py36h5fab9bb_0 - - afterimage=1.21=ha9998ff_1003 - - aiohttp=3.7.3=py36h1d69622_0 - - argon2-cffi=20.1.0=py36h1d69622_2 - - astor=0.8.1=pyh9f0ad1d_0 - - astunparse=1.6.3=py_0 - - async-timeout=3.0.1=py_1000 - - async_generator=1.10=py_0 - - attrs=20.3.0=pyhd3deb0d_0 - - backports=1.0=py_2 - - backports.functools_lru_cache=1.6.1=py_0 - - binutils=2.35.1=hdd6e379_0 - - binutils_impl_linux-64=2.35.1=h17ad2fc_0 - - binutils_linux-64=2.35=hc3fd857_29 - - bleach=3.2.1=pyh9f0ad1d_0 - - blinker=1.4=py_1 - - boost=1.74.0=py36h8e82bdb_2 - - boost-cpp=1.74.0=h9359b55_0 - - brotlipy=0.7.0=py36he6145b8_1001 - - bzip2=1.0.8=h7f98852_4 - - c-ares=1.17.1=h36c2ea0_0 - - c-compiler=1.1.3=h7f98852_0 - - ca-certificates=2020.12.5=ha878542_0 - - cachetools=4.1.1=py_0 - - cairo=1.16.0=h9f066cc_1006 - - certifi=2020.12.5=py36h5fab9bb_0 - - cffi=1.14.4=py36hc120d54_1 - - cfitsio=3.470=hb418390_7 - - chardet=3.0.4=py36h9880bd3_1008 - - click=7.1.2=pyh9f0ad1d_0 - - compilers=1.1.3=ha770c72_0 - - cryptography=3.2.1=py36h6ec43e4_0 - - cudatoolkit=10.1.243=h036e899_6 - - cudnn=7.6.5=cuda10.1_0 - - cupti=10.1.168=0 - - cxx-compiler=1.1.3=h4bd325d_0 - - davix=0.7.6=hb44b51d_0 - - decorator=4.4.2=py_0 - - defusedxml=0.6.0=py_0 - - entrypoints=0.3=pyhd8ed1ab_1003 - - expat=2.2.9=he1b5a44_2 - - fftw=3.3.8=nompi_h8cb7ab2_1114 - - fontconfig=2.13.1=h7e3eb15_1002 - - fortran-compiler=1.1.3=h1990efc_0 - - freetype=2.10.4=h7ca028e_0 - - fribidi=1.0.10=h36c2ea0_0 - - ftgl=2.4.0=hbcb1f35_0 - - gast=0.3.3=py_0 - - gcc_impl_linux-64=9.3.0=h28f5a38_17 - - gcc_linux-64=9.3.0=h7247604_29 - - gdk-pixbuf=2.42.0=h0536704_1 - - gettext=0.19.8.1=h0b5b191_1005 - - gfortran_impl_linux-64=9.3.0=h2bb4189_17 - - gfortran_linux-64=9.3.0=ha1c937c_29 - - giflib=5.2.1=h36c2ea0_2 - - gl2ps=1.4.2=h0708190_0 - - glew=2.1.0=h9c3ff4c_2 - - glib=2.66.3=h9c3ff4c_1 - - google-auth=1.23.0=pyhd8ed1ab_0 - - google-auth-oauthlib=0.4.1=py_2 - - google-pasta=0.2.0=pyh8c360ce_0 - - graphite2=1.3.13=h58526e2_1001 - - graphviz=2.42.3=h0511662_0 - - grpcio=1.34.0=py36h8e87921_0 - - gsl=2.6=hf94e986_0 - - gxx_impl_linux-64=9.3.0=h53cdd4c_17 - - gxx_linux-64=9.3.0=h0d07fa4_29 - - h5py=2.10.0=nompi_py36ha233d17_105 - - harfbuzz=2.7.2=ha5b49bf_1 - - hdf5=1.10.6=nompi_h6a2412b_1112 - - icu=67.1=he1b5a44_0 - - idna=2.10=pyh9f0ad1d_0 - - idna_ssl=1.1.0=py36h9f0ad1d_1001 - - importlib-metadata=3.1.1=pyhd8ed1ab_0 - - importlib_metadata=3.1.1=hd8ed1ab_0 - - ipykernel=5.3.4=py36he448a4c_1 - - ipyparallel=6.3.0=py36h9f0ad1d_1 - - ipython=5.8.0=py36_1 - - ipython_genutils=0.2.0=py_1 - - jinja2=2.11.2=pyh9f0ad1d_0 - - jpeg=9d=h36c2ea0_0 - - jsonschema=3.2.0=py_2 - - jupyter_client=6.1.7=py_0 - - jupyter_core=4.7.0=py36h5fab9bb_0 - - jupyterlab_pygments=0.1.2=pyh9f0ad1d_0 - - keras-preprocessing=1.1.0=py_0 - - kernel-headers_linux-64=2.6.32=h77966d4_13 - - krb5=1.17.2=h926e7f8_0 - - ld_impl_linux-64=2.35.1=hed1e6ac_0 - - libblas=3.9.0=3_openblas - - libcblas=3.9.0=3_openblas - - libcurl=7.71.1=hcdd3856_8 - - libcxx=11.0.0=h0efe328_1 - - libcxxabi=11.0.0=ha770c72_1 - - libedit=3.1.20191231=he28a2e2_2 - - libev=4.33=h516909a_1 - - libffi=3.3=h58526e2_1 - - libgcc-devel_linux-64=9.3.0=hfd08b2a_17 - - libgcc-ng=9.3.0=h5dbcf3e_17 - - libgfortran-ng=9.3.0=he4bcb1c_17 - - libgfortran5=9.3.0=he4bcb1c_17 - - libglib=2.66.3=h1f3bc88_1 - - libglu=9.0.0=he1b5a44_1001 - - libgomp=9.3.0=h5dbcf3e_17 - - libiconv=1.16=h516909a_0 - - liblapack=3.9.0=3_openblas - - libllvm10=10.0.1=he513fc3_3 - - libnghttp2=1.41.0=h8cfc5f6_2 - - libopenblas=0.3.12=pthreads_h4812303_1 - - libpng=1.6.37=h21135ba_2 - - libprotobuf=3.14.0=h780b84a_0 - - librsvg=2.50.2=h3442318_1 - - libsodium=1.0.18=h36c2ea0_1 - - libssh2=1.9.0=hab1572f_5 - - libstdcxx-devel_linux-64=9.3.0=h4084dd6_17 - - libstdcxx-ng=9.3.0=h2ae2ef3_17 - - libtiff=4.1.0=h4f3a223_6 - - libtool=2.4.6=h58526e2_1007 - - libuuid=2.32.1=h7f98852_1000 - - libwebp-base=1.1.0=h36c2ea0_3 - - libxcb=1.13=h14c3975_1002 - - libxml2=2.9.10=h68273f3_2 - - llvmlite=0.35.0=py36h05121d2_0 - - lz4-c=1.9.2=he1b5a44_3 - - markdown=3.3.3=pyh9f0ad1d_0 - - markupsafe=1.1.1=py36he6145b8_2 - - metakernel=0.27.5=pyhd3deb0d_0 - - mistune=0.8.4=py36h1d69622_1002 - - multidict=4.7.5=py36h8c4c3a4_2 - - nbclient=0.5.1=py_0 - - nbconvert=6.0.7=py36h5fab9bb_3 - - nbformat=5.0.8=py_0 - - ncurses=6.2=h58526e2_4 - - nest-asyncio=1.4.3=pyhd8ed1ab_0 - - notebook=6.1.5=py36h5fab9bb_0 - - numba=0.52.0=py36h284efc9_0 - - numpy=1.19.4=py36h8732dcd_1 - - oauthlib=3.0.1=py_0 - - openssl=1.1.1h=h516909a_0 - - opt_einsum=3.3.0=py_0 - - packaging=20.7=pyhd3deb0d_0 - - pandoc=2.11.2=h36c2ea0_0 - - pandocfilters=1.4.2=py_1 - - pango=1.42.4=h69149e4_5 - - pcre=8.44=he1b5a44_0 - - pexpect=4.8.0=pyh9f0ad1d_2 - - pickleshare=0.7.5=py_1003 - - pip=20.3.1=pyhd8ed1ab_0 - - pixman=0.40.0=h36c2ea0_0 - - portalocker=1.7.0=py36h9f0ad1d_1 - - prometheus_client=0.9.0=pyhd3deb0d_0 - - prompt_toolkit=1.0.15=py_1 - - protobuf=3.14.0=py36hc4f0c31_0 - - pthread-stubs=0.4=h36c2ea0_1001 - - ptyprocess=0.6.0=py_1001 - - pyasn1=0.4.8=py_0 - - pyasn1-modules=0.2.7=py_0 - - pycparser=2.20=pyh9f0ad1d_2 - - pygments=2.7.2=py_0 - - pyjwt=1.7.1=py_0 - - pyopenssl=20.0.0=pyhd8ed1ab_0 - - pyparsing=2.4.7=pyh9f0ad1d_0 - - pyrsistent=0.17.3=py36h1d69622_1 - - pysocks=1.7.1=py36h9880bd3_2 - - pythia8=8.244=py36hc4f0c31_2 - - python=3.6.11=hffdb5ce_3_cpython - - python-dateutil=2.8.1=py_0 - - python_abi=3.6=1_cp36m - - pyzmq=20.0.0=py36h2b1bd32_1 - - readline=8.0=he28a2e2_2 - - requests=2.25.0=pyhd3deb0d_0 - - requests-oauthlib=1.3.0=pyh9f0ad1d_0 - - root=6.22.6=py36heda87ca_0 - - root-binaries=6.22.6=py36heda87ca_0 - - root-dependencies=6.22.6=py36heda87ca_0 - - root_base=6.22.6=py36h74e3adb_0 - - rsa=4.6=pyh9f0ad1d_0 - - send2trash=1.5.0=py_0 - - simplegeneric=0.8.1=py_1 - - six=1.15.0=pyh9f0ad1d_0 - - sqlite=3.34.0=h74cdb3f_0 - - sysroot_linux-64=2.12=h77966d4_13 - - tbb=2020.2=hc9558a2_0 - - tbb-devel=2020.2=hc9558a2_0 - - tensorboard=2.4.0=pyhd8ed1ab_0 - - tensorboard-plugin-wit=1.7.0=pyh9f0ad1d_0 - - tensorflow=2.2.0=gpu_py36hf933387_0 - - tensorflow-base=2.2.0=gpu_py36h8a81be8_0 - - tensorflow-estimator=2.2.0=pyh95af2a2_0 - - tensorflow-gpu=2.2.0=h0d30ee6_0 - - termcolor=1.1.0=py_2 - - terminado=0.9.1=py36h5fab9bb_1 - - testpath=0.4.4=py_0 - - tk=8.6.10=hed695b0_1 - - tornado=6.1=py36h1d69622_0 - - traitlets=4.3.3=py36h9f0ad1d_1 - - typing-extensions=3.7.4.3=0 - - typing_extensions=3.7.4.3=py_0 - - urllib3=1.25.11=py_0 - - vdt=0.4.3=h9c3ff4c_0 - - wcwidth=0.2.5=pyh9f0ad1d_2 - - webencodings=0.5.1=py_1 - - werkzeug=1.0.1=pyh9f0ad1d_0 - - wheel=0.36.1=pyhd3deb0d_0 - - wrapt=1.12.1=py36h1d69622_2 - - xorg-fixesproto=5.0=h14c3975_1002 - - xorg-kbproto=1.0.7=h14c3975_1002 - - xorg-libice=1.0.10=h516909a_0 - - xorg-libsm=1.2.3=h84519dc_1000 - - xorg-libx11=1.6.12=h516909a_0 - - xorg-libxau=1.0.9=h14c3975_0 - - xorg-libxcursor=1.2.0=h516909a_0 - - xorg-libxdmcp=1.1.3=h516909a_0 - - xorg-libxext=1.3.4=h516909a_0 - - xorg-libxfixes=5.0.3=h516909a_1004 - - xorg-libxft=2.3.3=h71203ad_0 - - xorg-libxpm=3.5.13=h516909a_0 - - xorg-libxrender=0.9.10=h516909a_1002 - - xorg-libxt=1.1.5=h516909a_1003 - - xorg-renderproto=0.11.1=h14c3975_1002 - - xorg-xextproto=7.3.0=h14c3975_1002 - - xorg-xproto=7.0.31=h7f98852_1007 - - xrootd=5.0.3=py36h4ad382e_0 - - xxhash=0.8.0=h7f98852_1 - - xz=5.2.5=h516909a_1 - - yarl=1.6.3=py36h1d69622_0 - - zeromq=4.3.3=h58526e2_3 - - zipp=3.4.0=py_0 - - zlib=1.2.11=h516909a_1010 - - zstd=1.4.5=h6597ccf_2 + - python=3.7 + - pip + - boost + - root + # - root=6.22.6=py36heda87ca_0 + - h5py<3 + - jupyter + - numba + - numpy + - tensorflow-gpu + #- tensorflow-gpu=2.2.0=h0d30ee6_0 + - xrootd - pip: - - awkward0==0.15.1 - - blessings==1.7 - - cached-property==1.5.2 - - cycler==0.10.0 - - cython==0.29.21 - - easydict==1.9 - - future==0.18.2 - - gensim==3.8.3 - - gpustat==0.6.0 - - imageio==2.9.0 - - ipywidgets==7.5.1 - - joblib==0.17.0 - - jupyter==1.0.0 - - jupyter-console==5.2.0 - - kiwisolver==1.3.1 - - matplotlib==3.3.3 - - networkx==2.5 - - nvidia-ml-py3==7.352.0 - - opencv-python==4.4.0.46 - - pandas==1.1.4 - - pillow==8.0.1 - - psutil==5.7.3 - - pytz==2020.4 - - pywavelets==1.1.1 - - qtconsole==5.0.1 - - qtpy==1.9.0 - - root-numpy==4.8.0 - - scikit-image==0.17.2 - - scikit-learn==0.23.2 - - scipy==1.5.4 - - seaborn==0.11.0 - - setgpu==0.0.7 - - setuptools==51.0.0 - - smart-open==4.0.1 - - threadpoolctl==2.1.0 - - tifffile==2020.9.3 - - tqdm==4.54.1 - - uproot==4.0.0 - - uproot3==3.14.1 - - uproot3-methods==0.10.0 - - widgetsnbextension==3.5.1 + - awkward0 + - matplotlib + - pandas + - cython + - Pillow + - root-numpy + - scipy + - scikit-learn + - seaborn + - setgpu + - tqdm + - uproot3 diff --git a/conda_env_exact.yml b/conda_env_exact.yml new file mode 100644 index 0000000..73f9288 --- /dev/null +++ b/conda_env_exact.yml @@ -0,0 +1,280 @@ +name: DJC2 +channels: + - conda-forge + - defaults +dependencies: + - _libgcc_mutex=0.1=conda_forge + - _openmp_mutex=4.5=1_gnu + - _tflow_select=2.1.0=gpu + - absl-py=0.11.0=py36h5fab9bb_0 + - afterimage=1.21=ha9998ff_1003 + - aiohttp=3.7.3=py36h1d69622_0 + - argon2-cffi=20.1.0=py36h1d69622_2 + - astor=0.8.1=pyh9f0ad1d_0 + - astunparse=1.6.3=py_0 + - async-timeout=3.0.1=py_1000 + - async_generator=1.10=py_0 + - attrs=20.3.0=pyhd3deb0d_0 + - backports=1.0=py_2 + - backports.functools_lru_cache=1.6.1=py_0 + - binutils=2.35.1=hdd6e379_0 + - binutils_impl_linux-64=2.35.1=h17ad2fc_0 + - binutils_linux-64=2.35=hc3fd857_29 + - bleach=3.2.1=pyh9f0ad1d_0 + - blinker=1.4=py_1 + - boost=1.74.0=py36h8e82bdb_2 + - boost-cpp=1.74.0=h9359b55_0 + - brotlipy=0.7.0=py36he6145b8_1001 + - bzip2=1.0.8=h7f98852_4 + - c-ares=1.17.1=h36c2ea0_0 + - c-compiler=1.1.3=h7f98852_0 + - ca-certificates=2020.12.5=ha878542_0 + - cachetools=4.1.1=py_0 + - cairo=1.16.0=h9f066cc_1006 + - certifi=2020.12.5=py36h5fab9bb_0 + - cffi=1.14.4=py36hc120d54_1 + - cfitsio=3.470=hb418390_7 + - chardet=3.0.4=py36h9880bd3_1008 + - click=7.1.2=pyh9f0ad1d_0 + - compilers=1.1.3=ha770c72_0 + - cryptography=3.2.1=py36h6ec43e4_0 + - cudatoolkit=10.1.243=h036e899_6 + - cudnn=7.6.5=cuda10.1_0 + - cupti=10.1.168=0 + - cxx-compiler=1.1.3=h4bd325d_0 + - davix=0.7.6=hb44b51d_0 + - decorator=4.4.2=py_0 + - defusedxml=0.6.0=py_0 + - entrypoints=0.3=pyhd8ed1ab_1003 + - expat=2.2.9=he1b5a44_2 + - fftw=3.3.8=nompi_h8cb7ab2_1114 + - fontconfig=2.13.1=h7e3eb15_1002 + - fortran-compiler=1.1.3=h1990efc_0 + - freetype=2.10.4=h7ca028e_0 + - fribidi=1.0.10=h36c2ea0_0 + - ftgl=2.4.0=hbcb1f35_0 + - gast=0.3.3=py_0 + - gcc_impl_linux-64=9.3.0=h28f5a38_17 + - gcc_linux-64=9.3.0=h7247604_29 + - gdk-pixbuf=2.42.0=h0536704_1 + - gettext=0.19.8.1=h0b5b191_1005 + - gfortran_impl_linux-64=9.3.0=h2bb4189_17 + - gfortran_linux-64=9.3.0=ha1c937c_29 + - giflib=5.2.1=h36c2ea0_2 + - gl2ps=1.4.2=h0708190_0 + - glew=2.1.0=h9c3ff4c_2 + - glib=2.66.3=h9c3ff4c_1 + - google-auth=1.23.0=pyhd8ed1ab_0 + - google-auth-oauthlib=0.4.1=py_2 + - google-pasta=0.2.0=pyh8c360ce_0 + - graphite2=1.3.13=h58526e2_1001 + - graphviz=2.42.3=h0511662_0 + - grpcio=1.34.0=py36h8e87921_0 + - gsl=2.6=hf94e986_0 + - gxx_impl_linux-64=9.3.0=h53cdd4c_17 + - gxx_linux-64=9.3.0=h0d07fa4_29 + - h5py=2.10.0=nompi_py36ha233d17_105 + - harfbuzz=2.7.2=ha5b49bf_1 + - hdf5=1.10.6=nompi_h6a2412b_1112 + - icu=67.1=he1b5a44_0 + - idna=2.10=pyh9f0ad1d_0 + - idna_ssl=1.1.0=py36h9f0ad1d_1001 + - importlib-metadata=3.1.1=pyhd8ed1ab_0 + - importlib_metadata=3.1.1=hd8ed1ab_0 + - ipykernel=5.3.4=py36he448a4c_1 + - ipyparallel=6.3.0=py36h9f0ad1d_1 + - ipython=5.8.0=py36_1 + - ipython_genutils=0.2.0=py_1 + - jinja2=2.11.2=pyh9f0ad1d_0 + - jpeg=9d=h36c2ea0_0 + - jsonschema=3.2.0=py_2 + - jupyter_client=6.1.7=py_0 + - jupyter_core=4.7.0=py36h5fab9bb_0 + - jupyterlab_pygments=0.1.2=pyh9f0ad1d_0 + - keras-preprocessing=1.1.0=py_0 + - kernel-headers_linux-64=2.6.32=h77966d4_13 + - krb5=1.17.2=h926e7f8_0 + - ld_impl_linux-64=2.35.1=hed1e6ac_0 + - libblas=3.9.0=3_openblas + - libcblas=3.9.0=3_openblas + - libcurl=7.71.1=hcdd3856_8 + - libcxx=11.0.0=h0efe328_1 + - libcxxabi=11.0.0=ha770c72_1 + - libedit=3.1.20191231=he28a2e2_2 + - libev=4.33=h516909a_1 + - libffi=3.3=h58526e2_1 + - libgcc-devel_linux-64=9.3.0=hfd08b2a_17 + - libgcc-ng=9.3.0=h5dbcf3e_17 + - libgfortran-ng=9.3.0=he4bcb1c_17 + - libgfortran5=9.3.0=he4bcb1c_17 + - libglib=2.66.3=h1f3bc88_1 + - libglu=9.0.0=he1b5a44_1001 + - libgomp=9.3.0=h5dbcf3e_17 + - libiconv=1.16=h516909a_0 + - liblapack=3.9.0=3_openblas + - libllvm10=10.0.1=he513fc3_3 + - libnghttp2=1.41.0=h8cfc5f6_2 + - libopenblas=0.3.12=pthreads_h4812303_1 + - libpng=1.6.37=h21135ba_2 + - libprotobuf=3.14.0=h780b84a_0 + - librsvg=2.50.2=h3442318_1 + - libsodium=1.0.18=h36c2ea0_1 + - libssh2=1.9.0=hab1572f_5 + - libstdcxx-devel_linux-64=9.3.0=h4084dd6_17 + - libstdcxx-ng=9.3.0=h2ae2ef3_17 + - libtiff=4.1.0=h4f3a223_6 + - libtool=2.4.6=h58526e2_1007 + - libuuid=2.32.1=h7f98852_1000 + - libwebp-base=1.1.0=h36c2ea0_3 + - libxcb=1.13=h14c3975_1002 + - libxml2=2.9.10=h68273f3_2 + - llvmlite=0.35.0=py36h05121d2_0 + - lz4-c=1.9.2=he1b5a44_3 + - markdown=3.3.3=pyh9f0ad1d_0 + - markupsafe=1.1.1=py36he6145b8_2 + - metakernel=0.27.5=pyhd3deb0d_0 + - mistune=0.8.4=py36h1d69622_1002 + - multidict=4.7.5=py36h8c4c3a4_2 + - nbclient=0.5.1=py_0 + - nbconvert=6.0.7=py36h5fab9bb_3 + - nbformat=5.0.8=py_0 + - ncurses=6.2=h58526e2_4 + - nest-asyncio=1.4.3=pyhd8ed1ab_0 + - notebook=6.1.5=py36h5fab9bb_0 + - numba=0.52.0=py36h284efc9_0 + - numpy=1.19.4=py36h8732dcd_1 + - oauthlib=3.0.1=py_0 + - openssl=1.1.1h=h516909a_0 + - opt_einsum=3.3.0=py_0 + - packaging=20.7=pyhd3deb0d_0 + - pandoc=2.11.2=h36c2ea0_0 + - pandocfilters=1.4.2=py_1 + - pango=1.42.4=h69149e4_5 + - pcre=8.44=he1b5a44_0 + - pexpect=4.8.0=pyh9f0ad1d_2 + - pickleshare=0.7.5=py_1003 + - pip=20.3.1=pyhd8ed1ab_0 + - pixman=0.40.0=h36c2ea0_0 + - portalocker=1.7.0=py36h9f0ad1d_1 + - prometheus_client=0.9.0=pyhd3deb0d_0 + - prompt_toolkit=1.0.15=py_1 + - protobuf=3.14.0=py36hc4f0c31_0 + - pthread-stubs=0.4=h36c2ea0_1001 + - ptyprocess=0.6.0=py_1001 + - pyasn1=0.4.8=py_0 + - pyasn1-modules=0.2.7=py_0 + - pycparser=2.20=pyh9f0ad1d_2 + - pygments=2.7.2=py_0 + - pyjwt=1.7.1=py_0 + - pyopenssl=20.0.0=pyhd8ed1ab_0 + - pyparsing=2.4.7=pyh9f0ad1d_0 + - pyrsistent=0.17.3=py36h1d69622_1 + - pysocks=1.7.1=py36h9880bd3_2 + - pythia8=8.244=py36hc4f0c31_2 + - python=3.6.11=hffdb5ce_3_cpython + - python-dateutil=2.8.1=py_0 + - python_abi=3.6=1_cp36m + - pyzmq=20.0.0=py36h2b1bd32_1 + - readline=8.0=he28a2e2_2 + - requests=2.25.0=pyhd3deb0d_0 + - requests-oauthlib=1.3.0=pyh9f0ad1d_0 + - root=6.22.6=py36heda87ca_0 + - root-binaries=6.22.6=py36heda87ca_0 + - root-dependencies=6.22.6=py36heda87ca_0 + - root_base=6.22.6=py36h74e3adb_0 + - rsa=4.6=pyh9f0ad1d_0 + - send2trash=1.5.0=py_0 + - simplegeneric=0.8.1=py_1 + - six=1.15.0=pyh9f0ad1d_0 + - sqlite=3.34.0=h74cdb3f_0 + - sysroot_linux-64=2.12=h77966d4_13 + - tbb=2020.2=hc9558a2_0 + - tbb-devel=2020.2=hc9558a2_0 + - tensorboard=2.4.0=pyhd8ed1ab_0 + - tensorboard-plugin-wit=1.7.0=pyh9f0ad1d_0 + - tensorflow=2.2.0=gpu_py36hf933387_0 + - tensorflow-base=2.2.0=gpu_py36h8a81be8_0 + - tensorflow-estimator=2.2.0=pyh95af2a2_0 + - tensorflow-gpu=2.2.0=h0d30ee6_0 + - termcolor=1.1.0=py_2 + - terminado=0.9.1=py36h5fab9bb_1 + - testpath=0.4.4=py_0 + - tk=8.6.10=hed695b0_1 + - tornado=6.1=py36h1d69622_0 + - traitlets=4.3.3=py36h9f0ad1d_1 + - typing-extensions=3.7.4.3=0 + - typing_extensions=3.7.4.3=py_0 + - urllib3=1.25.11=py_0 + - vdt=0.4.3=h9c3ff4c_0 + - wcwidth=0.2.5=pyh9f0ad1d_2 + - webencodings=0.5.1=py_1 + - werkzeug=1.0.1=pyh9f0ad1d_0 + - wheel=0.36.1=pyhd3deb0d_0 + - wrapt=1.12.1=py36h1d69622_2 + - xorg-fixesproto=5.0=h14c3975_1002 + - xorg-kbproto=1.0.7=h14c3975_1002 + - xorg-libice=1.0.10=h516909a_0 + - xorg-libsm=1.2.3=h84519dc_1000 + - xorg-libx11=1.6.12=h516909a_0 + - xorg-libxau=1.0.9=h14c3975_0 + - xorg-libxcursor=1.2.0=h516909a_0 + - xorg-libxdmcp=1.1.3=h516909a_0 + - xorg-libxext=1.3.4=h516909a_0 + - xorg-libxfixes=5.0.3=h516909a_1004 + - xorg-libxft=2.3.3=h71203ad_0 + - xorg-libxpm=3.5.13=h516909a_0 + - xorg-libxrender=0.9.10=h516909a_1002 + - xorg-libxt=1.1.5=h516909a_1003 + - xorg-renderproto=0.11.1=h14c3975_1002 + - xorg-xextproto=7.3.0=h14c3975_1002 + - xorg-xproto=7.0.31=h7f98852_1007 + - xrootd=5.0.3=py36h4ad382e_0 + - xxhash=0.8.0=h7f98852_1 + - xz=5.2.5=h516909a_1 + - yarl=1.6.3=py36h1d69622_0 + - zeromq=4.3.3=h58526e2_3 + - zipp=3.4.0=py_0 + - zlib=1.2.11=h516909a_1010 + - zstd=1.4.5=h6597ccf_2 + - pip: + - awkward0==0.15.1 + - blessings==1.7 + - cached-property==1.5.2 + - cycler==0.10.0 + - cython==0.29.21 + - easydict==1.9 + - future==0.18.2 + - gensim==3.8.3 + - gpustat==0.6.0 + - imageio==2.9.0 + - ipywidgets==7.5.1 + - joblib==0.17.0 + - jupyter==1.0.0 + - jupyter-console==5.2.0 + - kiwisolver==1.3.1 + - matplotlib==3.3.3 + - networkx==2.5 + - nvidia-ml-py3==7.352.0 + - opencv-python==4.4.0.46 + - pandas==1.1.4 + - pillow==8.0.1 + - psutil==5.7.3 + - pytz==2020.4 + - pywavelets==1.1.1 + - qtconsole==5.0.1 + - qtpy==1.9.0 + - root-numpy==4.8.0 + - scikit-image==0.17.2 + - scikit-learn==0.23.2 + - scipy==1.5.4 + - seaborn==0.11.0 + - setgpu==0.0.7 + - setuptools==51.0.0 + - smart-open==4.0.1 + - threadpoolctl==2.1.0 + - tifffile==2020.9.3 + - tqdm==4.54.1 + - uproot==4.0.0 + - uproot3==3.14.1 + - uproot3-methods==0.10.0 + - widgetsnbextension==3.5.1 From b4d27d1e16f5d015a92f5bc1d31d913194d87fab Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Tue, 8 Dec 2020 22:43:50 +0100 Subject: [PATCH 307/437] ci: fix conda env name --- conda_env.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda_env.yml b/conda_env.yml index fa2b17f..c4a286b 100644 --- a/conda_env.yml +++ b/conda_env.yml @@ -1,4 +1,4 @@ -name: DJC2alt +name: DJC2 channels: - conda-forge - defaults From 60c9b81a45971e2fee9fc2e2bf85b143d8c8eab5 Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Tue, 8 Dec 2020 22:54:27 +0100 Subject: [PATCH 308/437] ci: list py version --- .github/workflows/CI.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f9aa44e..fe88857 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -45,6 +45,8 @@ jobs: conda env list conda info conda list + which python + python -V - name: Set env vars 1 run: | From b31bf95934fdc96ef7eaf73a37cf5923f1896890 Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Tue, 8 Dec 2020 23:15:23 +0100 Subject: [PATCH 309/437] ci: allow range in conda --- README.md | 2 +- conda_env.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a3bb70b..94d1e25 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ pulls tensorflow's CUDA dependencies.; git clone https://github.com/DL4Jets/DeepJetCore.git cd DeepJetCore # This will take some time (includes ROOT, tensorflow-gpu, CUDA...) -conda env create -f conda_env.yml # if that fails use conda_env_exact.yml with entirele fixed versions +conda env create -f conda_env.yml # if that fails use conda_env_exact.yml with entirely fixed versions conda activate DJC2 # Build compiled modules with a modified Makefile source docker_env.sh # sets up paths, never mind the name diff --git a/conda_env.yml b/conda_env.yml index c4a286b..38a4eee 100644 --- a/conda_env.yml +++ b/conda_env.yml @@ -3,7 +3,7 @@ channels: - conda-forge - defaults dependencies: - - python=3.7 + - python>=3.6,<3.8 - pip - boost - root From 16749794cf28a7c4cd657373bb357d3fcc750956 Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Tue, 8 Dec 2020 23:16:34 +0100 Subject: [PATCH 310/437] ci: mamba is faster --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index fe88857..41131f2 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -36,7 +36,7 @@ jobs: with: activate-environment: DJC2 environment-file: conda_env.yml - #python-version: 3.6 + mamba-version: "*" python-version: ${{ matrix.python-version }} auto-activate-base: false From b54a8e91252dfc9986d1c6a4709b6c5c8cd267b9 Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Tue, 8 Dec 2020 23:20:10 +0100 Subject: [PATCH 311/437] ci: mamba is faster --- .github/workflows/CI.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 41131f2..ae97276 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -33,13 +33,15 @@ jobs: - name: 'Setup conda env' uses: conda-incubator/setup-miniconda@v2 - with: - activate-environment: DJC2 - environment-file: conda_env.yml - mamba-version: "*" + with: python-version: ${{ matrix.python-version }} + mamba-version: "*" + channels: conda-forge,defaults + channel-priority: true auto-activate-base: false - + environment-file: conda_env.yml + activate-environment: DJC2 + - name: "Check conda env" run: | conda env list From cf5bdf6f925e9b57b4d62371d722e39d6fa4d6b4 Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Tue, 8 Dec 2020 23:34:02 +0100 Subject: [PATCH 312/437] chore: clean up PR --- bin/predict.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/predict.py b/bin/predict.py index d4db0eb..704250e 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -56,8 +56,7 @@ custom_objs = get_custom_objects() -print("X",args.inputModel, custom_objs ) -model=load_model(args.inputModel, custom_objects=custom_objs, compile=True) +model=load_model(args.inputModel, custom_objects=custom_objs) dc = None if args.inputSourceFileList[-6:] == ".djcdc" and not args.trainingDataCollection[-6:] == ".djcdc": dc = DataCollection(args.inputSourceFileList) From 190c5248d8dc0eb00e5a047292543ce0c796e1f9 Mon Sep 17 00:00:00 2001 From: Andrzej Novak Date: Wed, 9 Dec 2020 09:31:19 +0100 Subject: [PATCH 313/437] ci: clean up run branch --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ae97276..50a5a46 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -3,7 +3,7 @@ name: CI/CD on: push: branches: - - 'ci*' + - 'master' pull_request: # Run daily at 0:01 UTC schedule: From 359ab2672c345947e9a075ffa28004dc10a046a5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Dec 2020 13:29:30 +0100 Subject: [PATCH 314/437] qkeras in by default --- docker/Dockerfile | 8 +++++++- docker/Dockerfile_exp | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index ab308b0..64260dd 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -49,6 +49,12 @@ ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" # for kenneth RUN apt-get install -y vim -# The fix for TensorFlow +# QKeras + +RUN git clone https://github.com/google/qkeras &&\ + cd qkeras &&\ + python3 setup.py build &&\ + python3 setup.py install &&\ + \ No newline at end of file diff --git a/docker/Dockerfile_exp b/docker/Dockerfile_exp index 1dc7df6..6ea0d92 100644 --- a/docker/Dockerfile_exp +++ b/docker/Dockerfile_exp @@ -48,6 +48,11 @@ ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" -# The fix for TensorFlow +# QKeras + +RUN git clone https://github.com/google/qkeras &&\ + cd qkeras &&\ + python3 setup.py build &&\ + python3 setup.py install &&\ \ No newline at end of file From 52d52aa0a3365a05e133ccd5ce7ab2847c6e1e9e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Dec 2020 13:47:44 +0100 Subject: [PATCH 315/437] qkeras finally --- docker/Dockerfile | 2 +- docker/Dockerfile_exp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 64260dd..802f459 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -54,7 +54,7 @@ RUN apt-get install -y vim RUN git clone https://github.com/google/qkeras &&\ cd qkeras &&\ python3 setup.py build &&\ - python3 setup.py install &&\ + python3 setup.py install \ No newline at end of file diff --git a/docker/Dockerfile_exp b/docker/Dockerfile_exp index 6ea0d92..6d09849 100644 --- a/docker/Dockerfile_exp +++ b/docker/Dockerfile_exp @@ -53,6 +53,6 @@ ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" RUN git clone https://github.com/google/qkeras &&\ cd qkeras &&\ python3 setup.py build &&\ - python3 setup.py install &&\ + python3 setup.py install \ No newline at end of file From b2fc513804dcf3ebbd5939255c32be9712b81454 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 19 Dec 2020 20:11:13 +0100 Subject: [PATCH 316/437] option to create dummy truth output to satisfy keras requirement of same truth as prediction length --- dataPipeline.py | 9 +++++++-- training/training_base.py | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dataPipeline.py b/dataPipeline.py index 00a4b41..ef303c9 100644 --- a/dataPipeline.py +++ b/dataPipeline.py @@ -1,11 +1,12 @@ from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator - +import numpy as np class TrainDataGenerator(trainDataGenerator): - def __init__(self): + def __init__(self, extend_truth_list_by=0): trainDataGenerator.__init__(self) + self.extend_truth_list_by = extend_truth_list_by def feedNumpyData(self): @@ -17,6 +18,10 @@ def feedNumpyData(self): wout = data.transferWeightListToNumpy() yout = data.transferTruthListToNumpy() + if self.extend_truth_list_by > 0: + tadd = [np.array([0],dtype='float32') for _ in range(self.extend_truth_list_by)] + yout += tadd + out = (xout,yout) if len(wout)>0: out = (xout,yout,wout) diff --git a/training/training_base.py b/training/training_base.py index 06ccc67..064c628 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -401,6 +401,7 @@ def trainModel(self, batchsize, run_eagerly=False, batchsize_use_sum_of_squares = False, + extend_truth_list_by=0,#extend the truth list with dummies. Useful when adding more prediction outputs than truth inputs stop_patience=-1, lr_factor=0.5, lr_patience=-1, @@ -451,6 +452,8 @@ def trainModel(self, print('starting training') if load_in_mem: + if match_truth_and_pred_list: + raise ValueError("match_truth_and_pred_list not available with load_in_mem") print('make features') X_train = self.train_data.getAllFeatures(nfiles=max_files) X_test = self.val_data.getAllFeatures(nfiles=max_files) @@ -472,6 +475,8 @@ def trainModel(self, traingen = self.train_data.invokeGenerator() valgen = self.val_data.invokeGenerator() #this is fixed + traingen.extend_truth_list_by = extend_truth_list_by + valgen.extend_truth_list_by = extend_truth_list_by while(self.trainedepoches < nepochs): From 1f6b7f9f93aa50f71d1b6d1fb62b7ef9655c4c88 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 26 Dec 2020 21:40:06 +0100 Subject: [PATCH 317/437] just added dash and plotly to standard container --- docker/Dockerfile_base | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index ebb47ed..d2762f2 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -78,6 +78,9 @@ RUN apt-get install -y vim #some tex things RUN apt install -y texlive ghostscript dvipng + +#cool plotting +RUN pip3 install plotly dash From 9ba431ba746c971075067ac0bf2a4e21447f62c6 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 27 Dec 2020 15:45:27 +0100 Subject: [PATCH 318/437] copy function for better python copy of traindata --- compiled/interface/trainData.h | 2 +- compiled/src/c_trainData.C | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 765cac5..9b9d902 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -139,7 +139,7 @@ class trainData{ void clear(); - + trainData copy()const {return *this;} //from python void skim(size_t batchelement); diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index 7f78fcd..b1a5bd6 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -43,6 +43,8 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("readFromFileBuffered", &trainData::readFromFileBuffered) .def("writeToFile", &trainData::writeToFile) + + .def("copy", &trainData::copy) .def("clear", &trainData::clear) .def("skim", &trainData::skim) From 920a2d14184e3d25b9d4f2e52ef4983b9fa4e3e0 Mon Sep 17 00:00:00 2001 From: AlexDeMoor <70885737+AlexDeMoor@users.noreply.github.com> Date: Wed, 6 Jan 2021 14:57:38 +0100 Subject: [PATCH 319/437] Update Weighter.py --- Weighter.py | 189 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 130 insertions(+), 59 deletions(-) diff --git a/Weighter.py b/Weighter.py index 7829eac..d33c9d8 100644 --- a/Weighter.py +++ b/Weighter.py @@ -1,6 +1,5 @@ ''' Created on 26 Feb 2017 - @author: jkiesele ''' @@ -24,12 +23,16 @@ def __init__(self): self.removeProbabilties=[] self.binweights=[] self.distributions=[] + self.red_distributions=[] self.xedges=[np.array([])] self.yedges=[np.array([])] self.classes=[] + self.red_classes=[] + self.class_weights=[] self.refclassidx=0 self.undefTruth=[] - + self.truth_red_fusion = [] + def __eq__(self, other): 'A == B' def _all(x): @@ -64,16 +67,22 @@ def __ne__(self, other): 'A != B' return not (self == other) - def setBinningAndClasses(self,bins,nameX,nameY,classes): + def setBinningAndClasses(self,bins,nameX,nameY,classes, red_classes, truth_red_fusion, method='isB'): self.axisX= bins[0] self.axisY= bins[1] self.nameX=nameX self.nameY=nameY self.classes=classes + self.red_classes = red_classes + self.truth_red_fusion = truth_red_fusion if len(self.classes)<1: self.classes=[''] + if len(self.red_classes)<1: + self.red_classes=[''] + if len(self.truth_red_fusion)<1: + self.truth_red_fusion=[''] - def addDistributions(self,Tuple): + def addDistributions(self,Tuple, norm_h = True): selidxs=[] ytuple=Tuple[self.nameY] @@ -87,46 +96,55 @@ def addDistributions(self,Tuple): selidxs.append(labeltuple[c]>0) else: selidxs=[np.zeros(len(xtuple),dtype='int')<1] - - - for i in range(len(self.classes)): - tmphist,xe,ye=np.histogram2d(xtuple[selidxs[i]],ytuple[selidxs[i]],[self.axisX,self.axisY],normed=True) + + for i, label in enumerate(self.classes): + #print('axis-X binning :') + #print(self.axisX) + #print('axis-Y binning :') + #print(self.axisY) + tmphist,xe,ye=np.histogram2d(xtuple[selidxs[i]],ytuple[selidxs[i]],[self.axisX,self.axisY],normed=norm_h) self.xedges=xe self.yedges=ye if len(self.distributions)==len(self.classes): self.distributions[i]=self.distributions[i]+tmphist else: self.distributions.append(tmphist) - + def printHistos(self,outdir): - def plotHist(hist,outname): + def plotHist(hist,outname, histname): import matplotlib.pyplot as plt H=hist.T - fig = plt.figure() - ax = fig.add_subplot(111) + fig, ax0 = plt.subplots() X, Y = np.meshgrid(self.xedges, self.yedges) - ax.pcolormesh(X, Y, H) + im = ax0.pcolormesh(X, Y, H) + #fig.colorbar(im, ax=ax) if self.axisX[0]>0: - ax.set_xscale("log", nonposx='clip') + ax0.set_xscale("log", nonposx='clip') else: - ax.set_xlim([self.axisX[1],self.axisX[-1]]) - ax.set_xscale("log", nonposx='mask') - #plt.colorbar() + ax0.set_xlim([self.axisX[1],self.axisX[-1]]) + ax0.set_xscale("log", nonposx='mask') + plt.colorbar(im, ax = ax0) + ax0.set_title(histname) fig.savefig(outname) plt.close() - for i in range(len(self.classes)): - if len(self.distributions): - plotHist(self.distributions[i],outdir+"/dist_"+self.classes[i]+".pdf") - plotHist(self.removeProbabilties[i] ,outdir+"/remprob_"+self.classes[i]+".pdf") - plotHist(self.binweights[i],outdir+"/weights_"+self.classes[i]+".pdf") - reshaped=self.distributions[i]*self.binweights[i] - plotHist(reshaped,outdir+"/reshaped_"+self.classes[i]+".pdf") - + for i in range(len(self.red_classes)): + if len(self.red_distributions): + plotHist(self.red_distributions[i],outdir+"/dist_"+self.red_classes[i]+".png",self.red_classes[i]+" distribution") + #plotHist(self.removeProbabilties[i] ,outdir+"/remprob_"+self.classes[i]+".pdf") + #plotHist(self.binweights[i],outdir+"/weights_"+self.classes[i]+".pdf") + #reshaped=self.distributions[i]*self.binweights[i] + #plotHist(reshaped,outdir+"/reshaped_"+self.classes[i]+".pdf") def createRemoveProbabilitiesAndWeights(self,referenceclass='isB'): + + print('Running the new Prob and Weights') + print('Num classes') + print(len(self.classes)) + referenceidx=-1 - if not referenceclass=='flatten': + + if referenceclass != 'flatten': try: referenceidx=self.classes.index(referenceclass) except: @@ -147,6 +165,26 @@ def createRemoveProbabilitiesAndWeights(self,referenceclass='isB'): refhist=self.distributions[referenceidx] refhist=refhist/np.amax(refhist) + if referenceclass == 'flatten': + print('Using the reduced classes for the histograms') + temp = [] + for k in range(len(self.red_classes)): + temp.append(0) + for i, label in enumerate(self.classes): + if label in self.truth_red_fusion[k]: + temp[k] = temp[k] + self.distributions[i] + + for j in range(len(temp)): + threshold_ = np.median(temp[j][temp[j] > 0]) * 0.01 + nonzero_vals = temp[j][temp[j] > threshold_] + ref_val = np.percentile(nonzero_vals, 25) + print('Analyse class ' + str(j)) + print('Min : ' + str(np.amin(temp[j]))) + print('Max : ' + str(np.amax(temp[j]))) + print('Ratio : ' + str(np.amin(temp[j]) / np.amax(temp[j]))) + print(ref_val) + + self.red_distributions = temp def divideHistos(a,b): out=np.array(a) @@ -158,38 +196,76 @@ def divideHistos(a,b): out[i][j]=-10 return out + reweight_threshold = 15 + max_weight = 1 + raw_hists = {} + class_events = {} + result = {} + probhists=[] weighthists=[] + + if referenceclass=='flatten': + for i, label in enumerate(self.red_classes): + raw_hists[label] = self.red_distributions[i].astype('float32') + result[label] = self.red_distributions[i].astype('float32') + + for label, classwgt in zip(self.red_classes, self.class_weights): + hist = result[label] + threshold_ = np.median(hist[hist > 0]) * 0.01 + nonzero_vals = hist[hist > threshold_] + ref_val = np.percentile(nonzero_vals, reweight_threshold) + # wgt: bins w/ 0 elements will get a weight of 0; bins w/ content Date: Thu, 7 Jan 2021 11:11:01 +0100 Subject: [PATCH 320/437] Cleaning Weighter.py code --- Weighter.py | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/Weighter.py b/Weighter.py index d33c9d8..4f0b5b7 100644 --- a/Weighter.py +++ b/Weighter.py @@ -137,10 +137,6 @@ def plotHist(hist,outname, histname): #plotHist(reshaped,outdir+"/reshaped_"+self.classes[i]+".pdf") def createRemoveProbabilitiesAndWeights(self,referenceclass='isB'): - - print('Running the new Prob and Weights') - print('Num classes') - print(len(self.classes)) referenceidx=-1 @@ -166,7 +162,7 @@ def createRemoveProbabilitiesAndWeights(self,referenceclass='isB'): refhist=refhist/np.amax(refhist) if referenceclass == 'flatten': - print('Using the reduced classes for the histograms') + #print('Using the reduced classes for the histograms') temp = [] for k in range(len(self.red_classes)): temp.append(0) @@ -178,11 +174,11 @@ def createRemoveProbabilitiesAndWeights(self,referenceclass='isB'): threshold_ = np.median(temp[j][temp[j] > 0]) * 0.01 nonzero_vals = temp[j][temp[j] > threshold_] ref_val = np.percentile(nonzero_vals, 25) - print('Analyse class ' + str(j)) - print('Min : ' + str(np.amin(temp[j]))) - print('Max : ' + str(np.amax(temp[j]))) - print('Ratio : ' + str(np.amin(temp[j]) / np.amax(temp[j]))) - print(ref_val) + #print('Analyse class ' + str(j)) + #print('Min : ' + str(np.amin(temp[j]))) + #print('Max : ' + str(np.amax(temp[j]))) + #print('Ratio : ' + str(np.amin(temp[j]) / np.amax(temp[j]))) + #print(ref_val) self.red_distributions = temp @@ -263,8 +259,6 @@ def divideHistos(a,b): self.binweights[i]=self.binweights[i]/np.average(self.binweights[i]) def createNotRemoveIndices(self,Tuple): - - print('Running the new Not-removeind') if len(self.removeProbabilties) <1: print('removeProbabilties bins not initialised. Cannot create indices per jet') From 2494c10f2a1f846acd20e30c406c6246a182aa44 Mon Sep 17 00:00:00 2001 From: emilbols <33452471+emilbols@users.noreply.github.com> Date: Wed, 13 Jan 2021 21:55:00 +0100 Subject: [PATCH 321/437] Update README.md I would suggest we add this line, since a number of people are using the script now for running on lxplus. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 94d1e25..c9cae98 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,8 @@ To build the container, the files can be found in the ``docker`` subdirectory. I **Users with access to Cernbox** can just run the container through the prepared script at: ``/eos/home-j/jkiesele/singularity/run_deepjetcore3.sh`` +If you are running on lxplus7, you can instead run: +``/eos/home-j/jkiesele/singularity/run_deepjetcore3_lxplus.sh`` Every user who has subscribed to the e-group ml-deepjetcore will have read access to the containers. The cache dir can get rather large and is normally located at ~/.singularity/cache. To avoid filling up the home afs, the cache can be set to /tmp or the work afs. Once the container is fully closed, the cache can be safely deleted. Singularity reacts to environment variables, e.g. From 34bf45cc4f00476a8815a058462c346d6a140cc4 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 15 Jan 2021 17:27:28 +0100 Subject: [PATCH 322/437] finally resolved file permission problem --- DataCollection.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 95bfb25..33bc3a5 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -7,12 +7,10 @@ from DeepJetCore.TrainData import TrainData from DeepJetCore.dataPipeline import TrainDataGenerator -import tensorflow as tf import tempfile import pickle import shutil import os -import keras import copy import time import logging @@ -196,6 +194,7 @@ def writeToFile(self,filename): pickle.dump(self.optionsdict, fd, protocol=0) shutil.move(fd.name, filename) + os.chmod(filename, 0o644) def readFromFile(self,filename): fd=open(filename,'rb') From 55eaa27ddfc3702b9e3c1912cf78c99ee645859b Mon Sep 17 00:00:00 2001 From: Alexandre De Moor Date: Sat, 16 Jan 2021 11:53:22 +0100 Subject: [PATCH 323/437] Update Weighter.py for compatibility --- Weighter.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Weighter.py b/Weighter.py index 4f0b5b7..900b0b6 100644 --- a/Weighter.py +++ b/Weighter.py @@ -67,7 +67,13 @@ def __ne__(self, other): 'A != B' return not (self == other) - def setBinningAndClasses(self,bins,nameX,nameY,classes, red_classes, truth_red_fusion, method='isB'): + def setBinningAndClasses(self,bins,nameX,nameY,classes, red_classes = -1, truth_red_fusion = -1, method='isB'): + + if method == 'flatten' and red_classes == -1: + raise Exception('You didnt defined the reduced classes for the flatten method correctly. Create a list with your reduced classes and call it in the setBinningAndClasses function with red_classes = ') + if method == 'flatten' and truth_red_fusion == -1: + raise Exception('You didnt defined the fusion for the truth classes for the flatten method correctly. Create a list where each entry is also a list with all the truth classes to fusion into a reduced class. Then call it in the setBinningAndClasses function with thruth_red_fusion = ') + self.axisX= bins[0] self.axisY= bins[1] self.nameX=nameX @@ -162,7 +168,6 @@ def createRemoveProbabilitiesAndWeights(self,referenceclass='isB'): refhist=refhist/np.amax(refhist) if referenceclass == 'flatten': - #print('Using the reduced classes for the histograms') temp = [] for k in range(len(self.red_classes)): temp.append(0) @@ -174,11 +179,6 @@ def createRemoveProbabilitiesAndWeights(self,referenceclass='isB'): threshold_ = np.median(temp[j][temp[j] > 0]) * 0.01 nonzero_vals = temp[j][temp[j] > threshold_] ref_val = np.percentile(nonzero_vals, 25) - #print('Analyse class ' + str(j)) - #print('Min : ' + str(np.amin(temp[j]))) - #print('Max : ' + str(np.amax(temp[j]))) - #print('Ratio : ' + str(np.amin(temp[j]) / np.amax(temp[j]))) - #print(ref_val) self.red_distributions = temp @@ -261,7 +261,6 @@ def divideHistos(a,b): def createNotRemoveIndices(self,Tuple): if len(self.removeProbabilties) <1: - print('removeProbabilties bins not initialised. Cannot create indices per jet') raise Exception('removeProbabilties bins not initialised. Cannot create indices per jet') tuplelength=len(Tuple) From d8457ae877b983f12b4dd719b631f44353e58d0e Mon Sep 17 00:00:00 2001 From: Alexandre De Moor Date: Sat, 16 Jan 2021 11:59:52 +0100 Subject: [PATCH 324/437] Update Weighter.py for compatibility --- Weighter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Weighter.py b/Weighter.py index 900b0b6..8f2bf38 100644 --- a/Weighter.py +++ b/Weighter.py @@ -70,9 +70,9 @@ def __ne__(self, other): def setBinningAndClasses(self,bins,nameX,nameY,classes, red_classes = -1, truth_red_fusion = -1, method='isB'): if method == 'flatten' and red_classes == -1: - raise Exception('You didnt defined the reduced classes for the flatten method correctly. Create a list with your reduced classes and call it in the setBinningAndClasses function with red_classes = ') + raise Exception('You didnt define the reduced classes for the flatten method correctly. Create a list with your reduced classes and call it in the setBinningAndClasses function with red_classes = ') if method == 'flatten' and truth_red_fusion == -1: - raise Exception('You didnt defined the fusion for the truth classes for the flatten method correctly. Create a list where each entry is also a list with all the truth classes to fusion into a reduced class. Then call it in the setBinningAndClasses function with thruth_red_fusion = ') + raise Exception('You didnt define the fusion for the truth classes for the flatten method correctly. Create a list where each entry is also a list with all the truth classes to fusion into a reduced class. The entries of the reduced classes and fusion list must follow the same order, ie : the truth classes to fusion for the first reduced class is the first element of your fusion list. Then call it in the setBinningAndClasses function with thruth_red_fusion = ') self.axisX= bins[0] self.axisY= bins[1] From d3aa4a8b8cf4b203878feeb36c4b0a8cedd9c215 Mon Sep 17 00:00:00 2001 From: Alexandre De Moor Date: Sat, 16 Jan 2021 11:41:23 +0000 Subject: [PATCH 325/437] Update Weighter.py for compatibility --- Weighter.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Weighter.py b/Weighter.py index 8f2bf38..663bc7d 100644 --- a/Weighter.py +++ b/Weighter.py @@ -67,11 +67,11 @@ def __ne__(self, other): 'A != B' return not (self == other) - def setBinningAndClasses(self,bins,nameX,nameY,classes, red_classes = -1, truth_red_fusion = -1, method='isB'): + def setBinningAndClasses(self,bins,nameX,nameY,classes, red_classes = [-1], truth_red_fusion = [-1], method='isB'): - if method == 'flatten' and red_classes == -1: + if method == 'flatten' and red_classes == [-1]: raise Exception('You didnt define the reduced classes for the flatten method correctly. Create a list with your reduced classes and call it in the setBinningAndClasses function with red_classes = ') - if method == 'flatten' and truth_red_fusion == -1: + if method == 'flatten' and truth_red_fusion == [-1]: raise Exception('You didnt define the fusion for the truth classes for the flatten method correctly. Create a list where each entry is also a list with all the truth classes to fusion into a reduced class. The entries of the reduced classes and fusion list must follow the same order, ie : the truth classes to fusion for the first reduced class is the first element of your fusion list. Then call it in the setBinningAndClasses function with thruth_red_fusion = ') self.axisX= bins[0] From 70508d34bac0b7e0d07b65984c70816c48a53f19 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 27 Jan 2021 09:45:52 +0000 Subject: [PATCH 326/437] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index c9cae98..f250fc1 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +Notes +============ +Due to a recent update of uproot, please change ``import uproot`` to ``import uproot3`` in case you have issues with the import and the newest containers. + DeepJetCore: Package for training and evaluation of deep neural networks for HEP From 298d556991524ff8c43075223fc232d55c28e5a2 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 5 Feb 2021 11:44:43 +0100 Subject: [PATCH 327/437] first step of supporting multiple types. not done yet! --- compiled/Makefile | 2 +- compiled/interface/IO.h | 56 +++- compiled/interface/simpleArray.h | 554 ++++++++++++------------------- compiled/interface/trainData.h | 21 ++ compiled/interface/version.h | 2 +- compiled/src/c_simpleArray.C | 68 +++- docker/Dockerfile_base | 3 + 7 files changed, 347 insertions(+), 359 deletions(-) diff --git a/compiled/Makefile b/compiled/Makefile index 8eb782a..0645837 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -16,7 +16,7 @@ MODULES := $(wildcard src/*.C) MODULES_OBJ_FILES := $(addprefix ./,$(notdir $(MODULES:.C=.o))) MODULES_SHARED_LIBS := $(addprefix ./,$(notdir $(MODULES:.C=.so))) -#CFLAGS := -g +CFLAGS := -g all: $(MODULES_SHARED_LIBS) $(patsubst to_bin/%.cpp, %, $(wildcard to_bin/*.cpp)) classdict.so diff --git a/compiled/interface/IO.h b/compiled/interface/IO.h index b0d5fcd..608a29b 100644 --- a/compiled/interface/IO.h +++ b/compiled/interface/IO.h @@ -46,7 +46,7 @@ inline std::string followFileName(FILE * ofile){ } template -void writeToFile(T * p, FILE * ofile, size_t N=1, size_t Nbytes=0){ +void writeToFile(const T * p, FILE * ofile, size_t N=1, size_t Nbytes=0){ if(!Nbytes){ Nbytes = N*sizeof(T); } @@ -58,6 +58,32 @@ void writeToFile(T * p, FILE * ofile, size_t N=1, size_t Nbytes=0){ } } +template <> +void writeToFile(const std::string * p, FILE * ofile, size_t N, size_t Nbytes){ + N=p->length(); + if(!N) + return; + Nbytes = N*sizeof(char); + writeToFile(&N,ofile); + size_t ret = fwrite(p->data(), 1, Nbytes, ofile); + if(ret != Nbytes){ + std::string fname = followFileName(ofile); + fclose(ofile); + throw std::runtime_error("djc::io::writeToFile: writing to file "+fname+" not successful"); + } +} + + +template +void writeToFile(const std::vector * p, FILE * ofile, size_t N=1, size_t Nbytes=0){ + N = p->size(); + writeToFile(&N,ofile); + for(const auto& v:*p) + writeToFile(&v,ofile); +} + + + template void readFromFile(T * p, FILE* ifile, size_t N=1, size_t Nbytes=0){ if(!Nbytes) @@ -69,6 +95,34 @@ void readFromFile(T * p, FILE* ifile, size_t N=1, size_t Nbytes=0){ throw std::runtime_error("djc::io::readFromFile:reading from file "+fname+" not successful"); } } + +template <> +void readFromFile(std::string * p, FILE* ifile, size_t N, size_t Nbytes){ + + readFromFile(&N,ifile); + char * c = new char[N]; + + Nbytes = N* sizeof(char); + size_t ret = fread(c, 1, Nbytes, ifile); + *p = std::string(c,N); + delete c; + + if(ret != Nbytes){ + std::string fname = followFileName(ifile); + fclose(ifile); + throw std::runtime_error("djc::io::readFromFile:reading from file "+fname+" not successful"); + } +} + + +template +void readFromFile(std::vector * p, FILE* ifile, size_t N=1, size_t Nbytes=0){ + readFromFile(&N,ifile); + *p=std::vector(N); + for(auto& v: *p) + readFromFile(&v,ifile); +} + } } diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 8b61b80..4534b35 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -14,6 +14,7 @@ #include "boost/python/list.hpp" #include #include "helper.h" +#include "pythonToSTL.h" #endif #include "c_helper.h" @@ -31,11 +32,150 @@ namespace djc{ +//has all non-data operations +class simpleArrayBase { +public: + + enum dtypes{float32,int32,undef}; + + simpleArrayBase():size_(0),assigned_(false) { + dtype_= dtype(); + } + virtual ~simpleArrayBase(){} + + simpleArrayBase(std::vector shape,const std::vector& rowsplits = {}); + + virtual void clear()=0; + + virtual void setShape(std::vector shape,const std::vector& rowsplits = {})=0; + + virtual dtypes dtype()const{return undef;} + int dtypeI()const{return (int)dtype();} + std::string dtypeString()const{ + return dtypeToString(dtype()); + } + + void setName(const std::string& name){name_=name;} + std::string name()const{return name_;} + void setFeatureNames(const std::vector& names){featnames_=names;} + const std::vector& featureNames()const{return featnames_;} + + static std::string dtypeToString(dtypes t); + static dtypes stringToDtype(const std::string& s); + + const std::vector& shape() const { + return shape_; + } + + const size_t& size() const { + return size_; + } + + bool isRagged()const{ + return rowsplits_.size()>0; + } + + /* + * returns the dimension of the first axis. + * If second dimension is ragged, this will take it into + * account. + */ + size_t getFirstDimension()const{ + if(!size_ || !shape_.size()) + return 0; + return shape_.at(0); + } + + const std::vector& rowsplits() const { + return rowsplits_; + } + + virtual void assignShape(std::vector s)=0; + + + virtual size_t validSlices(std::vector splits)const=0; + virtual bool validSlice(size_t splitindex_begin, size_t splitindex_end)const=0; + + virtual void addToFileP(FILE *& ofile) const=0; + virtual void readFromFileP(FILE *& ifile)=0; + virtual void writeToFile(const std::string& f)const=0; + virtual void readFromFile(const std::string& f)=0; + + /** + * this goes back to the start of the header! + */ + std::string readDtypeFromFileP(FILE *& ofile)const; + std::string readDtypeFromFile(const std::string& f)const; + + virtual void cout()const=0; + + /** + * Split indices can directly be used with the split() function. + * Returns elements e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} + */ + static std::vector getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit, bool strict_limit, std::vector& size_ok, std::vector& nelemtns_per_split); + + /** + * Split indices can directly be used with the split() function. + * Returns row splits e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} + */ + static std::vector getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit, bool strict_limit, std::vector& size_ok, std::vector& nelemtns_per_split); + + /** + * Transforms row splits to n_elements per ragged sample + */ + static std::vector dataSplitToSplitIndices(const std::vector& row_splits); + + /** + * Transforms n_elements per ragged sample to row splits + */ + static std::vector splitToDataSplitIndices(const std::vector& data_splits); + + + static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); + + static std::vector mergeRowSplits(const std::vector & rowsplitsa, const std::vector & rowsplitsb); + + static std::vector splitRowSplits(std::vector & rowsplits, const size_t& splitpoint); + + +protected: + std::vector shape_; + std::string name_; + std::vector featnames_; + //this is int64 for better feeding to TF + std::vector rowsplits_; + size_t size_; + bool assigned_; + dtypes dtype_; + + + size_t sizeFromShape(const std::vector& shape) const; + std::vector shapeFromRowsplits()const; //split dim = 1! + void checkShape(size_t ndims)const; + void checkSize(size_t idx)const; + void checkRaggedIndex(size_t i, size_t j)const; + + void getFlatSplitPoints(size_t splitindex_begin, size_t splitindex_end, + size_t & splitpoint_start, size_t & splitpoint_end)const; + +private: + + + static std::vector priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split, bool strict_limit); + + +}; + template -class simpleArray { +class simpleArray: public simpleArrayBase { //inherits and implements data operations public: + simpleArray(); // row splits are indicated by a merged dimension with negative sign // e.g. A x B x C x D, where B is ragged would get shape @@ -56,6 +196,8 @@ class simpleArray { simpleArray(simpleArray &&); simpleArray& operator=(simpleArray &&); + dtypes dtype()const{return undef;} + bool operator==(const simpleArray& rhs)const; bool operator!=(const simpleArray& rhs)const { return !(*this == rhs); } @@ -72,29 +214,6 @@ class simpleArray { return data_; } - const std::vector& shape() const { - return shape_; - } - - const size_t& size() const { - return size_; - } - - bool isRagged()const{ - return rowsplits_.size()>0; - } - - /* - * returns the dimension of the first axis. - * If second dimension is ragged, this will take it into - * account. - */ - size_t getFirstDimension()const; - - const std::vector& rowsplits() const { - return rowsplits_; - } - /////////// potentially dangerous operations for conversions, use with care /////// /* @@ -188,36 +307,6 @@ class simpleArray { - /** - * Split indices can directly be used with the split() function. - * Returns elements e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} - */ - static std::vector getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit=false, bool strict_limit=true, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); - - /** - * Split indices can directly be used with the split() function. - * Returns row splits e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} - */ - static std::vector getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit=false, bool strict_limit=true, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector()); - - /** - * Transforms row splits to n_elements per ragged sample - */ - static std::vector dataSplitToSplitIndices(const std::vector& row_splits); - - /** - * Transforms n_elements per ragged sample to row splits - */ - static std::vector splitToDataSplitIndices(const std::vector& data_splits); - - - static std::vector readRowSplitsFromFileP(FILE *& f, bool seeknext=true); - - static std::vector mergeRowSplits(const std::vector & rowsplitsa, const std::vector & rowsplitsb); - - static std::vector splitRowSplits(std::vector & rowsplits, const size_t& splitpoint); #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS int isize() const { @@ -238,6 +327,10 @@ class simpleArray { //copy data boost::python::tuple copyToNumpy(bool pad_rowsplits=false)const; + + void setFeatureNamesPy(boost::python::list l); + boost::python::list featureNamesPy(); + #endif @@ -250,19 +343,9 @@ class simpleArray { std::vector padRowsplits()const; - void getFlatSplitPoints(size_t splitindex_begin, size_t splitindex_end, - size_t & splitpoint_start, size_t & splitpoint_end)const; void copyFrom(const simpleArray& a); void moveFrom(simpleArray && a); - size_t sizeFromShape(const std::vector& shape) const; - std::vector shapeFromRowsplits()const; //split dim = 1! - void checkShape(size_t ndims)const; - void checkSize(size_t idx)const; - void checkRaggedIndex(size_t i, size_t j)const; - - static std::vector priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit=false, std::vector& size_ok=std::vector(), std::vector& nelemtns_per_split=std::vector(), bool strict_limit=true); @@ -277,36 +360,26 @@ class simpleArray { #endif T * data_; - std::vector shape_; - //this is int64 for better feeding to TF - std::vector rowsplits_; - size_t size_; - bool assigned_; }; template simpleArray::simpleArray() : - data_(0), size_(0),assigned_(false) { +simpleArrayBase(), + data_(0) { + dtype_= dtype(); } template simpleArray::simpleArray(std::vector shape,const std::vector& rowsplits) : - data_(0), size_(0),assigned_(false) { - - shape_ = shape; - if(rowsplits.size()){ - if(rowsplits.size() != shape_.at(0)+1) - throw std::runtime_error("simpleArray::simpleArray: rowsplits.size() must equal shape[0] + 1"); - - rowsplits_=rowsplits; - shape_ = shapeFromRowsplits(); - } - size_ = sizeFromShape(shape_); +simpleArrayBase(shape,rowsplits) { data_ = new T[size_]; + dtype_= dtype(); } template simpleArray::simpleArray(FILE *& ifile):simpleArray(){ + data_=0; + dtype_= dtype(); readFromFileP(ifile); assigned_=false; } @@ -319,6 +392,7 @@ simpleArray::~simpleArray() { template simpleArray::simpleArray(const simpleArray& a) : simpleArray() { + data_=0; copyFrom(a); } @@ -335,6 +409,9 @@ simpleArray::simpleArray(simpleArray && a) : return;} if (data_&& !assigned_) delete data_; + dtype_=a.dtype_; + name_=a.name_; + featnames_=a.featnames_; data_ = a.data_; a.data_ = 0; assigned_ = a.assigned_; @@ -354,6 +431,9 @@ simpleArray& simpleArray::operator=(simpleArray && a) { return *this; if (data_ && !assigned_) delete data_; + dtype_=a.dtype_; + name_=a.name_; + featnames_=a.featnames_; data_ = a.data_; a.data_ = 0; size_ = a.size_; @@ -370,6 +450,12 @@ template bool simpleArray::operator==(const simpleArray& rhs)const{ if(this == &rhs) return true; + if(dtype_!=rhs.dtype_) + return false; + if(name_!=rhs.name_) + return false; + if(featnames_!=rhs.featnames_) + return false; if(size_!=rhs.size_) return false; if(shape_!=rhs.shape_) @@ -393,6 +479,8 @@ void simpleArray::clear() { shape_.clear(); rowsplits_.clear(); size_ = 0; + name_=""; + featnames_.clear(); } template @@ -407,12 +495,7 @@ void simpleArray::setShape(std::vector shape,const std::vector& shape_ = shape; } } -template -size_t simpleArray::getFirstDimension()const{ - if(!size_ || !shape_.size()) - return 0; - return shape_.at(0); -} + template T * simpleArray::disownData() { @@ -689,6 +772,9 @@ void simpleArray::addToFileP(FILE *& ofile) const { float version = DJCDATAVERSION; io::writeToFile(&version, ofile); + io::writeToFile(&dtype_, ofile); + io::writeToFile(&name_, ofile); + io::writeToFile(&featnames_, ofile); io::writeToFile(&size_, ofile); size_t ssize = shape_.size(); io::writeToFile(&ssize, ofile); @@ -712,8 +798,18 @@ void simpleArray::readFromFileP(FILE *& ifile) { float version = 0; io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION) - throw std::runtime_error("simpleArray::readFromFile: wrong format version"); + if(version != DJCDATAVERSION){ + if(version != 2.0f)//compat + throw std::runtime_error("simpleArray::readFromFile: wrong format version"); + } + dtypes rdtype=dtype(); + if(version != 2.0f){ + io::readFromFile(&rdtype, ifile); + io::readFromFile(&name_, ifile); + io::readFromFile(&featnames_, ifile); + } + if(rdtype!=dtype_) + throw std::runtime_error("simpleArray::readFromFileP: wrong dtype"); io::readFromFile(&size_, ifile); @@ -766,6 +862,7 @@ void simpleArray::readFromFile(const std::string& f){ template void simpleArray::cout()const{ + std::cout << "name: " << name_ << std::endl; std::cout << "data size "<< size() <::cout()const{ -template - std::vector simpleArray::priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split, bool strict_limit){ - - std::vector outIdxs; - size_ok.clear(); - nelemtns_per_split.clear(); - if(rowsplits.size()<1) - return outIdxs; - - size_t i_old=0; - size_t s_old = 0; - size_t i_s = 0; - while (true) { - - size_t s = rowsplits.at(i_s); - size_t delta = s - s_old; - size_t i_splitat = rowsplits.size()+1; - - if (sqelementslimit) - delta *= delta; - - if (delta > nelements_limit && i_s != i_old+1) { - i_splitat = i_s - 1; - i_s--; - } - else if (delta == nelements_limit || - i_s == rowsplits.size() - 1 || - (delta > nelements_limit && i_s == i_old+1)) { - i_splitat = i_s; - } - - - if (i_splitat < rowsplits.size() ) { //split - - if(i_splitat==i_old){ - //sanity check, should not happen - std::cout <<"simpleArray::priv_getSplitIndices: attempting empty split at " << i_splitat << std::endl; - throw std::runtime_error("simpleArray::priv_getSplitIndices: attempting empty split"); - } - - - size_t nelements = rowsplits.at(i_splitat) - rowsplits.at(i_old); - bool is_good = (!strict_limit || nelements <= nelements_limit) && nelements>0;//safety for zero element splits - size_ok.push_back(is_good); - nelemtns_per_split.push_back(nelements); - - if(datasplit) - outIdxs.push_back(i_splitat); - else - outIdxs.push_back(i_splitat - i_old); - - - //std::cout << "i_old " << i_old << "\n"; - //std::cout << "i_s " << i_s << "\n"; - //std::cout << "s_old " << s_old << "\n"; - //std::cout << "s " << s << "\n"; - //std::cout << "i_splitat " << i_splitat << "\n"; - //std::cout << "is_good " << is_good << "\n"; - //std::cout << "i_splitat - i_old " << i_splitat - i_old << "\n"; - //std::cout << std::endl; - - i_old = i_splitat; - s_old = rowsplits.at(i_old); - //i_s = i_splitat; - - } - i_s++; - if(i_s >= rowsplits.size()) - break; - } - - return outIdxs; -} -/** - * Split indices can directly be used with the split() function. - * Returns e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} - */ -template -std::vector simpleArray::getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit, bool strict_limit, std::vector& size_ok, std::vector& nelemtns_per_split){ - return priv_getSplitIndices(false, rowsplits, nelements_limit, sqelementslimit, size_ok, nelemtns_per_split,strict_limit); -} - -/** - * Split indices can directly be used with the split() function. - * Returns row splits e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} - */ - -template -std::vector simpleArray::getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, - bool sqelementslimit, bool strict_limit, std::vector& size_ok, std::vector& nelemtns_per_split){ - return priv_getSplitIndices(true, rowsplits, nelements_limit, sqelementslimit, size_ok, nelemtns_per_split,strict_limit); -} - -/** - * Transforms row splits to n_elements per ragged sample - */ -template -std::vector simpleArray::dataSplitToSplitIndices(const std::vector& row_splits){ - if(!row_splits.size()) - throw std::runtime_error("simpleArray::dataSplitToSplitIndices: row splits empty"); - auto out = std::vector(row_splits.size()-1); - for(size_t i=0;i -std::vector simpleArray::splitToDataSplitIndices(const std::vector& n_elements){ - auto out = std::vector(n_elements.size()+1); - out.at(0)=0; - int64_t last=0; - for(size_t i=0;i -std::vector simpleArray::readRowSplitsFromFileP(FILE *& ifile, bool seeknext){ - - float version = 0; - size_t size; - std::vector shape; - std::vector rowsplits; - io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION) - throw std::runtime_error("simpleArray::readRowSplitsFromFileP: wrong format version"); - - io::readFromFile(&size, ifile); - - size_t shapesize = 0; - io::readFromFile(&shapesize, ifile); - shape = std::vector(shapesize, 0); - io::readFromFile(&shape[0], ifile, shapesize); - - size_t rssize = 0; - io::readFromFile(&rssize, ifile); - rowsplits = std::vector(rssize, 0); - - if(rssize){ - quicklz iqlz; - iqlz.readAll(ifile, &rowsplits[0]); - } - if(seeknext){ - quicklz qlz; - qlz.skipBlock(ifile);//sets file point to next item - } - return rowsplits; -} - -template -std::vector simpleArray::mergeRowSplits(const std::vector & rowsplitsa, const std::vector & rowsplitsb){ - if(rowsplitsb.size()<1) - return rowsplitsa; - if(rowsplitsa.size()<1) - return rowsplitsb; - std::vector out=rowsplitsa; - out.resize(out.size() + rowsplitsb.size()-1); - int64_t lasta = rowsplitsa.at(rowsplitsa.size()-1); - - for(size_t i=0;i -std::vector simpleArray::splitRowSplits(std::vector & rowsplits, const size_t& splitpoint){ - - if(splitpoint >= rowsplits.size()) - throw std::out_of_range("simpleArray::splitRowSplits: split index out of range"); - - int64_t rsatsplitpoint = rowsplits.at(splitpoint); - std::vector out = std::vector (rowsplits.begin(),rowsplits.begin()+splitpoint+1); - std::vector rhs = std::vector(rowsplits.size()-splitpoint); - for(size_t i=0;i -void simpleArray::getFlatSplitPoints(size_t splitindex_begin, size_t splitindex_end, - size_t & splitpoint_start, size_t & splitpoint_end)const{ - splitpoint_start = splitindex_begin; - splitpoint_end = splitindex_end; - if(isRagged()){ - splitpoint_start = rowsplits_.at(splitindex_begin); - splitpoint_end = rowsplits_.at(splitindex_end); - for (size_t i = 2; i < shape_.size(); i++){ - splitpoint_start *= (size_t)std::abs(shape_.at(i)); - splitpoint_end *= (size_t)std::abs(shape_.at(i)); - } - } - else{ - for (size_t i = 1; i < shape_.size(); i++){ - splitpoint_start *= (size_t)std::abs(shape_.at(i)); - splitpoint_end *= (size_t)std::abs(shape_.at(i)); - } - } -} template void simpleArray::copyFrom(const simpleArray& a) { @@ -1003,6 +891,9 @@ void simpleArray::copyFrom(const simpleArray& a) { } if (data_&& !assigned_) delete data_; + dtype_= a.dtype_; + name_=a.name_; + featnames_=a.featnames_; data_ = new T[a.size_]; memcpy(data_, a.data_, a.size_ * sizeof(T)); @@ -1012,47 +903,6 @@ void simpleArray::copyFrom(const simpleArray& a) { assigned_=false; } -template -size_t simpleArray::sizeFromShape(const std::vector& shape) const { - int64_t size = 1; - for (const auto s : shape){ - size *= std::abs(s); - if(s<0) - size=std::abs(s);//first ragged dimension has the full size of previous dimensions - } - return size; -} - -template -std::vector simpleArray::shapeFromRowsplits()const{ - if(!isRagged()) return shape_; - if(shape_.size()<2) return shape_; - auto outshape = shape_; - //rowsplits.size = nbatch+1 - outshape.at(1) = - (int)rowsplits_.at(rowsplits_.size()-1); - return outshape; -} - -template -void simpleArray::checkShape(size_t ndims)const{ - //rowsplit ready due to definiton of shape - if(ndims != shape_.size()){ - throw std::out_of_range("simpleArray::checkShape: shape does not match dimensions accessed"); - } -} - -template -void simpleArray::checkSize(size_t idx)const{ - if(idx >= size_) - throw std::out_of_range("simpleArray::checkSize: index out of range"); -} - -template -void simpleArray::checkRaggedIndex(size_t i, size_t j)const{ - if(i > rowsplits_.size()-1 || j >= rowsplits_.at(i+1)-rowsplits_.at(i)) - throw std::out_of_range("simpleArray::checkRaggedIndex: index out of range"); -} - // rowsplit support being added here (see whiteboard) @@ -1273,7 +1123,7 @@ void simpleArray::fromNumpy(const boost::python::numpy::ndarray& ndarr, if(len(rowsplits)>0){ checkArray(rowsplits, np::dtype::get_builtin()); rowsplits_.resize(len(rowsplits)); - memcpy(&(rowsplits_.at(0)),(int*)(void*) rowsplits.get_data(), rowsplits_.size() * sizeof(int64_t)); + memcpy(&(rowsplits_.at(0)),(int64_t*)(void*) rowsplits.get_data(), rowsplits_.size() * sizeof(int64_t)); shape.insert(shape.begin(),len(rowsplits)-1); shape_ = shape; shape_ = shapeFromRowsplits(); @@ -1371,9 +1221,31 @@ boost::python::tuple simpleArray::copyToNumpy(bool pad_rowsplits)const{ } +template +void simpleArray::setFeatureNamesPy(boost::python::list l){ + std::vector names = toSTLVector(l); + setFeatureNames(names); +} +template +boost::python::list simpleArray::featureNamesPy(){ + boost::python::list l; + for(const auto& v:featureNames()) + l.append(v); + return l; +} #endif -} + +typedef simpleArray simpleArray_float32; +typedef simpleArray simpleArray_int32; + +template<> +simpleArrayBase::dtypes simpleArray_float32::dtype()const{return float32;} +template<> +simpleArrayBase::dtypes simpleArray_int32::dtype()const{return int32;} + + +}//namespace #endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ */ diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 9b9d902..8222581 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -26,6 +26,14 @@ namespace djc{ +/* + * use small helper class to store simpleArrayBase pointers + * and manage ownership where needed. + * just wrap around std::vector + */ + + + /* * The idea is to make this a fixed size array class, that is filled with data and then written out once full. * a truncate function will allow to truncate arrays at a given position. @@ -39,10 +47,21 @@ class trainData{ //takes ownership + //these need to be separated by input type because python does not allow for overload + //but then the py interface can be made generic to accept differnt types + // int storeFeatureArray( simpleArray&); int storeTruthArray( simpleArray&); int storeWeightArray( simpleArray&); + //these are not really used so much --> + /* + * This class actually doesn't really need data operations. so it can implement + * only simpleArrayBase calls + * + * + */ + const simpleArray & featureArray(size_t idx) const { return feature_arrays_.at(idx); } @@ -67,6 +86,8 @@ class trainData{ return weight_arrays_.at(idx); } + //<--- + int nFeatureArrays()const{return feature_arrays_.size();} int nTruthArrays()const{return truth_arrays_.size();} int nWeightArrays()const{return weight_arrays_.size();} diff --git a/compiled/interface/version.h b/compiled/interface/version.h index 866f17e..d8b1697 100644 --- a/compiled/interface/version.h +++ b/compiled/interface/version.h @@ -8,7 +8,7 @@ #ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_VERSION_H_ #define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_VERSION_H_ -#define DJCDATAVERSION ((float)2.0) +#define DJCDATAVERSION ((float)2.1) diff --git a/compiled/src/c_simpleArray.C b/compiled/src/c_simpleArray.C index 9370cef..5ab85d8 100644 --- a/compiled/src/c_simpleArray.C +++ b/compiled/src/c_simpleArray.C @@ -6,7 +6,7 @@ * * Simple reading and writing of numpy arrays using the simpleArray class * - * Only implemented for float32 arrays + * Only implemented for float32, int32 arrays * * just a wrapper module */ @@ -15,7 +15,7 @@ #define DJC_DATASTRUCTURE_PYTHON_BINDINGS #include "../interface/helper.h" #include "../interface/simpleArray.h" - +#include namespace p = boost::python; namespace np = boost::python::numpy; @@ -26,19 +26,57 @@ using namespace djc; BOOST_PYTHON_MODULE(c_simpleArray) { Py_Initialize(); np::initialize(); - p::class_ >("simpleArray") - .def("readFromFile", &simpleArray::readFromFile) - .def("writeToFile", &simpleArray::writeToFile) - .def("assignFromNumpy", &simpleArray::assignFromNumpy) - .def("transferToNumpy", &simpleArray::transferToNumpy) - .def("createFromNumpy", &simpleArray::createFromNumpy) - .def("copyToNumpy", &simpleArray::copyToNumpy) - .def("isRagged", &simpleArray::isRagged) - .def("split", &simpleArray::split) - .def("getSlice", &simpleArray::getSlice) - .def("append", &simpleArray::append) - .def("cout", &simpleArray::cout) - .def("size", &simpleArray::isize); + + using namespace p; + p::class_("simpleArrayF") + .def("readDtypeFromFile", &simpleArray_float32::readDtypeFromFile) + + .def(self==self) + .def("dtypeI", &simpleArray_float32::dtypeI) + + .def("setName", &simpleArray_float32::setName) + .def("name", &simpleArray_float32::name) + .def("setFeatureNames", &simpleArray_float32::setFeatureNamesPy) + .def("featureNames", &simpleArray_float32::featureNamesPy) + + .def("readFromFile", &simpleArray_float32::readFromFile) + .def("writeToFile", &simpleArray_float32::writeToFile) + .def("assignFromNumpy", &simpleArray_float32::assignFromNumpy) + .def("transferToNumpy", &simpleArray_float32::transferToNumpy) + .def("createFromNumpy", &simpleArray_float32::createFromNumpy) + .def("copyToNumpy", &simpleArray_float32::copyToNumpy) + .def("isRagged", &simpleArray_float32::isRagged) + .def("split", &simpleArray_float32::split) + .def("getSlice", &simpleArray_float32::getSlice) + .def("append", &simpleArray_float32::append) + .def("cout", &simpleArray_float32::cout) + .def("size", &simpleArray_float32::isize); ; + p::class_("simpleArrayI") + .def("readDtypeFromFile", &simpleArray_int32::readDtypeFromFile) + + .def(self==self) + + .def("dtypeI", &simpleArray_int32::dtypeI) + + .def("setName", &simpleArray_int32::setName) + .def("name", &simpleArray_int32::name) + .def("setFeatureNames", &simpleArray_int32::setFeatureNamesPy) + .def("featureNames", &simpleArray_int32::featureNamesPy) + + .def("readFromFile", &simpleArray_int32::readFromFile) + .def("writeToFile", &simpleArray_int32::writeToFile) + .def("assignFromNumpy", &simpleArray_int32::assignFromNumpy) + .def("transferToNumpy", &simpleArray_int32::transferToNumpy) + .def("createFromNumpy", &simpleArray_int32::createFromNumpy) + .def("copyToNumpy", &simpleArray_int32::copyToNumpy) + .def("isRagged", &simpleArray_int32::isRagged) + .def("split", &simpleArray_int32::split) + .def("getSlice", &simpleArray_int32::getSlice) + .def("append", &simpleArray_int32::append) + .def("cout", &simpleArray_int32::cout) + .def("size", &simpleArray_int32::isize); + ; + } diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index d2762f2..f1e6592 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -81,6 +81,9 @@ RUN apt install -y texlive ghostscript dvipng #cool plotting RUN pip3 install plotly dash + +#new +RUN pip3 install awkward From b51c0dce9610510ea93c0af2563fea9af081d828 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 6 Feb 2021 17:45:01 +0100 Subject: [PATCH 328/437] c++ modules new structure compiling. some python bindings and tests still missing --- compiled/interface/IO.h | 33 +- compiled/interface/simpleArray.h | 58 +- compiled/interface/trainData.h | 596 +++----------------- compiled/interface/trainDataGenerator.h | 453 +-------------- compiled/src/c_trainData.C | 60 +- compiled/src/c_trainDataGenerator.C | 32 +- compiled/to_bin/_testRaggedArray.cpp | 131 ----- compiled/to_bin/_testRaggedTD.cpp | 83 --- compiled/to_bin/_testSimpleArrayAndTD.cpp | 168 ------ compiled/to_bin/_testSimpleArrayShuffle.cpp | 69 --- 10 files changed, 179 insertions(+), 1504 deletions(-) delete mode 100644 compiled/to_bin/_testRaggedArray.cpp delete mode 100644 compiled/to_bin/_testRaggedTD.cpp delete mode 100644 compiled/to_bin/_testSimpleArrayAndTD.cpp delete mode 100644 compiled/to_bin/_testSimpleArrayShuffle.cpp diff --git a/compiled/interface/IO.h b/compiled/interface/IO.h index 608a29b..a43835a 100644 --- a/compiled/interface/IO.h +++ b/compiled/interface/IO.h @@ -13,6 +13,8 @@ #include #include #include +#include +#include /* * Very simple template wrapper around fread and fwrite with error checks @@ -59,19 +61,7 @@ void writeToFile(const T * p, FILE * ofile, size_t N=1, size_t Nbytes=0){ } template <> -void writeToFile(const std::string * p, FILE * ofile, size_t N, size_t Nbytes){ - N=p->length(); - if(!N) - return; - Nbytes = N*sizeof(char); - writeToFile(&N,ofile); - size_t ret = fwrite(p->data(), 1, Nbytes, ofile); - if(ret != Nbytes){ - std::string fname = followFileName(ofile); - fclose(ofile); - throw std::runtime_error("djc::io::writeToFile: writing to file "+fname+" not successful"); - } -} +void writeToFile(const std::string * p, FILE * ofile, size_t N, size_t Nbytes); template @@ -97,22 +87,7 @@ void readFromFile(T * p, FILE* ifile, size_t N=1, size_t Nbytes=0){ } template <> -void readFromFile(std::string * p, FILE* ifile, size_t N, size_t Nbytes){ - - readFromFile(&N,ifile); - char * c = new char[N]; - - Nbytes = N* sizeof(char); - size_t ret = fread(c, 1, Nbytes, ifile); - *p = std::string(c,N); - delete c; - - if(ret != Nbytes){ - std::string fname = followFileName(ifile); - fclose(ifile); - throw std::runtime_error("djc::io::readFromFile:reading from file "+fname+" not successful"); - } -} +void readFromFile(std::string * p, FILE* ifile, size_t N, size_t Nbytes); template diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 4534b35..70c7b84 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -45,6 +45,9 @@ class simpleArrayBase { simpleArrayBase(std::vector shape,const std::vector& rowsplits = {}); + + // virtual simpleArrayBase& operator=(simpleArrayBase &&)=0; + virtual void clear()=0; virtual void setShape(std::vector shape,const std::vector& rowsplits = {})=0; @@ -60,6 +63,8 @@ class simpleArrayBase { void setFeatureNames(const std::vector& names){featnames_=names;} const std::vector& featureNames()const{return featnames_;} + + static std::string dtypeToString(dtypes t); static dtypes stringToDtype(const std::string& s); @@ -109,6 +114,13 @@ class simpleArrayBase { virtual void cout()const=0; + + /* + * appends along first axis + * Cann append to an empty array (same as copy) + */ + virtual void append(const simpleArrayBase& a)=0; + /** * Split indices can directly be used with the split() function. * Returns elements e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} @@ -141,6 +153,31 @@ class simpleArrayBase { static std::vector splitRowSplits(std::vector & rowsplits, const size_t& splitpoint); +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS + int isize() const { + return (int)size_; + } + //does not transfer data ownership! only for quick writing etc. + virtual void assignFromNumpy(const boost::python::numpy::ndarray& ndarr, + const boost::python::numpy::ndarray& rowsplits=boost::python::numpy::empty( + boost::python::make_tuple(0), boost::python::numpy::dtype::get_builtin()))=0; + + //copy data + virtual void createFromNumpy(const boost::python::numpy::ndarray& ndarr, + const boost::python::numpy::ndarray& rowsplits=boost::python::numpy::empty( + boost::python::make_tuple(0), boost::python::numpy::dtype::get_builtin()))=0; + + //transfers data ownership and cleans simpleArray instance + virtual boost::python::tuple transferToNumpy(bool pad_rowsplits=false)=0; + + //copy data + virtual boost::python::tuple copyToNumpy(bool pad_rowsplits=false)const=0; + + virtual void setFeatureNamesPy(boost::python::list l)=0; + virtual boost::python::list featureNamesPy()=0; + +#endif + protected: std::vector shape_; std::string name_; @@ -262,8 +299,7 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera * appends along first axis * Cann append to an empty array (same as copy) */ - void append(const simpleArray& a); - + void append(const simpleArrayBase& a); /* file IO here @@ -309,9 +345,6 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS - int isize() const { - return (int)size_; - } //does not transfer data ownership! only for quick writing etc. void assignFromNumpy(const boost::python::numpy::ndarray& ndarr, const boost::python::numpy::ndarray& rowsplits=boost::python::numpy::empty( @@ -347,6 +380,8 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera void copyFrom(const simpleArray& a); void moveFrom(simpleArray && a); + void append_priv(const simpleArray& a); + #ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS @@ -707,7 +742,7 @@ simpleArray simpleArray::shuffle(const std::vector& shuffle_idxs)c * Merges along first axis */ template -void simpleArray::append(const simpleArray& a) { +void simpleArray::append_priv(const simpleArray& a) { if (!data_ && size_ == 0) { *this = a; @@ -765,6 +800,13 @@ void simpleArray::append(const simpleArray& a) { } } +template +void simpleArray::append(const simpleArrayBase& a){ + if(a.dtype() != dtype_) + throw std::runtime_error("simpleArray::append: must have same dtype"); + append(dynamic_cast &>(a)); +} + template void simpleArray::addToFileP(FILE *& ofile) const { @@ -1240,10 +1282,6 @@ boost::python::list simpleArray::featureNamesPy(){ typedef simpleArray simpleArray_float32; typedef simpleArray simpleArray_int32; -template<> -simpleArrayBase::dtypes simpleArray_float32::dtype()const{return float32;} -template<> -simpleArrayBase::dtypes simpleArray_int32::dtype()const{return int32;} }//namespace diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 8222581..2b596fb 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -31,7 +31,38 @@ namespace djc{ * and manage ownership where needed. * just wrap around std::vector */ +class typeContainer{ +public: + + void push_back(simpleArrayBase& a); + void move_back(simpleArrayBase& a); + + simpleArrayBase& at(size_t idx); + const simpleArrayBase& at(size_t idx)const; + + simpleArrayBase::dtypes dtype(size_t idx)const{return at(idx).dtype();} + + simpleArray_float32& at_asfloat32(size_t idx); + const simpleArray_float32& at_asfloat32(size_t idx)const; + simpleArray_int32& at_asint32(size_t idx); + const simpleArray_int32& at_asint32(size_t idx)const; + + void clear(); + + size_t size()const{return sorting_.size();} + + void writeToFile(FILE *&) const; + void readFromFile(FILE *&); + +private: + std::vector farrs_; + std::vector iarrs_; + + enum typesorting{isfloat,isint}; + std::vector > sorting_; + +}; /* @@ -41,7 +72,7 @@ namespace djc{ * * No checks on the first dimension because of possibly ragged arrays */ -template + class trainData{ public: @@ -49,10 +80,12 @@ class trainData{ //takes ownership //these need to be separated by input type because python does not allow for overload //but then the py interface can be made generic to accept differnt types + + //make this a base reference and then check for dtype and cast // - int storeFeatureArray( simpleArray&); - int storeTruthArray( simpleArray&); - int storeWeightArray( simpleArray&); + int storeFeatureArray( simpleArrayBase&); + int storeTruthArray( simpleArrayBase&); + int storeWeightArray( simpleArrayBase&); //these are not really used so much --> /* @@ -62,27 +95,27 @@ class trainData{ * */ - const simpleArray & featureArray(size_t idx) const { + const simpleArrayBase & featureArray(size_t idx) const { return feature_arrays_.at(idx); } - const simpleArray & truthArray(size_t idx) const { + const simpleArrayBase & truthArray(size_t idx) const { return truth_arrays_.at(idx); } - const simpleArray & weightArray(size_t idx) const { + const simpleArrayBase & weightArray(size_t idx) const { return weight_arrays_.at(idx); } - simpleArray & featureArray(size_t idx) { + simpleArrayBase & featureArray(size_t idx) { return feature_arrays_.at(idx); } - simpleArray & truthArray(size_t idx) { + simpleArrayBase & truthArray(size_t idx) { return truth_arrays_.at(idx); } - simpleArray & weightArray(size_t idx) { + simpleArrayBase & weightArray(size_t idx) { return weight_arrays_.at(idx); } @@ -100,16 +133,16 @@ class trainData{ /* * append along first axis */ - void append(const trainData& ); + void append(const trainData& ); /* * split along first axis * Returns the second part, leaves the first. */ - trainData split(size_t splitindex); - trainData getSlice(size_t splitindex_begin, size_t splitindex_end)const; + trainData split(size_t splitindex); + trainData getSlice(size_t splitindex_begin, size_t splitindex_end)const; - trainData shuffle(const std::vector& shuffle_idxs)const; + trainData shuffle(const std::vector& shuffle_idxs)const; bool validSlice(size_t splitindex_begin, size_t splitindex_end)const ; @@ -160,7 +193,7 @@ class trainData{ void clear(); - trainData copy()const {return *this;} + trainData copy()const {return *this;} //from python void skim(size_t batchelement); @@ -176,19 +209,14 @@ class trainData{ boost::python::list getTruthRaggedFlags()const; - - boost::python::list featureList(); - boost::python::list truthList(); - boost::python::list weightList(); - //has ragged support - boost::python::list transferFeatureListToNumpy(); + boost::python::list transferFeatureListToNumpy(bool padrowsplits=false); //has ragged support - boost::python::list transferTruthListToNumpy(); + boost::python::list transferTruthListToNumpy(bool padrowsplits=false); //no ragged support - boost::python::list transferWeightListToNumpy(); + boost::python::list transferWeightListToNumpy(bool padrowsplits=false); /* @@ -197,21 +225,21 @@ class trainData{ //has ragged support - boost::python::list copyFeatureListToNumpy(){ + boost::python::list copyFeatureListToNumpy(bool padrowsplits=false){ auto td = *this; - return td.transferFeatureListToNumpy(); //fast hack + return td.transferFeatureListToNumpy(padrowsplits); //fast hack } //has ragged support - boost::python::list copyTruthListToNumpy(){ + boost::python::list copyTruthListToNumpy(bool padrowsplits=false){ auto td = *this; - return td.transferTruthListToNumpy(); //fast hack + return td.transferTruthListToNumpy(padrowsplits); //fast hack } //no ragged support - boost::python::list copyWeightListToNumpy(){ + boost::python::list copyWeightListToNumpy(bool padrowsplits=false){ auto td = *this; - return td.transferWeightListToNumpy(); //fast hack + return td.transferWeightListToNumpy(padrowsplits); //fast hack } #endif @@ -222,10 +250,11 @@ class trainData{ void checkFile(FILE *& f, const std::string& filename="")const; - void writeArrayVector(const std::vector >&, FILE *&) const; - std::vector > readArrayVector(FILE *&) const; + void readRowSplitArray(FILE *&, std::vector &rs, bool check)const; - std::vector > getShapes(const std::vector >& a)const; + + std::vector > getShapes(const typeContainer& a)const; + template void writeNested(const std::vector >& v, FILE *&)const; template @@ -233,84 +262,28 @@ class trainData{ void updateShapes(); - std::vector > feature_arrays_; - std::vector > truth_arrays_; - std::vector > weight_arrays_; + + typeContainer feature_arrays_; + typeContainer truth_arrays_; + typeContainer weight_arrays_; std::vector > feature_shapes_; std::vector > truth_shapes_; std::vector > weight_shapes_; -}; +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS + boost::python::list transferToNumpyList(typeContainer& , bool pad_rowsplits); +#endif -template -int trainData::storeFeatureArray(simpleArray & a){ - size_t idx = feature_arrays_.size(); - feature_arrays_.push_back(std::move(a)); - a.clear(); - updateShapes(); - return idx; -} - +}; -template -int trainData::storeTruthArray(simpleArray& a){ - size_t idx = truth_arrays_.size(); - truth_arrays_.push_back(std::move(a)); - a.clear(); - updateShapes(); - return idx; -} -template -int trainData::storeWeightArray(simpleArray & a){ - size_t idx = weight_arrays_.size(); - weight_arrays_.push_back(std::move(a)); - a.clear(); - updateShapes(); - return idx; -} -/* - * truncate all along first axis - */ -template -void trainData::truncate(size_t position){ - *this = split(position); -} /* * append along first axis */ -template -void trainData::append(const trainData& td) { - //allow empty append - if (!feature_arrays_.size() && !truth_arrays_.size() - && !weight_arrays_.size()) { - *this = td; - return; - } - if(!td.feature_arrays_.size() && !td.truth_arrays_.size() - && !td.weight_arrays_.size()){ - return ; //nothing to do - } - if (feature_arrays_.size() != td.feature_arrays_.size() - || truth_arrays_.size() != td.truth_arrays_.size() - || weight_arrays_.size() != td.weight_arrays_.size()) { - std::cout << "nfeat " << feature_arrays_.size() << "-" << td.feature_arrays_.size() <<'\n' - << "ntruth " << truth_arrays_.size() << "-" << td.truth_arrays_.size()<<'\n' - << "nweights " << weight_arrays_.size() << "-" << td.weight_arrays_.size() <::append: format not compatible."); - } - for(size_t i=0;i::append(const trainData& td) { * * Can use some performance improvements */ -template -trainData trainData::split(size_t splitindex) { - trainData out; - for (auto& a : feature_arrays_) - out.feature_arrays_.push_back(a.split(splitindex)); - for (auto& a : truth_arrays_) - out.truth_arrays_.push_back(a.split(splitindex)); - for (auto& a : weight_arrays_) - out.weight_arrays_.push_back(a.split(splitindex)); - - updateShapes(); - out.updateShapes(); - return out; -} -template -trainData trainData::getSlice(size_t splitindex_begin, size_t splitindex_end)const{ - trainData out; - - for (const auto& a : feature_arrays_) - out.feature_arrays_.push_back(a.getSlice(splitindex_begin,splitindex_end)); - for (const auto& a : truth_arrays_) - out.truth_arrays_.push_back(a.getSlice(splitindex_begin,splitindex_end)); - for (const auto& a : weight_arrays_) - out.weight_arrays_.push_back(a.getSlice(splitindex_begin,splitindex_end)); - - out.updateShapes(); - return out; -} - -template -trainData trainData::shuffle(const std::vector& shuffle_idxs)const{ - trainData out; - - for (const auto& a : feature_arrays_) - out.feature_arrays_.push_back(a.shuffle(shuffle_idxs)); - for (const auto& a : truth_arrays_) - out.truth_arrays_.push_back(a.shuffle(shuffle_idxs)); - for (const auto& a : weight_arrays_) - out.weight_arrays_.push_back(a.shuffle(shuffle_idxs)); - - out.updateShapes(); - return out; - -} - -template -bool trainData::validSlice(size_t splitindex_begin, size_t splitindex_end)const{ - for (const auto& a : feature_arrays_) - if(! a.validSlice(splitindex_begin,splitindex_end)) - return false; - for (const auto& a : truth_arrays_) - if(! a.validSlice(splitindex_begin,splitindex_end)) - return false; - for (const auto& a : weight_arrays_) - if(! a.validSlice(splitindex_begin,splitindex_end)) - return false; - return true; -} -template -void trainData::writeToFile(std::string filename)const{ - FILE *ofile = fopen(filename.data(), "wb"); - float version = DJCDATAVERSION; - io::writeToFile(&version, ofile); - //shape infos only - writeNested(getShapes(feature_arrays_), ofile); - writeNested(getShapes(truth_arrays_), ofile); - writeNested(getShapes(weight_arrays_), ofile); - //data - writeArrayVector(feature_arrays_, ofile); - writeArrayVector(truth_arrays_, ofile); - writeArrayVector(weight_arrays_, ofile); - fclose(ofile); -} -template -void trainData::priv_readFromFile(std::string filename, bool memcp){ - clear(); - FILE *ifile = fopen(filename.data(), "rb"); - char *buf = 0; - if(memcp){ - FILE *diskfile = ifile; - //check if exists before trying to memcp. - checkFile(ifile, filename); //not set at start but won't be used - - fseek(diskfile, 0, SEEK_END); - size_t fsize = ftell(diskfile); - fseek(diskfile, 0, SEEK_SET); /* same as rewind(f); */ - - buf = new char[fsize]; - int ret = fread(buf, 1, fsize, diskfile); - if(!ret){ - delete buf; - throw std::runtime_error("trainData::readFromFile: could not read file in memcp mode"); - } - fclose(diskfile); - - ifile = fmemopen(buf,fsize,"r"); - } - checkFile(ifile, filename); - readNested(feature_shapes_, ifile); - readNested(truth_shapes_, ifile); - readNested(weight_shapes_, ifile); - feature_arrays_ = readArrayVector(ifile); - truth_arrays_ = readArrayVector(ifile); - weight_arrays_ = readArrayVector(ifile); - - fclose(ifile); - //std::cout << "read done, free"< -void trainData::readShapesFromFile(const std::string& filename){ - FILE *ifile = fopen(filename.data(), "rb"); - checkFile(ifile,filename); - - readNested(feature_shapes_, ifile); - readNested(truth_shapes_, ifile); - readNested(weight_shapes_, ifile); - - fclose(ifile); - -} - -template -std::vector trainData::getFirstRowsplits()const{ - for (auto& a : feature_arrays_) - if(a.rowsplits().size()) - return a.rowsplits(); - for (auto& a : truth_arrays_) - if(a.rowsplits().size()) - return a.rowsplits(); - return std::vector(); -} - -template -std::vector trainData::readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency){ - std::vector rowsplits; - - FILE *ifile = fopen(filename.data(), "rb"); - checkFile(ifile,filename); - - //shapes - std::vector > dummy; - readNested(feature_shapes_, ifile); - readNested(truth_shapes_, ifile); - readNested(weight_shapes_, ifile); - - //features - readRowSplitArray(ifile,rowsplits,checkConsistency); - if(!checkConsistency && rowsplits.size()){ - fclose(ifile); - return rowsplits; - } - //truth - readRowSplitArray(ifile,rowsplits,checkConsistency); - if(!checkConsistency && rowsplits.size()){ - fclose(ifile); - return rowsplits; - } - //weights - readRowSplitArray(ifile,rowsplits,checkConsistency); - - fclose(ifile); - return rowsplits; - -} - -template -void trainData::clear() { - feature_arrays_.clear(); - truth_arrays_.clear(); - weight_arrays_.clear(); - updateShapes(); -} -template -void trainData::checkFile(FILE *& ifile, const std::string& filename)const{ - if(!ifile) - throw std::runtime_error("trainData::readFromFile: file "+filename+" could not be opened."); - float version = 0; - io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION) - throw std::runtime_error("trainData::readFromFile: wrong format version"); - -} - -template -void trainData::writeArrayVector(const std::vector >& v, FILE *& ofile) const{ - - size_t size = v.size(); - io::writeToFile(&size, ofile); - for(const auto& a: v) - a.addToFileP(ofile); - -} -template -std::vector > trainData::readArrayVector(FILE *& ifile) const{ - std::vector > out; - size_t size = 0; - io::readFromFile(&size, ifile); - for(size_t i=0;i (ifile)); - return out; -} - -template -void trainData::readRowSplitArray(FILE *& ifile, std::vector &rowsplits, bool check)const{ - size_t size = 0; - io::readFromFile(&size, ifile); - for(size_t i=0;i::readRowSplitsFromFileP(ifile, true); - if(frs.size()){ - if(check){ - if(rowsplits.size() && rowsplits != frs) - throw std::runtime_error("trainData::readShapesAndRowSplitsFromFile: row splits inconsistent"); - } - rowsplits=frs; - } - } -} - -template -std::vector > trainData::getShapes(const std::vector >& a)const{ - std::vector > out; - for(const auto& arr: a) - out.push_back(arr.shape()); - return out; -} - -template template -void trainData::writeNested(const std::vector >& v, FILE *& ofile)const{ +void trainData::writeNested(const std::vector >& v, FILE *& ofile)const{ size_t size = v.size(); io::writeToFile(&size, ofile); @@ -575,9 +317,8 @@ void trainData::writeNested(const std::vector >& v, FILE *& of } -template template -void trainData::readNested(std::vector >& v, FILE *& ifile)const{ +void trainData::readNested(std::vector >& v, FILE *& ifile)const{ size_t size = 0; io::readFromFile(&size, ifile); @@ -593,201 +334,6 @@ void trainData::readNested(std::vector >& v, FILE *& ifile)con } -template -void trainData::updateShapes(){ - - feature_shapes_ = getShapes(feature_arrays_); - truth_shapes_ = getShapes(truth_arrays_); - weight_shapes_ = getShapes(weight_arrays_); - -} - -template -void trainData::skim(size_t batchelement){ - if(batchelement > nElements()) - throw std::out_of_range("trainData::skim: batch element out of range"); - for(auto & a : feature_arrays_){ - a.split(batchelement); - a=a.split(1); - } - for(auto & a : truth_arrays_){ - a.split(batchelement); - a=a.split(1); - } - for(auto & a : weight_arrays_){ - a.split(batchelement); - a=a.split(1); - } - updateShapes(); -} - - -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS - -template -boost::python::list trainData::getKerasFeatureShapes()const{ - boost::python::list out; - for(const auto& a: feature_shapes_){ - boost::python::list nlist; - bool wasragged=false; - for(size_t i=1;i -boost::python::list trainData::getKerasFeatureDTypes()const{ - boost::python::list out; - for(const auto& a: feature_shapes_){ - bool isragged=false; - for(size_t i=0;i -//boost::python::list trainData::getKerasTruthShapes()const{ -// boost::python::list out; -// for(const auto& a: truth_arrays_){ -// size_t start=1; -// if(a.isRagged()) -// start=2; -// for(size_t i=start;i -//boost::python::list trainData::getKerasWeightShapes()const{ -// boost::python::list out; -// for(const auto& a: weight_shapes_){ -// for(size_t i=1;i -boost::python::list trainData::getTruthRaggedFlags()const{ - boost::python::list out; - for(const auto& a: truth_shapes_){ - bool isragged = false; - for(const auto & s: a) - if(s<0){ - isragged=true; - break; - } - if(isragged) - out.append(true); - else - out.append(false); - } - return out; -} - - -template -boost::python::list trainData::featureList(){ - boost::python::list out; - for(auto &a: feature_arrays_) - out.append(a); - return out; -} -template -boost::python::list trainData::truthList(){ - boost::python::list out; - for(auto &a: truth_arrays_) - out.append(a); - return out; -} -template -boost::python::list trainData::weightList(){ - boost::python::list out; - for(auto &a: weight_arrays_) - out.append(a); - return out; -} - -template -boost::python::list trainData::transferFeatureListToNumpy(){ - namespace p = boost::python; - namespace np = boost::python::numpy; - p::list out; - for( auto& a: feature_arrays_){ - if(a.isRagged()){ - auto arrt = a.transferToNumpy(true);//pad row splits - out.append(arrt[0]);//data - np::ndarray rs = boost::python::extract(arrt[1]); - out.append(rs.reshape(p::make_tuple(-1,1)));//row splits - } - else - out.append(a.transferToNumpy(true)[0]); - } - return out; -} - -template -boost::python::list trainData::transferTruthListToNumpy(){ - namespace p = boost::python; - namespace np = boost::python::numpy; - - boost::python::list out; - for( auto& a: truth_arrays_){ - if(a.isRagged()){ - //auto arrt = a.transferToNumpy(false); - //boost::python::list subl; - //subl.append(arrt[0]); - //subl.append(arrt[1]); - //out.append(subl); - auto arrt = a.transferToNumpy(true);//pad row splits - out.append(arrt[0]);//data - np::ndarray rs = boost::python::extract(arrt[1]); - out.append(rs.reshape(p::make_tuple(-1,1)));//row splits - } - else{ - out.append(a.transferToNumpy(false)[0]);} - } - return out; -} - -template -boost::python::list trainData::transferWeightListToNumpy(){ - boost::python::list out; - for( auto& a: weight_arrays_){ - out.append(a.transferToNumpy()[0]); - } - return out; -} - - -#endif - /* * Array storage: diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 31bb77a..e48198b 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -48,7 +48,7 @@ namespace djc{ * * */ -template + class trainDataGenerator{ public: trainDataGenerator(); @@ -62,7 +62,11 @@ class trainDataGenerator{ orig_infiles_=files; readInfo(); } - void setBuffer(const trainData&); + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS + void setFileListPy(boost::python::list files); +#endif + void setBuffer(const trainData&); void setBatchSize(size_t nelements){ batchsize_= nelements; @@ -109,15 +113,10 @@ class trainDataGenerator{ * The batch size is always the size of the NEXT batch! * */ - trainData getBatch(); //if no threading batch index can be given? just for future? + trainData getBatch(); //if no threading batch index can be given? just for future? int debuglevel; -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS - void setFileListP(boost::python::list files){ - djc::trainDataGenerator::setFileList(toSTLVector(files)); - } -#endif private: @@ -126,9 +125,9 @@ class trainDataGenerator{ std::vector subShuffleRowSplits(const std::vector& thisrs, const std::vector& s_idx)const; void prepareSplitting(); - bool tdHasRaggedDimension(const trainData& )const; + bool tdHasRaggedDimension(const trainData& )const; - trainData prepareBatch(); + trainData prepareBatch(); std::vector orig_infiles_; std::vector shuffle_indices_; std::vector > sub_shuffle_indices_; @@ -139,7 +138,7 @@ class trainDataGenerator{ size_t batchsize_; bool sqelementslimit_,skiplargebatches_; - trainData buffer_store, buffer_read; + trainData buffer_store, buffer_read; std::thread * readthread_; std::string nextread_; size_t nextreadIdx_; @@ -155,437 +154,5 @@ class trainDataGenerator{ }; -template -trainDataGenerator::trainDataGenerator() :debuglevel(0), - randomcount_(1), batchsize_(2),sqelementslimit_(false),skiplargebatches_(true), readthread_(0), nextreadIdx_(0), filecount_(0), nbatches_( - 0), npossiblebatches_(0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), - batchcount_(0),lastbuffersplit_(0){ -} - -template -trainDataGenerator::~trainDataGenerator(){ - if(readthread_){ - readthread_->join(); - delete readthread_; - } - -} - -template -void trainDataGenerator::shuffleFilelist(){ - std::random_device rd; - std::mt19937 g(rd()); - g.seed(randomcount_); - randomcount_++; - std::shuffle(std::begin(shuffle_indices_),std::end(shuffle_indices_),g); - - for(const auto i:shuffle_indices_) - std::shuffle(std::begin(sub_shuffle_indices_.at(i)), - std::end(sub_shuffle_indices_.at(i)),g); - - //redo splits etc - prepareSplitting(); - batchcount_=0; - lastbuffersplit_=0; -} - -template -void trainDataGenerator::setBuffer(const trainData& td){ - - clear(); - if(td.featureShapes().size()<1 || td.featureShapes().at(0).size()<1) - throw std::runtime_error("trainDataGenerator::setBuffer: no features filled in trainData object"); - auto hasRagged = tdHasRaggedDimension(td); - - auto rs = td.getFirstRowsplits(); - if(rs.size()) - orig_rowsplits_.push_back(rs); - shuffle_indices_.push_back(0); - std::vector vec; - for(size_t i=0;i -void trainDataGenerator::readBuffer(){ //inject by file shuffle here - size_t ntries = 0; - std::exception caught; - while(ntries < filetimeout_){ - if(io::fileExists(nextread_)){ - try{ - if(debuglevel>0) - std::cout << "reading file " << nextread_ << std::endl; - //use mem buffered read, read whole file in one go and then decompress etc from memory - buffer_read.readFromFileBuffered(nextread_); - if(debuglevel>0) - std::cout << "reading file " << nextread_ << " done"<< std::endl; - buffer_read = buffer_read.shuffle(sub_shuffle_indices_.at(nextreadIdx_)); - return; - } - catch(std::exception & e){ //if there are data glitches we don't want the whole training fail immediately - caught=e; - std::cout << "File not "<< nextread_ <<" successfully read: " << e.what() << std::endl; - std::cout << "trying " << filetimeout_-ntries << " more time(s)" << std::endl; - ntries+=1; - } - } - sleep(1); - ntries++; - } - buffer_read.clear(); - throw std::runtime_error("trainDataGenerator::readBuffer: file "+nextread_+ " could not be read."); -} - - -template -void trainDataGenerator::readInfo(){ - ntotal_=0; - bool hasRagged=false; - bool firstfile=true; - - shuffle_indices_.resize(orig_infiles_.size()); - for(size_t i=0;i td; - - td.readShapesFromFile(f); - //first dimension is always Nelements. At least features are filled - if(td.featureShapes().size()<1 || td.featureShapes().at(0).size()<1) - throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object "+f); - - //create sub_shuffle_idxs - std::vector vec; - for(size_t i=0;i rowsplits = td.readShapesAndRowSplitsFromFile(f, firstfile);//check consistency only for first - if(debuglevel>1) - std::cout << "rowsplits.size() " <0) - std::cout << "trainDataGenerator::readInfo: total elements "<< ntotal_ < -std::vector trainDataGenerator::subShuffleRowSplits(const std::vector& thisrs, - const std::vector& s_idx)const{ - - auto nelems = simpleArray::dataSplitToSplitIndices(thisrs); - auto snelems=nelems; - //shuffle - for(size_t si=0;si::splitToDataSplitIndices(snelems); - -} - -template -void trainDataGenerator::prepareSplitting(){ - splits_.clear(); - nbatches_=0; - if(orig_rowsplits_.size()<1){//no row splits, just equal batch size except for last batch - size_t used_events=0; - while(used_events1){ - std::cout << "trainDataGenerator::prepareSplitting: splits" < allrs; - for(size_t i=0;i::mergeRowSplits(allrs,thisrs); - } - } - - if(debuglevel>1){ - std::cout << "all (first 100) row splits " << allrs.size() << std::endl; - int counter =0; - for(const auto& s: allrs){ - std::cout << s << ", " ; - if(counter>100)break; - counter++; - } - std::cout << std::endl; - } - std::vector nelems_per_split; - splits_ = simpleArray::getSplitIndices(allrs, batchsize_,sqelementslimit_ , skiplargebatches_, usebatch_, nelems_per_split); - - nbatches_=0; - npossiblebatches_=0; - for(size_t i=0;i1){ - size_t nprint = splits_.size(); - if(nprint>200)nprint=200; - for(size_t i=0;i< nprint;i++){ - std::cout << i ; - if(usebatch_.at(i)) - std::cout << " ok, split " ; - else - std::cout << " no, split "; - std::cout << splits_.at(i) << "; nelements "<< nelems_per_split.at(i)<< std::endl; - } - std::cout << std::endl; - } - -} - -template -bool trainDataGenerator::tdHasRaggedDimension(const trainData& td)const{ - for(const auto& sv: td.featureShapes()) - for(const auto& s:sv) - if(s<0) - return true; - for(const auto& sv: td.truthShapes()) - for(const auto& s:sv) - if(s<0) - return true; - for(const auto& sv: td.weightShapes()) - for(const auto& s:sv) - if(s<0) - return true; - return false; -} - - -template -bool trainDataGenerator::lastBatch()const{ - return batchcount_ >= npossiblebatches_ -1 ; -} - -template -bool trainDataGenerator::isEmpty()const{ - return batchcount_ >= splits_.size(); -} - - -template -void trainDataGenerator::prepareNextEpoch(){ - - //prepare for next epoch, pre-read first file - if(readthread_){ - readthread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way - delete readthread_; - - } - buffer_store.clear(); - buffer_read.clear(); - filecount_=0; - nsamplesprocessed_=0; - batchcount_=0; - lastbatchsize_=0; - lastbuffersplit_=0; - nextreadIdx_ = shuffle_indices_.at(filecount_); - nextread_ = orig_infiles_.at(nextreadIdx_); - filecount_++; - readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); - -} -template -void trainDataGenerator::end(){ - if(readthread_){ - readthread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way - delete readthread_; - readthread_=0; - } -} - - -template -void trainDataGenerator::clear(){ - end(); - orig_infiles_.clear(); - shuffle_indices_.clear(); - sub_shuffle_indices_.clear(); - orig_rowsplits_.clear(); - splits_.clear(); - usebatch_.clear(); - randomcount_=0; - - //batchsize_ keep batch size - //sqelementslimit_ keep - //skiplargebatches_ keep - buffer_store.clear(); - buffer_read.clear(); - - filecount_=0; - nbatches_=0; - ntotal_=0; - nsamplesprocessed_=0; - lastbatchsize_=0; - lastbuffersplit_=0; - // filetimeout_ keep - batchcount_=0; -} - -template -trainData trainDataGenerator::getBatch(){ - return prepareBatch(); -} - -template -trainData trainDataGenerator::prepareBatch(){ - if(isEmpty()){ - std::cout << "trainDataGenerator::prepareBatch: batchcount " << batchcount_ << ", available: " << splits_.size() << std::endl; - throw std::runtime_error("trainDataGenerator::prepareBatch: asking for more batches than in dataset"); - } - - size_t bufferelements=buffer_store.nElements(); - size_t expect_batchelements = splits_.at(batchcount_); - bool usebatch = true; - - if(!expect_batchelements)//sanity check - throw std::runtime_error("trainDataGenerator::prepareBatch: expected elements zero!"); - - if(usebatch_.size()) - usebatch = usebatch_.at(batchcount_); - - if(debuglevel>2) - std::cout << "expect_batchelements "<join(); - delete readthread_; - readthread_=0; - } - if(lastbuffersplit_) - if(lastbuffersplit_ != buffer_store.nElements()){ - buffer_store = buffer_store.getSlice(lastbuffersplit_,buffer_store.nElements());//cut the front part - buffer_store.append(buffer_read); - } - else{ //was used completely - buffer_store = buffer_read;//std::move(buffer_read); //possible opt. implement move for trainData fully - } - else{ //first one - buffer_store.append(buffer_read);//std::move(buffer_read); - } - buffer_read.clear(); - bufferelements = buffer_store.nElements(); - lastbuffersplit_=0; - - if(debuglevel>2) - std::cout << "nprocessed " << nsamplesprocessed_ << " file " << filecount_ << " in buffer " << bufferelements - << " file read " << nextread_ << " totalfiles " << orig_infiles_.size() - << " total events "<< ntotal_<< std::endl; - - if(nsamplesprocessed_ + bufferelements < ntotal_){ - if (filecount_ >= orig_infiles_.size()){ - std::cout << "trainDataGenerator::prepareBatch: filecount: "<< filecount_ <<" infiles "<< orig_infiles_.size()<< - " processed: "<< nsamplesprocessed_ << " buffer: "<< bufferelements << " total "<< ntotal_ << std::endl; - throw std::runtime_error( - "trainDataGenerator::prepareBatch: more file reads requested than batches in the sample"); - - } - - nextreadIdx_ = shuffle_indices_.at(filecount_); - nextread_ = orig_infiles_.at(nextreadIdx_); - - if(debuglevel>0) - std::cout << "start new read on file "<< nextread_ <::readBuffer,this); - } - } - - if( ! buffer_store.validSlice(lastbuffersplit_, lastbuffersplit_+expect_batchelements)){ - throw std::runtime_error("trainDataGenerator::prepareBatch: split error"); - } - - //auto thisbatch = buffer_store.split(expect_batchelements); - auto thisbatch = buffer_store.getSlice(lastbuffersplit_, lastbuffersplit_+expect_batchelements); - - lastbuffersplit_+=expect_batchelements; - // validSlice - - if(thisbatch.nTotalElements() < 1){ - //not sure why this can happen, there might be some bigger problem here. This at least prevents crashes. - // return prepareBatch(); - } - - if(debuglevel>2) - std::cout << "providing batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+expect_batchelements << - ", slice " << lastbuffersplit_-expect_batchelements << "-" << lastbuffersplit_ << - "\nelements in buffer before: " << bufferelements << - "\nsplitting at " << expect_batchelements << " use this batch "<< usebatch - << " total elements " << thisbatch.nTotalElements() << " elements left in buffer " << buffer_store.nElements()<< std::endl; - - if(debuglevel>3){ - int dbpcount=0; - for(const auto& s: buffer_store.featureArray(0).rowsplits()){ - std::cout << s << ", "; - if(dbpcount>50)break; - dbpcount++; - } - std::cout << std::endl; - } - - nsamplesprocessed_+=expect_batchelements; - lastbatchsize_ = expect_batchelements; - - batchcount_++; - if(! usebatch){//until valid batch - return prepareBatch(); - } - - return thisbatch; - -} - - - }//namespace #endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAGENERATOR_H_ */ diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index b1a5bd6..fdeefe0 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -17,49 +17,49 @@ using namespace djc; BOOST_PYTHON_MODULE(c_trainData) { Py_Initialize(); np::initialize(); - p::class_ >("trainData") + p::class_("trainData") - .def("storeFeatureArray", &trainData::storeFeatureArray) - .def("storeTruthArray", &trainData::storeTruthArray) - .def("storeWeightArray", &trainData::storeWeightArray) + .def("storeFeatureArray", &trainData::storeFeatureArray) + .def("storeTruthArray", &trainData::storeTruthArray) + .def("storeWeightArray", &trainData::storeWeightArray) - .def("featureList", &trainData::featureList) - .def("truthList", &trainData::truthList) - .def("weightList", &trainData::weightList) + // .def("featureList", &trainData::featureList) + // .def("truthList", &trainData::truthList) + // .def("weightList", &trainData::weightList) - .def("nFeatureArrays", &trainData::nFeatureArrays) - .def("nTruthArrays", &trainData::nTruthArrays) - .def("nWeightArrays", &trainData::nWeightArrays) + .def("nFeatureArrays", &trainData::nFeatureArrays) + .def("nTruthArrays", &trainData::nTruthArrays) + .def("nWeightArrays", &trainData::nWeightArrays) - .def("truncate", &trainData::truncate) - .def("append", &trainData::append) - .def("split", &trainData::split) - .def("nElements", &trainData::nElements) - .def("readShapesFromFile", &trainData::readShapesFromFile) + .def("truncate", &trainData::truncate) + .def("append", &trainData::append) + .def("split", &trainData::split) + .def("nElements", &trainData::nElements) + .def("readShapesFromFile", &trainData::readShapesFromFile) - .def("readFromFile", &trainData::readFromFile) - .def("readFromFileBuffered", &trainData::readFromFileBuffered) - .def("writeToFile", &trainData::writeToFile) + .def("readFromFile", &trainData::readFromFile) + .def("readFromFileBuffered", &trainData::readFromFileBuffered) + .def("writeToFile", &trainData::writeToFile) - .def("copy", &trainData::copy) - .def("clear", &trainData::clear) - .def("skim", &trainData::skim) + .def("copy", &trainData::copy) + .def("clear", &trainData::clear) + .def("skim", &trainData::skim) - .def("getKerasFeatureShapes", &trainData::getKerasFeatureShapes) - .def("getKerasFeatureDTypes", &trainData::getKerasFeatureDTypes) + .def("getKerasFeatureShapes", &trainData::getKerasFeatureShapes) + .def("getKerasFeatureDTypes", &trainData::getKerasFeatureDTypes) - .def("getTruthRaggedFlags", &trainData::getTruthRaggedFlags) - .def("transferFeatureListToNumpy", &trainData::transferFeatureListToNumpy) - .def("transferTruthListToNumpy", &trainData::transferTruthListToNumpy) - .def("transferWeightListToNumpy", &trainData::transferWeightListToNumpy) + .def("getTruthRaggedFlags", &trainData::getTruthRaggedFlags) + .def("transferFeatureListToNumpy", &trainData::transferFeatureListToNumpy) + .def("transferTruthListToNumpy", &trainData::transferTruthListToNumpy) + .def("transferWeightListToNumpy", &trainData::transferWeightListToNumpy) - .def("copyFeatureListToNumpy", &trainData::copyFeatureListToNumpy) - .def("copyTruthListToNumpy", &trainData::copyTruthListToNumpy) - .def("copyWeightListToNumpy", &trainData::copyWeightListToNumpy) + .def("copyFeatureListToNumpy", &trainData::copyFeatureListToNumpy) + .def("copyTruthListToNumpy", &trainData::copyTruthListToNumpy) + .def("copyWeightListToNumpy", &trainData::copyWeightListToNumpy) ; ; diff --git a/compiled/src/c_trainDataGenerator.C b/compiled/src/c_trainDataGenerator.C index 761fc2c..58cbe38 100644 --- a/compiled/src/c_trainDataGenerator.C +++ b/compiled/src/c_trainDataGenerator.C @@ -29,32 +29,32 @@ using namespace djc; BOOST_PYTHON_MODULE(c_trainDataGenerator) { Py_Initialize(); np::initialize(); - p::class_ >("trainDataGenerator") + p::class_("trainDataGenerator") - .def("setBatchSize", &trainDataGenerator::setBatchSize) + .def("setBatchSize", &trainDataGenerator::setBatchSize) - .def("setFileList", &trainDataGenerator::setFileListP) - .def("shuffleFilelist", &trainDataGenerator::shuffleFilelist) + .def("setFileList", &trainDataGenerator::setFileListPy) + .def("shuffleFilelist", &trainDataGenerator::shuffleFilelist) - .def("setBuffer", &trainDataGenerator::setBuffer) + .def("setBuffer", &trainDataGenerator::setBuffer) - .def("setFileTimeout", &trainDataGenerator::setFileTimeout) - .def("setSquaredElementsLimit", &trainDataGenerator::setSquaredElementsLimit) - .def("setSkipTooLargeBatches", &trainDataGenerator::setSkipTooLargeBatches) + .def("setFileTimeout", &trainDataGenerator::setFileTimeout) + .def("setSquaredElementsLimit", &trainDataGenerator::setSquaredElementsLimit) + .def("setSkipTooLargeBatches", &trainDataGenerator::setSkipTooLargeBatches) - .def("clear", &trainDataGenerator::clear) - .def("getNBatches", &trainDataGenerator::getNBatches) + .def("clear", &trainDataGenerator::clear) + .def("getNBatches", &trainDataGenerator::getNBatches) - .def("lastBatch", &trainDataGenerator::lastBatch) - .def("isEmpty", &trainDataGenerator::isEmpty) + .def("lastBatch", &trainDataGenerator::lastBatch) + .def("isEmpty", &trainDataGenerator::isEmpty) - .def("prepareNextEpoch", &trainDataGenerator::prepareNextEpoch) - .def("getBatch", &trainDataGenerator::getBatch) + .def("prepareNextEpoch", &trainDataGenerator::prepareNextEpoch) + .def("getBatch", &trainDataGenerator::getBatch) - .def("getNTotal", &trainDataGenerator::getNTotal) + .def("getNTotal", &trainDataGenerator::getNTotal) - .def_readwrite("debuglevel", &trainDataGenerator::debuglevel); + .def_readwrite("debuglevel", &trainDataGenerator::debuglevel); ; } diff --git a/compiled/to_bin/_testRaggedArray.cpp b/compiled/to_bin/_testRaggedArray.cpp deleted file mode 100644 index 5a110ae..0000000 --- a/compiled/to_bin/_testRaggedArray.cpp +++ /dev/null @@ -1,131 +0,0 @@ - - -#include -#include "../interface/quicklzWrapper.h" -#include "../interface/simpleArray.h" -#include "../interface/trainData.h" - -#include "../interface/trainDataGenerator.h" - -#include -using namespace djc; - -void coutExpected(){ - std::cout << "expected shape:\n[ \n[[0,1], [2,3]],\n[[3,4], [5,6], [7,8]],\n[[9,10]],\n[[11,12],[13,14]]\n]" << std::endl; - -} - -void coutarray(const simpleArray & farr){ - std::cout << "data size "<< farr.size() < rowsplits = {0,2,5,6,8}; - - simpleArray farr({4,-1,2},rowsplits); - - std::cout << "size " << farr.size() << std::endl; - - for(float i=0;i farr2; - farr2.readFromFile("testfile.djcd"); - - farr2.cout(); - - return 1; - - for(float i=0;i nors({20,20,3}); - nors = nors.split(10); - coutarray(nors); - nors = nors.split(5); - coutarray(nors); - nors = nors.split(1); - coutarray(nors); - std::cout << "double split ragged" < -#include "../interface/quicklzWrapper.h" -#include "../interface/simpleArray.h" -#include "../interface/trainData.h" - -#include "../interface/trainDataGenerator.h" - -#include -using namespace djc; - -void coutExpected(){ - std::cout << "expected shape:\n[ \n[[0,1], [2,3]],\n[[3,4], [5,6], [7,8]],\n[[9,10]],\n[[11,12],[13,14]]\n]" << std::endl; - -} - -void coutarray(const simpleArray & farr){ - std::cout << "data size "<< farr.size() < rowsplits = {0,2,5,6,8}; - - trainData td; - - size_t idx = td.storeFeatureArray(simpleArray({4,-1,2},rowsplits)); - - simpleArray & farr = td.featureArray(idx); - - std::cout << "size " << farr.size() << std::endl; - - for(float i=0;i td_nrs; - td_nrs.storeFeatureArray(simpleArray({100,20,20})); - td_nrs = td_nrs.split(20); - coutarray(td.featureArray(idx)); - td_nrs = td_nrs.split(10); - coutarray(td.featureArray(idx)); - td_nrs = td_nrs.split(3); - coutarray(td.featureArray(idx)); - - - td = td.split(2); - - std::cout << "split self, size after " << td.nElements() << std::endl; - coutarray(td.featureArray(idx)); - std::cout << "split self again at 1" << std::endl; - - //this segfaults.... - td = td.split(1); - std::cout << "split self, size after " << td.nElements() << std::endl; - coutarray(td.featureArray(idx)); - -#endif - -} diff --git a/compiled/to_bin/_testSimpleArrayAndTD.cpp b/compiled/to_bin/_testSimpleArrayAndTD.cpp deleted file mode 100644 index c0a6932..0000000 --- a/compiled/to_bin/_testSimpleArrayAndTD.cpp +++ /dev/null @@ -1,168 +0,0 @@ - - -#include -#include "../interface/quicklzWrapper.h" -#include "../interface/simpleArray.h" -#include "../interface/trainData.h" - -#include "../interface/trainDataGenerator.h" - -using namespace djc; - -void coutarray(const simpleArray & farr){ - std::cout << "data size "<< farr.size() < farr({5,2,1}); - for(float i=0;i ifarr; - ifarr.readFromFile("testfile_plain.djcd"); - - - - for(size_t i=0;i > vec; - vec.push_back(ar2); - - auto & var2 = vec.at(0); - - for(size_t i=0;i td; - - size_t fvidx = td.addFeatureArray( {30,2,3} ); - std::cout << fvidx << std::endl; - std::cout << td.featureArray(fvidx).size() << std::endl; - td.featureArray(fvidx).at(0,0,0) = 1; - td.featureArray(fvidx).at(0,0,1) = 1; - td.featureArray(fvidx).at(0,1,0) = 1; - td.featureArray(fvidx).at(1,0,0) = 1; - td.featureArray(fvidx).at(1,1,0) = 1; - td.featureArray(fvidx).at(2,1,2) = 2; - - std::cout << "print "<< std::endl; - - for(size_t i=0;i td2; - td2.readFromFile("tempfile.djctd"); - - std::cout << "read "<< std::endl; - - for(size_t i=0;i bigtd; - - size_t fidx = bigtd.addFeatureArray({1000, 4000, 10}); - for(size_t i=0;i rbig; - rbig.readFromFile("bigfile.djctd"); - std::cout << "done reading file "<< std::endl; - -#endif -} diff --git a/compiled/to_bin/_testSimpleArrayShuffle.cpp b/compiled/to_bin/_testSimpleArrayShuffle.cpp deleted file mode 100644 index 58b3ba6..0000000 --- a/compiled/to_bin/_testSimpleArrayShuffle.cpp +++ /dev/null @@ -1,69 +0,0 @@ - - -#include "../interface/simpleArray.h" -#include - -int main(){ - - using namespace djc; - - std::vector v={2,3,4,52,35,67,3}; - - for(auto vv:v) - std::cout << "v " << vv << std::endl; - - auto rs = simpleArray::splitToDataSplitIndices(v); - - for(auto rss:rs) - std::cout << "rs " << rss << std::endl; - - auto v2 = simpleArray::dataSplitToSplitIndices(rs); - - for(auto vv:v2) - std::cout << "v2 " << vv << std::endl; - - - //test non ragged shuffle - - simpleArray farr({5,2,1}); - for(float i=0;i rowsplits = {0,2,5,6,8}; - - farr=simpleArray ({4,-1,2},rowsplits); - - std::cout << "size " << farr.size() << std::endl; - - for(float i=0;i Date: Sat, 6 Feb 2021 20:13:38 +0100 Subject: [PATCH 329/437] some fixes --- TrainData.py | 2 +- compiled/interface/simpleArray.h | 42 ++++++++++++-------------------- compiled/src/c_simpleArray.C | 4 +-- 3 files changed, 18 insertions(+), 30 deletions(-) diff --git a/TrainData.py b/TrainData.py index a8c4424..8b7f2fd 100644 --- a/TrainData.py +++ b/TrainData.py @@ -57,7 +57,7 @@ def readIn(self,fileprefix,shapesOnly=False): def _maybeConvertToSimpleArray(self,a): - if str(type(a)) == "": + if str(type(a)) == "": return a elif str(type(a)) == "" or str(type(a)) == "": rs = np.array([]) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 70c7b84..66943d7 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -39,7 +39,6 @@ class simpleArrayBase { enum dtypes{float32,int32,undef}; simpleArrayBase():size_(0),assigned_(false) { - dtype_= dtype(); } virtual ~simpleArrayBase(){} @@ -114,12 +113,7 @@ class simpleArrayBase { virtual void cout()const=0; - - /* - * appends along first axis - * Cann append to an empty array (same as copy) - */ - virtual void append(const simpleArrayBase& a)=0; + virtual void append(const simpleArrayBase& )=0; /** * Split indices can directly be used with the split() function. @@ -186,7 +180,6 @@ class simpleArrayBase { std::vector rowsplits_; size_t size_; bool assigned_; - dtypes dtype_; size_t sizeFromShape(const std::vector& shape) const; @@ -233,7 +226,7 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera simpleArray(simpleArray &&); simpleArray& operator=(simpleArray &&); - dtypes dtype()const{return undef;} + dtypes dtype()const; bool operator==(const simpleArray& rhs)const; bool operator!=(const simpleArray& rhs)const { return !(*this == rhs); } @@ -299,7 +292,9 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera * appends along first axis * Cann append to an empty array (same as copy) */ - void append(const simpleArrayBase& a); + void append(const simpleArray& a); + void append(const simpleArrayBase& ); + /* file IO here @@ -380,7 +375,6 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera void copyFrom(const simpleArray& a); void moveFrom(simpleArray && a); - void append_priv(const simpleArray& a); @@ -401,20 +395,17 @@ template simpleArray::simpleArray() : simpleArrayBase(), data_(0) { - dtype_= dtype(); } template simpleArray::simpleArray(std::vector shape,const std::vector& rowsplits) : simpleArrayBase(shape,rowsplits) { data_ = new T[size_]; - dtype_= dtype(); } template simpleArray::simpleArray(FILE *& ifile):simpleArray(){ data_=0; - dtype_= dtype(); readFromFileP(ifile); assigned_=false; } @@ -444,7 +435,6 @@ simpleArray::simpleArray(simpleArray && a) : return;} if (data_&& !assigned_) delete data_; - dtype_=a.dtype_; name_=a.name_; featnames_=a.featnames_; data_ = a.data_; @@ -466,7 +456,6 @@ simpleArray& simpleArray::operator=(simpleArray && a) { return *this; if (data_ && !assigned_) delete data_; - dtype_=a.dtype_; name_=a.name_; featnames_=a.featnames_; data_ = a.data_; @@ -485,7 +474,7 @@ template bool simpleArray::operator==(const simpleArray& rhs)const{ if(this == &rhs) return true; - if(dtype_!=rhs.dtype_) + if(dtype() !=rhs.dtype()) return false; if(name_!=rhs.name_) return false; @@ -742,7 +731,7 @@ simpleArray simpleArray::shuffle(const std::vector& shuffle_idxs)c * Merges along first axis */ template -void simpleArray::append_priv(const simpleArray& a) { +void simpleArray::append(const simpleArray& a) { if (!data_ && size_ == 0) { *this = a; @@ -801,20 +790,20 @@ void simpleArray::append_priv(const simpleArray& a) { } template -void simpleArray::append(const simpleArrayBase& a){ - if(a.dtype() != dtype_) - throw std::runtime_error("simpleArray::append: must have same dtype"); - append(dynamic_cast &>(a)); +void simpleArray::append(const simpleArrayBase& arr){ + if(dtype() != arr.dtype()) + throw std::runtime_error("simpleArray::append: needs to be same dtype"); + append(dynamic_cast &>(arr)); } + template void simpleArray::addToFileP(FILE *& ofile) const { - - float version = DJCDATAVERSION; io::writeToFile(&version, ofile); - io::writeToFile(&dtype_, ofile); + auto tdtype = dtype(); + io::writeToFile(&tdtype, ofile); io::writeToFile(&name_, ofile); io::writeToFile(&featnames_, ofile); io::writeToFile(&size_, ofile); @@ -850,7 +839,7 @@ void simpleArray::readFromFileP(FILE *& ifile) { io::readFromFile(&name_, ifile); io::readFromFile(&featnames_, ifile); } - if(rdtype!=dtype_) + if(rdtype!=dtype()) throw std::runtime_error("simpleArray::readFromFileP: wrong dtype"); io::readFromFile(&size_, ifile); @@ -933,7 +922,6 @@ void simpleArray::copyFrom(const simpleArray& a) { } if (data_&& !assigned_) delete data_; - dtype_= a.dtype_; name_=a.name_; featnames_=a.featnames_; data_ = new T[a.size_]; diff --git a/compiled/src/c_simpleArray.C b/compiled/src/c_simpleArray.C index 5ab85d8..91f77f8 100644 --- a/compiled/src/c_simpleArray.C +++ b/compiled/src/c_simpleArray.C @@ -48,7 +48,7 @@ BOOST_PYTHON_MODULE(c_simpleArray) { .def("isRagged", &simpleArray_float32::isRagged) .def("split", &simpleArray_float32::split) .def("getSlice", &simpleArray_float32::getSlice) - .def("append", &simpleArray_float32::append) + .def("append", &simpleArray_float32::append) //just use the explicit one here .def("cout", &simpleArray_float32::cout) .def("size", &simpleArray_float32::isize); ; @@ -73,7 +73,7 @@ BOOST_PYTHON_MODULE(c_simpleArray) { .def("isRagged", &simpleArray_int32::isRagged) .def("split", &simpleArray_int32::split) .def("getSlice", &simpleArray_int32::getSlice) - .def("append", &simpleArray_int32::append) + .def("append", &simpleArray_int32::append) //just use the explicit one here .def("cout", &simpleArray_int32::cout) .def("size", &simpleArray_int32::isize); ; From 0be7ee22c6415a98c78f1ee734f72ac0187b87c7 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 6 Feb 2021 20:14:08 +0100 Subject: [PATCH 330/437] finally the source files --- compiled/src/IO.cpp | 42 +++ compiled/src/simpleArray.cpp | 326 +++++++++++++++++ compiled/src/trainData.cpp | 541 ++++++++++++++++++++++++++++ compiled/src/trainDataGenerator.cpp | 422 ++++++++++++++++++++++ 4 files changed, 1331 insertions(+) create mode 100644 compiled/src/IO.cpp create mode 100644 compiled/src/simpleArray.cpp create mode 100644 compiled/src/trainData.cpp create mode 100644 compiled/src/trainDataGenerator.cpp diff --git a/compiled/src/IO.cpp b/compiled/src/IO.cpp new file mode 100644 index 0000000..e425df0 --- /dev/null +++ b/compiled/src/IO.cpp @@ -0,0 +1,42 @@ +#include "../interface/IO.h" + + +namespace djc{ +namespace io{ + +template <> +void writeToFile(const std::string * p, FILE * ofile, size_t N, size_t Nbytes){ + N=p->length(); + if(!N) + return; + Nbytes = N*sizeof(char); + writeToFile(&N,ofile); + size_t ret = fwrite(p->data(), 1, Nbytes, ofile); + if(ret != Nbytes){ + std::string fname = followFileName(ofile); + fclose(ofile); + throw std::runtime_error("djc::io::writeToFile: writing to file "+fname+" not successful"); + } +} + + +template <> +void readFromFile(std::string * p, FILE* ifile, size_t N, size_t Nbytes){ + + readFromFile(&N,ifile); + char * c = new char[N]; + + Nbytes = N* sizeof(char); + size_t ret = fread(c, 1, Nbytes, ifile); + *p = std::string(c,N); + delete c; + + if(ret != Nbytes){ + std::string fname = followFileName(ifile); + fclose(ifile); + throw std::runtime_error("djc::io::readFromFile:reading from file "+fname+" not successful"); + } +} + +}//ns +}//ns diff --git a/compiled/src/simpleArray.cpp b/compiled/src/simpleArray.cpp new file mode 100644 index 0000000..d9e2c58 --- /dev/null +++ b/compiled/src/simpleArray.cpp @@ -0,0 +1,326 @@ +#include "../interface/simpleArray.h" +#include + + +namespace djc{ +/** + * Split indices can directly be used with the split() function. + * Returns e.g. {2,5,3,2}, which corresponds to DataSplitIndices of {2,7,10,12} + */ + +std::vector simpleArrayBase::getSplitIndices(const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit, bool strict_limit, std::vector& size_ok, std::vector& nelemtns_per_split){ + return priv_getSplitIndices(false, rowsplits, nelements_limit, sqelementslimit, size_ok, nelemtns_per_split,strict_limit); +} + +/** + * Split indices can directly be used with the split() function. + * Returns row splits e.g. {2,7,10,12} which corresponds to Split indices of {2,5,3,2} + */ + + +std::vector simpleArrayBase::getDataSplitIndices(const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit, bool strict_limit, std::vector& size_ok, std::vector& nelemtns_per_split){ + return priv_getSplitIndices(true, rowsplits, nelements_limit, sqelementslimit, size_ok, nelemtns_per_split,strict_limit); +} + +/** + * Transforms row splits to n_elements per ragged sample + */ + +std::vector simpleArrayBase::dataSplitToSplitIndices(const std::vector& row_splits){ + if(!row_splits.size()) + throw std::runtime_error("simpleArrayBase::dataSplitToSplitIndices: row splits empty"); + auto out = std::vector(row_splits.size()-1); + for(size_t i=0;i simpleArrayBase::splitToDataSplitIndices(const std::vector& n_elements){ + auto out = std::vector(n_elements.size()+1); + out.at(0)=0; + int64_t last=0; + for(size_t i=0;i shape,const std::vector& rowsplits) { + assigned_=false; + shape_ = shape; + if(rowsplits.size()){ + if(rowsplits.size() != shape_.at(0)+1) + throw std::runtime_error("simpleArrayBase::simpleArray: rowsplits.size() must equal shape[0] + 1"); + + rowsplits_=rowsplits; + shape_ = shapeFromRowsplits(); + } + size_ = sizeFromShape(shape_); +} + + + +std::string simpleArrayBase::dtypeToString(dtypes t){ + if(t==float32) + return "float32"; + else if(t==int32) + return "int32"; + else + return "undef"; +} +simpleArrayBase::dtypes simpleArrayBase::stringToDtype(const std::string& s){ + if(s=="float32") + return float32; + else if(s=="int32") + return int32; + else + throw std::runtime_error("simpleArrayBase::dtypes simpleArrayBase::stringToDtype unknown dtype"); +} + +std::string simpleArrayBase::readDtypeFromFileP(FILE *& ifile)const{ + long pos = ftell(ifile); + + float version = 0; + io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION){ + if(version != 2.0f)//compat + throw std::runtime_error("simpleArrayBase::readDtypeFromFileP: wrong format version"); + } + dtypes dt=float32; + if(version != 2.0f) + io::readFromFile(&dt, ifile); + fseek(ifile,pos-ftell(ifile),SEEK_CUR);//go back + return dtypeToString(dt); +} + +std::string simpleArrayBase::readDtypeFromFile(const std::string& f)const{ + FILE *ifile = fopen(f.data(), "rb"); + if(!ifile) + throw std::runtime_error("simpleArrayBase::readDtypeFromFileP: file "+f+" could not be opened."); + float version = 0; + io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION && version != 2.0f) + throw std::runtime_error("simpleArrayBase::readDtypeFromFileP: wrong format version"); + auto type = readDtypeFromFileP(ifile); + fclose(ifile); + return type; +} + + +std::vector simpleArrayBase::readRowSplitsFromFileP(FILE *& ifile, bool seeknext){ + + float version = 0; + size_t size; + std::vector shape; + std::vector rowsplits; + io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION) + throw std::runtime_error("simpleArrayBase::readRowSplitsFromFileP: wrong format version"); + + io::readFromFile(&size, ifile); + + size_t shapesize = 0; + io::readFromFile(&shapesize, ifile); + shape = std::vector(shapesize, 0); + io::readFromFile(&shape[0], ifile, shapesize); + + size_t rssize = 0; + io::readFromFile(&rssize, ifile); + rowsplits = std::vector(rssize, 0); + + if(rssize){ + quicklz iqlz; + iqlz.readAll(ifile, &rowsplits[0]); + } + if(seeknext){ + quicklz qlz;//template arg does not matter here + qlz.skipBlock(ifile);//sets file point to next item + } + return rowsplits; +} + + +std::vector simpleArrayBase::mergeRowSplits(const std::vector & rowsplitsa, const std::vector & rowsplitsb){ + if(rowsplitsb.size()<1) + return rowsplitsa; + if(rowsplitsa.size()<1) + return rowsplitsb; + std::vector out=rowsplitsa; + out.resize(out.size() + rowsplitsb.size()-1); + int64_t lasta = rowsplitsa.at(rowsplitsa.size()-1); + + for(size_t i=0;i simpleArrayBase::splitRowSplits(std::vector & rowsplits, const size_t& splitpoint){ + + if(splitpoint >= rowsplits.size()) + throw std::out_of_range("simpleArrayBase::splitRowSplits: split index out of range"); + + int64_t rsatsplitpoint = rowsplits.at(splitpoint); + std::vector out = std::vector (rowsplits.begin(),rowsplits.begin()+splitpoint+1); + std::vector rhs = std::vector(rowsplits.size()-splitpoint); + for(size_t i=0;i simpleArrayBase::priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, + bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split, bool strict_limit){ + + std::vector outIdxs; + size_ok.clear(); + nelemtns_per_split.clear(); + if(rowsplits.size()<1) + return outIdxs; + + size_t i_old=0; + size_t s_old = 0; + size_t i_s = 0; + while (true) { + + size_t s = rowsplits.at(i_s); + size_t delta = s - s_old; + size_t i_splitat = rowsplits.size()+1; + + if (sqelementslimit) + delta *= delta; + + if (delta > nelements_limit && i_s != i_old+1) { + i_splitat = i_s - 1; + i_s--; + } + else if (delta == nelements_limit || + i_s == rowsplits.size() - 1 || + (delta > nelements_limit && i_s == i_old+1)) { + i_splitat = i_s; + } + + + if (i_splitat < rowsplits.size() ) { //split + + if(i_splitat==i_old){ + //sanity check, should not happen + std::cout <<"simpleArrayBase::priv_getSplitIndices: attempting empty split at " << i_splitat << std::endl; + throw std::runtime_error("simpleArrayBase::priv_getSplitIndices: attempting empty split"); + } + + + size_t nelements = rowsplits.at(i_splitat) - rowsplits.at(i_old); + bool is_good = (!strict_limit || nelements <= nelements_limit) && nelements>0;//safety for zero element splits + size_ok.push_back(is_good); + nelemtns_per_split.push_back(nelements); + + if(datasplit) + outIdxs.push_back(i_splitat); + else + outIdxs.push_back(i_splitat - i_old); + + + //std::cout << "i_old " << i_old << "\n"; + //std::cout << "i_s " << i_s << "\n"; + //std::cout << "s_old " << s_old << "\n"; + //std::cout << "s " << s << "\n"; + //std::cout << "i_splitat " << i_splitat << "\n"; + //std::cout << "is_good " << is_good << "\n"; + //std::cout << "i_splitat - i_old " << i_splitat - i_old << "\n"; + //std::cout << std::endl; + + i_old = i_splitat; + s_old = rowsplits.at(i_old); + //i_s = i_splitat; + + } + i_s++; + if(i_s >= rowsplits.size()) + break; + } + + return outIdxs; +} + + +void simpleArrayBase::getFlatSplitPoints(size_t splitindex_begin, size_t splitindex_end, + size_t & splitpoint_start, size_t & splitpoint_end)const{ + splitpoint_start = splitindex_begin; + splitpoint_end = splitindex_end; + if(isRagged()){ + splitpoint_start = rowsplits_.at(splitindex_begin); + splitpoint_end = rowsplits_.at(splitindex_end); + for (size_t i = 2; i < shape_.size(); i++){ + splitpoint_start *= (size_t)std::abs(shape_.at(i)); + splitpoint_end *= (size_t)std::abs(shape_.at(i)); + } + } + else{ + for (size_t i = 1; i < shape_.size(); i++){ + splitpoint_start *= (size_t)std::abs(shape_.at(i)); + splitpoint_end *= (size_t)std::abs(shape_.at(i)); + } + } +} + + + +size_t simpleArrayBase::sizeFromShape(const std::vector& shape) const { + int64_t size = 1; + for (const auto s : shape){ + size *= std::abs(s); + if(s<0) + size=std::abs(s);//first ragged dimension has the full size of previous dimensions + } + return size; +} + + +std::vector simpleArrayBase::shapeFromRowsplits()const{ + if(!isRagged()) return shape_; + if(shape_.size()<2) return shape_; + auto outshape = shape_; + //rowsplits.size = nbatch+1 + outshape.at(1) = - (int)rowsplits_.at(rowsplits_.size()-1); + return outshape; +} + + +void simpleArrayBase::checkShape(size_t ndims)const{ + //rowsplit ready due to definiton of shape + if(ndims != shape_.size()){ + throw std::out_of_range("simpleArrayBase::checkShape: shape does not match dimensions accessed"); + } +} + + +void simpleArrayBase::checkSize(size_t idx)const{ + if(idx >= size_) + throw std::out_of_range("simpleArrayBase::checkSize: index out of range"); +} + + +void simpleArrayBase::checkRaggedIndex(size_t i, size_t j)const{ + if(i > rowsplits_.size()-1 || j >= rowsplits_.at(i+1)-rowsplits_.at(i)) + throw std::out_of_range("simpleArrayBase::checkRaggedIndex: index out of range"); +} + + +template<> +simpleArrayBase::dtypes simpleArray_float32::dtype()const{return float32;} +template<> +simpleArrayBase::dtypes simpleArray_int32::dtype()const{return int32;} + +}//ns diff --git a/compiled/src/trainData.cpp b/compiled/src/trainData.cpp new file mode 100644 index 0000000..a6256d4 --- /dev/null +++ b/compiled/src/trainData.cpp @@ -0,0 +1,541 @@ +#include "../interface/trainData.h" + + +namespace djc{ + +/* + * + std::vector farrs_; + std::vector iarrs_; + + enum typesorting{isfloat,isint}; + std::vector > sorting_; + */ + +void typeContainer::push_back(simpleArrayBase& a){ + if(a.dtype() == simpleArrayBase::float32){ + farrs_.push_back(dynamic_cast(a)); + sorting_.push_back({isfloat,farrs_.size()-1}); + } + else {//if(a.dtype() == simpleArrayBase::int32){ + iarrs_.push_back(dynamic_cast(a)); + sorting_.push_back({isint,iarrs_.size()-1}); + } +} +void typeContainer::move_back(simpleArrayBase& a){ + if(a.dtype() == simpleArrayBase::float32){ + farrs_.push_back(std::move(dynamic_cast(a))); + sorting_.push_back({isfloat,farrs_.size()-1}); + } + else {//if(a.dtype() == simpleArrayBase::int32){ + iarrs_.push_back(std::move(dynamic_cast(a))); + sorting_.push_back({isint,iarrs_.size()-1}); + } +} +simpleArrayBase& typeContainer::at(size_t idx){ + if(idx>=sorting_.size()) + throw std::out_of_range("typeContainer::at: requested "+std::to_string(idx)+" of "+std::to_string(sorting_.size())); + auto s = sorting_.at(idx); + if(s.first == isfloat) + return farrs_.at(s.second); + else //if(s.first == isint) + return iarrs_.at(s.second); + +} +const simpleArrayBase& typeContainer::at(size_t idx)const{ + if(idx>=sorting_.size()) + throw std::out_of_range("typeContainer::at: requested "+std::to_string(idx)+" of "+std::to_string(sorting_.size())); + auto s = sorting_.at(idx); + if(s.first == isfloat) + return farrs_.at(s.second); + else //if(s.first == isint) + return iarrs_.at(s.second); +} + + +simpleArray_float32& typeContainer::at_asfloat32(size_t idx){ + if(at(idx).dtype() != simpleArrayBase::float32) + throw std::runtime_error("typeContainer::at_asfloat32: is not float32"); + return dynamic_cast(at(idx)); +} + +const simpleArray_float32& typeContainer::at_asfloat32(size_t idx)const{ + if(at(idx).dtype() != simpleArrayBase::float32) + throw std::runtime_error("typeContainer::at_asfloat32: is not float32"); + return dynamic_cast(at(idx)); +} + +simpleArray_int32& typeContainer::at_asint32(size_t idx){ + if(at(idx).dtype() != simpleArrayBase::int32) + throw std::runtime_error("typeContainer::at_asfloat32: is not float32"); + return dynamic_cast(at(idx)); +} + +const simpleArray_int32& typeContainer::at_asint32(size_t idx)const{ + if(at(idx).dtype() != simpleArrayBase::int32) + throw std::runtime_error("typeContainer::at_asfloat32: is not float32"); + return dynamic_cast(at(idx)); +} + + +void typeContainer::clear(){ + farrs_.clear(); + iarrs_.clear(); + sorting_.clear(); +} + +void typeContainer::writeToFile(FILE *& ofile) const{ + size_t isize=size(); + io::writeToFile(&isize,ofile); + for(const auto& i: sorting_){ + if(i.first == isfloat){ + farrs_.at(i.second).addToFileP(ofile); + } + else {// if(i.first == isint){ + iarrs_.at(i.second).addToFileP(ofile); + } + } +} + +void typeContainer::readFromFile(FILE *& ifile){ + clear(); + size_t isize = 0; + io::readFromFile(&isize,ifile); + for(size_t i=0;i::append: format not compatible."); + } + for(size_t i=0;i > vv = { + {&feature_arrays_, &out.feature_arrays_}, + {&truth_arrays_, &out.truth_arrays_}, + {&weight_arrays_, &out.weight_arrays_}}; + for(auto& a: vv){ + for (size_t i=0;isize();i++){ + if(a.first->dtype(i) == simpleArrayBase::float32){ + auto split = a.first->at_asfloat32(i).split(splitindex); + a.second->push_back(split); + } + else if(a.first->dtype(i) == simpleArrayBase::int32){ + auto split = a.first->at_asint32(i).split(splitindex); + a.second->push_back(split); + } + } + } + + updateShapes(); + out.updateShapes(); + return out; +} + +trainData trainData::getSlice(size_t splitindex_begin, size_t splitindex_end)const{ + trainData out; + + + std::vector > vv = { + {&feature_arrays_, &out.feature_arrays_}, + {&truth_arrays_, &out.truth_arrays_}, + {&weight_arrays_, &out.weight_arrays_}}; + for(auto& a: vv){ + for (size_t i=0;isize();i++){ + if(a.first->dtype(i) == simpleArrayBase::float32){ + auto split = a.first->at_asfloat32(i).getSlice(splitindex_begin,splitindex_end); + a.second->push_back(split); + } + else if(a.first->dtype(i) == simpleArrayBase::int32){ + auto split = a.first->at_asint32(i).getSlice(splitindex_begin,splitindex_end); + a.second->push_back(split); + } + } + } + + out.updateShapes(); + return out; +} + +trainData trainData::shuffle(const std::vector& shuffle_idxs)const{ + trainData out; + std::vector > vv = { + {&feature_arrays_, &out.feature_arrays_}, + {&truth_arrays_, &out.truth_arrays_}, + {&weight_arrays_, &out.weight_arrays_}}; + for(auto& a: vv){ + for (size_t i=0;isize();i++){ + if(a.first->dtype(i) == simpleArrayBase::float32){ + auto split = a.first->at_asfloat32(i).shuffle(shuffle_idxs); + a.second->push_back(split); + } + else if(a.first->dtype(i) == simpleArrayBase::int32){ + auto split = a.first->at_asint32(i).shuffle(shuffle_idxs); + a.second->push_back(split); + } + } + } + + out.updateShapes(); + return out; + +} + +bool trainData::validSlice(size_t splitindex_begin, size_t splitindex_end)const{ + + const std::vector vv = {&feature_arrays_, &truth_arrays_, &weight_arrays_}; + for(const auto& a: vv) + for (size_t i=0;isize();i++) + if(! a->at(i).validSlice(splitindex_begin,splitindex_end)) + return false; + + return true; +} + +void trainData::writeToFile(std::string filename)const{ + + FILE *ofile = fopen(filename.data(), "wb"); + float version = DJCDATAVERSION; + io::writeToFile(&version, ofile); + + //shape infos only + writeNested(getShapes(feature_arrays_), ofile); + writeNested(getShapes(truth_arrays_), ofile); + writeNested(getShapes(weight_arrays_), ofile); + + //data + feature_arrays_.writeToFile(ofile); + truth_arrays_.writeToFile(ofile); + weight_arrays_.writeToFile(ofile); + fclose(ofile); + +} + +void trainData::priv_readFromFile(std::string filename, bool memcp){ + clear(); + FILE *ifile = fopen(filename.data(), "rb"); + char *buf = 0; + if(memcp){ + FILE *diskfile = ifile; + //check if exists before trying to memcp. + checkFile(ifile, filename); //not set at start but won't be used + + fseek(diskfile, 0, SEEK_END); + size_t fsize = ftell(diskfile); + fseek(diskfile, 0, SEEK_SET); /* same as rewind(f); */ + + buf = new char[fsize]; + int ret = fread(buf, 1, fsize, diskfile); + if(!ret){ + delete buf; + throw std::runtime_error("trainData::readFromFile: could not read file in memcp mode"); + } + fclose(diskfile); + + ifile = fmemopen(buf,fsize,"r"); + } + + checkFile(ifile, filename); + readNested(feature_shapes_, ifile); + readNested(truth_shapes_, ifile); + readNested(weight_shapes_, ifile); + + feature_arrays_ .readFromFile(ifile); + truth_arrays_.readFromFile(ifile); + weight_arrays_.readFromFile(ifile); + + fclose(ifile); + if(buf){ + delete buf; + } + +} + +void trainData::readShapesFromFile(const std::string& filename){ + + FILE *ifile = fopen(filename.data(), "rb"); + checkFile(ifile,filename); + + readNested(feature_shapes_, ifile); + readNested(truth_shapes_, ifile); + readNested(weight_shapes_, ifile); + + fclose(ifile); + +} + +std::vector trainData::getFirstRowsplits()const{ + + const std::vector vv = {&feature_arrays_, &truth_arrays_, &weight_arrays_}; + for(const auto& a: vv) + for (size_t i=0;isize();i++) + if(a->at(i).rowsplits().size()) + return a->at(i).rowsplits(); + + return std::vector(); +} + +std::vector trainData::readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency){ + std::vector rowsplits; + + FILE *ifile = fopen(filename.data(), "rb"); + checkFile(ifile,filename); + + //shapes + std::vector > dummy; + readNested(feature_shapes_, ifile); + readNested(truth_shapes_, ifile); + readNested(weight_shapes_, ifile); + + //features + readRowSplitArray(ifile,rowsplits,checkConsistency); + if(!checkConsistency && rowsplits.size()){ + fclose(ifile); + return rowsplits; + } + //truth + readRowSplitArray(ifile,rowsplits,checkConsistency); + if(!checkConsistency && rowsplits.size()){ + fclose(ifile); + return rowsplits; + } + //weights + readRowSplitArray(ifile,rowsplits,checkConsistency); + + fclose(ifile); + return rowsplits; + +} + +void trainData::clear() { + feature_arrays_.clear(); + truth_arrays_.clear(); + weight_arrays_.clear(); + updateShapes(); +} + +void trainData::checkFile(FILE *& ifile, const std::string& filename)const{ + if(!ifile) + throw std::runtime_error("trainData::readFromFile: file "+filename+" could not be opened."); + float version = 0; + io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION) + if(version !=2.0f) + throw std::runtime_error("trainData::readFromFile: wrong format version"); + +} + +void trainData::readRowSplitArray(FILE *& ifile, std::vector &rowsplits, bool check)const{ + size_t size = 0; + io::readFromFile(&size, ifile); + for(size_t i=0;i > trainData::getShapes(const typeContainer& a)const{ + std::vector > out; + for(size_t i=0;i nElements()) + throw std::out_of_range("trainData::skim: batch element out of range"); + + std::vector< typeContainer* > vv = {&feature_arrays_, &truth_arrays_, &weight_arrays_}; + for(const auto& a: vv) + for (size_t i=0;isize();i++){ + if(a->dtype(i) == simpleArrayBase::float32){ + a->at_asfloat32(i).split(batchelement); + a->at(i)=a->at_asfloat32(i).split(1); + } + } + + updateShapes(); +} + + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS + +boost::python::list trainData::getKerasFeatureShapes()const{ + boost::python::list out; + for(const auto& a: feature_shapes_){ + boost::python::list nlist; + bool wasragged=false; + for(size_t i=1;i(arrt[1]); + out.append(rs.reshape(p::make_tuple(-1,1)));//row splits + } + else + out.append(a.transferToNumpy(false)[0]); + } + return out; +} + + +boost::python::list trainData::transferFeatureListToNumpy(bool padrowsplits){ + return transferToNumpyList(feature_arrays_,padrowsplits); +} + +boost::python::list trainData::transferTruthListToNumpy(bool padrowsplits){ + return transferToNumpyList(truth_arrays_,padrowsplits); +} + +boost::python::list trainData::transferWeightListToNumpy(bool padrowsplits){ + return transferToNumpyList(weight_arrays_,padrowsplits); +} +#endif //python bindings + +}//ns diff --git a/compiled/src/trainDataGenerator.cpp b/compiled/src/trainDataGenerator.cpp new file mode 100644 index 0000000..d315bd5 --- /dev/null +++ b/compiled/src/trainDataGenerator.cpp @@ -0,0 +1,422 @@ +#include "../interface/trainDataGenerator.h" + +namespace djc{ + + +trainDataGenerator::trainDataGenerator() :debuglevel(0), + randomcount_(1), batchsize_(2),sqelementslimit_(false),skiplargebatches_(true), readthread_(0), nextreadIdx_(0), filecount_(0), nbatches_( + 0), npossiblebatches_(0), ntotal_(0), nsamplesprocessed_(0),lastbatchsize_(0),filetimeout_(10), + batchcount_(0),lastbuffersplit_(0){ +} + +trainDataGenerator::~trainDataGenerator(){ + if(readthread_){ + readthread_->join(); + delete readthread_; + } + +} + +#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS +void trainDataGenerator::setFileListPy(boost::python::list files){ + trainDataGenerator::setFileList(toSTLVector(files)); +} +#endif + +void trainDataGenerator::shuffleFilelist(){ + std::random_device rd; + std::mt19937 g(rd()); + g.seed(randomcount_); + randomcount_++; + std::shuffle(std::begin(shuffle_indices_),std::end(shuffle_indices_),g); + + for(const auto i:shuffle_indices_) + std::shuffle(std::begin(sub_shuffle_indices_.at(i)), + std::end(sub_shuffle_indices_.at(i)),g); + + //redo splits etc + prepareSplitting(); + batchcount_=0; + lastbuffersplit_=0; +} + +void trainDataGenerator::setBuffer(const trainData& td){ + + clear(); + if(td.featureShapes().size()<1 || td.featureShapes().at(0).size()<1) + throw std::runtime_error("trainDataGenerator::setBuffer: no features filled in trainData object"); + auto hasRagged = tdHasRaggedDimension(td); + + auto rs = td.getFirstRowsplits(); + if(rs.size()) + orig_rowsplits_.push_back(rs); + shuffle_indices_.push_back(0); + std::vector vec; + for(size_t i=0;i0) + std::cout << "reading file " << nextread_ << std::endl; + //use mem buffered read, read whole file in one go and then decompress etc from memory + buffer_read.readFromFileBuffered(nextread_); + if(debuglevel>0) + std::cout << "reading file " << nextread_ << " done"<< std::endl; + buffer_read = buffer_read.shuffle(sub_shuffle_indices_.at(nextreadIdx_)); + return; + } + catch(std::exception & e){ //if there are data glitches we don't want the whole training fail immediately + caught=e; + std::cout << "File not "<< nextread_ <<" successfully read: " << e.what() << std::endl; + std::cout << "trying " << filetimeout_-ntries << " more time(s)" << std::endl; + ntries+=1; + } + } + sleep(1); + ntries++; + } + buffer_read.clear(); + throw std::runtime_error("trainDataGenerator::readBuffer: file "+nextread_+ " could not be read."); +} + +void trainDataGenerator::readInfo(){ + ntotal_=0; + bool hasRagged=false; + bool firstfile=true; + + shuffle_indices_.resize(orig_infiles_.size()); + for(size_t i=0;i::readNTotal: no features filled in trainData object "+f); + + //create sub_shuffle_idxs + std::vector vec; + for(size_t i=0;i rowsplits = td.readShapesAndRowSplitsFromFile(f, firstfile);//check consistency only for first + if(debuglevel>1) + std::cout << "rowsplits.size() " <0) + std::cout << "trainDataGenerator::readInfo: total elements "<< ntotal_ < trainDataGenerator::subShuffleRowSplits(const std::vector& thisrs, + const std::vector& s_idx)const{ + + auto nelems = simpleArrayBase::dataSplitToSplitIndices(thisrs); + auto snelems=nelems; + //shuffle + for(size_t si=0;si1){ + std::cout << "trainDataGenerator::prepareSplitting: splits" < allrs; + for(size_t i=0;i1){ + std::cout << "all (first 100) row splits " << allrs.size() << std::endl; + int counter =0; + for(const auto& s: allrs){ + std::cout << s << ", " ; + if(counter>100)break; + counter++; + } + std::cout << std::endl; + } + std::vector nelems_per_split; + splits_ = simpleArrayBase::getSplitIndices(allrs, batchsize_,sqelementslimit_ , skiplargebatches_, usebatch_, nelems_per_split); + + nbatches_=0; + npossiblebatches_=0; + for(size_t i=0;i1){ + size_t nprint = splits_.size(); + if(nprint>200)nprint=200; + for(size_t i=0;i< nprint;i++){ + std::cout << i ; + if(usebatch_.at(i)) + std::cout << " ok, split " ; + else + std::cout << " no, split "; + std::cout << splits_.at(i) << "; nelements "<< nelems_per_split.at(i)<< std::endl; + } + std::cout << std::endl; + } + +} + +bool trainDataGenerator::tdHasRaggedDimension(const trainData& td)const{ + for(const auto& sv: td.featureShapes()) + for(const auto& s:sv) + if(s<0) + return true; + for(const auto& sv: td.truthShapes()) + for(const auto& s:sv) + if(s<0) + return true; + for(const auto& sv: td.weightShapes()) + for(const auto& s:sv) + if(s<0) + return true; + return false; +} + +bool trainDataGenerator::lastBatch()const{ + return batchcount_ >= npossiblebatches_ -1 ; +} + +bool trainDataGenerator::isEmpty()const{ + return batchcount_ >= splits_.size(); +} + +void trainDataGenerator::prepareNextEpoch(){ + + //prepare for next epoch, pre-read first file + if(readthread_){ + readthread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way + delete readthread_; + + } + buffer_store.clear(); + buffer_read.clear(); + filecount_=0; + nsamplesprocessed_=0; + batchcount_=0; + lastbatchsize_=0; + lastbuffersplit_=0; + nextreadIdx_ = shuffle_indices_.at(filecount_); + nextread_ = orig_infiles_.at(nextreadIdx_); + filecount_++; + readthread_ = new std::thread(&trainDataGenerator::readBuffer,this); + +} + +void trainDataGenerator::end(){ + if(readthread_){ + readthread_->join(); //this is slow! FIXME: better way to exit gracefully in a simple way + delete readthread_; + readthread_=0; + } +} + +void trainDataGenerator::clear(){ + end(); + orig_infiles_.clear(); + shuffle_indices_.clear(); + sub_shuffle_indices_.clear(); + orig_rowsplits_.clear(); + splits_.clear(); + usebatch_.clear(); + randomcount_=0; + + //batchsize_ keep batch size + //sqelementslimit_ keep + //skiplargebatches_ keep + buffer_store.clear(); + buffer_read.clear(); + + filecount_=0; + nbatches_=0; + ntotal_=0; + nsamplesprocessed_=0; + lastbatchsize_=0; + lastbuffersplit_=0; + // filetimeout_ keep + batchcount_=0; +} + +trainData trainDataGenerator::getBatch(){ + return prepareBatch(); +} + +trainData trainDataGenerator::prepareBatch(){ + if(isEmpty()){ + std::cout << "trainDataGenerator::prepareBatch: batchcount " << batchcount_ << ", available: " << splits_.size() << std::endl; + throw std::runtime_error("trainDataGenerator::prepareBatch: asking for more batches than in dataset"); + } + + size_t bufferelements=buffer_store.nElements(); + size_t expect_batchelements = splits_.at(batchcount_); + bool usebatch = true; + + if(!expect_batchelements)//sanity check + throw std::runtime_error("trainDataGenerator::prepareBatch: expected elements zero!"); + + if(usebatch_.size()) + usebatch = usebatch_.at(batchcount_); + + if(debuglevel>2) + std::cout << "expect_batchelements "<join(); + delete readthread_; + readthread_=0; + } + if(lastbuffersplit_) + if(lastbuffersplit_ != buffer_store.nElements()){ + buffer_store = buffer_store.getSlice(lastbuffersplit_,buffer_store.nElements());//cut the front part + buffer_store.append(buffer_read); + } + else{ //was used completely + buffer_store = buffer_read;//std::move(buffer_read); //possible opt. implement move for trainData fully + } + else{ //first one + buffer_store.append(buffer_read);//std::move(buffer_read); + } + buffer_read.clear(); + bufferelements = buffer_store.nElements(); + lastbuffersplit_=0; + + if(debuglevel>2) + std::cout << "nprocessed " << nsamplesprocessed_ << " file " << filecount_ << " in buffer " << bufferelements + << " file read " << nextread_ << " totalfiles " << orig_infiles_.size() + << " total events "<< ntotal_<< std::endl; + + if(nsamplesprocessed_ + bufferelements < ntotal_){ + if (filecount_ >= orig_infiles_.size()){ + std::cout << "trainDataGenerator::prepareBatch: filecount: "<< filecount_ <<" infiles "<< orig_infiles_.size()<< + " processed: "<< nsamplesprocessed_ << " buffer: "<< bufferelements << " total "<< ntotal_ << std::endl; + throw std::runtime_error( + "trainDataGenerator::prepareBatch: more file reads requested than batches in the sample"); + + } + + nextreadIdx_ = shuffle_indices_.at(filecount_); + nextread_ = orig_infiles_.at(nextreadIdx_); + + if(debuglevel>0) + std::cout << "start new read on file "<< nextread_ <2) + std::cout << "providing batch " << nsamplesprocessed_ << "-" << nsamplesprocessed_+expect_batchelements << + ", slice " << lastbuffersplit_-expect_batchelements << "-" << lastbuffersplit_ << + "\nelements in buffer before: " << bufferelements << + "\nsplitting at " << expect_batchelements << " use this batch "<< usebatch + << " total elements " << thisbatch.nTotalElements() << " elements left in buffer " << buffer_store.nElements()<< std::endl; + + if(debuglevel>3){ + int dbpcount=0; + for(const auto& s: buffer_store.featureArray(0).rowsplits()){ + std::cout << s << ", "; + if(dbpcount>50)break; + dbpcount++; + } + std::cout << std::endl; + } + + nsamplesprocessed_+=expect_batchelements; + lastbatchsize_ = expect_batchelements; + + batchcount_++; + if(! usebatch){//until valid batch + return prepareBatch(); + } + + return thisbatch; + +} + +}//ns From 4ffd6d4fc310c1b6022428dce8c5fcf8b34862ba Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 7 Feb 2021 16:08:28 +0100 Subject: [PATCH 331/437] up to traindata, adding tests now --- TrainData.py | 19 ++-- compiled/Makefile | 4 +- compiled/interface/IO.h | 8 +- compiled/interface/pythonToSTL.h | 4 +- compiled/interface/simpleArray.h | 14 +-- compiled/interface/trainData.h | 28 +++-- compiled/interface/trainDataGenerator.h | 6 +- compiled/src/IO.cpp | 8 +- compiled/src/c_simpleArray.C | 4 +- compiled/src/c_trainData.C | 12 ++- compiled/src/c_trainDataGenerator.C | 1 - compiled/src/simpleArray.cpp | 20 ++-- compiled/src/trainData.cpp | 8 +- compiled/src/trainDataGenerator.cpp | 2 - testing/unit/TestSimpleArray.py | 136 ++++++++++++++++++++++++ testing/unit/TestTrainData.py | 61 +++++++++++ testing/unit/test.py | 5 + testing/unit/testfile | Bin 0 -> 180209 bytes 18 files changed, 281 insertions(+), 59 deletions(-) create mode 100644 testing/unit/TestSimpleArray.py create mode 100644 testing/unit/TestTrainData.py create mode 100644 testing/unit/test.py create mode 100644 testing/unit/testfile diff --git a/TrainData.py b/TrainData.py index 8b7f2fd..8e43ecc 100644 --- a/TrainData.py +++ b/TrainData.py @@ -13,7 +13,7 @@ import logging from DeepJetCore.compiled.c_trainData import trainData -from DeepJetCore.compiled.c_simpleArray import simpleArray +from DeepJetCore.SimpleArray import SimpleArray import time def fileTimeOut(fileName, timeOut): @@ -56,26 +56,25 @@ def readIn(self,fileprefix,shapesOnly=False): self.readFromFile(fileprefix,shapesOnly) - def _maybeConvertToSimpleArray(self,a): + def _convertToCppType(self,a): if str(type(a)) == "": - return a + return a.sa elif str(type(a)) == "" or str(type(a)) == "": rs = np.array([]) - arr = simpleArray() - arr.createFromNumpy(a, rs) - return arr + a = SimpleArray(a,rs) + return a.sa else: - raise ValueError("TrainData: convertFromSourceFile MUST produce either a list of numpy arrays or a list of DeepJetCore simpleArrays!") + raise ValueError("TrainData._convertToCppType MUST produce either a list of numpy arrays or a list of DeepJetCore simpleArrays!") def _store(self, x, y, w): for xa in x: - self.storeFeatureArray(self._maybeConvertToSimpleArray(xa)) + self.storeFeatureArray(self._convertToCppType(xa)) x = [] #collect garbage for ya in y: - self.storeTruthArray(self._maybeConvertToSimpleArray(ya)) + self.storeTruthArray(self._convertToCppType(ya)) y = [] for wa in w: - self.storeWeightArray(self._maybeConvertToSimpleArray(wa)) + self.storeWeightArray(self._convertToCppType(wa)) w = [] def readFromSourceFile(self,filename, weighterobjects={}, istraining=False, **kwargs): diff --git a/compiled/Makefile b/compiled/Makefile index 0645837..021c197 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -16,7 +16,7 @@ MODULES := $(wildcard src/*.C) MODULES_OBJ_FILES := $(addprefix ./,$(notdir $(MODULES:.C=.o))) MODULES_SHARED_LIBS := $(addprefix ./,$(notdir $(MODULES:.C=.so))) -CFLAGS := -g +#CFLAGS := -g all: $(MODULES_SHARED_LIBS) $(patsubst to_bin/%.cpp, %, $(wildcard to_bin/*.cpp)) classdict.so @@ -24,7 +24,7 @@ classdict.cxx: src/LinkDef.h rootcling -v4 -f $@ -rmf classdict.rootmap -rml classdict.so $^ classdict.so: classdict.cxx - g++ $(ROOTCFLAGS) $(ROOTSTUFF) -std=c++11 -fPIC -shared -o classdict.so classdict.cxx + g++ $(CFLAGS) $(ROOTCFLAGS) $(ROOTSTUFF) -std=c++11 -fPIC -shared -o classdict.so classdict.cxx %: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx diff --git a/compiled/interface/IO.h b/compiled/interface/IO.h index a43835a..0a64094 100644 --- a/compiled/interface/IO.h +++ b/compiled/interface/IO.h @@ -15,7 +15,7 @@ #include #include #include - +#include /* * Very simple template wrapper around fread and fwrite with error checks * The number of datatypes written is NOT given in bytes. @@ -93,7 +93,11 @@ void readFromFile(std::string * p, FILE* ifile, size_t N, size_t Nb template void readFromFile(std::vector * p, FILE* ifile, size_t N=1, size_t Nbytes=0){ readFromFile(&N,ifile); - *p=std::vector(N); + if(!N){ + p->resize(0); + return; + } + p->resize(N); for(auto& v: *p) readFromFile(&v,ifile); } diff --git a/compiled/interface/pythonToSTL.h b/compiled/interface/pythonToSTL.h index 42fc78b..6fcb4d5 100644 --- a/compiled/interface/pythonToSTL.h +++ b/compiled/interface/pythonToSTL.h @@ -25,7 +25,7 @@ std::vector toSTLVector(const boost::python::list lin){ } template<> -std::vector toSTLVector(const boost::python::list lin){ +inline std::vector toSTLVector(const boost::python::list lin){ std::vector out(boost::python::len(lin)); for(size_t i=0;i(lin[i]); @@ -48,7 +48,7 @@ std::vector > toSTL2DVector(const boost::python::list lin){ template<> -std::vector > toSTL2DVector(const boost::python::list lin){ +inline std::vector > toSTL2DVector(const boost::python::list lin){ std::vector > out; for(size_t i=0;i tmp(boost::python::len(lin[i])); diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 66943d7..5ccdbfd 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -8,14 +8,12 @@ #ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ #define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAY_H_ -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS #include #include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include #include "helper.h" #include "pythonToSTL.h" -#endif #include "c_helper.h" #include @@ -111,6 +109,9 @@ class simpleArrayBase { std::string readDtypeFromFileP(FILE *& ofile)const; std::string readDtypeFromFile(const std::string& f)const; + dtypes readDtypeTypeFromFileP(FILE *& ofile)const; + dtypes readDtypeTypeFromFile(const std::string& f)const; + virtual void cout()const=0; virtual void append(const simpleArrayBase& )=0; @@ -147,7 +148,6 @@ class simpleArrayBase { static std::vector splitRowSplits(std::vector & rowsplits, const size_t& splitpoint); -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS int isize() const { return (int)size_; } @@ -170,7 +170,6 @@ class simpleArrayBase { virtual void setFeatureNamesPy(boost::python::list l)=0; virtual boost::python::list featureNamesPy()=0; -#endif protected: std::vector shape_; @@ -339,7 +338,6 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS //does not transfer data ownership! only for quick writing etc. void assignFromNumpy(const boost::python::numpy::ndarray& ndarr, const boost::python::numpy::ndarray& rowsplits=boost::python::numpy::empty( @@ -359,7 +357,6 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera void setFeatureNamesPy(boost::python::list l); boost::python::list featureNamesPy(); -#endif private: @@ -378,7 +375,6 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS std::vector makeNumpyShape()const; void checkArray(const boost::python::numpy::ndarray& ndarr, boost::python::numpy::dtype dt=boost::python::numpy::dtype::get_builtin())const; @@ -386,7 +382,6 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera const boost::python::numpy::ndarray& rowsplits, bool copy); -#endif T * data_; }; @@ -829,6 +824,7 @@ void simpleArray::readFromFileP(FILE *& ifile) { float version = 0; io::readFromFile(&version, ifile); + if(version != DJCDATAVERSION){ if(version != 2.0f)//compat throw std::runtime_error("simpleArray::readFromFile: wrong format version"); @@ -1099,7 +1095,6 @@ const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m, s } -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS /* * PYTHON / NUMPY Interface below * @@ -1264,7 +1259,6 @@ boost::python::list simpleArray::featureNamesPy(){ return l; } -#endif typedef simpleArray simpleArray_float32; diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 2b596fb..8932786 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -10,13 +10,11 @@ //#define DJC_DATASTRUCTURE_PYTHON_BINDINGS//DEBUG -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS #include #include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include #include "helper.h" -#endif #include "simpleArray.h" #include @@ -87,6 +85,27 @@ class trainData{ int storeTruthArray( simpleArrayBase&); int storeWeightArray( simpleArrayBase&); + //for python, no implicit cast + inline int storeFeatureArray( simpleArray_float32& a){ + return storeFeatureArray(dynamic_cast (a)); + } + inline int storeTruthArray( simpleArray_float32& a){ + return storeTruthArray(dynamic_cast (a)); + } + inline int storeWeightArray( simpleArray_float32& a){ + return storeWeightArray(dynamic_cast (a)); + } + + inline int storeFeatureArray( simpleArray_int32&a){ + return storeFeatureArray(dynamic_cast (a)); + } + inline int storeTruthArray( simpleArray_int32& a){ + return storeTruthArray(dynamic_cast (a)); + } + inline int storeWeightArray( simpleArray_int32& a){ + return storeWeightArray(dynamic_cast (a)); + } + //these are not really used so much --> /* * This class actually doesn't really need data operations. so it can implement @@ -198,7 +217,6 @@ class trainData{ void skim(size_t batchelement); -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS boost::python::list getKerasFeatureShapes()const; boost::python::list getKerasFeatureDTypes()const; @@ -242,7 +260,6 @@ class trainData{ return td.transferWeightListToNumpy(padrowsplits); //fast hack } -#endif private: @@ -272,9 +289,8 @@ class trainData{ std::vector > weight_shapes_; -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS boost::python::list transferToNumpyList(typeContainer& , bool pad_rowsplits); -#endif + }; diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index e48198b..828992b 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -8,14 +8,12 @@ #ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAGENERATOR_H_ #define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAGENERATOR_H_ -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS #include #include "boost/python/numpy.hpp" #include "boost/python/list.hpp" #include #include "helper.h" #include "pythonToSTL.h" -#endif #include #include @@ -63,9 +61,9 @@ class trainDataGenerator{ readInfo(); } -#ifdef DJC_DATASTRUCTURE_PYTHON_BINDINGS + void setFileListPy(boost::python::list files); -#endif + void setBuffer(const trainData&); void setBatchSize(size_t nelements){ diff --git a/compiled/src/IO.cpp b/compiled/src/IO.cpp index e425df0..d1601d9 100644 --- a/compiled/src/IO.cpp +++ b/compiled/src/IO.cpp @@ -7,10 +7,10 @@ namespace io{ template <> void writeToFile(const std::string * p, FILE * ofile, size_t N, size_t Nbytes){ N=p->length(); - if(!N) - return; Nbytes = N*sizeof(char); writeToFile(&N,ofile); + if(!N) + return; size_t ret = fwrite(p->data(), 1, Nbytes, ofile); if(ret != Nbytes){ std::string fname = followFileName(ofile); @@ -24,6 +24,10 @@ template <> void readFromFile(std::string * p, FILE* ifile, size_t N, size_t Nbytes){ readFromFile(&N,ifile); + if(!N){ + *p=""; + return; + } char * c = new char[N]; Nbytes = N* sizeof(char); diff --git a/compiled/src/c_simpleArray.C b/compiled/src/c_simpleArray.C index 91f77f8..6e62ac3 100644 --- a/compiled/src/c_simpleArray.C +++ b/compiled/src/c_simpleArray.C @@ -11,8 +11,6 @@ * just a wrapper module */ -//switches on python / numpy interfaces in the templates included below -#define DJC_DATASTRUCTURE_PYTHON_BINDINGS #include "../interface/helper.h" #include "../interface/simpleArray.h" #include @@ -48,7 +46,7 @@ BOOST_PYTHON_MODULE(c_simpleArray) { .def("isRagged", &simpleArray_float32::isRagged) .def("split", &simpleArray_float32::split) .def("getSlice", &simpleArray_float32::getSlice) - .def("append", &simpleArray_float32::append) //just use the explicit one here + .def("append", &simpleArray_float32::append) .def("cout", &simpleArray_float32::cout) .def("size", &simpleArray_float32::isize); ; diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index fdeefe0..1aac5f4 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -5,7 +5,6 @@ * Author: jkiesele */ -#define DJC_DATASTRUCTURE_PYTHON_BINDINGS #include "../interface/trainData.h" @@ -20,10 +19,15 @@ BOOST_PYTHON_MODULE(c_trainData) { p::class_("trainData") + //excplicit overloading + .def("storeFeatureArray", &trainData::storeFeatureArray) + .def("storeFeatureArray", &trainData::storeFeatureArray) - .def("storeFeatureArray", &trainData::storeFeatureArray) - .def("storeTruthArray", &trainData::storeTruthArray) - .def("storeWeightArray", &trainData::storeWeightArray) + .def("storeTruthArray", &trainData::storeTruthArray) + .def("storeTruthArray", &trainData::storeTruthArray) + + .def("storeWeightArray", &trainData::storeWeightArray) + .def("storeWeightArray", &trainData::storeWeightArray) // .def("featureList", &trainData::featureList) // .def("truthList", &trainData::truthList) diff --git a/compiled/src/c_trainDataGenerator.C b/compiled/src/c_trainDataGenerator.C index 58cbe38..afd3fda 100644 --- a/compiled/src/c_trainDataGenerator.C +++ b/compiled/src/c_trainDataGenerator.C @@ -13,7 +13,6 @@ #include "boost/python/str.hpp" #include -#define DJC_DATASTRUCTURE_PYTHON_BINDINGS #include "../interface/trainDataGenerator.h" diff --git a/compiled/src/simpleArray.cpp b/compiled/src/simpleArray.cpp index d9e2c58..7fdfcbe 100644 --- a/compiled/src/simpleArray.cpp +++ b/compiled/src/simpleArray.cpp @@ -86,30 +86,38 @@ simpleArrayBase::dtypes simpleArrayBase::stringToDtype(const std::string& s){ } std::string simpleArrayBase::readDtypeFromFileP(FILE *& ifile)const{ + return dtypeToString(readDtypeTypeFromFileP(ifile)); +} + +std::string simpleArrayBase::readDtypeFromFile(const std::string& f)const{ + return dtypeToString(readDtypeTypeFromFile(f)); +} + +simpleArrayBase::dtypes simpleArrayBase::readDtypeTypeFromFileP(FILE *& ifile)const{ long pos = ftell(ifile); float version = 0; io::readFromFile(&version, ifile); if(version != DJCDATAVERSION){ if(version != 2.0f)//compat - throw std::runtime_error("simpleArrayBase::readDtypeFromFileP: wrong format version"); + throw std::runtime_error("simpleArrayBase::readDtypeTypeFromFileP: wrong format version"); } dtypes dt=float32; if(version != 2.0f) io::readFromFile(&dt, ifile); fseek(ifile,pos-ftell(ifile),SEEK_CUR);//go back - return dtypeToString(dt); + return dt; } -std::string simpleArrayBase::readDtypeFromFile(const std::string& f)const{ +simpleArrayBase::dtypes simpleArrayBase::readDtypeTypeFromFile(const std::string& f)const{ FILE *ifile = fopen(f.data(), "rb"); if(!ifile) - throw std::runtime_error("simpleArrayBase::readDtypeFromFileP: file "+f+" could not be opened."); + throw std::runtime_error("simpleArrayBase::readDtypeTypeFromFile: file "+f+" could not be opened."); float version = 0; io::readFromFile(&version, ifile); if(version != DJCDATAVERSION && version != 2.0f) - throw std::runtime_error("simpleArrayBase::readDtypeFromFileP: wrong format version"); - auto type = readDtypeFromFileP(ifile); + throw std::runtime_error("simpleArrayBase::readDtypeTypeFromFile: wrong format version"); + auto type = readDtypeTypeFromFileP(ifile); fclose(ifile); return type; } diff --git a/compiled/src/trainData.cpp b/compiled/src/trainData.cpp index a6256d4..bc54038 100644 --- a/compiled/src/trainData.cpp +++ b/compiled/src/trainData.cpp @@ -103,7 +103,7 @@ void typeContainer::readFromFile(FILE *& ifile){ io::readFromFile(&isize,ifile); for(size_t i=0;i(files)); } -#endif void trainDataGenerator::shuffleFilelist(){ std::random_device rd; diff --git a/testing/unit/TestSimpleArray.py b/testing/unit/TestSimpleArray.py new file mode 100644 index 0000000..ef55429 --- /dev/null +++ b/testing/unit/TestSimpleArray.py @@ -0,0 +1,136 @@ +from DeepJetCore.SimpleArray import SimpleArray +import numpy as np +import unittest +import os + +class TestSimpleArray(unittest.TestCase): + + + def createNumpy(self,dtype): + arr = np.array(np.random.rand(500,3,5,6)*100., dtype=dtype) + rs = np.array([0,100,230,500],dtype='int64') + return arr, rs + + def test_createFromNumpy(self): + print('TestSimpleArray: createFromNumpy') + arr,rs = self.createNumpy('float32') + + a = SimpleArray(dtype='float32') + a.createFromNumpy(arr,rs) + + narr, nrs = a.copyToNumpy() + + diff = np.max(np.abs(narr-arr)) + diff += np.max(np.abs(nrs-rs)) + self.assertTrue(diff< 0.000001) + + def test_transferToNumpy(self): + print('TestSimpleArray: transferToNumpy') + arr,rs = self.createNumpy('float32') + a = SimpleArray(arr,rs) + narr, nrs = a.transferToNumpy() + diff = np.max(np.abs(narr-arr)) + diff += np.max(np.abs(nrs-rs)) + self.assertTrue(diff< 0.000001) + + + def test_transferToNumpyInt(self): + print('TestSimpleArray: transferToNumpyInt') + arr,rs = self.createNumpy('int32') + a = SimpleArray(arr,rs) + narr, nrs = a.transferToNumpy() + diff = np.max(np.abs(narr-arr)) + diff += np.max(np.abs(nrs-rs)) + self.assertTrue(diff< 0.000001) + + def test_createFromNumpyInt(self): + print('TestSimpleArray: createFromNumpyInt') + + arr,rs = self.createNumpy('int32') + + a = SimpleArray(dtype='int32') + a.createFromNumpy(arr,rs) + + narr, nrs = a.copyToNumpy() + diff = np.max(np.abs(narr-arr)) + diff += np.max(np.abs(nrs-rs)) + self.assertTrue(diff< 0.000001) + + def test_writeRead(self): + print('TestSimpleArray: writeRead') + arr,rs = self.createNumpy('float32') + + + a = SimpleArray(arr,rs) + a.setName("myname") + a.setFeatureNames(["a","b","c","d","e","f"]) + a.writeToFile("testfile") + b = SimpleArray() + b.readFromFile("testfile") + #os.system("rf -f testfile") + + ad, ars = a.copyToNumpy() + bd, brs = b.copyToNumpy() + diff = np.max(np.abs(ad-bd)) + diff += np.max(np.abs(ars-brs)) + self.assertTrue(diff==0) + + + def test_equal(self): + print('TestSimpleArray: equal') + arr,rs = self.createNumpy('float32') + + a = SimpleArray() + a.createFromNumpy(arr,rs) + + b = SimpleArray() + b.createFromNumpy(arr,rs) + + self.assertEqual(a, b) + + b = a.copy() + self.assertEqual(a, b) + + b.setFeatureNames(["a","b","c","d","e","f"]) + self.assertNotEqual(a, b) + + + + + def test_append(self): + print('TestSimpleArray: append') + arr,rs = self.createNumpy('float32') + + arr2,_ = self.createNumpy('float32') + + a = SimpleArray(arr,rs) + aa = SimpleArray(arr2,rs) + a.append(aa) + + arr2 = np.concatenate([arr,arr2],axis=0) + rs2 = rs.copy()[1:] + rs2 += rs[-1] + rs2 = np.concatenate([rs,rs2],axis=0) + + b = SimpleArray(arr2,rs2) + self.assertEqual(a, b) + + def test_split(self): + print('TestSimpleArray: split') + + arr,rs = self.createNumpy('float32') + a = SimpleArray(arr,rs) + + arrs, rss = arr[:rs[2]], rs[:3] + b = SimpleArray(arrs,rss) + + asplit = a.split(2) + self.assertEqual(asplit, b) + + def test_name(self): + print('TestSimpleArray: name') + arr,rs=self.createNumpy('float32') + a = SimpleArray(arr,rs) + a.setName("myname") + self.assertEqual("myname", a.name()) + diff --git a/testing/unit/TestTrainData.py b/testing/unit/TestTrainData.py new file mode 100644 index 0000000..229726d --- /dev/null +++ b/testing/unit/TestTrainData.py @@ -0,0 +1,61 @@ +from DeepJetCore.TrainData import TrainData +from DeepJetCore.SimpleArray import SimpleArray +import numpy as np +import unittest +import os + +class TestTrainData(unittest.TestCase): + + def createSimpleArray(self, dtype): + arr = np.array(np.random.rand(500,3,5,6)*100., dtype=dtype) + rs = np.array([0,100,230,500],dtype='int64') + return SimpleArray(arr, rs) + + def sub_test_store(self, readWrite): + td = TrainData() + x,y,w = self.createSimpleArray('int32'), self.createSimpleArray('float32'), self.createSimpleArray('int32') + x_orig=x.copy() + x2,y2,_ = self.createSimpleArray('float32'), self.createSimpleArray('float32'), self.createSimpleArray('int32') + x2_orig=x2.copy() + y_orig=y.copy() + + td._store([x,x2], [y,y2], [w]) + + if readWrite: + td.writeToFile("testfile.tdjctd") + td = TrainData() + td.readFromFile("testfile.tdjctd") + os.system('rm -f testfile.tdjctd') + + shapes = td.getKerasFeatureShapes() + self.assertEqual([[3, 5, 6], [1], [3, 5, 6], [1]], shapes,"shapes") + + self.assertEqual(2, td.nFeatureArrays()) + self.assertEqual(2, td.nTruthArrays()) + self.assertEqual(1, td.nWeightArrays()) + + f = td.transferFeatureListToNumpy(False) + t = td.transferTruthListToNumpy(False) + w = td.transferWeightListToNumpy(False) + + xnew = SimpleArray(f[0],np.array(f[1],dtype='int64')) + self.assertEqual(x_orig, xnew) + + xnew = SimpleArray(f[2],np.array(f[3],dtype='int64')) + self.assertEqual(x2_orig, xnew) + + ynew = SimpleArray(t[0],np.array(t[1],dtype='int64')) + self.assertEqual(y_orig, ynew) + + def test_store(self): + print('TestTrainData: store') + self.sub_test_store(False) + + def test_readWrite(self): + print('TestTrainData: readWrite') + self.sub_test_store(True) + + + + + \ No newline at end of file diff --git a/testing/unit/test.py b/testing/unit/test.py new file mode 100644 index 0000000..5d0ef82 --- /dev/null +++ b/testing/unit/test.py @@ -0,0 +1,5 @@ +from TestSimpleArray import * +from TestTrainData import * +import unittest + +unittest.main() \ No newline at end of file diff --git a/testing/unit/testfile b/testing/unit/testfile new file mode 100644 index 0000000000000000000000000000000000000000..3e15a9a0123885593a02ccbede26bd73f109e17d GIT binary patch literal 180209 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

Hm)TSykQwK>!h^sq=SoR*%`qJGUF8q96YfrExg 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 z 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%0D(gXirr1`OqTKnqa`qGW`;*kPUTKhor^*Y*~ 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 d~!=4TpEhMR#H{<)6U^Sdf<=yTeXC4-nCX>7Q! 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

F&a*-d#EyvY{dwL?h% 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

r-#dFxgO!QiV?h`vS?fRY0E6*yxd}_ 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 z z3_ji;%b`Kr;Cf*t4lVP-JY#$8kh7ODqe8g0>2(Y_=gPV3bD3iyombCFBoZc%u~2hastfttl6LyF1n>G zMq1z)T2zOzs8buZEYO8=(LjFRn2!w>Kat<%0$Od+XXgC1SeQ1LJ%gu0vv)BDS^f|k z2PLC?dLItxGaow#_LTYb@8Z6Z54&$KL=sf!cIOzhlAgQ~prL|3|ApTX*wKEI@X66ZSFvO~x$v9)wEJ})dY4wGzu%5 z-4+2A=Y-DBRL;@xhPzis+J*WvCq#usC%R(%qg1ZY>A}L!$IzIV3-6B#&UKW2v*@8B z$3QwhY6M@6ABRDWy0o6H%UMs|xJLR*EZ!O_8vjY|WAa|n+piC{H=BS%-g1WW$ekk= zjAyI*7CQ+eh|RW zeN`}wFy+W)=6vzGH@x~s35~%g;rQpb2%FN5+I1n+u#?ZN_Mfr!#9E}hTBOL@*M(6} zmMi}IGljE&ZDLSLL1TJDylA z6MchY5iPlvSC&4Oz0O+LJI2dP8m~Ja`@cQ|!6ot1_1rnDSp_1fTnjWU8rr%_f@j zxLOgE=Y@&v!es8gtjZsj(&u+Pjge-uFIUrze&60>UqUqFD&57sg7LiuA$G8bD3 zd8WYU`HH!@3Ec41*L}H1qhyw6(Z?#1*}(yfjL*m4qs{pGqaXZ&rbuRO0>Zbp=1WWI zV=3B)hIAiVY}XJ=hHMw+O_z(@k;fEUuGir~_gFf{970k5wy<+?6K_AnQ{%&J?4EW7 z)1yN9>ERwszNE(ihl&;7+i%0mClhc-viePv^5FBV0+(MN7t7jz!5(=gnDbqi8{2$E zgu!T;Yj&mokckY4I4GJ`_2i?>TbOvh9~Zp+f(6^0*>BZnd>#8&amP{i?MmL`Wz`dm zvbSZIIw$I#_oZjsB!rKT;@u1V*>zqKKFGb}iBZuwl%>iSIbJN=*PLHmu87WA_AHlq z>9%TWf9m|7LSbdQ5@`i zOsu;cBj+^ATq^TzW>1DQWWy)XW%gAB9PY|P6WWWVZ8e1U8hb9uliAY0j}hoHMa)_> zfwu{To?v|w?IvGgqHAr!M}WuM~%rnVZw)LB`)*l`FQ!VScoT|e;RggN6R z!^Je%gqxoaqm8c`exL5j*DXf!<{Nj^oY)H+>7P3$-E_;HuEI1iQ!#YmvbK1_dURsQZ=#k+FBS5EfC)>XA@V)^THXy`Yc_# zuIPv_F+q%Qo(-KlvfH+I2UKSy(7}EkdLNUY6WR0HB!7Q@%bi$gs}$V79L(c?l(|aj zH8OAcNDYw&Gi2`Lv*ZljR+l}CpWDQvHv0Tn)(O3S=gZDT4FZPAjMjy>=n&IhI;{m2 zvnOz$XFB~919;QBA5DuCxNudn3kF^hMSuKQtmDb`{&%1_z6ihewg8S+3qAcr2CiKX zgBo|1rb?caS||1%qQI|Nxm*&EA=$H$DBk`Cdon)4=1e*8bqlI*)QNS@tuXMjGLK(r z!C!CtC{nEdU}i5LF~!c3hsW;0zj9j?zxoeB*$zDKoW%UX3`V@&BK|cw4yOmscrClQ z#bLR^^!8~n*JA){GaWeTNeunpe3V)9X4qR6Cmix*o@d`U*Ho)q#?05oe#tng$PMR1 zGhe>Ex>phLbeV|x(wbLwm1tt`CfyUmar8`U{<58iqupPMk~a0CM8lnr+jWA2OC}S$ zgMBU?Lhr&i_;J4@J8E=b`@UCE{@-5lQ*Rk=mZu|ZK^tr=U5}gVKSB=!WhecfboLG7 zi-|MPMefkDFS+1)pL&e^qfLk0!PE_nVzcetc>efQWKVB~d7G+{^RQ6yD=LR$cXvf& z%U5vLb{9jJfX!5I<6XJDe|5FsutBxB`+BCR7?8=0k#VRGa-*Si{gh<2=L+S144AnW z3pd+wQ>(>Y$v1jt!IndtbM1lj~q(FhK2tW zBg)1z`O0iz{y{nnEiWVIadYX@%4Lg>uTb2gC!Pglv;W{|PV6t)N7nYNs`2E(4WD6f zr~>WIc7fsIp~C;9py%MdqWN*z74oV_lkNTSriU31NH!sF>S6f%})F^49HTuv??S zW*fXQq0EPcHw>BBR_54Fs8g?4W@}FSzl@a$~ zcdr-AcAE0m>Ox^*-vJgw#58ysIgI8@< zg?+2;z@+0G%&2b7{K z=dKeAyFA41+sEbHG*sRL2Czgsh!&ZLL|D(^7(B{EejmFjG?w1LEXlsRCp+5iiw&e} z<|PNzB46u?_$2pf;dP6}mtS$*wX8FHzS@qZ<9jjaPn6J4PUb`F{W5Fkg}9aJ+#0H2 zpAuazsoI8T?GK`*$rxVG*p4l7#VJk}e+ShaNV)n^;lZ1rK0%4zo@V|2v+6{<|W7RQmQsyNkl z47a&>@K+ymJbn^O`^^4yUTBG}hvd0B$%o53y^%BIxuRjuEwRN^6Na_gqICoyqn>Uj3axo zIzNOiPdhRI@Ja?8tdd zY}mN8H`n})V71{-^u3_T6Q4pjdZ`{FWL99}Rww*D>B#r9&ml%;2cOpWz}H}ZZupvq zU7Lb2$D%9y`@P1Yk{)&)QonLW%q2K?9MvoGEkj7 zHeYfFszMchbAtHtgUkr0nbH5A6BYk`!XB&bm~CyQ@INdw&#%|xP{Dp-y*8Gsojzbr z%cJlNkt~=>Up5>5pE!Kj16I9up-;TzT^GuZQ+NuKmuKV1o-qEg&V=fU2pTy|fZuFa zjCYjJ5fxWBx&0A;`xtV5)I7Ma?=N@V13CD1XXL2g5ax#Un6>@}yaznNtShEG_b!p= zT&zSl-5uimzDS;V`xVp5{kh^^8%**(jky=W?58TiNU~WhOPVpfa05zz_|xp-6D(*Y zaDBvR#g(1LRNXj~M^0+9dGi2VFBc4qeu!uJ@{IH980OfQ!RT>ImYA4h*!Y`p^^>#n z(MC+yIRZDy#C$3D)4t|Ik#9a*@nMYY)XUCU(#>&fx6WSPfhN#v?o4!^;K!ilyRaf; z5)ubF@k*>6B3%S){5xQLL>#;4J;q3rkBF9hVeNS}BI53ESgMQ_&BtCtQdBigY1N7& zl82n#Z2+rnbzyxZQf4_iBW_|TER5yMDcylLS4>CmKesV#r-O56$8&z& z3dQGl8ZbI6ox0up*>6l5r>x5pzCUGV|KSAQXzIb4RU7cdT#adSZwlvGYp`?61cs@U zz`jEPZk65=D)-OgVyiFEksepnH;5OjKo6fR$rAIzFAqDcA2M0AFL*BUuZQzs_z(B3 zt#jG@d?D0h{ON8nly+M(&^%pT%rS}J#n&dZ?zUX+DK!|{W+%>h_G^ z!dOdwe^gqtS^FqPd-?Fw@In0B!il4Yj}p%F&G}dRAFLiNMDeH$R4jO)xYIKb^LjrL z%T&}jLh%+CAKCG&bxSUt^$t#&_hf%-gNT=1W7DTHAHH#+I9K;hG3Syl{*L^Lz#I8+ zz7vGAF$sLrx*vb`UjUZ^V;Gioq;;MqC#?Mp&*d&0a&Qt~8vateo|DT@Y0BJO^b%d% zQ`z|4gtr5Ruy5T?RF+#xZ*v#P66?$8?VJ(AL>W{_dfXC!bgM* zNTXL*HAdDh6}Ot-6dw$>V4mbi3^NGgASD&5towxh>CI@q+nJS}thxTiTU3pDi02Oj z;N(#+G!CS2-1inN@i+p_HGynfE}ad}SIeGfKW?#_iqBnd;lX)FUfZt9WBZhZrg1B- z_-)CDwRaVJGXwe0W`fW$YAS4BjKaxf^Rcz10pBReEW`a3;GBY{08kW4QH+8(rI5@P^GWT9nEzsC!HN`?MTJe+}7C70iBzV;NKP z1uAPt^6iU$oZx57xZpnS3D4FFBO8C-8+-*jui10(g#Yn>3q;VQTO!)tPu{hq3*l2O z)CyZm*5_2LSr);Mb-VG&I!t&R?*&Cu58Qa8!qvgU__1L;?vEbLW8>RN_fcmCCcniW zzhw5cnFBAFFn4AHG;+zE=Qm+y*)effvgMY|8O!(&E@EE$|1hIqB?dX4g5IQexa~3@ z$vd`V($?v4aI@rvbz|AEC5g@7{Sq!$-b1NUU#QE!=Ubd)LR#NJ_T=ekExU+WpY|w{ z$_HSH;{(OVTG`t-l8nExD{=nZGDIC5#Ew6FnBkelPU%)c>5BnF{>?=8P%CCUE5~0Q zTj=V%6?!#Y;GJ|$j56Pi!NZbeb|n`*r?%lOnQz#+VlgbMpQFxOi3vXwxvl?pXu%gB znn^FEq7z$vXf2HIsWDJ>9me%`V)5re&~7y3tq0`wKGKV2V8)ZWZN;G0qc~6d946fF z$wkA|>D*xjcFEUZ(Z8dZ@m*QYXxg#*{$LiYN#eNu3S?xSLHMmjxT8J>)AhmHc zTU?R%uk=Nje5Xoyw9$gnsYb=U+|BMCD*LeTT$*Hkc}ZbrC;q&912^@1^W_W4SJixt zyf_4zw;^gVcSQXoe1aKS&Zqyw?ajMHn`Xl}E>yaS4xbInwd487Y$=lV#KE*|6JqjiVUhYc4BMB^_1P`h+hZv@O=vAM=Ew^BupN-h^R;3GcU^Aa-7p zypp~0zV0VE5r+EwUF(TQyUl6XMc!Msq;X@lCqoP-bMfL=2&XZ7U-|=aRlYB)Pa;ld zFn2c-?CD)9PTmaS5xSpj0JXUN&k7VK;r z!VjmW<3yD<+Z=R)X7zZQe`&$C5vO5PcTV~)=c3!X8H(#6lD9E$BI~{1A+y|w?gySB zY5Yl)UzF^<*DB0Qj%KRtbiDea&#P4)m?LL+w_n*|-INJbx)aF$(?Z#%R(84eZ4gnX zUC`5Z7%}Lo(1=})&sj|oGcSophh%bFZ5M3bmn;46OK?ZN&yLq*?{i}q2i>m5*M)7l zFt%8HYn={{kal>SG=y!{THyU|`79sqEO`T340EkPWS$!@%kIxm!>`Er+JS>*W@*Vi zb?NHWMM9suvV+uA|DlytIK>AA`iEB-4 zh5Eq*XjRk%A(Dq(czi$X(lz;F&?6k*FoIM3MxeiR0hGUbi5WwCqWQ;JqULNFZVk+& z=9R0^{A|jCvw7$upG(ghU%}eNl|6SX!4b!9;&!&+`BF=+_Be!AfyvBXn9a>A&ms2W zd3fF@RlGKffmQ~Rz3YvHxxIK+&a)F9`l4yhNhBPej=Y1tF=xMYF&%KkBblELe`<>M zW`R7p;2-{34`OlKa$#U=NQbm;xVP^h^4i8zY5#K6l^hgP-zBlv*ssu%=aV*T?&0a{ zR9>FDTWpuyor3|tkUG>7$ud*f;fMzxyo!MB!W8<y0kH}A_~F{g2I zLoGfZ^%TqcX`w>iZ@;YV&ZsjxkoZo6&1DY1pq&d1C6}@P?D5dw<-rlUY23ca53x3e zRPC08;(qmt1wSisf2kUOm~BAZTP=*)zeDl(j4zKgam3fuXF~Pb2Fcty5C5r8MCGyj zsQTIwxyO5=XGnAAMD9mTjm$}O(&1S3-u!M+q{!K4!ZEUwzQlPS+O(^{<0gq{oY__K zgO7>H$1KFhyaNbcEBjt|yR%uD3L}nAqO(yT0^EE#e{mtYwRWR0@J7Ykme5z0cjd{S z@%FOpIcLZ`zKe9yTuDKYeiC>1KgaT#Vd7y{h1k;Lu^3xDT{_oWaNUxw!muKdQ+8;w z@Oyit_OTbI>-ON?t`I&kEx^K#{h8EeujtUtgdXD~ct|p+6JPZgJHJ>fW+}XBqY=rC z3yNWEcmPjwCQxUQ3)@L{=;y8@n7&%hhmvGhpOE>Ds$2y;6?j+4SUgJn1%DVc)Dy zEY^zPYr}6s$N&S}~$@>|W$vby=!D9Sg z`~zF>*P^#(CVxHb;=WJj)_Xce0^2X*Q9)ZeO27B zP#meuY}vz2U1!aXi&A8!^RT!P_(SaO;>d+V4q{BlUl<*50e<>bk`-|XbLS`Uanl}L z&~-BR%GvOu+ne#Fsr>iOP^W2}CTC78$92h0h_gy!XsXOylo{bc_-;7oZ$YVahR*ix zkK>v8tPI{GlzObj4as#s_r{H*w@N0@>KZY;$6RFoTp-=ClR4STm#yXbt&i>?WRCJ> z*|O&dNgv8YtA425uERslesDDoX2!4gIDWVbTT9k)=rP&p81Bch558jQeq+AUk^SA| z$vD{j8=m}V&!$>_>{R|A+LuHzXvskS9(Dw^X05rgOrE}3?EG{#ky%Vh&Rt-(nx)TZC`}Vl|!li z${y!i%WmbeNWKW2g%O(?F>Q=JXFk0KgHev`?XVu1nZ{zg-U|G6I||o%%~-kat(c#n z#{B7HSdgj4moxuhn#u%3mYQ*3WhAm%xiCE-6N?(0lSX-B)177ZmDqJdspgvcJ5k&J9YWv{G|ne4rH z#sB($dcS$8=lT8a`?}8aILPT-02MyDM)4DD(LX{H8eJBWw^9*#+U+I7IRe|#Q)xPe zB1C*3Rf|7D`_K~+GifE+%IRbF&Hrfgb3bgq{eiU3O~n1aF}P^*g(@t+imD|?NKW%1 z?NK*i_md(nejJX8F@EsA=m6V=`51J5Jxx$tOh!M_X{h;l6pWZgD=OJP7hwj&DSK$; z0tHe&{8Y#}@(_LCRP0W?MK{+Q(ciA)p?z}{?+%Vr{R#Fsh-1`#Uj_=JtVq5+67uB z+=78HU1CVDgRNoP#goP{`zXb(J36LxLGJPp{QLP-+|uN`VdhIZHF7##v+fVu57L;~ zkc3zn=KS7ug~qb(u$sf3N*Q*H`pS!r=|+_9bb>T@Zl|onQIHz_l;YVIjL0Zu%kJG7(y`2Kb=AmO3`1 zQK;NX(*EZoah~3n`)dC5dRYn`O58+NO}r;KI27w+*@fgR#g4Tg_R5uuNB8XRlP+yI?pr9-4%KeYT0w$A3vw?N3qf^Uvt{-&pbqEP}^KKb)HL zl&-U5Mqf$|A*1}T`_(Jq$Bdrr8c)pr&jI0S*^tXh#k)P+N8K=s5~_m55#v~_=(o0@ob8IsQ8y(^5=Mx*4_)Z@R!^E&`_DBh<2&{J9YFG7A4ysSlQo}(A0@^kVU`7s z|A>X;LO+#yfp*#o8X4$rBMz*v zXr0Vn>IZ!>rriO3y5FIksXIuu`#IWv{wC!(@ZQd^03XH;=l;(jnlPx4Bzg{5)YA=- zd0RzD*EnXU#9&BZD%ChCAf^8xD8FTY8nb6!^o}IAFL}^f-yL&}TWFH`8F5#(jT+1c za-M;+Op%|(-!BtUB!8Ja`WNFT`_}(FA4r>I&M;@;G2PzKK<{t97kbQdcRCOU(=-L< z$yC#jrZkDIN)g&^3^8mbGd>qMA#a4dC^=aO#eefC=@-BAFEx?-^%&HJjiHUFEtdRu%NWm}>B7mVNpfIfKXEK%COxoVXQ6o+ znd z`ObJVuPgs|4f!3)LtVHx*^HCNt7aYemTS?xXW?RNc{2k4&PNM&~hqp{`9vz5(Mh`YG6e;B)&~d4xql4PX zf6W~F=y^p%GpEJ!STTI&pCqGqiP)oE$a(c~aMc}ynHM*cN#FI7K0kL;;MubxWxO7a z4^u&Va1hc|w{YJ*0B`jkicfq$zO+ihUB5DVy2oOg(Io78$_{TS2dqB%h)%^ZM_hkBeYv-gszOyT zOqG2?(SJp+$uZb>rj>m1cM8j5CDLQIltj;%_GgYj!u0uM9KDM?Z~D9DUp+z>BVs7M z=0CC9VG3?4B;$970i@h2#72Xa;;^0--%V0s;PaH`ebPXD#0m3mYH_L~+o--MUfMyen}$>RS+hJ22# zr^x-$wDi6N&qtO}@0meZeb^tiPa7#oeuZ#f8IRcC#n`{y9&y{JlJN;(BInB|)m)*X zmDcEea5EW=TuiU~J!N-RI;6aUFzJORCJQ|rlb(VKvr#xTaVtHz&%UrW3$)j?a9&~^ zt-HWH|Fgry>-1rm@p3Bd^EVapYJY_bGjzIC$zb;kPiW80C-*laMNNbj{c#wDF+HbC z{4MPW5(AVqU#8jYKxwI9R`dO0sN}q-lbfdCc8nAjhg8tn+(JBDHH^D{F?cdy5cNGB zj)H%&WbOZ$>bh+e7G)0Dy>2bNmYRZR3Bz&XS~tvooeEvUzBqN7yUIC&nCe1{HfzCR zn+j?acL}vRcU*g$EXw$u_2?lpRUY1_N#99w(AZx<%0#TZwVl@8QNz@wawNl?z?Og4 zXn^RAkwvq_s@fM~v_=Bmi&LYwmfCo@rJf$}p8M5?j}&fdh$Cx<2)DJ|HQL%lbq^Y; zbYiV|pOuZiiACbyHZz`^IzpCn{}m#f%x3A)wb>bxl<+v}#+~#Ha6?4NeM+(XPJ7K# z(C@c2{GBVsiGl0bEv+g3GViyuA`U0N45iHLAH*EydA9W~qgC$r$S+VH9?Xu4(JI2b zhl?q5p$Uz>qlF;mX-r8<5RJRn(8*p|7-iERlXToLraLp30?epI|0>yE_9xS_g=FzB z7q8?a=%bG!&9mg0-H%n|WTOpt&TQ8l94u*Rb3wyvZLxN4e|Ai2Ql@bLa@c>DknDl8 zg$}rO#1wTGI_U!66Y}<#P?uJBShJUAMg3rW;oYl-k-!9XKYWZ(rXS6LlrsJ>DUJ)p z7`9Z$yF@=$zQXNiqDPw8{66W*we!{yu$RCgy2y>9i!?3x1X`<{hDc@uP) zJ)lojne@W1QZjRYARY(L7Q?H%<4#c_h(8}*J+x@c;8bxVFM@w&melg(F;WZPFq6$bw$|CIgikn0)N_c zICB{e$)10lHLIi5s@b&qtUu3-x}j$!yEuvm;W^tDj%IZudHFsRzk4E%**&Cjy|&Pe zmPDc^&K>mHM{Yx=QCmP7mb_NwnS_bZJur>FTRY;8k0ws5{GzB4A+&rSFm-|ly`QZG zeN#Iul^TZcXOGi7$G`OOsz2VW$YvM9ONye2Sn_F&Wa)2qKv^WA;lLuwteGzH?$H}J zpQpg>%VA;kj=4}pdUQco8^r^3(X!|=XOc)ifWAjcpL=7li66a~gEzgcz>a z7YX^jX(4++4rv(T9q~JKq_40ETtPvurU=*A8pWm_C>skXW5 zoa=$lo=MEOw_|6x3FKzTW5+*Pd>w8Hc-+kWGuBj9D&i=e(ixQU+q@dt1D`aZ{YJn~Vyt3A9(; z68UdZBs!@MI8>E^<2qi*mv}=h%@XCC@6+-N*CkoZAXw9*R{R^OLaipR*(g{}mX^oJ zn4Jyo_e#nA)Kr{2ErYIQV=%j5F}a zfF2DRDnohc(x_GQ#1e0MxVFDJPnr@#Uy z^8KjZDH-L9(y?Vv9(F#Dq$Qn%V@~E6Xk`J}cQJIlb)g9ODp>f(Ieh+J%*o?3>2X<1 zcF7^HKT*(=TP&I4V}Q{8G2qu0$zD~0$*b{L*S#MVuZo86*&?7V7H*fgyWwjpD*vzzM5Xt*mRkMP8YcA91-1ndsAI*u{$5piTC|s7otFm6?L(2v=ViG^hTdG zve+U2Se$E}Ay#eZCq5WtBPc@#u^VDnQz{;CE`Is&aIC)P3ik)kY4pIO!mGK6s$WmV)%15X^qC7xTeK1D z$bNI>c>H-CfkRE<&`?mL6Fu@^Z#W8D`56|uHjuU?CSs7;XiWMdMeVNT^n1A-M*jRQ z&b~LtdEY^pA2NzAjJ0Nu%2|4R^OAT_=uV$cd?wqat10N*6G`)?0`?-Oi7mfP$)kuf zixi0F6Wo}zzIe@AwvX^>5j z!>R^N5vf&ATlcu&q!&9~{Cu#vg?D#FlW{r5o5oJ`z_(Hv1l&-9Zd*EL>vu!QqopK2 zSrPwfIbgb<4Geopp{$yBttQD(?DL&Q<-HZzWePO6cZbO7+XJ$D!`P#qLhEI=kZcyS z3C#Y|l7%bT^KypL;wxMSX04{{(%tcJNfLICn8dC%n!`D>#X2_7 z|9ykhFO-S?%WTERrAj#bqFRK`NJhGQq?j{S9n)ML5a!H`-yvN@gLNv@ja}hyy^H2M z41@O7|Hx#N8I8!@NmJAR(ATtB7<^GCyQE~2ksD8sG`ESC7tXjnI2s`hp-5fkPNs1V zD4*U;hqPBxzP%abTY*UaH>W*4L5noP(arrTa|=^(ZQc^$W?@gE!;RVB=S0P-+r&)X z;b;!=k<^QgwDazJ@w(qTTEL!zdF5v0XUdMs{X9o_{DDSBPoqvdMR;Xrqx-uGI(W9vr|A2jnYVC@2VVaI`&1JpsAMUNv3KgySx|BhFw?0pk2e^OS!nUN1%_+ENZEc#_5LvIANBEhnz7<(k$X0 z3GY}l3S8=^dxGIUa9%c(G#@44$IC1vdgoB>_emHq)B=~MWS}-biH@rB_oufFZoV2N z0+^GmvBaL)c+8Q$Oeo~+a(Idc`dZu*%CZwFh<7JJm&Vb}zD_vpIf06Fe@T818x1M$ zwWb`jK__%0=iZl>V(m_mGmmm z0G)ClMgGx3D*f75TvB3|dX^HJAGDK_c29b@_>pkYtS9LKLm{{H2w5;kY6!oJrl;-W z*~bVBeD|Jug{8x6NIIR2FvT*LC3K9>$kLC-LdN4Bo%xWBM{~|diu)WCVG(LrZ4yV% zrp2Ju;Uw*jABN5Cp7?CCh`Lt}ga2VvTGng){2c;a+~6nS~_UG-xP4KJQe{hyCU znqDmhJXlTV*=P1Q+g>tEkKKtG^GM!*2#%EcBCbm&npSeBD7}gl<|@@!vv$GMOh4{f_Qm@7-O-bKg14_E;=RX0;miyy zopk0L9W0>+&R8rsc8d%-hrH~Y4^{6yM$6ineKfX~Vzk*gc%=xNE5_qWzipIrjaf>1 z))+gJy{h54STJxRUcQz`)X{4~lw{!KDj)2<8zCHTtFgx`oFbLik!=6GrgK1t6Ua{Bb zM~E!o(1ktBoC)jJ4SDV3F@!mfD)X`_-jF@rMN-t!hZ&VyhvKMB0FM6m&9!>oItpmt zPZyWHrf(ihV&a*uz~Xy#XnkR!Bv;^6#M%lC6uBIuzmb#0Mw4LpxXMBQ&T_JS ze~;FijX_vP0gB?c(|vp9!S6`Mq{<3PRUM2MCgUN;T*k9LLt!;z8}+YrVGe@=8qKX} z(Y(K8^k4;@)X8DL0?z@QgQ0Qp4P}ksXX^Q_qJ7c?`FFT&p8l|Cp#TL?6 zeMP^K@sz@S1ifJre3!|@a#=-~`k2!b<8LCJeNpQDyr9H8uY|Tv`g}Nmio-96nY}e2 z$M4KtN!H@Kh6kd?trYcK4!pC=n~Kzv5b)cInMosYn)6q%?nk`_+rTl*2M51pVd~fM z?0Ni4k0);wMmn|PlxGYchs43sJ_ZMG|09piTnOC^8lvxnT1$VCwcHOur`ko(!2^=_ ze$4ihAB2?G>&eP;4RwxE!&jXM>Xz|VY~p!(#^|xoym^rJDlHMqcJ+Z(TMU}mljNin zfnKdQ>3QrFO8KZS{L_7@Kt7bF)lDOVedaj9+^y1ny>Q|0AUG?G!lEKq%I;T;kAL}n z`pXu6l}Xr{(?Gpe$6#lB5IT0G(pVQHs(?ok- z405N{Q}_tZPsm*-_149-Vpngx`q>8yo8{5vp%#_5C*b(eH*|^5rYV~o@n@9|E)*Z6 z7Y`!grN2{@MSP_#OXGPin-7J13N)|peH!yFot%bDrmaQC3f59S-^p@6hazf|1C~9ufid&tjyWhn z%ab{X;dS)0^)rp)uG5VzNy6z#5nZ$BCp3OtqReyLZyVSyz89(?T3b_`>idWGHC&=0 z3z8{sy%HX+cSGqLb8OnQmf8z%3+Mg&MJ~HD8{16q(_9`)5`WQeY)fW{~LO6N4tvivD41>!{d=w^!UzR zn!$4fxjXC@SJ8k^-8%X)Z33R(ZlG(6EKsz3CRN*|;9~wvdY+tybxTZyqq!W#e^^Hi zqlS~* z9v+n|ipD7V|I)^YQh84;<7E3fyKEiT7%u!Mua3sJuoq@~8F@UoK(pq* z5FbAk!F6^unFcA-RQ`MJqn_w;*_U=M3*_ff7gA4=g|>z|{!Xo;9;d@_(6kRGwOG*n zvss*ncE_$mHk$+hz@8is$$^i6Y*KaxJoAn;#V*V== z=KS3eMXOv;^2tba@;;-cUmkj=?xb_~{rQYO1vVYLJ7$N<%a#rW3nNU~#x0cPy8$8Fb<)VlIF4UOALqu-X0du>8>nmLKnG#h;qrJfrWof%Pr#ciC6Q9x?k4AAXuP2nprLY5A5sgEC(ZU&HvHX51 ztvL~d<@qn^Ye+B@k~HC0V?tHUt0YaQ6LIdh49PUTptXzMh|627@Mz;U+MiWRYWeY) zH#ZG?zW))PkE7G9=RsdZ3&$lJ#?kV#WvN()}nGdnIQ0 zrQJq*CmTV!YOTbkqlrF$8c9FDTG5Xzb)?)}C{zp_(9Lcpm3@<-vN<%c@Sj`{m1*TJG6PqNJNd9MH@y9M!T;BfH0Ba(x9<;M69)-Jy!Cmbl)qR{zuIF{pygUQ-1;5E}ybBgSO~mxB%Gg*O35Vi% zoLR_o=($q#@%sdte&96~1ct#d(*c7ftS4FS@2_Ew$$q6nG@$J}sdo-UIYqkmDzm3` zwFkw>;a#zGmkwUeRzpL;6l_)xq>KFgzmRl^HV4$x6%|uS!e=Mp_SPNeT8yy!%O#pL zA`AfvDww?Y4@ug`LO&#*%%*%4#X}3>qykuZt&&{J^p@P)YKDK)Zd2o-DcHiiuT=)J z<#R9i9^Gk59HEaQ8Krx z29|Z5)Oz}( zwVoMF&R^)_a5K7NLj0M@!82xwy%cT2DO(+ll|~W+$qI4SSq&s~OTyK989JRf1j-gF z__F~>*v>isPxervg>-pg0y*00Lc{ALJ+194DY~kQ?(3Z~rjs2{3#}-J?>a9cmx`vY zUMN~*js__^?C=Oc_p>T^IAbeqjdDWP#&}#bw1(fzKx#?f&GYhT^lwz6#kx7z<ENj0&!9V*l+mCrF;p&oei5h5Fr-5O){M_x_Om2t2 z)2C%NoD*gzYg<>MO*;G;F+<7BXsTRslja&G*2Fv!tI;^G>4sYtJ?Yt*Ui4Ji z5dp?^isp66PMO{uR+G?D+GI#`R50sb0&R)^ziQxE+l8 z(^K&-QG(RP@=#gShhoC#iK$mrvA@?!N{u>7zgBp|2ycyh(7iAfgtt4Qk~?6( zM;xYYe>gi^`iL6XF`|Ew*+C%@=>GIKeLv0~u75Jrea$uMT09Y2x<9G!Tm?L2PR$_u zA{44l#%Q@8!qi;>I>#rIa%q3w;cO(oRq5C~+f}R#{~|dsScR-wB5?dG`^t-Y(izuZ zGspSAi2sUce;s?rn6=$!i7KS8x6sK|H^jkLwrHI@T)3F%k`V93!*Mo1_&6@-^a^v{H5d@m11_=hAUNaU&WhY~u)K+HZ+Mr)rOB-L*LSRBAkUG{ZK2GGbf8Sb{j|8$mCn5Cf-lZd;*|DCiTjme z+L9&%-QmIT*cphLb#eId+K#iU%19q>O@3KRXk2MJ9=hw$Ci6hrW|fKG&gQPCCKLc} zikPCXoKEa{M$;!*p#O>iSijqp%x^{DqW(K-R)0l5?)%|-N&sqOgK(;z88Ab~qtSQ> z#y3rXR)9YAZyI3NN$yjI{}ofVvsZB0aOioM0FRDS%Ky0;k@M-PFi|@$0l7r!rIvLWI%wz0~V-KM^f_*$;9czKr%y{>3h~`d98d{Xykj}kcsoihH zoI&om^_m@xw|`UDGxOCl?E4VZmy)#^C!sFe=>Xw)G?$ih0>#nC}_ec++gnc+ivejX-y}M z3YiB+vKDj$nYw1=h^j=RE%OBI9&YX2Cq#6V5(**n0gbHP;TnfXEM&-Dfl1v8*CLrGb=Mpp12`AL+xTHqo6u zhDwg1c$QU1CFA4RnVx{lv0*f8vL3A(nSruT#@M2^f)1TX!#@6gdF8JZZkM~mt6Mp( z$$2Jfa%1qE&$czjcPPC`hfJPI;k#!ZG&TbpW-g=ZR)0t??WXlw$>>wr50)uXIQNqK zYD-fv=E-~Ui?haC%hjOlIEyNlE~byn)!TeB0zNy&Ny-;-*3~r2m3yB}>C+D;0_`ndDLkM71M(e$DOXmvzF_3k;6ioHu_N&D!fk^yW~$KfHls%3 z+^7Mh%IKg5w}x+#Q|WGjME|7v4Dh zp{UAHFbWF7%4=De>EMYBU1hA08b=)pWi)lyF8UmKT;!YSBivn<7H7FqW~vg6Nz6yx z7)^dgNU-{970nKLO|$z4N}fLc!q3`iV%mmy81nOaT*^|(zRP}C!Q4svnmaUeSq^qy z7zyz$5Wo0)en9^#J6ysMRQFY~#7;uKS!3y6|B1LeQV+zt?w_sG#lUChNogK?!#LAa zzk!*BHGHm#l|h0|0EL%?k}jVKrnm2=erNOWDew~Mw{nIuc_2FVq~Ob1ur6(Cc(BSC z^*G0UqZrDW ztcCeMmXHZ^jc?9jZ@6NAoW8G$UfXl9bVUFRw8l|>4tG^fZKUlIqQze4=v}}1BjFv%-zU^xJx24dO+X{xaa5ZJQ?N8MXA?t^HH!1HyOJ<}Fz4DGy2E1G zXR7VnDIQM@g=)|U{;Zv)J?=U5eA^WKT>hOdFsu1S)iK(3m02?NOR3AXNtnQy#Xirx zkrHNy3pUJyzCA;fu4J~a%Rli@*O??UJ1CC%bt~p`M!wfl8mN>A`Nh&`ZqvsM|FQi3 zSVSfpw$Oa;SUf+dKw9thn2#=nt`1LWOsfI18Z*!w&6%D+JR+Cbx}tduhTv^t0IebhB$l*Femv$iwF* zUu-;ciLTb^K{fvzjc|NMhW~|=UA&nnbdaESej8oy8IQlc*3+8(>~+Rk>QXikvdNpp z*pCD8LEQx7W__c*PunGzW~>pK8DB`^&hL}Ep7i_4SPHtF<63h(5=NVNuX#y>ng$x- zU27WJ6|Yg-2M7E-ZG$mgv!GPX@9F-2XtT7YQ#o?H|85cGW)?W7lYoLx@z^uIC&HAj zQPaLW6gcEj-{3TK@1KB&hhB(^3o@8n7)iYp_$+ud5LVqkh;^@thK&6K)NwViR;9G>b0&$NBr0*0}DbhMUZ7`&l*#$4>sC zqigfw-A1Uf4#DC9Q(?(mkadSMpsRNpis6KCT5*aptj79oG!WJs-jCRX3RDXw2npozrn zyMg5-b*hm(?y!ISst(Ean#r9AT^N?AB5~7BnrPJ{CMMWtttLt@*|KGKuv2LTN;9hZca1xGm{Y|Uuu2aaQ$z&k!3y(4PDIhlxCd&^}?a~4< zQsO~VujZq}LmOpRdgHfJF8AsO@-spiFYffm(FZqa$D$~NytSu`kG|07W0UB(`z%ou zZ6nMYj#Iae9GV)}LPt6s5dY>LRa{}OxmptZkIon44ZSGvLn%eOvX|UciRM(ai2sIf zr<=&b(EF>&zE&4=*Q}(QjteNCxn};}eZ+3tLsT6rg>CgQh`?*IKe|RDzfD56-1of7 zyyjsQvngP?g_u4&9Vho&KTsTR&mLFNOFVHf7$pEM@5ADUi- z^K3PTDt=hfFdJ7$`)47mtGU?pA_aSHt{2~p?$L>+P4x7$z~U7(bm7kda@{Z$#ZtCd z{z!1|fwSi`)3K3rBh`EQ;QU)V+*9-tvh%ix9XWy6Y~zdnZjXdbvj)wsO@v;vvy0At zS)?4@Mq3^$W85Dnc5D4**KQ_$J=#HvuX>6A-g6BP9!n4Zb?}bh7&Ag9(uVY*bZ1}! z`Yj!Vqw{hxY1kB4#&}XTGhGi|kQ@`1+tek;gPT`WnS{N zsqDZsan`EqiBU5X@F2dK8MkXifhynmrL^%$hk2I1&*|B>8>Cnrg>6kPd7KdfDGdx11QSGAMAkqN3-x-%y%TO9cs0?R&9 zxLG$C8+JEKK0i{WS@x^M&6ZUndpyruf3cHtMsIfdxI*pVRC2j=iS}0PqywX8Q8*tX z$Ap4;p=Tu{tJ2}e{m@9)1*A~9PRweL5YlIQUoj&8D=0-8;bX!wJCO_XW% zRCS!Sn?;#>l&SD{0)n6GQ>leMJh#O_KX3>J{>vua8fW;PsU*vboPFfJ-y_4`>@*#N zrF}akOT?}fld$6~-_wN@F7LBJ`+a|M zV^39-bOVVY+^-HY#LPpS1Jis=FO*hO_9a!^`|XQoHAA5?&J9T~4~dEX^Ql%V2vbH+ zLG}q*xR#7UDc?sTs*6dkf?5u~}BT9Zt1 z$G4JmC$3O9H5&c+tTTZ7D;HGR;hoqEraX5VY5s+#FP=foUY?RwlO`i|h&mQJYUAtQ z?)cj?9V6Zh#;kxgdY!jL9NaX4RFv%4Wl};#%rmu@_#oWKhPy&~c&m7Uo-|JojiGbs zm5L>z-oK)Cj|c|4g0Y-`2D^sy`#Mq^FYm{Y?d(!ItDuN)T|y;uw3M*x#tqjMoz}Rj zHH{XPWm0_~TZ|~YMzLiEm==;iGkU(J{(Fx|BxSMqqWDcLsJ=n%ITLZ|{C`4q>1dSU z3OOGb1hbvJ#ERa>M91S4s$G0w(uFE zu}U2u(%dm`KtEU<+eX?O*%$nBBI(7BMqI{M(!CW+^!l#II^Ik--X>Ddt}3*0f;o1* zuNBu-10>3O_-8y$6(6sz5vSkvK@T})?EU>sNS)m%$ju9zn`&vci#fhLDk1w`-9&G% zlR{x{uK4%r9}Swkhvu|(gVRGJxHecpqiPg|kMzKkYdou5lY)cO9PzKgN}SQ}q{21q z3h~fGWfZ$K-Y%ohwtS|xnTjtS-LNHb6#CA#p~2_RvoB;n`A$&~InUqInS^JwzAyp{ zLP9WKZYnv{sp4UKA{zH=Qy&urbOv-dpDU3e_aTev%BOM2+gQa|DO0pA&cW1JO|;ns zVwBo=Nf!5Z77pGjhV%1Naorhmu!+V3*=b_*x5HGMdWqeR;b>r=+T&mBlhayFSD5kj z=<-i`b&@--A%!A$_C!>7I6{Uq+@mt8%kl4cGQ@Qk z>J^xd!Lm1~lyjRU=LCCK)6jU3-@Qj2@i5pOPs)ABJjfO<73?ou(?qrN2S9l&@2qvE z)3>~rWR-4&C)_K@YEHzNqdp|{K}mdH<%mK1tguyn4LMxYV^7EmQsH;cZl5B$lDLB& z6|~XGQ-571RIejvhu+-rn2e)`V_}^fMFl(8Qk>iwQn|q${MGE{ig-b)t0EEhn_X;A zf6^%bG#q}Vi^R1akQ&@T{cg6=%K-KjzA?ab4Z!lQ2AwPGgSOp{=-Hsa>3-xS#jdcb-*l&8ExoOl!05mj3>{!h>lHnzAy^-SXY0fJX91SY<$DYJ3H;an zqD9aCiY>GA&~s%tjOLF+!g)i){BVQos(}dc+9^iA)j&nRd^||jfUikE99UE=G(&B0 ze{C*gPO~qev4oVi=%8wRCPbwN_G&7MUB%qjUo?`M^DQt^i5YJHa>-^o^R_3Bgyy?$ z7{+(nyAieG%I$cRr!A)zqe61KWG}gMY#@AtGLbxi`Mo~vuBzW1@%5+-?#x`n`347k zT&IAci$nR$<%fS~rc-8Z8h2#6!RNXwn)9?U&sh=C0enX2$+Pxuk*I?K=O>qnus;4s zZ}CU>?S}9U=B!2YN8u!uz<*Z<%o}l=3TOCZlokIQ=5aUc@M_Xhj;B7OG_hd&L`=CA z&Y5O!8vo#mcrqsfhq=qJ^1l(xXj)7cr|Dt*j-EI;SRE&~@H@lRM-*@PB@qp&ICwLF zrt#e4&N^%SapO62&>B*;GQ*@>87Sb);!573UR&ly2Hvm4=~Le5l~+z(o1}0*$p}l` z5;366iON-4X>4L1&eq%G_~|2b@UlKu9V?@RUttKT$cFTvWN5fYqjJVo`Z3}oolFx* zDeVInd*%bRUzUvS)hf1pQpTc7?l9=>M7tM{BEw1hnR`-69jmS2-@iX@Ok6>Qhhnhy z4Ks|hPmz7!6kI!XhK?3POuWwL!rmK6`{N;^`ZF}TOd`q$f1+#m+v(uQm7+%fBP9;c z$N1Ykv-LjiI>EkH%X?gq=({n?-j!9oE*G1Fw^!+qxgAm9BxF~QR8kk zbUz_SGe!xt&7VzcjjvF&nW;px!3{>8ljv(|Ca$nY>aK+@d#;!bR&s%+_hz2&R4ZDz z)&hEM#t4eqO;!B6uz2f@%!}+By4@AaZ`_mUP8P`gn+&I2&D5_m5{Xq!l<`iNUPS&! zVVk(y%z3IswR5Rvo*||i)lpg%@4$ZTp|PWrh}@;&9C>w9Zy5iuLecq@IpaGK0+vX|ve3dSzU$K}fcDYxD42epM(Iz1-lz%Ku)sm|*W5~`C#RsSfjPZeIT%pdAY>|U z(3QMCWTx?69Qd_^`hPY@j{O*%5;{2hsVnXjCLqW*2mr%_DWfh^`aq-13d6n)!YMT`Qp+r$Ma=$}t|$1M_(Z0`=J+?u9yj~s(%{AI!peo< zHE*MMzdsP`c68E~1zX4>RRQ-Ns^Iy|5h%6JfXsUnEL&!Zl;$zibFM9#r(NJ4hAtI7 zU~eY-qg9_2;kfY-lK;o-P=&+d(V+s^TF20t5}vPjY!lmadSd>gSwf+I49_$6&|UWu zkrI*vF&wdq zDYQ7j5p&BglWX=={NKxFxiuCgCAQf0pAPJt_EEqyOSrARL?vo|$k#IhOGCwzg0sYP{lowt}%X@G)L9ag+r+Jai2 z2PRwXad{f&BD|&ecl1>#@4Z47qWp0yN}X27+2HPvskGcB5Lct6u)I|t_gD5t&6Fqf z`*MGJJFX|*pP5Qdw+@l>HxJ3gnyX^*sUR$!TZo`_gC$kr1GqPDhfl?!XmL}a^IiH< z*xb>mOdwGm<%KfWen|e~fYLwRD7~8_wB7g&kVa8i$u^x`~x#?ff#@O@>hUKRJg@=$rk1W{@qXz8Sh*pmKB;&03j#faZD zrdK<;XUsLSnO#%2La}ysPfDC}hf3Od<4o~Yx>jUGN0zGNr<(za)YnnsLR+4h zNZ8Z9j@*8YN7n{#bf3t(DQ1UX-<*lX70y({{JQqXf9Sw}&qc&79bCHTgB4Q^(K6La z-0j^=CX-4<*uW&rP1sBeEV3|pTOX)-uArfhKZ+iy{n;_s4f1--X`ZA?^Cw!0`g7le zsZ=j~`^bh_yoqDB3 zRfGRZ78H#m>vCDFxY8ebyem6r^On+ku>bJ|Ghd#+ptmxFwH1%Vvps6~`%Zz@I;Uff zKQl^w57L`5p0^z6iU(J-D07h@7o+*Y>QWCfH_4Ou)Yw4#sgf8v`j8}GmIoE&wo^y5 zFU{fi=3X1*(i_SJ!CQYpaXO}sa{;DKb$X0Cs!0nb^g zSoX1z-Y}=`J* z8H{JmGIU|%FDkkjitlW1ia7mAJPKyVNCxw^(vJw~8|g5)n}r3dSJ17%cjBex3YsTZ zMK5>fz`Dy2v1f-T9X+Fh`1yTdIj}1>XLus3cpz52m?@;Wkl=B4tdq^leImR^Dk6Tn ziNh|;+0U3ks&%#q?|+RHyDlcT%w(!{Fv3N@z2fKHlcdI6&c%-QaNMZCytYAnK6b`! zqjAtK%cc&^^>kut6ocYAMTcHY_Ae7d=D<^P@#_}_;;z5hw8Fm z7&#pjE&NQ{Ups^1w8vuUi7m{GdnYbuTqeEIgV5ytLnz)EN$$f+$?U@e3fpo?(kf$3 zQ4xidUaWu+&b1HPl8@Ss091B%$H0X>F?>Ndy&jQ|3H^sr*57zU&s*v8rF$5r4}2}E zRj)WLcGyI7kG-IJe&>G7xFgY-+d@7Tjz}8J9lXkNk{>Efe=eM(i#2%*+n+d6N%mT(8J}?-0!r)m1@qchbQ6X1Op7-tc->VciNye1^$=EA?8Fr6&IFL zN2Z?8jnYR5xnldKV(f19rRJ9hXE?Ss6g@2_=j1lJY$K1JLyU3abx*`B7y!?NbgEpI zgdM#C5#Q4m&fPE2;WtakTrL7Z>~Z%0;fEo`4MP2ZJxXTU(7gHP2)Q;IJ|6FB@swn- zwrLlwR6Qy3b8;+jk1a8O)*JgSWWTmyXZr(s=e}s?dI5PGUkKT8|B<7A^Ku zn1zd)j0kMy+3kT5XJ}=&zQ~_-M4XAb>{55|69w9G$M*VgSmg!a{Bi{Z^qeR3f^FfX z%?>Mmc9?05!zGUKbeYTVVg2xTc2A6- zc7e`m?-U&u!k}WbnU(~#Q|S45&Q@v6S(q~rTaNQNIKq?E?Bua8`w$&*k`>zxn}|Ml zgcYKK_xXDrmpN}zL58aFsYH~P*L>fFlg*Bz=N zu+Hf_p`5#p2|kzhch7Zj_W}40q)d^zDyCQdQp_kzY)y{D2aU4^I>+i-YksISqQ}Zct>M zJZ&cvSX?4>WgI@BC+um5!_YwidA zv_K4*%4aN7BeeN9(8i6s=#tI}dYSr;=V)V*AL}bNz4}Uq?pn}LolE13&ePJi3FIqD z!{J(HH^}wHfMgrod^3x{v*VzX#+;7{QG=T3u85hYyFO@R+-g<#^hCL^Q)|1hwq0KL?L^W-&-kAAop4RPB4S& zc}MK1OeBwUK{)5w1$Ep}$cQ^4zB$Sg>VnweaE~JYn@Lf+t~m0(l%xzl(~+(|NNJr+ zEhE2?Ml|P_;;rGbLQ$A5jHPx*Gi-`8$L&wOQTON||3=g36?3k$N@Vbc60z0uEREQF zfHt1^${C+Qw0XfAT57}j)@=jXZ@b))&yw_euO@UfrRhpp5nNU$V5FWR&J6Z})8UsC z#NCRNx6Brf3Bd4yF0^{N1J3@O&OXMq6!1O`KZE_Kd{hAz{PRW76>~&xj>XCu%s!FZ zLc5s@ z{5+COaz~-po)S#Il*4?YVRUfOSFu1l74xQF7iU*Tl4Q$Sx|hoN=AW6!(_2pSN9*AA zW_A2H<$x7kYU#6$Ar&xxr8V4>dA?`F?6i8Cv+$XCaKskl_7x-T8uKd`0gi{Ha2KJ7 zOb^C1lTrA${4V|E+)9V0Ep@rWS;J+E#LKl4QKzSc19Ml>CH1a2JoJa;&{}_(&Qe0a zpfp@<94CS^Wf5yP4$`U~bc)|S!6}YVxY3`TVts`J&+)@9gyQJtHd0y;hz*{7srvgo znt10aNo8#iCtL>!A@_;wOP^AxwiniI*+Qurb(C4Fhn?+1N`t)OO*c9{Zw=Mvqc;54-Ya%|10kAP;UfT&%C>Hq%SBFQ` zw6dDiCo(51YB_~xw^D*-Dw0&BktW5nYo1#!Kdnq}d7ib_)emabnsj|h0x~-HQvV@a zNpDadV#XU{t-}u5bF4xX^f5!{YfBg$^~9Z<(wH>C6O#wcr%VeIQVCYYl@;4bM`?-V z{?VDVW2_r?l)ok_-9`oyO$1IZCNtf|;{QAU9Pe4wC8|OA{0+jje`*-=f|)ixSIMmK zHc5Ttx!;6alARmIxYZ43Ea1G^}neE&mdOn4}1@?ZNlx1~UpZj(~`=$K5V@&{?KWNmf-9xm}wo zJS`|I_YM^-48XeuaY*X=iEh4(B2(r`ELZo%8)@FJFk9_3?^n$ey)byTIvuUF5-x|@ z$d&ge*CLa!Px_h&QwoFkJOymyGt#4c2~PAGOUHM{)9Y#TB+5$)aq`OrT04Uo?Axc{ zU?tC{azn{}TP20q$&hk+8#yMhKgho~-C&2h-?T1B*?d++_*|i#*Y}H1-l?am2Ez5| z0rpjHqvD%ygxY5}_`XRXryi=Px85z5r9LIk>B-bG_BBnG9Z4m1?`XKy87gpKC)t(x zlr}&cKj&W|xdI1#S*l6u_Z!HOpC8xWPhkGIEe`BqzQ5&YOzH__$Z8?-q&pt&9>V7l z&S1?S5>es)H`v2tq zGWUSzM$V$Mq6d2#4ABs1$`#-`5xLJ4LFKmab#5Z(0S@@8u#Ox%Lm>C#Aq6wLc6au5 z`mWU|isy92f}cysHlBa)-}j4t6JC;Z+fsV*TZ_)IcV;)|cGIRZf8*aL3hy0;4~;p{ z8)rn#SEaG-@&OUidY24?h~(UW_nKaq@TwPn%y>XU_l&`f$=v;}zDoaE7D@8^a1QVX zGoo~(_!<9EQXQFtWlcIFar#K?=2=K*(|CMv+DPO3bi<6XMcBUmF@4#fCh0p`0{!L; zTADE!4|uLM=>151-|2%!$5qt$pAKE!EWu{Ox8!TOSv0iSVy;I&d}Ei&gSueqH{O6g z9hfB6tsDj08*8w%r1N~ zzkr&1yJ5;2C8#Lhq^c1fz-!DBS)`1i zFWGC}*g;;*5~#KE!ExRVeNxRr5ISh9<~|Y1bA9PBMfx_(5c5MG(Z>l^q*D8YW*tz) zuECpV=~-o1KF+}sV@1pe^TfM9zA)z=+dUKh`kvHJLwg4 zbs%?N{yW8Y`2fIu6`8cobGiGofy_SU;dMYEWqn~bDZ5>^#mUo}?i%o@{y)Nt$*(40MnWIQ%WC!VfeM@}~ z_Jw+#8XSfWMnUZX>iBnt#;}hnv_SpF_wHH{47)M)|jCdC-;h8!4Auey)HJ6T)UNY~KJLY^5kX^4Gsl$w2WMFNeqFPhdB~?pLV*2@7TNp+{Mqh z2174Mj+($Lf3IYoLoud~&7kK`*NE_=%*nH2u0uc2)wM}D$=tjX><@XrFM+Q7XM&^m z3+UZ)KC7{#_4YeI>@29HmTU6R?AIZwO!!RR?_@c@#tb}Vc3N&5&ipGQI8@8QF<283 z11f}ka1zkTGZdxa%mBB=;;$3QOz$VXIaNu9t}fh1vcs7p6}11DI&?4@vugA(?&L(Q zs7u7&F}+EqFdegD0}qwYWH3B}dTTGBRr@1^o{B4C4?LqQsoSXb>}*=pTLDfoM#%oc zJLoA@bh$bkH}2gNJ2;DMXl;g87FbS;W~bxQ1ypmZhHkCjN`2347FMfV$*DaIIk9To zHG4zZeR#GRBTy2UjIzBY*xs`QSwvVAG*djRmLPx8aY|mOhJJ0LXquil7u?>$dv zSH|MF6Z>cqY;m1Ay#*=9sQ*;%gJi9eJiICc^}FwBn*A4gar!a2+>3&X`WTl{E05ER z;k{9tpNP+AxeF*qcvP8%R)fD}_?&R$RXmny4xyCqoPjHKLHE_haMaBchMZkdZ@x`~ zmPW(ia2EFt;wa(`XMsL$r;A^GQL^7jOm00%9=Rdpb=efp)TLoH>jJIOiN)WSx?-CO zdq;LpLHX1j^njUdmxo%??9-e#Y}hYJIw*m3d~b2(b|lOP7$DSo5c+yf#tbkkFvb~e zC5bdmLj%fr?ij*%<#xS+;>DufwD&yoDzjYBB3B}*F=D66d=CV^EyQ34Zs=hRXUvSQRD>{p-)^$?>)Hl;61{7sX=o91V0trNDBUoKRS^i>hQZX!rOvv|wQ_4xgWZ zOEx`uPkBO|=l))|-qy6iRKPC9nF^)Y(XhxHTc%`Vw{!_Ty)&I&&y(fvwVJtyS$LwW zMS&ML&;i|tbTxl6SzpP7*Pmo8+JBtq{oiTvmhssAB@8d8wvn9CD)FcNtngab8#^bD z!126ZIJNi+*)?4dUd#+IDsV^e-xfNa7LA(Ur$zgSS~A>hLMzVhp;bZ}U-LM3e6vhs z9C|?42L2^Uwk_gL9T&BnW2vaSE=(NV*~RCK%TZ5+Uk~;$@N8r00cosXAB>=HzO;7h z9QIlV!>z{(%D8z}Jhi*L7w;biR$k(RTDe$=Hvy0idoQiCCtnTL(C?R2K`4^_6u z@V(0dAzs|=W_Q5RS<%R5=3-O76l}QdLaF){v@WlX=c}BvZ*moWvfTg7>y3T(eeo!a zy=y0waOBMfvDC{Qhx87TNNc2{`!~@Xa}^}jWYeD#&bxZ0VV8C+KK!^t#+}xXctyKh z4Vq0px6jZCCl4IY=|g|6`@_8ZKrAb9r8k|g=}R_qvbWUI#9a@$-(`Tr(MWdFcPLYxUmpzE7=*rt-Oy38gOWS7sVSb2P%Mp*M;E!{{Ehz_f65>&V9o@MHmz6f&Pi(p)kCV;x<;%)yjOd8f~IY8)lGuuT9jGy{;EOpQh1v zOh0f>#NeQwFx<(E7=06Z^Tr3GBh1ia)N|4di>DoZd}s`xr7wp0lkXLF9|m^P)N?@3 z-Ph?FbIXk;{gBjcEh3GTg{bMBKo)0ak@CM02(0v@;Pb~wt91l+>7Ak;QC6bOy_6Jp zXz@M1niL+Si8>`Ov4(rP4?R<;qA-aL9E`)v{nP2*{)5!tw}=v#sKVDX1=o-NrAb>R zV|__CEIwRGuVyow=HElHtLhWETTG>EZ*nl|g(2n4vqtmRCql8C7s_mtIjhUvuq(Q# z=iE?oo+j^1PExOH!`X#6ooZZcVX>WEdI$e7pSFQ&A43e=kp#^#Ba!3VM6#ReoogO4k4+$ala0}tJ#}EG3y5a9Pf1I3hKvMZr z3bl=y@ZJ=RUOA)a_aIB0z1$05@r2s%wUSlrMEcvXR9K$RrGm45LfOGX%o{sRjJ@-a z6qcKyRmfAFwG!_h|0B~!TO|Wd#pA7!5!#=6Q^mr1dYRuy(>xrp{sX%~o_9!+JuS(L z*+nuBe32U*hsTRaR<&#&%FS!~Me1eI?T;t)Ua8hS1_U_9*V|&ZSUVKi&@&^#OR|aDl!k zbwSu6Wq90BMa}`v;_{4mxbiXjuSOa*s$0m5dQ<0L6S!!rVS02rrUWTM@5U&6<7ZM- zhacYVIxJ!@a&AeT9d}Z_(W|E+95{z$`&XBD@$RVV?Lax~r8|Bn4)(KKX!F~PMSE1+5{D>>t|%DL}JM+_2=`MJ?X*NUX@ z%)*_r##^BJS1g}(Zi=IN%xjSykBrxA=}wfH#O5(~I|D*#NF;M}(%GdOpoxJC9*RKe z4Wi^ri%|SU2>I#3OvD6umRljPUI%OEgi^h^4(9IB!O{^Sco}no?wO=OWDO6JpyB3B;%VWNLHRIqsBcb2<2YGiI8lYZ%Sh9~S}#oQ^MI0{2jl2vcBtOHLNoq(V@QAu`uz^Y znI)@5=`MHF=k*A6?qvi>?=b(hz3vF0%>3&hsN-cG(U2qkoC(_4nvW z?o7JoZv|V`K4S1uGwSzup14^pOCgORP;YOb(cfF>`kqN78E1hXhoVV?XBKn6JfuNq z*E^r=UoM`ha~~uA6h(K=5?3E;;A7Wd9LY8k1KeuG4ep@Gea^&s(@jEZ)o1#l??Zb7 zhj9M*1;sZwVc5@5d|1Oy)Xop$(r;JfHagRU=$$0%+8u|cjl`xlb)G}zJC7)2enpZt z)_qUL;w`r%I(Lpyokl$O5MNR(|GH=MJOALaBFc)|$P9x>QT$gEX*1f`OC65d&ZShU z#&f5TZ0s{TLg@>%$-w(2ZSj%dlCm@`KlI1E*JJ6`)Gnws(ZYgyIYj$9QB~CkaveXM zwq22?!ebK5NHE0r{sH3l)LtlYJ0;qe`%Bi=RESH>W_bI%khltjq)6W1s_>b53g5RB z7Ps9VQ%K$$%AHs) z_H30y+QQ{Dp+`>y3{^(Ayx-Jw%O4@D)hTxT{*OML(8KcFR2?quzs=)`mnD>Ws@c}MmRy<-cgjbj-qMI zJBd3uhh}-`;>V%|)U)t7N%^cK_Z$uKUF{2Xhki8kc0R66cEcN2&MWLH!LUn-sNlT7 zRH^GCp?kdW%gx5ZwQ4wDZHF%wt+Z!X63(kASgL(HWs-yC#YpnyO0UqMQ*Le*u9aRnI4?uaf=bXwk@WY z=f*&cxJ)CZ`;u?hZK9%Av#2<0NOHlCh3VftB;h`{GJ8*~rPtG!Gr*m3`AGU#FYX%2 zf zir8t_CN?nJY$-n(dQz)zB5c0p=3m?HAQOPahg z0cSUA(BJj*#WkHQb}wWgrnR2l>G2(9dKRg31}DDlJ+=K9ikBv-)KzG3&Y&N*=X@sT z@00ML!3+O!Hn8}Xk~q*Og1wO1NSCam1=oFHl#_$j56fs&(;GT)i`{|2dYJYr94ogo z*Eg#_6p|_^=^=A=$A(H?ujqpo*pclV=A#$gr{&$B(NAagSr}+w7W)Lpo(v_)LT8w- zb48$rrZD(66!lr-Xv}UaG1|M1-aM0{xzU;U{zU^S(|aJp-we)I*aB{r30N^?9*{i#plUo!kzE>Mk|NneMABl`;I0fzpfZHk@K@&S-2F+ zUHx=*9O$t?WE+*hH@OFAN#$YO5`;c^pGZ34mr%Izg1jU3ktt(<)0%zYdOjY8Zc&sx zF$<54|I&=$*_3eK6A5QS5M5x&{pW7<=G-IlU8are21&STtBqN2bzNR)sME3uvba9K zlNN;NQx11a-#5;s`>E!*Qns2do&f3{nE`v<0y3Q&sADqEuYViDf2s-QjJK6MHW|%) zvUJGVL}9MGFJ9!#A?-(o;_#(3l>N9!*K+en=Tau*?lRNELW)jaGlP+L1p95q(8%%# z1oG!kH0k4&fj)jb1@;V`O|=guqO6T~@6B=0Y(Fj;Z)`?$S1Dt3d_H0mmWU+jMEF}C zq3*BuAGna7cVXF|Eqz^6I&`+hqW{Y5HQ{fHPzp zlZ)G%C(yPVx!hTh#SbGXL|hNU)WQw)Hz4k9WrScpBcwB(|e7< z@cnI%Ke{cFra3=pmg{_Nm}NyS^QNHly^)U1N%Rw zC&Ao-Nq$VLy+Y|$UMh1AtLV+a4DPFaaJkNRicu?+V6JkOoN^t=E`|5R-*^^(v;a|i zKGDkxZ9KB{jkGu%Y7XxjEo>Pyk5X>W5=(jp zKx#`Xh4&HYZ&xoFA8kWpX9Uw5cQtYdenLHOy`uQS@kn^3K=nPhlU6SkRBzUz8$2W4 zoG}3lH(FzkOCDzL%4JVoFGNabP^y_MX^k_cv<*RMVjjjA*w1rx zBkuGjPvjk#|5pl2@P|xg0D9Y~B1Jz2jb4KkCcRw;Gx;N&&H6J)y8KLs$nWqKUcE z3gyW4(e3$;~_L@e%iXxf7Y1H8qOfg}*#5VUF>~$=ozEUw5+__2o zG-jT{_c9Ux(hFz(0`dIQHOf;o#8nq>bnCljqMHtT$b%ULDq$tF#ltX zaCdfeIs&u&Mxi7_3E8()@vJF;nwQF8%Arh3eDZ-xzlV!eZ({Ld;9k0S-GHvWVyUnhKrx5fzJ_L|GO+)=1f89n0(ycV2Cx{Q!u&5T3YyPDVg4Fpoc$=VZNqb zTv41MYWu`t(u)-A*wr1`-aqMCzsGcH(q^)ByeE1e3PY2W6z0JU?H^^u!5@X>@%;xm ze!f7e{YIltSqx;73{iLOHkoPrBJr&owA&3}d}S=27#l)CVJj7D3S8v=uzbrJ@mJOp zvnK?z>-4jTI<{RHhPolJTMWWRZWQab`r?cv12wn#dppMb{?kk7?B@a~=x4$2a|Jy~ z)e^SsGJ1A+IC`qo(}OogP;yAewn~+mY~zH0 zehqX%Zxi*>O@mm&?&sa-Y2W0{WOg}>%5}!TplKm{dO2_9d z=wO&K@ykofJ*rsu`YqllSIGg1#+!aCRrqk`L?KESk zA-X7!#pYv~%qw?B#cX+MOkg&E@&Ou&RkY{RYwDqtix@GNj}zw9?ZH60Si)JOzCKvN zy@jSy15z6*;AFGYiJ1(+W?X#co?p12^SS%LWzNY~c<4 zZ9Q<|Aaf&?w!4I;ms5se1h)7Mr#@FcQv2uEbf=F$I+n%?GmagRiG=UWQfZH5nZ z?4Gz)h^T3cC_LVg3g1LSzicKQ>FI`-Mu*7$yFS`uUvsWKA04qnVA)Ym@vla};rkd| zld2TElMhmmt`Te`7ua*vhaL~jqZ2EQDJ79PFbY42UfR<63~RJ!bYgdOoctP1@zCz7&~{9~kUvXl zw#8^_o6PQF|2g!$ph!Ib{fbu4DZmU3SL{<-L|615inctTte2DoGJk}j;DPcIFw&}Ws?6jr~Oq>XP-@Xi3tGEOIR^&mQ>-a#>u zZuDsDDN>&DmS#_%BGlD#dG3=>&Ib2r)7<`Ocxs7(uVf&Zs*U2Gd6;-WKosdO># zH7{~cV@N($FZ(3i?(*!f`ZO8tIZWNQr$QWc#z)?}JX<@6qO1sm-^U?h)O7L)Vy5)D z+mcP%oEg4#m0q0f36%#HBX~=w9siv6Di6TcFXqs-bA>oG02OPepm&FX`0&jF={&Q&Y*a(i ze*9j%JcYcX{6(JkZPH=?+j@oj;??&HX;>2riA$qmLSSczRV2i~kIUa<&q+O-W)V;(dx6 z9)}%~738B-Ot~G$scx(i=2fTB#MR*xdn*Yu*yG#qqAxCNzeaC(jy{IZizP23k;q)l z?0($oEW1N{C+cE+h&1l{J)_loE9hN%9wZiD#qHi%sEcNG;u=?Memav5F`HX%sROA@ zmqK&xXIiKdNlHmY*mA=Yhkl3P^34R1>k*EWp2^VFD#52QFNNET*US_CMKg5Pi)kFD zot%=3kyHI~Yn?w{>&D^a$fI;1JRFZd=X0KFuteQwhNzg;M3;AeBh`npkOVpbndul? z(g(kJ=aV^3560u8;S;u8GG*CC%F(SNTM7TqA1@;7l}qW3)o6;#6{s;~NZrU7TpT!8 zTxw)4+Irpt?kD8D7!9ixS!ho0f#Rd8)J;(XWqF(E%Xkg?G1vx+6T0Kdpv{~Q3PG1K z%+RgZBFXwR4E^_ow*FB-{Buv#Q#(CY`%Uj2Efht44^UP7XX-iiqU7WkX{@}-e3EJ5 zqT@pk3bmFOx972+c>D|T)5;KwBCpV?uTf}lT0@EFMq^!I22JWaf@cdBFl%5JY;-^L zVE<(_&l0b5rn19=dl1u-(D*Nl0`{2V&{ZpDUC*Ol^{=U_jJre96;v}n5ZzbkkeTNM zETbUKEin(IFZ1W%>IpJ$87K4ak@RSYZZW8(bQ?bJ}_ zjG*%`DCM&~w9FLY6>CpvI#$qgbEd14_KS%nE2*?i5B&?4P~*xG6!o7siuC=U_3sC@ z4L>LxyH?Z5;%ju$TpM5gp3tF9`q(4_sU^Xj`iBN#?_17xEKH(a@`(bEnN#vG0q=dH zuz2(wYST$#Mpzi`ZpcOH^&E=1=t;^7OQ>wvc&txQC9kLHXt}9IgIX?7LFjI(Ot&Qu zcX@ov8cS|nv+(Pgpt~<((AxbG>3_CFSC4@bgCc+G*gqCZ@kfQt9wqvh*BvMF*HhV| zp~$VY{y{|O!?tSiY%Ru_47G)~R(Bn@!wA>^W_cLs9 zj`QHdPdZ>1vva1*IZekd`C&q?1!l$t;Zk4`G_S_w`}e z*ZfQTiW`Ua7XrG?J)orQglU#H->!7^dVK9oL| z5vWpZr^qMI$mq^8GK?RLDCTDFQjdU3|5&)@Mu{~+?B42SjgG9d)XR4^&9#w1M#pF< z4;zc__Z<*FH3E^2`gmIOk+yXtBfjx3sktZ#OVc2{)+@$~9#&YgG8A=LjpA~)41Q<( z;cvwraeU|z%IqtRL)tu#oEM2#%M`_6?mwOVF#;AJPLuM;ff)Hs4If5$ql4ea^Sd=u z>e_7Pl2?kx2}XFGQv_$7A=HgCQ?rMpW21Brigxip{huWyc|HK8FSb*mffi-lo-Km6 z@J?-sB}`>Ei{62p7398g`Pv-ZDhHN4)1maEC+TYUCedj>3`O_&tX+AL#+{T$W5py) zR_;fKBl}_hxF5`K8i+T}$EbV-`^6fck$pY0Gj1LeTOLlQs`^s;{!a&6-3n=a-D&ZB zKKreuoao|?pJY6*lTL5Sgw6?fj81$bI>zftMp*`;%Xa2?bo8ScL4l~Y;2dqQJfxoQ z1?jnu$iCeY3iji0a*P&j=UmX7gV|7Ar2)tJwd^?drSE}WVid5`U`$vj_6C;V#j8a8Y{=|i07nNj``9O<*Rh+Rgu`;=M8yZRe?ufBlV5T zr6+zZR5NiDM)BSJQIs-96*ysm`v-bdXo%824&w6Qb{Z-pL80U;9S$^tvrQ(cgH_wD?3#(o%5w%Gv7D28wd+hHNhd-1E~BZ&P~kIr28;Ci_WZH$|dv z7BipOjii^}K-)Bx#qMHu4(S=7dS4QjNb6u5pEou741uy8kx}6iVfs0YeF774je9Kj zs&~-dzg^)xb0GR$;GUs>o8)GLvFPZGg5{mDv|)N2G`e1)1#<_HYqJF|EMx9x>>7HI zxRf>o{iWBh)G^;V3u)Wc;JwC{&!U5I*6u%=Q8f}O^OG=Y$S8c>Z%YjijIn6gFUcFv z{&dS;291w*(mIQYxRADkQd4W`aA!9>DEdiVEyiKB@p&4oUkF9l9DHVW${6)xoI2x3 z`@gv1MCD^T$Gx@Tk%_4H*Q1{`!?2M1BE2fC@p(x}31lJULYGO_oRCMt5%p7V@`bo3?HdEWbEwpTi zFQq~XTbYe|`0!(4lWBpL%Rbm|T>#6RNZgQ*Kv-rK$u4$5$#E z{EISntffPT0I!8vI6jFpGgk`{96kcWzHXu!Cxb-#J2P@tI2~Deaqh;PsXQ3{KF^RTpV-xiU^RETv%&nT;@TFfDNZK^INUX?*f&>SBLaJj+^1 zNi*%SuEr4ePjNq=v(Witz3@uD4<*MA!o*NhOfHy9OPJ%op~nF_aQ-LFNNXb_lPmO- zvqQQUpOO5OdsMD45UU!RjTAo5svdhg?jupM+)WM~DK8!H9bs zj3ql8$bHlgT3uU&CF3nIMqU+mFQkxkw~Itu-q$6wOOfR8z$`rCS@?)}2S_waXvm5h z%C`!o)Z94o&atEa@3*$eE~4l|ns~IB`(o^epSk`ijTm){`e-P_tmFo5*~g3lLld-1 zC7|&>!Q${6ihq1w9JS@F@FZE@d2OOCk0y|ebOQdot0K?Dd32P0Obb3lL-YP<(W)E? zlfd6pIA%QNT$88McOqf7!X8$?KZqVThU3AheWba=9SwUUa5ZK)ejR*BcV+I02ctM+ zF=oDyS>cWZIa!RXlI1+FHKN<1$ZDk_Jjec`z~S5<)R>Gp)fresh17MOH01A@!M^Px z9iI>`*`PfTH63-7XD>sS%)=2o@q?st>t?!sh;XK)F%X0MaYMEDI$rVmLjD2$haW8)ez{r)W)7s&gx!)at(JshU{_3>O~ zHU+Gbz}|*C$)4k(>b8_LCRw7B@4*WnmEiY53!FNyh3i)5>G;A5TA10LGTJ`U6`gDt z?8$@T#tiXP)))CR_#9Ex1(zr8r$DPhcu(=h+&Aq0X;8*Kr+gIE#Nq3acAA-Xj6CvQ zQ<>ardTqrS4z(6~6o|D1{Fn`R-x5MRMbWE%Mx4DQEj|a`Rj&k^0(B zi$AI$P-g;!y$Pv})}#wN(nPnjha~YD^3;8hEZ!~r>14-ws`*145Sv#<{q{8qfAbVL zFI~fZy9D8N=n2msE>cX_96Gs7A7l7`qMp4&*zxSa?f3}DZT%+3jIodmejG}tygcwH zIZxC~UqPkq+(A@prBzX1>BA0hlB!!l8&;imu~#`my#l=v_;DOUofUAVw+hnS%}GZF z^efCBI4+@&iniz$WQ44`^|W!UE6v-|OU#I2MwPE6K1t*-jC1;48|;AH3KZkMk_NB6 zB>HhqBrx|L-B&ZGZ}yGU)~|ySCPmQ2kgnL6mW$mzmkZxt0`{kaQIV`mTNnA`KzlMa z{W?LB2Kyvx1{cUf<0OrEb(TiaFf^Y`qzOu%nEB8e@hisDw)_he^W(Vi_e;Y1M{)3& z7KZS2f4r<;OTSd+k&&7T=UyXVH=rK{@OSzp*AP9Ohf=+h35m*53OnG#`zfB!y&H*B z7V>a+o=Y=BhSL7D(I|`4g_5JTn0~|!9#?hg>a2F^yZfyOvzEdIr7}qj&+%vdnGbKN*2B2^69w;pziJe}GFrf&V&VA4eo<0bmezlyH`or}aVXxg~U%`x)!~eXw$0g6Q%45QUbQ z;66^%(thj|AGLG)grc$5r;ZEP?6;S8bm=o_?ht{RSY8z4dw zUC?J-sp#8ggFDk+2=(9^x@fW0WzEOM)Jts`&TQK#ZrB~85kY-KudrrezEBRGDcUr@ zq3fCYln@e(1Vi7PkE8QLn)@-_#A8COuz(^T>1({ZYA zJ0_&Jof67%6XB5giFyz9!p&nnae7D<`Q!(qYl{@go>G8fc@2#nE}@xDlTceCK}c3H zjB5_itQ044FeU`Q3RckF-abg;41mS9cl0*V9AhU}QpI}>47IvVdzG$BesG_&_?A5` zO!+2G{ZYaG?VJs73CHsqzB?}cP1RLpWVF$O9xqM7FKK&7H7_EgL55^9;W!Ypa&W);(tY0t^`v=&VGo#fupEYSaL-c(jf1;l_7+)YLopjS^*pIZ zcwqdwO2R}rQ8BeUmQNVR-8%M~PMRtH>Qr%mpph;$j>DuI4@AG5UidQiHSIh;3`*QD zRaP4W<@SB_%-H}P<}*k$b}{vJ)@o%GD_~ET3WxKT`We+L|SeTRrOV&{{AM+ zjLs2Zl0u5wqehW&)5Rnsetym=#IciBIJrNOW>?1|YRLzxFy#E|q#d;Amj!G?$BqOHboCP9HRm zd-VM{a7-fGm{ud))RB*K&ST;-e^GVe0Q4UIMYkS7{L({}b=}>0JJXW|IY}6~K*6d2 zOSE5>f;|=IG4h-NE3KMnf-tENCx0W(DzTff@Hj zy~XT{20T&IS!BAGVam^Ua9w1={}zVxbgZ&sSj;zJv|%h~4gM#47;WgZwl%vvoQqa1 zB{Ny}hdt-nBki9xuS&M!?*8`pwpF?q?}tiG^eX%|3l=lKg$TFQPSiUTOZASQBxCl8 z=>KmJwaUN1Tv?6sP=*h8%`iAnI^(;R;HAv!<;wGPz^f9Go*;X6CZo7|faDOJIVrl^ zZG_=;Z|N&vjN1>ouw9-SKjRnX{vOIwN0}$dmV5N}A-wf;KE^AqV$TF0W^U18>Zl|> zeBgjhvE$%=UEYUkCD-<*hUBk3MbNd!n4NzW+v~OPyp=b!zi0BJ?F0_V_h&$14(BX5 zgtX7KP^}vzzAqWZxov!zwoDy=N*~~k>=*dnx5kum9}dm@0`)^y{BP?u6x=O?)278} zHf|uV^bEy+<~zlKMl$|KD?EvAk2`03(8{F|Uk8n6N>W=^-;({xcBXJWq|N0sp5pcX z37od{9X7bAu^=>&E&BI?X~bL12w@#~Wcd`vhGwN-uDVOR}P{^)W(r7RO?K8&?#1cIK=LsqApzIr`g1 z6WIwo7qtwg`}O(c-3@f|u%=#*FE|<-hs54LaUnrhMBM$O*!5B}o0rKs&DC1$i)xAq z*|)_QD=jX4yi&A08pZa$lD{HZEOGLlJ)!#uzM5Ptw#2=~ezT!;z4{v|>)vBesDkbK z1yUtql{j(i3w|`d#rp5hP=4itcvO^+K~Z6h{AsQkBPcmxw8Hmv*Ch1Nxthf-j!%Q> zTLWfjByjo3RGNO*Vw92*N;kFOs;^CX`cNyLTCa`Zg=0n8m_p>0Mp1|LEC8N&>Qlren~}kLGy#gL%*s4&8wXm@MEed9qi6?M(eQc_$n-q=!}p#)9_+;A?D4@fT`q~ zgw6F}W(_zgIT;7W#yTI3n8c~gkK)y@P&Vr|Q=uQ-fTOm9xcNdPcOOaR!TPq$db3$E zl%b*@p9UK;5H@N*x_+ppU& zt-L31SA>aa2cx)rPav1c43W~imfYvmk@ru>Gjrb_l;uOU}I*OC$g{1nYt8* zqRlJWrT2{E-F4b*>0`*Q>#OnQrWaklg^M)T|6nS6FZ<5zh2D!Sb{sIm`D%TCm=-r@ z>{Ac1JJW@G&V0w`_rqD$*oP^GUNm};j5)I7l6QV5Om`S@X1X;iHwE+9XbY_R>j`Cz z*6i*4OVqixWv8=gbg6rS-waW(tYVOB_$I^>C(3~OVm!10Tp2Q7PWKQaMN6Ge> z$Wv~WsMOdZoVFFA-(z`}TIS5Y56r3m%9;Bw^yUH=LmGFLIrnK@us=gh=+reLyW?B< zckIp5*&}E>)&@-^Z);Ad5mhC_@X>WM5gBO8)qj4&%+3lMZv4d;U3#Ap3M>M@P)6Vtaz*jju zn`Q7X{2A4io^&odgX?#s_v%7F_^miDX68uVd;24( zb~NCb%;WVQ(V09 z6Gq8C++FY+^*j7w@~;vOuhaPYqI4SDkH=R-*|UuK5BepNo&M?|cFsB>_8%UFxfj*2 zw!8(Gwg-cTg~RmJAig+gD%~*F{IueWh-upk!wmYOa=`}dI`1vHVX;`5 zKE&&o1hm-Hl~F%>F$eORLzoVnEJ74Ei;C)DM8n)@j1&SVu^sMKr_imZ?Bpf=K+Hzj zFT388z8lP`-gKQfuxq4nR5^z`lRu;0B!W2yM#E`J8Z2*b6JPFViRfK-VBNYOju=F6 zM3)2D6Fo`pjd$Z|^*RhXFqEm6n=|~3V14a7wCq0wDW8Yn!pm+klIJ4NdlpK`?3G(C3b*?(OSKN(HMR_UBG2Ht*RfYR-K-A|mXk1PqDXdnP&PifDR`=eNP{2@N?oxoQk&FP;d=O1ggh;bi0sPj_t zUC!CyzXMA6oSToKcRgjVItM-m@@{=T7iYrS@z0iLD71JC-^MdI>7PUAVkOLyd8eLY49)PCn9!1CIR=X=k5dvh2m4G|5D#`pZ~3VWc>b{7zBe6es=hgScmc zFR#}7GNt`T@!Pf$Dc#mc)^~-RwfnF#Hl6L3{}V+m?!oxR9QdDo;G9u7j7i0(QGKc_ zkF4*>Qg8V=IT9!0vX&{n9a#oTlYtD?mrRoycY1Yd$0edCuiR~o&OIh_;pM*ktlE{M z$Bbi>q4ThOon#qYdx8&d-{5D_J#4z-KnD#QmW97VglmP!^V}{5Nas?}3PkxXzsHQ4kT#T4VgJUp=g!)Dmw z^x;qx25QK?rtCw?PEmtt2=x|b%FJFolLqI*!M%s`^f~@~`K%TRnVYfh!B95Nl%3^> z9=uT<$O64tV)JSj*;6%Vcy16kEV+jKF6~%+B!I<@r_s>hCo23$V0Y_E%-A$b#O#?X zuJau1dm6G(y8T8wPiD289S(XZpW_`n@O+UR4Nvq!w^S>5c>lr1rS?4HFWIIOhHzVA zCERw@Nq5{b`2JO;%C=9=MKgbiwzdv*IyIEviX(Yvw>M3rCd#a_kL-fm!P#v!rZ~LA zpw;2hRj9=$4K0OMivaelutz|EDYY+Dq1Ap@ZusQLk$<0|!)n>r>gdduOQx`OlRn&Z zt&RBos0WLrY%_7pNH%+(${Ek(yYr?dZX_C_Q>h6v-;ZJc;a!>aqBE;2U&8i43`?$U zMECtSMfK_e+^w~M{oo9AeK?3yq;omBtul3E^ChpP6=UqfxZ;KiKaKw+?r-VFj^l|; zjcPRW36;HxFoZ6>go`^g*}L6aMY-EGnM-{QtNdYXac4D_m-=v-bnN!Iu?AgLof)y# zjJAy_?5n1S{D_Xy3z3g~pY$2J#8mptJY~-(gxi0fQWQ4I&Oj6C=6D{$B~>lx{N)KE zbQAfcPWIjQt1_{9mSW13&FD0<8UO0Gmt3@2ip|9q%xflnZRG)Iy406J)4FoycRWKf{BN&S=Gb4Sk+iKI)w9C*ZI5(AA0B{hQPMdi=dqdt z_CpR?sifQned?BAPeW7ZrB6~B@XUek-IVe2NQUf78c{bwn|J1@Vf!L$C@qscTFK_K zSlyQc5AQ;cgVHq?AB@uVQ}}(TH@b${aK61GYNe0z!*w;z+gyPF_W{h0>BW7+(?#Fb zD)b#a1Kr|t_%GIznv-*J!@-xnO*-?_sxWcL*NGNcUBO0Q*!v}N*phaLHZB{IAPM+T zvKv+>Su=9KV{hfjldA_X%QTH6)9)*c*Qko`_l%g|K3~`^bHvW{t~{@vOegPs zxyVWK9e+%^$6XX#O%B6N5kjY$4rH&9?ABroHNL)6e4U%dge{S5cd8|{<$mb%*7mq0 zceMq-Ch@7vVa~!lpkq31zb5l&)H5VV50T@Y&lujk84awgnO0a23&(zNd#KFC12e?j z7nXc3d(AH&4`!6i6zLa@V_}a_oX9c5*}I3Zv)YbsMzXiPWtxccOr`DUTr}oB7b_f^ z@npz&s%)6TmQPo~*w7IL-P8D`QyVrdGr^{S+Xy~z8IL=6ln%U5=0x>n#j!Co_$OU1 z<%6kd-IBhS$8&M7LQENK#TES}C-|g~BD+|RyFQ(OPLoUM?^lb8PE8qhWV7?0`|8|r zvkcFR^DxY3JflWS*I2+Y@v`Kz=%?>S+iF8@m?0#qq8$3la!#5o*+2eA6u)G)!yrA1 zHivhM)gyA?cJx1SGyEjl%6rqE{)up#qa_^G!tnR~Cec{;9f5ZzvDy4bFx{CcJ#^A1 z(d!qAXKX`*3o+1g1M(kkN9o7Q2#m^P;-9WKTB0w^76!0ywyQjUoDfmT|FEF#T*>8{ z51-!M(f|Gt$p|?rb2p}p$Z9T1yJpZPs|D3YYRm4C8SSbJc~wbGQS|IO`VMQuR=f3) z_auf#<1Rpdjt(Dtx>Gf^41X@#F(_J_cgMvsX?!DsB}aSfjzMfXI8^%LeurFLXLoRhaD3W%xV8OphG|m42-Ecc5#FvNzHiOw_+ypGo$YNW!=0Xv75=(x|Y~Gd_ z9NYK$t~`BAF(Q2hp3PN3 zhif$=%u9!7zxIcTnVRSjd|2VBaOZ}SnHaP+oi0H)F?c~+Y`+;#&2mfU$D88OZm1#m zF45tjpD)qwS5LmUppTCGmWheQ4m8^MTkJh;hS2)y@@y`1OOLd8vU?Dl?cM<0mZdUR zZN#gmBr7W{o&!CTXmcilO%gB2p3V!XL?`pm+15PYdomkVX7lMreFQ(U;+ zA7(AFV}aR3UV0SIN2wr@ZTV z@0*XfMNRQxUO67xzJpcVc+7IKLFcm-a4RXnm_-pXLval{Cem@gHlC}-l|k3&2z+Nh zLG)`YYK9p~Htl^;`sx{CEpEf{&{c8ab8DKdmtD7^q3rlYvLxDe;Ib}$tW_DxJf&_j zYkv{n+FEep>~Y*Uu06+p+Kk@8mk}2!-v^R+YAt6B4V~Y>z2!knnbV71&tAcpE;4`X zIDp+X9Vs+ZS>iRA4=v(hJvIflWlQDEIGD2w??UHe8&UaS1+?|U=p}Q8F>AG1(%6Z8 zdN*Si>0K)}OjP{%*afrg4#CFkCA{X}gle?~HA~Nl1uinvJRq9SCXeNv9oO+`+#vZi72$G^*D;0_nP)K+CxpR}Qel%OGgobApjllq5v`7=XRV}j z&_?Ep3sD)^fi^NnI`-};_yo@otuN~EQnUl-%bZ<_mMcvxCgYCW@qSes#iAdXob@{% zTW+kt+YSzFaJqyIt^D|V?JaD)Rf_V`yV$kblL5z?(SGPV{4S4znO+R5x^2KRA64Gn zCw)U@K{SuugS_FUY}$M(UJY-Dn=9+^-`zhLw|~6!#F|oXRXhx=%CLBp8phWzgz4%Q z_*14}_x$&w-Rsu;?@Cc+MC<-)(MBq z%XnuK!jj9qd9~9a@jAUDpDQWJ=fphdl!T*CO|f`l-2k0VvOgDAkLHbmyt@3HB2M~v z4$JfWEf@LDIj|3tCD(GPTURdJ`$_cO6U(?L4MxbEQtg)e$V<(Zd)8|ha$ZxEzL|j` z0|i?gtiq+YzVs2EG_aNo>_8tjYDO`k%Aai>e8+67SX`4n`Lfbp^k{P$38#Xo8rg%b zB$tXKRpq};W6Q&vajGg22{W2t=PzX%=$7Kl(WX4U;)Kj@yQ5u)So-_`UA`U{xdCRp zt0z01NawKbO+?+dR6b~MWQNse^t5l!r#4#B5t~gL7av?JorshsSJ2J7wdAEqCrtW& zn0iPC%Vl#cnfz09YIOyMmPUN}{1DEMI*B)?l1o_8g(oEQ-XvR>^_?@>WbJe`IT*>w zC6a&dUxPkxuH&R_du$JyFMmg`pyA|h#Xh-PKO0glIYARSGbf#5kpmZu?#hIv34Ck* zOLT84JImExoYv5a`@6|Z_|x~WiIi-Vjs}W-i<{B0){1|x3{e3G!{L{!koXqhtUl7yc3T8Vbi0dlDu_?P46-Jk^ zGQBk#b+@90qZf;unqu&+wTM|94#lP4Vs&bFjGHfA+1u)c;jk|3zgTitjGaWMt~>E^ zq4Yl$xpRK!F}x#lO`jIt7AvYo(%iiS_Sr=^uGj~~CO6u(=*nYJUF0m%h&@Z4xoQ0m z5z}WCa;hHS>Asm_tzQQbKlmzwfP=8@k;$n4OZJyTQY z;4;p-U z;)E~1Jd)?UG`RyDF87z~f5KuZ`R!{kB4;_VRku!DJ9e3fayDYun<r`|2pwrwlhBm7h$c+TFkqhBpD-5QQt=uomzes zZcAkTV0v%Hoa@YEh7&kf_aUwp-Gw;#6WV3w;`j(9UY*~CClB_-xiw|@A~P@3#j0eOk>wh-(^SVtYkyU49SSI!rCDZJ-*xX z_g*7(UUUw+9(_4LIgDFus?o{82ziTQct*v9JJ^+Ta^_&jdL52OQ$}ig&~A4;w>M-9 z<^QgWOO6%dy~AsaEegULnXlJ^D{hRgL*xN7UidYXC~y&nU0oQt#GbF@T)gj<>&T1f zi&_TKfMcXv(tFPZ1F3PUD$n(4Hgxt$unO?Ri=RbhYEE z%0R{PZ@p-?tuvcMd_uO}1U}s2&qvu_obdjlWc;?oiXvmWWEpVQSDBM;_XL_oJEiAq z3M9OO?dzgZQ$B*z6ox!jpia~BrYzQcf$WR=Otz?%JHRX!#B9e2dmrAJ)E4_@1akKI z#|rmQ16ux?Ncg?Sg&E2C`r3lSzn{nSsT-VA_e$s7ui5yZIS8%1+b~?ZNA8T4c`(gQ z*tO@MuuPsVzJGON;MA53%&5iqLj!qM@&?m9zoA^$kxQPAX2Et>#paj=INtw^p-YD2$&u?KWyn?W zFU*FwGJc8F#Sg`t+ty5%%=~`3t>g^Kj-6!xUgfl$$IGtq32w(ZxXa+y7QU zR8_$~VF(j{6`(*e=SFqv$?TC6pqUuR1F{2TlPf)g=SD-dVleBzU&Yqe?O|nFjs^d` z#rT|uVs=J0=N~rX{;uZy_(7YUdp^fw+0BU2l;``a-T0_uiQ?#{S{$>;;kb;hEUr~> z&hS90KS^QQrSS~0%;3V<>zFuJgYRbF5Jx7Ql`O5nur27vkWUKw*ITe>P9V z6tiAVq~4r&*cG{7I?7YI?}G-fx=qG<$>Q}qGMKxHHTmPyO;q;00lS_)obaax7hkqv zcE13w{wn>nbNw)IzvRnH_uP)&z475^8@?#}h3;)@6}NR{ekefV68lE*?8iA!d3^vi zqvY)N6&bU5y12IOf;e&f7tEhKv3JUIXtz#cxJM~mFG%SMzI^lY4HhjMNUui)xVY;u zPQ6ly0gwNQ-6h)Mc4IP(QuLr!u@_U3U*C;qo_TW1<0*8CPrP(M_a#;TVq8cA>X)wQOHHfM;gai+v3h!r^=e4h~eN^NClANndBdN3yTGA3cDz zr^m7Kq!W{Vx1itC5N@u!;pk~viS`M`V)X1}YJ|y-?XguztS`qrnbR7n{1W=wt*~V1 z3Tz(g!y02lybW89_d`F6R#qBppJvYk-HM?;#*aB8d&>ONKj-z07M#6Jm*;9G(62s$ z<@>jY-HmdN-P(*wrniOJ){gx6N(;Bl|DkM>G4g&zv$<8M$Zg}rhVo-5J=+8$^e1w^ zi?>)*+?Vs)Buhu+AQUt)k@Fe@`TQF|5BUyx7kdkvRgQ^It z4OJTGQ#2H@TMptzD;pG<_vXH;49=37@%veOka97LS{Vwy-1AY4t)Ie)XGSu1>=W3I za_91QUR*POGwL3U=TRTIGd~x@c|PyNyIb;^+UX@8zmJv9!ceaK(*XbFk~MDm7%IxK zm>f4;9QiC6Q*lqR`Ktw$CL6#~^5ixJ>=t@sTKxX#$r&A1;&RV7Xte1_jf^Br?kDqlzw7Z%e<2cPS+bq`f8ylP9_$)q zBt~wOXB2b!8Mx=e!-bNi7WhN%dE9ucX(&TZr${hwf7tG6f^l~{@w>aD+@DT>Mw8pZ z&$BmG_bBsdQYkjQ%}4pz$BF|TwfIs+?zLlEa=7cJ-I}3SZd; ze~at+-Lci$LiT`rGP30$>@16r46t5!AJ~e+B?IG|do?uH*SMT~Nh~A6yz%}{ z4y|G*u*2cjC|TespZC(=u&@nu<~|lxFs0RQPPYa5k4LLFbFX9O$$jQT-Mm zs5V5gVDWLN$n(A;-H#h}CUVsALX@e+BQ)C^Pu|Z#(zvDgUhzp-p4|+ez8Y-4Qs$Wb zFJSkiWy14#IFHKDg8Q`d$bF^C>3x&AWYRSJOl&V6Rd(m2EDIh!kj>&PwzMy-gi7&1 zcm%G-$m$DllzE7Ofw9~%crXL>lEf6=g`eA2Wcx0IRz+{9o|BBg4LbZZr4_dw7{Jy) z>lF2;rF(XZp7_+^G4!+38CmPdiWbRSD7#|^f?r}lC+Wkqx{R(C>SCI)5o>#9ap22N z-074Pu`RDf61@e312__Cz;S0EY@$YAcb0jM zBu)SGCbFdptsrBeoOi?eWh1pXLr8A zR@_VIA~U1Ix&Oml(V}@TbXvX=H#KX-qyyD(yE>4kcMoNTyt7={m(2QWK^^bI zy|})@Of;M6!bP`D8C^xrd1(ND>1f*4M4YBhHlQu(`=-&adyqZ3DtMtA!qedQafj@3Pc!T=oQF9r(^b4Hg@k(=iC;yf2`6zA%q!N`Gr zv(6xWwmJXYI}82dlUO}&BsWdbeoG0Hz*x;SAqLNVs_m(s%^VR+4#;y8#3H+<@@}V=Q?_ zj=XaSAJ&A>)iIl99p*#qoQ8s#!$Pcch@;jnEW3!pY&zi+`)8u-iG(2Pupg=i{ijwb6&5$ zBGk3U@T0ymqo1~C;_wl?zjG&MwrE6M2WPr(?M%O&etfbylg)1D;#mC>i0$QKx@5Q* z`j4aD-Ijc6(1ZP#I@0OD46$&~L>dPVXRbVB^&A->+5G2m^u`{9u2Z3%eJrO)=a<51 zhEO{3K}3$-D$lIa>z(DogUiaXXoiB*E(LL-k_z^kx$+S8#ZB{tu%A2;(Uy8FcDyX+ zZ*4`LMPAITT7rH5^@ff5VA7jH;9urj^S3@c)b1>rISc|6{blK}=B45ruskkHeVTmSBh4ViR$*fu<&bS$}dGLAB>P8UE+TX=G z`^mz*+ildj`SGbosC>UpX3%)a7o7PN`}6)``LT64s-naf6?tNzPbY4zisPBoRT$XM zjbrs&a`Kl{`8yiKc}*O7bVm+vW(?!&OmME{PrPt_F7)aIy;lAdc?W-CrNua2ZaYc- zotf+oHdQPzs&bCru>ko$7b-3-{3-I!wdb2#K`6^TCoIpO6UoXGxGk$K9fzJ1P3BG( zpPP+ihRh#TjkRavF6rdXO~!aF`Ape#S@^42;a;{TN2$tAeC1TExjj&F4U>7gW;LqD znzB%*H?{VwI=ju6F2U`Q^j^3EPi4n>f=@7lMjpY3RA)Z>W=a%o zLZeifd~hx1AMS#0>Yb2qI*5sXn~8se`>~~4GycqV#@xS4FhRKk_fCnzpW{(Hb8#lr z!(zq6>BWjSPxXXDkrmxsvv{J(D^$q+#oR!7z8TpI+6QuEr%#uL594@t)nAc3Dv(N< zKHM(vEXp%4Dr`FzV}Vit<5c{pwZwvEAOBO#m3`-jrzB%bW`ifM?M&xNbH=w!RXmGc zFLO*eyeu8ANdX1G19ir`D`Uo;<=E*vgm*XP@cnsHbjTUcGT&abJk<}$$wN6``f;!C z%VDkjvc@_&5BbPZ-KH<>y-b|d@+m7m^d|A@ln9pYw;iXXzoXzNi zdzFz~{8-Sr@gI{wy71Q?5!68jg)~5+v{AJJOyXIlX+X6VRPv)xDPLk!=3T=N`^2pW;uzR~1R<59q zsRqBanLsZaHJtVjM5cKSDt@d&lRa)SXP?Nz+r^kUcq+!f^pO1DDkM&-!@rHU@#BLp zk^>f?=bo8Zxgj6XwtifZ--az!-RL?@hlS$4P(Cz~rTJ?`?+seAk8MJI{RxWFpE6tF zA5Sg2UgFNG9A-PIK=sxY6gQm0nORx%u#Tttfgji?^R(V+YedW728^)`7TXFEoM$ON zhE3IdSo=DmWU^#9YOcrpT*-|(9T9oJoG6l%!Btw-@vydC}}_|j^twS1=T!rJy3yjR@;*LP0D z)%`>0WYmUDMyIi|<_}I-PUdUb!^ze)5Eg1_NIDmRHJ^&`Wvca0%xGPQ}E)3{f! z%Zsn)qV$$Cv_5vFcT5*%w$hV#B7JsPv_`Q=&c?O1h0I=lk$!-7{AV_ZcS`@@-PISO zxydpVdXMA!;x5$HAB5slX?$zlnJpb$@a>)#t?TP$FMowtkm^ZgWy$){`XT0ZcV_9r zD=3;Xj2n+<^Wbago*XzuxEvkLX8jLhL)#cmbD4+kS6i|Bm^vI+yNDfI?YQ#UK{4i0 zPYyj{%=KmYIBj+d-}7c-R*}pKHBXZBK2yw6xrz(*9&D+U#%7I@vvDhoIjeo4ky(a$ zSEWa&W*^*oUPt}4Z?eaB1rE_U+_Y#lwmLUO#ySl)9rg`-vuv5*-kmLH7mIhY^O1jd zG}VI~`9=C0uYHzt`pL`jP1}l_WDjortBuZkhIn##a1dkk!km8>jNrk>$;=q2;DR1c zFnF$Hn?8@_TlqWmMDF!NBb|A(`(@D>zXMC&{=mMQCXCZ=#-{te!P7E8sD8hMjk{Li zgNxjy%UsI+>O4#hbLPygNAY&a9fhrAmC~HsB#l6N;l(-bWO&b z9S+X~vf1^sipLuNuv004LD%kxz+e~d-QJJ8?DrsbUm{)}wdJ8bf?rNaR^|Ak_*|jM z(LvJL*5RO-b)_SFJRQSv6@#d}VFdN^hBNTO8F>7S;;5E~@l`b+b0;+A+e>=v+~O8;Htdc1Jg=8USlFuw8;_ikOl_Zd+P?dHHV$!b{m zqY|@J*P(;oQq;Up=0AB~S}`*S2FkvCGDlbDkg}+L${SAClQ8P2bPEJ2IL@vM)n`3} zL&i$Gy^$T~h4av8;DjrF(#4pR#PyjwVfAPuZp-^>mPsmaC4Q9mpeblzGN%;e*vI8}KeYE@0ya=?63I)oarjMyEHTG`qCqao)TGCNuPIfsMP>qOm}i#QXcEHfYX5PE(DQt}4!l8-j8KA(+; z%5JQkUWlwwbFn4OhIWxFp|mFzz071kPqO-)%C+eB+es`{X^U;&OX1nLSr{Cs5xYF2 z_@Z_#+GT@_`)6>=upKbT&4aU?3x#=PVN-n^pN=$^=k4j@%l)6YvQ_qrZ?~lL!b*l%Dej{0oG%@s4y{)H7I<^1Jg+eL_ONageA&DmSBc{W>)z^m4K zu&0eBZ9`weTu*w#U#L=leLOpiko*n(2AtmG&)hh9j&%y<4%tVaUJ}SNJD=g}>}@c7 z_!ch9(_s2z9lk913-dG2@mD_clO!8C_{SrRXxarmUP(Uj3N0*h(&Lrn4KTUt%%_(Q zVZXO04tn0l+)?E?*ZCdVcq|Y-q{~|S=1?|Bmhtf3a!0Ln442c6W69zVvfm@$d$NDl zKQ)pTCO<^hD+@ktc2Hrjxl;Jjg)Y~xDFTj8SF9gci`X5v#K%qk(wn;)o6SRc|N3Wa z>(-7Yt-N?5t_C&ZI`dDHsc`6cRal>Tg8{b7gomTA%;0FS??nTi>Ka6&H8b(GXfgVB z&QvV=vm4ryEn;K%1V+-0-tcq~6~^OuutxGas&6P>Eii|>@ih!TRH#rJ>&NYR=dkH? z7sUTEL)Yo*+_&bR@OZNZ2}UYNKYtq+VkHCf)drb+kL5*?2cMOju+nJ{Hl0u~`Mj3w zGWg-*!+Us_Jdx{W_L5xNc#gMzEjUSXiGz~qcJwqpyfKyj31!r4?Gf)ohq3$YSe$%$ z32SY7bI+;8STdqB-@PBf6BBx{-MWM5UH$;kMQau9_Lso<`D4WSM{>s*>DFyLfa^xG zmn``dC9lc>%M-Be*nq)bZA3(@6;2qKb5vnRdL*{v*3Zq667NinTQ9`F0e{id7*Le- z=Q_)#IJHPJagR&Jqs*QR(TbsdqKkCPo6A321??iq6Ro}qpO}#{bAAY3KbkQ4UmEA1 ztQW^`M04GQC>qKf;K*GT%(jna-@FhpG2WVWRd>a*^w$__Ej_zpDq_RWVaCW z$iIW=Z_$j~`;K9=l)KIxWM;Ph&JM_Hg3B9NmL_V#(t9G&d$MMVN~{RfBrKXn05N)bnC&)&y2e zYfnE#I3JEpW>NGgbS-hE|DO`Yf=+9tf1?}w-D$}bbyFU(=>|H^LbGBv(x=FKis2k`tgCGK|Lh+Qj!(f!*I`L%Z7@&Tp{_mVj>^b~Kd zN@j1g8ZBD1Q{33O4y%6*rntiS`~`wr4F0i!!-j_a}@h`GLD}chSPaj5}lcuxQ^%@ia-9@0649Blj^* zMcN9@nz7XAVM&YRkC^d$tn7mIqaIS(7$x5=(t8#wvuKg+CiBI~`^Z+m2ffedF}UcK zs7DOM#ZUPCEDk59kL1!@d5Vw*Jt{4f-Lghqm>#_C-0@SS7%g+JK?P}IzPog@_S*&T z*R_f%f3!IJ{RPZkmB51b(kXc{nioq{Shg{PBfIEHPQxISSNXF4$T#?PZ4z$G_=VI- z0V2hFo49AWR$MClhY^L?3OC_76nuNu?N%!#mKvFEFaY5 zX(9d8Aj@;12w%Nb1O8*~h zURUC%#4qU_@jlE=8Bkk}Gpox?0zKg68Vp{QXgdwpKFZsQ8L;{qo_GlF7mI_v82ZXeK}SB;IDF zGiz@imT4@2wWdF{wn;x!^Ia&s7|+`ZM--NpA*X*m46Zn1=gk0g7^TGP8(l{JI7n0_r_9@w@3r0m2Fur??+o~^l4Eu z2pZPG7}oVA{+m&X{&mYSc5XE7{xhcT+2aV2nKP4#k5QYL$%TDfnEPNAWPm|*l5;P8 znXh#}UIpI5>L|&{X|*5QPMtz;|F_aTrOwO2X?V8x zI6}P>`7^v4I+}^RcVC;ET3r<@BwzpT+vnJqCUfgw)p;jD2RDNwx!=(jIo z(lYnM(BudHf9GrRek^@Q%usm9pIzCk6nUpq;>r7mVeJ`+T9bw1_Od8WTXtTwIUT?Q z|Mg^-Gkut|t4PeOw&I7io%nvtWo&q>Pp|WXI4@T6&P#`J*RBWfkUJuAA`H_*)A4k$ zK2Jv6!hvl$w3O$It6$n;(%MkuZvG^Suc$KBD;f89IU(^-0L~qr!ezT<@1W3FOznFV z%Cf(G<)$&QuTU(R)fPpov~jiUwRBDG7Re5BA7+;>41Fb|V}k}t9si1TDjyN;5YG{q zfb>_TD48vH7y60()7G2scdQm^=i|BGat(fLDG zs*IGbmP@A60c9=8idKyDpb&zVwe}_k(h#m$w)5?9BOV zj~8y8lDrmwdp_UmMH9)>DekGjqDsk^OKJx56^5+to`UFXZ|M!6q)3Pe#>7lc*nS?@`}d@`T>#fbx8v;{2JE(GAkXiSzU-|LBIw={5!}5QjgwTR z_h&0CKlWjl??F7aIfc_Vr}Es#`6zv{1CE!Jxc%`+49zp8VYH(n?v~_D#ht^;x8~fu zwGq~d!&s;D44US{*zcFXM88PbIo4osR2F@f?!c+5a+ZDg8cs#u5CfgU*m1}ZrkgaS zUHCBAuBeCReaYL}IgUvhH_(1pU)Gj6!TXFI!>%30>)FvfpJM0y`cnoUt7-8>^cW^r zMzd9c0h0={nEj|XO}0%Jk1j+o`m=PFrzUcx7|SIaFTuIcn_g<$(B$z9cmX9L-HQ@Fp8}>+jj?X4h?ECgOhChrFr<-rY zpHXKpJugpW`aKuhnkDk!n>YBg5hN64O;*_+I)WE4qTd+*KDCJm%rik1fL(vJ4t<2~Q6&zGm@zVGWg&*S+0 zZ0Yw%X{5+3B@ga_9&qoZ55ke>P{$;jPHN)k#N|S(ybn&_jK;qHk0mLK62!TXJc#mf zkn-{s5`I_Dn92P@nXQ!M#lG)l4K#d<1fhZP7~Xvw{Yht!ZlA5f=v5}%%hplO4I=~> z8sT?8_N{PVe_(|PMkn^e1s4UFc}>ElN?-1f@1&kJiL`Bx8@_f_()Ppe=+QwP*bI@! zy4rET-65FPD1}#Zd-M6T8)RQMan|P)f zEA6*fOA9K7Vpmx(9wzj|Z^sgp?L7m!B3EDRlIMPB|^;_&;eD zFV~dj>-5FxV0|1lyefXW^}}SDKKMCjmk1fdPMFYmN|f;4y-Ee&SM#~z*f8PHchhRJH(Kw^ea8ObUy8%h0%n81BgE;?3sI^f;GUi`*@mzqCor z-^;Fr-t1@IHw=pGm~(Ga#`Di7D0_HC0`9E6sR)Plqam136^D;c&k3VoBV>*$ z5g)IlqD)eRCfOzQ_nR&%xwDX?2 z&m<*d(OFAWyjV_lxf^Nr1s`^r^!_lsb|`_wta z17G#$k#$25t!!@;cYU}Y-`k2NeNv`BgFVC`$4qz}nSg<9zXkmqg_#xRG~wE6%KrG3 z)M6r$AJr4_RvBo1q=X!Df!?|)q@B2j{yW1C6=ols4G(2D@epW!9L?W06YS+XnodZl znDSBs^2eC*&7NyJ%%ttIPB8vA2;YNy(Z+Q;*pcpz`WXuFX?;q=WF@E@riTah{c&5} z0`sgr#EON?bdYe?De5M@o!dgoF#;KB&d8lIoG#q(B>e%(n6ALQhr@H2i_k{H77ruG z>{VK6KzWzO(roET$Qe9O%E{eDiHJ3d&3}s@8zoeO%yTc@H52a?gwdAb`!bCw9=XDUby%om}lmJkiYLuQ`h`Q z@oQ|66Q_h@-~EKru-Oz*TtO#`&0%%B4`vsY(HV;<{4DW6=Or16SLOSTYCUafjmDV# zBV;;tI%WP`Ld%}3;i;%5wZVPys$nXXn;fK~o3ClkQDgKd@IjWRDn0%vgY5imbZ9&8 z5vCm{xwtVHQlf$l%%s-~$b_V& z!oK-Coo$!Hx&kLy8IH%3HTrb(MG7jO%_GBa7pXPD0h!m5Q8NNC=FIrkv-9YktBJ7h znun+9LAYk%N0D!az)UM1R`a*fIi9P!oGQYC+YMwkek>-PaUuI}HWVjwnzUcBd-}9K z0uD0MMXr+4*wO1Yd?`VCJ~d^

2~D^OAN*&i>KF*l1t$*&c&iR*q;lS3}gnLu9vB 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 * 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 T2xUG2wDtE6ECu$%Y#G7-h3c8j diff --git a/testing/unit/trainData_previous.djctd b/testing/unit/trainData_previous.djctd new file mode 100644 index 0000000000000000000000000000000000000000..38d80e7fea93b7c004aacbaa39b0f5804e0571c2 GIT binary patch literal 336205 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%0D5`zCYAq-pq>*j_xU?9NA7 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 z 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 literal 0 HcmV?d00001 From c4a72101c80743c0cec3cfbe7a02c499eb794784 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 8 Feb 2021 14:20:11 +0100 Subject: [PATCH 333/437] updated CI and readme --- .github/workflows/CI.yml | 9 ++++++++- README.md | 6 +++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 50a5a46..0175da4 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -103,6 +103,11 @@ jobs: echo "LD_LIBRARY_PATH" echo $LD_LIBRARY_PATH + - name: "Unit tests" + run: | + cd $DEEPJETCORE/testing/unit + python test.py + - name: Convert files run: | cd $DEEPJETCORE @@ -115,4 +120,6 @@ jobs: - name: "Run eval" run: | - predict.py here/training/KERAS_model.h5 here/training/trainsamples.djcdc here/example_data/test_files.txt here/out_predict \ No newline at end of file + predict.py here/training/KERAS_model.h5 here/training/trainsamples.djcdc here/example_data/test_files.txt here/out_predict + + \ No newline at end of file diff --git a/README.md b/README.md index f250fc1..a61e2c9 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ DeepJetCore: Package for training and evaluation of deep neural networks for HEP =============================================================================== -(For upgrading from DeepJetCore 1.X to 2.0, please scroll to the bottom) +(For upgrading from DeepJetCore 1.X to 2.X/3.X, please scroll to the bottom) This package provides the basic functions for out-of-memory training, resampling, and basic evaluation. For simple use cases, only two files need to be adapted: the actual training data structures, describing how to fill numpy arrays from root trees, and the DNN model itself. Both must be defined in an additional user package. @@ -94,7 +94,7 @@ The general pipeline for inference/prediction is depicted in the following sketc More information on the three function of TrainData that need to be defined by the user (in addition to the training script) is given in the next Section. For the training script, please refer to the example provided with ``createSubpackage.py``. -TrainData definition and notes on upgrading (from 1.X to 2.X) +TrainData definition and notes on upgrading (from 1.X to 2.X/3.X) ========================= There has been substantial format changes from 1.X to 2.X, including low-level support preparations for ragged tensors. Therefore, all data from 1.X needs to be converted or newly created. Also, the interface changed slightly. @@ -123,7 +123,7 @@ Ragged Tensors Ragged data structures supported to some extent with workarounds for places where either keras or tensorflow are still missing support. Only tensors ragged in the first dimension are supported so far, meaning, e.g. a different number of inputs per event, but each input having the same feature length (or more dimensions with fixed sizes). This should cover most usecases already. -To create a ragged data structure, the function ``convertFromSourceFile(self, filename, weighterobjects, istraining, **kwargs)`` must not return a list of numpy arrays, but a list of ``simpleArray``, which is a DeepJetCore class supporting ragged structures. This array can be constructed from two numpy arrays: one describing the row splits (as int, in the same format as tensorflow ragged array row splits) and one containing the data, where the 0th and 1st dimensions are flattened. Then the array can be filled by invoking ``createFromNumpy(data, row_splits``. +To create a ragged data structure, the function ``convertFromSourceFile(self, filename, weighterobjects, istraining, **kwargs)`` must not return a list of numpy arrays, but a list of ``DeepJetCore.SimpleArray``, which is a DeepJetCore class supporting ragged structures. This array can be constructed from two numpy arrays: one describing the row splits (as int, in the same format as tensorflow ragged array row splits) and one containing the data, where the 0th and 1st dimensions are flattened. Then the array can be filled by invoking ``createFromNumpy(data, row_splits``. For training, the model will receive a list of tensors, where the first one will be the data and the second the row splits. The same applies to the truth. This circumvents incomplete keras support for the moment. From e43929b5f56e7e456e29ee4568393c8a1796b551 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 8 Feb 2021 14:32:53 +0100 Subject: [PATCH 334/437] fixed CI workflow --- .github/workflows/CI.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 0175da4..767ec89 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -71,7 +71,6 @@ jobs: echo $PYTHONPATH echo "LD_LIBRARY_PATH" echo $LD_LIBRARY_PATH - python -c "import DeepJetCore" - name: Compile run: | From 431e219651e2c0c06cb87c0763793832f9851329 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 8 Feb 2021 14:42:31 +0100 Subject: [PATCH 335/437] another forgotten file --- SimpleArray.py | 90 +++++++++++++++++++++++++++++ compiled/interface/quicklzWrapper.h | 1 + 2 files changed, 91 insertions(+) create mode 100644 SimpleArray.py diff --git a/SimpleArray.py b/SimpleArray.py new file mode 100644 index 0000000..87f0f07 --- /dev/null +++ b/SimpleArray.py @@ -0,0 +1,90 @@ + +from DeepJetCore.compiled.c_simpleArray import simpleArrayF, simpleArrayI +import numpy as np + +class SimpleArray(object): + + def __init__(self, nparr=None, nprs=np.array([],dtype='int64'), dtype='float32'): + + assert nparr is not None or dtype is not None + self.dtype=None + if nparr is not None: + dtype = str(nparr.dtype) + self._setDtype(dtype) + if nparr is not None: + self.createFromNumpy(nparr, nprs) + + + def __eq__(self,other): + if self.sa.dtypeI() != other.sa.dtypeI(): + return False + return self.sa == other.sa + + def _setDtype(self,dtype): + assert dtype=='float32' or dtype=='int32' + if dtype=='float32': + self.sa = simpleArrayF() + elif dtype=='int32': + self.sa = simpleArrayI() + self.dtype = dtype + + #now pass through all the other member functions transparently + + def setName(self, namestr: str): + self.sa.setName(namestr) + + def setFeatureNames(self, names: list): + self.sa.setFeatureNames(names) + + def name(self): + return self.sa.name() + + def featureNames(self): + return self.sa.featureNames() + + def readFromFile(self,filename): + dt = self.sa.readDtypeFromFile(filename) + self._setDtype(dt) + return self.sa.readFromFile(filename) + + def writeToFile(self,*args): + return self.sa.writeToFile(*args) + + def assignFromNumpy(self,*args): + return self.sa.assignFromNumpy(*args) + + def createFromNumpy(self,*args): + return self.sa.createFromNumpy(*args) + + def copyToNumpy(self, pad_rowsplits=False): + return self.sa.copyToNumpy(pad_rowsplits) + + def transferToNumpy(self, pad_rowsplits=False): + return self.sa.transferToNumpy(pad_rowsplits) + + def isRagged(self,*args): + return self.sa.isRagged(*args) + + def split(self,*args): + spl = SimpleArray() + spl._setDtype(self.dtype) + spl.sa = self.sa.split(*args) + return spl + + def getSlice(self,*args): + return self.sa.getSlice(*args) + + def append(self,other): + assert self.sa.dtypeI() == other.sa.dtypeI() + return self.sa.append(other.sa) + + def cout(self,*args): + return self.sa.cout(*args) + + def size(self,*args): + return self.sa.size(*args) + + def copy(self): + arr,rs = self.sa.copyToNumpy(False) + return SimpleArray(arr,rs) + diff --git a/compiled/interface/quicklzWrapper.h b/compiled/interface/quicklzWrapper.h index e4e6bc5..58d2980 100644 --- a/compiled/interface/quicklzWrapper.h +++ b/compiled/interface/quicklzWrapper.h @@ -155,6 +155,7 @@ size_t quicklz::skipBlock(FILE *& ifile){ for(const auto& c:chunksizes_) totalbytescompressed+=c; fseek(ifile,totalbytescompressed,SEEK_CUR); + return totalbytescompressed; } template From ced0b303891ab5ebb92271d3a0adc30e2f14b4fd Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 8 Feb 2021 15:44:36 +0100 Subject: [PATCH 336/437] bunch of downstream fixes --- .github/workflows/CI.yml | 10 +++++--- DataCollection.py | 2 +- SimpleArray.py | 7 ++++-- bin/predict.py | 7 +++--- compiled/interface/simpleArray.h | 18 ++++++++++--- compiled/interface/trainData.h | 12 +++++++-- compiled/src/c_trainData.C | 2 +- compiled/src/simpleArray.cpp | 5 ++++ compiled/src/trainData.cpp | 14 ++++++++--- compiled/src/trainDataGenerator.cpp | 2 +- testing/unit/TestTrainData.py | 39 ++++++++++++++++++++++++++--- 11 files changed, 93 insertions(+), 25 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 767ec89..567633c 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -77,6 +77,12 @@ jobs: cd $DEEPJETCORE/compiled make -f Makefile_conda -j4 + - name: "Unit tests" + run: | + cd $DEEPJETCORE/testing/unit + python test.py + cd $DEEPJETCORE + - name: Create subpackage run: | python bin/createSubpackage.py --data here @@ -102,10 +108,6 @@ jobs: echo "LD_LIBRARY_PATH" echo $LD_LIBRARY_PATH - - name: "Unit tests" - run: | - cd $DEEPJETCORE/testing/unit - python test.py - name: Convert files run: | diff --git a/DataCollection.py b/DataCollection.py index 33bc3a5..ed5f405 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -101,7 +101,7 @@ def _readShapesIfNeeded(self): if self.dataclass_instance is None: self.dataclass_instance = self.dataclass() if self.dataclass_instance.nElements() < 1: - self.dataclass_instance.readShapesFromFile(self.getSamplePath(self.samples[0])) + self.dataclass_instance.readMetaDataFromFile(self.getSamplePath(self.samples[0])) def _readNTotal(self): if not len(self.samples): diff --git a/SimpleArray.py b/SimpleArray.py index 87f0f07..dd09eb5 100644 --- a/SimpleArray.py +++ b/SimpleArray.py @@ -53,8 +53,11 @@ def writeToFile(self,*args): def assignFromNumpy(self,*args): return self.sa.assignFromNumpy(*args) - def createFromNumpy(self,*args): - return self.sa.createFromNumpy(*args) + def createFromNumpy(self, nparr, nprs=np.array([],dtype='int64')): + if nprs.dtype == 'int32': + return self.sa.createFromNumpy(nparr, nprs.as_type('int64')) + return self.sa.createFromNumpy(nparr, nprs) + def copyToNumpy(self, pad_rowsplits=False): return self.sa.copyToNumpy(pad_rowsplits) diff --git a/bin/predict.py b/bin/predict.py index 704250e..f4ff84a 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -11,6 +11,7 @@ parser.add_argument("-b", help="batch size, overrides the batch size from the training data collection.",default="-1") parser.add_argument("--gpu", help="select specific GPU", metavar="OPT", default="") parser.add_argument("--unbuffered", help="do not read input in memory buffered mode (for lower memory consumption on fast disks)", default=False, action="store_true") +parser.add_argument("--pad_rowsplits", help="pad the row splits if the input is ragged", default=False, action="store_true") args = parser.parse_args() @@ -106,9 +107,9 @@ use_multiprocessing=False,verbose=1) - x = td.transferFeatureListToNumpy() - w = td.transferWeightListToNumpy() - y = td.transferTruthListToNumpy() + x = td.transferFeatureListToNumpy(args.pad_rowsplits) + w = td.transferWeightListToNumpy(args.pad_rowsplits) + y = td.transferTruthListToNumpy(args.pad_rowsplits) td.clear() gen.clear() diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 9a0eed2..f64d8cf 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -99,10 +99,11 @@ class simpleArrayBase { virtual bool validSlice(size_t splitindex_begin, size_t splitindex_end)const=0; virtual void addToFileP(FILE *& ofile) const=0; - virtual void readFromFileP(FILE *& ifile)=0; + virtual void readFromFileP(FILE *& ifile,bool skip_data=false)=0; virtual void writeToFile(const std::string& f)const=0; virtual void readFromFile(const std::string& f)=0; + void skipToNextArray(FILE *& ofile)const; /** * this goes back to the start of the header! */ @@ -302,11 +303,12 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera * */ void addToFileP(FILE *& ofile) const; - void readFromFileP(FILE *& ifile); + void readFromFileP(FILE *& ifile,bool skip_data=false); void writeToFile(const std::string& f)const; void readFromFile(const std::string& f); + void cout()const; @@ -819,7 +821,7 @@ void simpleArray::addToFileP(FILE *& ofile) const { } template -void simpleArray::readFromFileP(FILE *& ifile) { +void simpleArray::readFromFileP(FILE *& ifile, bool skip_data) { clear(); float version = 0; @@ -852,7 +854,17 @@ void simpleArray::readFromFileP(FILE *& ifile) { quicklz iqlz; iqlz.readAll(ifile, &rowsplits_[0]); } + quicklz qlz; + if(skip_data){ + rowsplits_.clear(); + data_=0; + size_=0; + shape_.at(0)=0; + qlz.skipBlock(ifile); + return; + } + data_ = new T[size_]; size_t nread = qlz.readAll(ifile, data_); if (nread != size_) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 8932786..ee6482d 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -51,9 +51,17 @@ class typeContainer{ void writeToFile(FILE *&) const; - void readFromFile(FILE *&); + inline void readFromFile(FILE *&f){ + readFromFile_priv(f,false); + } + + inline void readMetaDataFromFile(FILE *&f){//produces size 0 arrays with correct dtypes and shapes otherwise + readFromFile_priv(f,true); + } private: + void readFromFile_priv(FILE *& f, bool justmetadata); + std::vector farrs_; std::vector iarrs_; @@ -205,7 +213,7 @@ class trainData{ } //could use a readshape or something! - void readShapesFromFile(const std::string& filename); + void readMetaDataFromFile(const std::string& filename); std::vector getFirstRowsplits()const; std::vector readShapesAndRowSplitsFromFile(const std::string& filename, bool checkConsistency=true); diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index 1aac5f4..e37b850 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -41,7 +41,7 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("append", &trainData::append) .def("split", &trainData::split) .def("nElements", &trainData::nElements) - .def("readShapesFromFile", &trainData::readShapesFromFile) + .def("readMetaDataFromFile", &trainData::readMetaDataFromFile) .def("readFromFile", &trainData::readFromFile) .def("readFromFileBuffered", &trainData::readFromFileBuffered) diff --git a/compiled/src/simpleArray.cpp b/compiled/src/simpleArray.cpp index 00bba98..2471a7b 100644 --- a/compiled/src/simpleArray.cpp +++ b/compiled/src/simpleArray.cpp @@ -163,6 +163,11 @@ std::vector simpleArrayBase::readRowSplitsFromFileP(FILE *& ifile, bool } +void simpleArrayBase::skipToNextArray(FILE *& ofile)const{ + readRowSplitsFromFileP(ofile,true); +} + + std::vector simpleArrayBase::mergeRowSplits(const std::vector & rowsplitsa, const std::vector & rowsplitsb){ if(rowsplitsb.size()<1) return rowsplitsa; diff --git a/compiled/src/trainData.cpp b/compiled/src/trainData.cpp index bd9bf9f..e574e51 100644 --- a/compiled/src/trainData.cpp +++ b/compiled/src/trainData.cpp @@ -97,7 +97,7 @@ void typeContainer::writeToFile(FILE *& ofile) const{ } } -void typeContainer::readFromFile(FILE *& ifile){ +void typeContainer::readFromFile_priv(FILE *& ifile, bool justmetadata){ clear(); size_t isize = 0; io::readFromFile(&isize,ifile); @@ -106,12 +106,12 @@ void typeContainer::readFromFile(FILE *& ifile){ auto dtype = tmp.readDtypeTypeFromFileP(ifile); if(dtype == simpleArrayBase::float32){ simpleArray_float32 farr; - farr.readFromFileP(ifile); + farr.readFromFileP(ifile,justmetadata); move_back(farr); } else{ //if(dtype==simpleArrayBase::int32){ simpleArray_int32 iarr; - iarr.readFromFileP(ifile); + iarr.readFromFileP(ifile,justmetadata); move_back(iarr); } } @@ -323,7 +323,7 @@ void trainData::priv_readFromFile(std::string filename, bool memcp){ } -void trainData::readShapesFromFile(const std::string& filename){ +void trainData::readMetaDataFromFile(const std::string& filename){ FILE *ifile = fopen(filename.data(), "rb"); checkFile(ifile,filename); @@ -332,6 +332,12 @@ void trainData::readShapesFromFile(const std::string& filename){ readNested(truth_shapes_, ifile); readNested(weight_shapes_, ifile); + //read dtypes + + feature_arrays_ .readMetaDataFromFile(ifile); + truth_arrays_.readMetaDataFromFile(ifile); + weight_arrays_.readMetaDataFromFile(ifile); + fclose(ifile); } diff --git a/compiled/src/trainDataGenerator.cpp b/compiled/src/trainDataGenerator.cpp index 71d06f7..4bdb335 100644 --- a/compiled/src/trainDataGenerator.cpp +++ b/compiled/src/trainDataGenerator.cpp @@ -100,7 +100,7 @@ void trainDataGenerator::readInfo(){ for(const auto& f: orig_infiles_){ trainData td; - td.readShapesFromFile(f); + td.readMetaDataFromFile(f); //first dimension is always Nelements. At least features are filled if(td.featureShapes().size()<1 || td.featureShapes().at(0).size()<1) throw std::runtime_error("trainDataGenerator::readNTotal: no features filled in trainData object "+f); diff --git a/testing/unit/TestTrainData.py b/testing/unit/TestTrainData.py index 229726d..3ea5181 100644 --- a/testing/unit/TestTrainData.py +++ b/testing/unit/TestTrainData.py @@ -6,9 +6,9 @@ class TestTrainData(unittest.TestCase): - def createSimpleArray(self, dtype): - arr = np.array(np.random.rand(500,3,5,6)*100., dtype=dtype) - rs = np.array([0,100,230,500],dtype='int64') + def createSimpleArray(self, dtype, length=500): + arr = np.array(np.random.rand(length,3,5,6)*100., dtype=dtype) + rs = np.array([0,100,230,length],dtype='int64') return SimpleArray(arr, rs) def sub_test_store(self, readWrite): @@ -55,7 +55,38 @@ def test_readWrite(self): print('TestTrainData: readWrite') self.sub_test_store(True) + def test_split(self): + print('TestTrainData: split') + a = self.createSimpleArray('int32') + b = self.createSimpleArray('float32',600) + c = self.createSimpleArray('int32') + d = self.createSimpleArray('float32',400) + all_orig = [a.copy(),b.copy(),c.copy(),d.copy()] + all_splitorig = [sa.split(2) for sa in all_orig] + td = TrainData() + td._store([a,b], [c,d], []) - + + tdb = td.split(2) + f = tdb.transferFeatureListToNumpy(False) + t = tdb.transferTruthListToNumpy(False) + _ = tdb.transferWeightListToNumpy(False) + all_split = [SimpleArray(f[0],f[1]), SimpleArray(f[2],f[3]), + SimpleArray(t[0],t[1]), SimpleArray(t[2],t[3])] + + self.assertEqual(all_splitorig,all_split) + + def test_KerasDTypes(self): + print('TestTrainData: split') + a = self.createSimpleArray('int32') + b = self.createSimpleArray('float32',600) + c = self.createSimpleArray('int32') + d = self.createSimpleArray('float32',400) + + td = TrainData() + td._store([a,b], [c,d], []) + + #data, rs, data, rs + self.assertEqual(td.getKerasFeatureDTypes(), ['int32','int64','float32','int64']) \ No newline at end of file From 965f11265e14ef1a1c28362adb70b18a94fc0ca0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 8 Feb 2021 17:24:08 +0100 Subject: [PATCH 337/437] warning message for file format version change --- bin/convertDCFromPreviousMinorVersion.py | 32 ++++++++++++++++++++++++ compiled/interface/version.h | 4 +-- compiled/src/version.cpp | 31 +++++++++++++++++++++++ 3 files changed, 64 insertions(+), 3 deletions(-) create mode 100755 bin/convertDCFromPreviousMinorVersion.py create mode 100644 compiled/src/version.cpp diff --git a/bin/convertDCFromPreviousMinorVersion.py b/bin/convertDCFromPreviousMinorVersion.py new file mode 100755 index 0000000..a9b3167 --- /dev/null +++ b/bin/convertDCFromPreviousMinorVersion.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 +# encoding: utf-8 +''' + +@author: jkiesele + +''' + +from argparse import ArgumentParser +import os +parser = ArgumentParser('simple program to convert old data set to the new format') +parser.add_argument("infile", help="input \"dc\" file") +parser.add_argument("--in_place", help="replace files in place: warning, no backups are created",default=False, action="store_true") +# process options +args=parser.parse_args() + + + +from DeepJetCore import DataCollection, TrainData +infile=args.infile + +dc=DataCollection(infile) +inpath = dc.dataDir + +insamples = [dc.getSamplePath(s) for s in dc.samples] + +for s in insamples: + if not args.in_place: + os.system('cp '+s+' '+s+'.backup') + td=TrainData() + td.readFromFile(s) + td.writeToFile(s) \ No newline at end of file diff --git a/compiled/interface/version.h b/compiled/interface/version.h index b32e17a..fff3d05 100644 --- a/compiled/interface/version.h +++ b/compiled/interface/version.h @@ -11,9 +11,7 @@ #define DJCDATAVERSION (2.1f) #define DJCDATAVERSION_COMPAT (2.0f) -inline bool checkVersionCompatible(const float& version){ - return version == DJCDATAVERSION || version == DJCDATAVERSION_COMPAT; -} +bool checkVersionCompatible(const float& version); inline bool checkVersionStrict(float version){ return version == DJCDATAVERSION; diff --git a/compiled/src/version.cpp b/compiled/src/version.cpp new file mode 100644 index 0000000..1c63fce --- /dev/null +++ b/compiled/src/version.cpp @@ -0,0 +1,31 @@ +/* + * version.cpp + * + * Created on: 8 Feb 2021 + * Author: jkiesele + */ + +#include "../interface/version.h" +#include + +bool warning_issued=false; + +bool checkVersionCompatible(const float& version){ + bool compatprevious = version == DJCDATAVERSION_COMPAT; + if(compatprevious && !warning_issued){ + std::cout + << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n" + << "WARNING:\n" + << "You are reading an old DeepJetCore file format ("< Date: Tue, 9 Feb 2021 18:11:14 +0100 Subject: [PATCH 338/437] you have to specify this now --- DataCollection.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index ed5f405..7caa824 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -548,11 +548,11 @@ def extract_features(self, dataclass, selector,nfiles): #make this generic thislist=[] if selector == 'x': - thislist=td.transferFeatureListToNumpy() + thislist=td.transferFeatureListToNumpy(False) if selector == 'y': - thislist=td.transferTruthListToNumpy() + thislist=td.transferTruthListToNumpy(False) if selector == 'w': - thislist=td.transferWeightListToNumpy() + thislist=td.transferWeightListToNumpy(False) if firstcall: out=thislist firstcall=False From 2b5e45c12708c3c348b1e01f396bb47b20274562 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 9 Feb 2021 18:31:19 +0100 Subject: [PATCH 339/437] another small fix --- training/DeepJet_callbacks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 69ab653..07e8fc5 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -415,8 +415,8 @@ def predict_and_call(self,counter): if not isinstance(predicted, list): predicted=[predicted] - self.function_to_apply(self.call_counter,self.td.copyFeatureListToNumpy(), - predicted,self.td.copyTruthListToNumpy()) + self.function_to_apply(self.call_counter,self.td.copyFeatureListToNumpy(False), + predicted,self.td.copyTruthListToNumpy(False)) self.call_counter+=1 def on_epoch_end(self, epoch, logs=None): From ce26e82d22e828a5878652ae4f393d66346c3b12 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 11 Feb 2021 10:48:37 +0100 Subject: [PATCH 340/437] input names can be specified --- DataCollection.py | 13 ++++++++++--- SimpleArray.py | 4 ++-- bin/createSubpackage.py | 3 ++- compiled/interface/trainData.h | 3 +++ compiled/src/c_trainData.C | 3 +++ compiled/src/trainData.cpp | 12 ++++++++++++ testing/batch_explosion.py | 2 +- testing/datastructures/TrainData_testing.py | 12 ++++++++---- testing/max_q_size.py | 3 +-- training/training_base.py | 8 ++++---- 10 files changed, 46 insertions(+), 17 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 7caa824..1b06848 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -95,7 +95,7 @@ def __radd__(self, other): def __len__(self): return len(self.samples) - def _readShapesIfNeeded(self): + def _readMetaInfoIfNeeded(self): if len(self.samples)<1: return if self.dataclass_instance is None: @@ -120,17 +120,24 @@ def getKerasFeatureShapes(self): if len(self.samples)<1: raise Exception("DataCollection.getKerasFeatureShapes: no files") return [] - self._readShapesIfNeeded() + self._readMetaInfoIfNeeded() return self.dataclass_instance.getKerasFeatureShapes() def getKerasFeatureDTypes(self): if len(self.samples)<1: raise Exception("DataCollection.getKerasFeatureDTypes: no files") return [] - self._readShapesIfNeeded() + self._readMetaInfoIfNeeded() return self.dataclass_instance.getKerasFeatureDTypes() + def getKerasFeatureArrayNames(self): + if len(self.samples)<1: + raise Exception("DataCollection.getKerasFeatureNames: no files") + return [] + self._readMetaInfoIfNeeded() + return self.dataclass_instance.getKerasFeatureArrayNames() + def getInputShapes(self): print('DataCollection:getInputShapes deprecated, use getKerasFeatureShapes ') return self.getKerasFeatureShapes() diff --git a/SimpleArray.py b/SimpleArray.py index dd09eb5..4a2612d 100644 --- a/SimpleArray.py +++ b/SimpleArray.py @@ -4,7 +4,7 @@ class SimpleArray(object): - def __init__(self, nparr=None, nprs=np.array([],dtype='int64'), dtype='float32'): + def __init__(self, nparr=None, nprs=np.array([],dtype='int64'), dtype='float32', name=""): assert nparr is not None or dtype is not None self.dtype=None @@ -13,7 +13,7 @@ def __init__(self, nparr=None, nprs=np.array([],dtype='int64'), dtype='float32') self._setDtype(dtype) if nparr is not None: self.createFromNumpy(nparr, nprs) - + self.setName(name) def __eq__(self,other): if self.sa.dtypeI() != other.sa.dtypeI(): diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 1f5feca..613297d 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -61,6 +61,7 @@ datastructure_template=''' from DeepJetCore.TrainData import TrainData, fileTimeOut +from DeepJetCore import SimpleArray import numpy as np class TrainData_example(TrainData): @@ -127,7 +128,7 @@ def convertFromSourceFile(self, filename, weighterobjects, istraining): self.nsamples=len(feature_array) #returns a list of feature arrays, a list of truth arrays and a list of weight arrays - return [feature_array], [truth], [] + return [SimpleArray(feature_array,name="features0")], [SimpleArray(truth,name="truth0")], [] ## defines how to write out the prediction def writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile): diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index ee6482d..8458db6 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -228,6 +228,9 @@ class trainData{ boost::python::list getKerasFeatureShapes()const; boost::python::list getKerasFeatureDTypes()const; + + boost::python::list getKerasFeatureArrayNames()const; + // not needed boost::python::list getKerasTruthShapes()const; // not needed boost::python::list getKerasWeightShapes()const; diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index e37b850..57d523f 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -54,6 +54,9 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("getKerasFeatureShapes", &trainData::getKerasFeatureShapes) .def("getKerasFeatureDTypes", &trainData::getKerasFeatureDTypes) + .def("getKerasFeatureArrayNames", &trainData::getKerasFeatureArrayNames) + + .def("getTruthRaggedFlags", &trainData::getTruthRaggedFlags) .def("transferFeatureListToNumpy", &trainData::transferFeatureListToNumpy) diff --git a/compiled/src/trainData.cpp b/compiled/src/trainData.cpp index e574e51..57921f0 100644 --- a/compiled/src/trainData.cpp +++ b/compiled/src/trainData.cpp @@ -493,6 +493,18 @@ boost::python::list trainData::getKerasFeatureDTypes()const{ return out; } + +boost::python::list trainData::getKerasFeatureArrayNames()const{ + boost::python::list out; + for(size_t i=0;i Date: Thu, 11 Feb 2021 11:56:43 +0100 Subject: [PATCH 341/437] create from numpy for simple array easier now --- SimpleArray.py | 11 ++++++++--- testing/unit/TestSimpleArray.py | 13 ++++++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/SimpleArray.py b/SimpleArray.py index 4a2612d..87635af 100644 --- a/SimpleArray.py +++ b/SimpleArray.py @@ -54,10 +54,15 @@ def assignFromNumpy(self,*args): return self.sa.assignFromNumpy(*args) def createFromNumpy(self, nparr, nprs=np.array([],dtype='int64')): + name = self.name() + fnames = self.featureNames() + self._setDtype(str(nparr.dtype)) if nprs.dtype == 'int32': - return self.sa.createFromNumpy(nparr, nprs.as_type('int64')) - return self.sa.createFromNumpy(nparr, nprs) - + self.sa.createFromNumpy(nparr, nprs.as_type('int64')) + else: + self.sa.createFromNumpy(nparr, nprs) + self.setName(name) + self.setFeatureNames(fnames) def copyToNumpy(self, pad_rowsplits=False): return self.sa.copyToNumpy(pad_rowsplits) diff --git a/testing/unit/TestSimpleArray.py b/testing/unit/TestSimpleArray.py index 98700cc..40c3529 100644 --- a/testing/unit/TestSimpleArray.py +++ b/testing/unit/TestSimpleArray.py @@ -56,11 +56,22 @@ def test_createFromNumpyInt(self): diff += np.max(np.abs(nrs-rs)) self.assertTrue(diff< 0.000001) + def test_dynamicTypeChange(self): + print('TestSimpleArray: dynamicTypeChange') + arr,rs = self.createNumpy('int32') + name = "lala" + a = SimpleArray(dtype='float32',name=name) + fnames = ["a","b","c","d","e","f"] + a.setFeatureNames(fnames) + a.createFromNumpy(arr,rs) + self.assertTrue(a.featureNames() == fnames) + self.assertTrue(a.name() == name) + + def test_writeRead(self): print('TestSimpleArray: writeRead') arr,rs = self.createNumpy('float32') - a = SimpleArray(arr,rs) a.setName("myname") a.setFeatureNames(["a","b","c","d","e","f"]) From 1b29c1f0923c7409215b70f5242e8952dfdab613 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 9 Mar 2021 19:07:45 +0100 Subject: [PATCH 342/437] new traindata append to file. preparation for streamer --- compiled/interface/trainData.h | 17 +++++++ compiled/src/c_trainData.C | 5 ++ compiled/src/trainData.cpp | 89 ++++++++++++++++++++++++++++++---- testing/unit/TestTrainData.py | 32 +++++++++++- 4 files changed, 133 insertions(+), 10 deletions(-) diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 8458db6..0b29c98 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -35,6 +35,12 @@ class typeContainer{ void push_back(simpleArrayBase& a); void move_back(simpleArrayBase& a); + bool operator==(const typeContainer& rhs)const; + bool operator!=(const typeContainer& rhs)const{ + return !(*this==rhs); + } + + simpleArrayBase& at(size_t idx); const simpleArrayBase& at(size_t idx)const; @@ -83,6 +89,11 @@ class trainData{ public: + + bool operator==(const trainData& rhs)const; + bool operator!=(const trainData& rhs)const{ + return !(*this==rhs); + } //takes ownership //these need to be separated by input type because python does not allow for overload //but then the py interface can be made generic to accept differnt types @@ -204,6 +215,9 @@ class trainData{ const std::vector > & weightShapes()const{return weight_shapes_;} void writeToFile(std::string filename)const; + void addToFile(std::string filename)const; + + void addToFileP(FILE *& f)const; void readFromFile(std::string filename){ priv_readFromFile(filename,false); @@ -276,6 +290,9 @@ class trainData{ void priv_readFromFile(std::string filename, bool memcp); + trainData priv_readFromFileP(FILE *& f, const std::string& filename)const; + void priv_readSelfFromFileP(FILE *& f, const std::string& filename); + void checkFile(FILE *& f, const std::string& filename="")const; diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index 57d523f..96d826e 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -16,8 +16,11 @@ using namespace djc; BOOST_PYTHON_MODULE(c_trainData) { Py_Initialize(); np::initialize(); + using namespace p; p::class_("trainData") + .def(self==self) + .def(self!=self) //excplicit overloading .def("storeFeatureArray", &trainData::storeFeatureArray) @@ -29,6 +32,7 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("storeWeightArray", &trainData::storeWeightArray) .def("storeWeightArray", &trainData::storeWeightArray) + // .def("featureList", &trainData::featureList) // .def("truthList", &trainData::truthList) // .def("weightList", &trainData::weightList) @@ -46,6 +50,7 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("readFromFile", &trainData::readFromFile) .def("readFromFileBuffered", &trainData::readFromFileBuffered) .def("writeToFile", &trainData::writeToFile) + .def("addToFile", &trainData::addToFile) .def("copy", &trainData::copy) diff --git a/compiled/src/trainData.cpp b/compiled/src/trainData.cpp index 57921f0..7967767 100644 --- a/compiled/src/trainData.cpp +++ b/compiled/src/trainData.cpp @@ -32,6 +32,25 @@ void typeContainer::move_back(simpleArrayBase& a){ sorting_.push_back({isint,iarrs_.size()-1}); } } +bool typeContainer::operator==(const typeContainer& rhs)const{ + if(size() != rhs.size()) + return false; + if(farrs_.size() != rhs.farrs_.size()) + return false; + + if(sorting_ != rhs.sorting_) + return false; + + for(size_t i=0;i=sorting_.size()) throw std::out_of_range("typeContainer::at: requested "+std::to_string(idx)+" of "+std::to_string(sorting_.size())); @@ -119,6 +138,22 @@ void typeContainer::readFromFile_priv(FILE *& ifile, bool justmetadata){ ////////////////// trainData ////////////////////// +bool trainData::operator==(const trainData& rhs)const{ + + if(feature_arrays_ != rhs.feature_arrays_) + return false; + if(truth_arrays_ != rhs.truth_arrays_) + return false; + if(weight_arrays_ != rhs.weight_arrays_) + return false; + if(feature_shapes_ != rhs.feature_shapes_) + return false; + if(truth_shapes_ != rhs.truth_shapes_) + return false; + if(weight_shapes_ != rhs. weight_shapes_) + return false; + return true; +} int trainData::storeFeatureArray(simpleArrayBase & a){ @@ -267,6 +302,19 @@ bool trainData::validSlice(size_t splitindex_begin, size_t splitindex_end)const{ void trainData::writeToFile(std::string filename)const{ FILE *ofile = fopen(filename.data(), "wb"); + addToFileP(ofile); + fclose(ofile); + +} + +void trainData::addToFile(std::string filename)const{ + + FILE *ofile = fopen(filename.data(), "ab"); + addToFileP(ofile); + fclose(ofile); +} + +void trainData::addToFileP(FILE *& ofile)const{ float version = DJCDATAVERSION; io::writeToFile(&version, ofile); @@ -279,15 +327,13 @@ void trainData::writeToFile(std::string filename)const{ feature_arrays_.writeToFile(ofile); truth_arrays_.writeToFile(ofile); weight_arrays_.writeToFile(ofile); - fclose(ofile); - } void trainData::priv_readFromFile(std::string filename, bool memcp){ clear(); FILE *ifile = fopen(filename.data(), "rb"); char *buf = 0; - if(memcp){ + if(false && memcp){ FILE *diskfile = ifile; //check if exists before trying to memcp. checkFile(ifile, filename); //not set at start but won't be used @@ -307,6 +353,37 @@ void trainData::priv_readFromFile(std::string filename, bool memcp){ ifile = fmemopen(buf,fsize,"r"); } + priv_readSelfFromFileP(ifile,filename); + //check for eof and add until done. the append step can be heavily optimized! FIXME + //read one more byte + int ch = getc(ifile); + while(! feof(ifile)){ + fseek(ifile,-1,SEEK_CUR); + append(priv_readFromFileP(ifile,filename)); + ch = getc(ifile); + } + + fclose(ifile); + if(buf){ + delete buf; + } +} + +trainData trainData::priv_readFromFileP(FILE *& ifile, const std::string& filename)const{ + //include file version check + trainData out; + out.checkFile(ifile, filename); + out.readNested(out.feature_shapes_, ifile); + out.readNested(out.truth_shapes_, ifile); + out.readNested(out.weight_shapes_, ifile); + + out.feature_arrays_ .readFromFile(ifile); + out.truth_arrays_.readFromFile(ifile); + out.weight_arrays_.readFromFile(ifile); + return out; +} + +void trainData::priv_readSelfFromFileP(FILE *& ifile, const std::string& filename){ checkFile(ifile, filename); readNested(feature_shapes_, ifile); readNested(truth_shapes_, ifile); @@ -315,12 +392,6 @@ void trainData::priv_readFromFile(std::string filename, bool memcp){ feature_arrays_ .readFromFile(ifile); truth_arrays_.readFromFile(ifile); weight_arrays_.readFromFile(ifile); - - fclose(ifile); - if(buf){ - delete buf; - } - } void trainData::readMetaDataFromFile(const std::string& filename){ diff --git a/testing/unit/TestTrainData.py b/testing/unit/TestTrainData.py index 3ea5181..2b78398 100644 --- a/testing/unit/TestTrainData.py +++ b/testing/unit/TestTrainData.py @@ -53,7 +53,37 @@ def test_store(self): def test_readWrite(self): print('TestTrainData: readWrite') - self.sub_test_store(True) + self.sub_test_store(True) + + def nestedEqual(self,l,l2): + for a,b in zip(l,l2): + if not np.all(a==b): + return False + return True + + def test_AddToFile(self): + print('TestTrainData: AddToFile') + + td = TrainData() + x,y,w = self.createSimpleArray('int32'), self.createSimpleArray('float32'), self.createSimpleArray('int32') + xo,yo,wo = x.copy(),y.copy(),w.copy() + x2,y2,_ = self.createSimpleArray('float32'), self.createSimpleArray('float32'), self.createSimpleArray('int32') + x2o,y2o = x2.copy(),y2.copy() + td._store([x,x2], [y,y2], [w]) + + td.writeToFile("testfile.tdjctd") + td.addToFile("testfile.tdjctd") + + + td2 = TrainData() + td2._store([xo,x2o], [yo,y2o], [wo]) + td2.append(td) + + td.readFromFile("testfile.tdjctd") + os.system('rm -f testfile.tdjctd') + + + self.assertEqual(td,td2) def test_split(self): print('TestTrainData: split') From f60fcdd8dda4a9e7941487fb7a5a50b3a29afdfe Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 15 Mar 2021 14:32:19 +0100 Subject: [PATCH 343/437] first draft of streamer. more testing needed --- compiled/interface/simpleArray.h | 19 +- compiled/interface/trainDataFileStreamer.h | 211 +++++++++++++++++++++ compiled/src/c_simpleArray.C | 4 + compiled/src/trainDataFileStreamer.cpp | 136 +++++++++++++ 4 files changed, 369 insertions(+), 1 deletion(-) create mode 100644 compiled/interface/trainDataFileStreamer.h create mode 100644 compiled/src/trainDataFileStreamer.cpp diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index f64d8cf..a22213e 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -60,7 +60,17 @@ class simpleArrayBase { void setFeatureNames(const std::vector& names){featnames_=names;} const std::vector& featureNames()const{return featnames_;} - + virtual void set(const size_t i, float val){throwWrongTypeSet();} + virtual void set(const size_t i, const size_t j, float val){throwWrongTypeSet();} + virtual void set(const size_t i, const size_t j, const size_t k, float val){throwWrongTypeSet();} + virtual void set(const size_t i, const size_t j, const size_t k, const size_t l, float val){throwWrongTypeSet();} + virtual void set(const size_t i, const size_t j, const size_t k, const size_t l, const size_t m, float val){throwWrongTypeSet();} + + virtual void set(const size_t i, int val){throwWrongTypeSet();} + virtual void set(const size_t i, const size_t j, int val){throwWrongTypeSet();} + virtual void set(const size_t i, const size_t j, const size_t k, int val){throwWrongTypeSet();} + virtual void set(const size_t i, const size_t j, const size_t k, const size_t l, int val){throwWrongTypeSet();} + virtual void set(const size_t i, const size_t j, const size_t k, const size_t l, const size_t m, int val){throwWrongTypeSet();} static std::string dtypeToString(dtypes t); static dtypes stringToDtype(const std::string& s); @@ -193,6 +203,7 @@ class simpleArrayBase { private: + void throwWrongTypeSet()const{throw std::invalid_argument("simpleArrayBase::set: wrong data format");} static std::vector priv_getSplitIndices(bool datasplit, const std::vector & rowsplits, size_t nelements_limit, bool sqelementslimit, std::vector& size_ok, std::vector& nelemtns_per_split, bool strict_limit); @@ -337,6 +348,12 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n); const T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; + void set(const size_t i, T val){at(i)=val;} + void set(const size_t i, const size_t j, T val){at(i,j)=val;} + void set(const size_t i, const size_t j, const size_t k, T val){at(i,j,k)=val;} + void set(const size_t i, const size_t j, const size_t k, const size_t l, T val){at(i,j,k,l)=val;} + void set(const size_t i, const size_t j, const size_t k, const size_t l, const size_t m, T val){at(i,j,k,l,m)=val;} + diff --git a/compiled/interface/trainDataFileStreamer.h b/compiled/interface/trainDataFileStreamer.h new file mode 100644 index 0000000..dad94ce --- /dev/null +++ b/compiled/interface/trainDataFileStreamer.h @@ -0,0 +1,211 @@ +/* + * trainDataFileStreamer.h + * + * Created on: 15 Mar 2021 + * Author: jkiesele + */ + +#ifndef DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAFILESTREAMER_H_ +#define DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAFILESTREAMER_H_ + +#include "simpleArray.h" +#include + +/* + * general idea: just manage access to simpleArrays. + * Once buffer full, create trainData and write out + * (make sure this can be threaded) + * + * + */ + +//helper, might be moved +/* + * vector of simplearray + * vector of row splits created when calling next + * + * return simpleArrayBase (typeless) + */ +namespace djc{ + +class trainDataFileStreamer; + +class simpleArrayStreamer{ + friend class trainDataFileStreamer; +public: + + enum dataUsage {feature_data, truth_data, weight_data}; + + ~simpleArrayStreamer(){ + clear(); + } + + /** + * the shape does not include the 'event' dimension + */ + simpleArrayStreamer( + const std::string name, + const std::vector& shape, + simpleArrayBase::dtypes dtype, + dataUsage dusage, + const std::vector& featurenames=std::vector()); + + //maybe replace that with direct 'set' access. TBI + inline simpleArrayBase & arr(){if(current_) return *current_; else throw std::logic_error("simpleArrayStreamer::arr: no array initialized.");} + inline const simpleArrayBase & arr()const{if(current_) return *current_; else throw std::logic_error("simpleArrayStreamer::arr: no array initialized.");} + + void fill(){ + arrays_.push_back(current_); + newCurrentArray(); + } + + + simpleArrayBase * copyToFullArray()const; + +private: + + void fillEvent(); + void clear(); + void clearData(); + + simpleArrayStreamer(){} + + template + simpleArrayBase * priv_copyToFullArray()const{ + std::vector newshape = {(int)rowsplits_.size(),-1};//second dimension is the variable one + //add the actual 'per event' shape + newshape.insert(newshape.end(), prototype_->shape().begin(),prototype_->shape().end()); + T * outp = new T(newshape,rowsplits_); + size_t counter=0; + for(const auto& a:arrays_){ + for(size_t i=0;isize();i++){ + outp->data()[counter] = dynamic_cast(a)->data()[i]; + counter++; + } + } + return outp; + } + + //this is not exact but good enough for approx buffering + size_t memSizeKB()const; + + void newCurrentArray(); + + //needs to be pointers because of types + std::vector arrays_; + std::vector rowsplits_; + simpleArrayBase* current_; + simpleArrayBase* prototype_; + dataUsage dusage_; +}; + + +/** + * + * Usage: + * - create the trainDataFileStreamer object (sets output file name and opt. buffer size). + * - add arrays to it + * - fill the arrays in the event loop (using arr()->set(i,j,k,l,value) . can have one ragged dimension + * - finish the event synchronously for all arrays calling fillEvent + * + * + * Example: + * + * trainDataFileStreamer fs("outfile.djctd"); + * auto features = fs.add("myfeatures", // just a name, can also be left blank + * {3}, + * simpleArrayBase::float32, // the data type + * simpleArrayStreamer::feature_data, // what it's used for + * {"jetpt","jeteta","jetphi"}); // optional feature names + * + * auto truth = fs.add("isSignal",{1},simpleArrayBase::int32,simpleArrayStreamer::truth_data); + * + * for(event: events){ + * + * for(jet: jets){ + * features.arr().set(0, jet->pt()); + * features.arr().set(0, jet->eta()); + * features.arr().set(0, jet->phi()); + * features.fill() + * } + * + * truth.arr().set(0, isSUSYevent); + * truth.fill() + * + * fs.fillEvent(); + * } + * + * //no need to explicitly write out/close etc. action is implemented in the destructor + * + */ +class trainDataFileStreamer { +public: + + trainDataFileStreamer( + const std::string & filename, + size_t bufferInMB=20); + + ~trainDataFileStreamer(){ + writeBuffer(true);//write remaining items + for(auto& a:arraystreamers_a_) + delete a; + for(auto& a:arraystreamers_b_) + delete a; + } + + template + simpleArrayStreamer* add(const std::string name, + const std::vector& shape, + simpleArrayBase::dtypes type, + simpleArrayStreamer::dataUsage dusage, + const std::vector& featurenames=std::vector()){ + simpleArrayStreamer* as = new simpleArrayStreamer(name,shape,type,dusage,featurenames); + activestreamers_->push_back(as); + return as; + } + + + inline void fillEvent(){ + //makes sure it's in sync + for(auto& a:*activestreamers_) + a->fillEvent(); + if(bufferFull()) + writeBuffer(); + } + + +private: + + void writeBuffer(bool sync=false); + bool bufferFull(); + + + std::vector arraystreamers_a_; + std::vector arraystreamers_b_; + std::vector * activestreamers_; + std::vector * writingstreamers_; + std::string filename_; + size_t buffermb_; + +}; + + +/* + * + * + * + * + * + * + * + * + * + * + * + * + */ + + +}//djc + +#endif /* DEEPJETCORE_COMPILED_INTERFACE_TRAINDATAFILESTREAMER_H_ */ diff --git a/compiled/src/c_simpleArray.C b/compiled/src/c_simpleArray.C index 6e62ac3..b38df95 100644 --- a/compiled/src/c_simpleArray.C +++ b/compiled/src/c_simpleArray.C @@ -20,6 +20,8 @@ namespace np = boost::python::numpy; using namespace djc; +//BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(simpleArray_float32_set_overloads, simpleArray_float32::set, 2, 6); + BOOST_PYTHON_MODULE(c_simpleArray) { Py_Initialize(); @@ -37,6 +39,8 @@ BOOST_PYTHON_MODULE(c_simpleArray) { .def("setFeatureNames", &simpleArray_float32::setFeatureNamesPy) .def("featureNames", &simpleArray_float32::featureNamesPy) + //.def("set", &simpleArray_float32::set, simpleArray_float32_set_overloads()) + .def("readFromFile", &simpleArray_float32::readFromFile) .def("writeToFile", &simpleArray_float32::writeToFile) .def("assignFromNumpy", &simpleArray_float32::assignFromNumpy) diff --git a/compiled/src/trainDataFileStreamer.cpp b/compiled/src/trainDataFileStreamer.cpp new file mode 100644 index 0000000..caa703d --- /dev/null +++ b/compiled/src/trainDataFileStreamer.cpp @@ -0,0 +1,136 @@ + +#include "../interface/trainDataFileStreamer.h" +#include "../interface/trainData.h" + +namespace djc{ + + +simpleArrayStreamer::simpleArrayStreamer( + const std::string name, + const std::vector& shape, + simpleArrayBase::dtypes type, + dataUsage dusage, + const std::vector& featurenames){ + + dusage_=dusage; + + if(type==simpleArrayBase::float32) + prototype_= new simpleArray_float32(shape); + else if(type==simpleArrayBase::int32) + prototype_= new simpleArray_int32(shape); + else + throw std::invalid_argument("simpleArrayStreamer::init: unsupported dtype"); + + prototype_->setFeatureNames(featurenames); + prototype_->setName(name); + + current_=0; + rowsplits_.push_back(0); + newCurrentArray(); + +} + +void simpleArrayStreamer::clear(){ + clearData(); + if(prototype_) + delete prototype_; + prototype_=0; +} + +void simpleArrayStreamer::clearData(){//keep prototype + for(auto& a:arrays_) + delete a; + arrays_.clear(); + rowsplits_.clear(); + if(current_) + delete current_; + current_=0; + newCurrentArray(); +} + + +void simpleArrayStreamer::fillEvent(){ + rowsplits_.push_back(arrays_.size()); +} + + +simpleArrayBase * simpleArrayStreamer::copyToFullArray()const{ + if(prototype_->dtype() == simpleArrayBase::float32){ + return priv_copyToFullArray(); + } + else if(prototype_->dtype() == simpleArrayBase::int32){ + return priv_copyToFullArray(); + } + else + throw std::runtime_error("simpleArrayStreamer::copyToFullArray: unrecognised type"); + return 0; +} + +size_t simpleArrayStreamer::memSizeKB()const{ + size_t vsize = arrays_.size(); + size_t pts = prototype_->size(); + size_t datasize = vsize*pts + pts; + + datasize *= sizeof(float); //int32 and float32 both 4 bytes + + size_t rssize = rowsplits_.size() * sizeof(int64_t); + + return (datasize + rssize)/1024; +} + +void simpleArrayStreamer::newCurrentArray(){ + if(prototype_->dtype() == simpleArrayBase::float32) + current_ = new simpleArray_float32((*(simpleArray_float32*)prototype_)); + else if(prototype_->dtype() == simpleArrayBase::int32) + current_ = new simpleArray_int32((*(simpleArray_int32*)prototype_)); +} + + +////////// ----- trainDataFileStreamer --- ////////// + +trainDataFileStreamer::trainDataFileStreamer( + const std::string & filename, + size_t bufferInMB):filename_(filename),buffermb_(bufferInMB){ + //create the file + FILE *ofile = fopen(filename.data(), "wb"); + fclose(ofile); + + activestreamers_=&arraystreamers_a_; //not threaded yet + writingstreamers_=&arraystreamers_b_; +} + + +void trainDataFileStreamer::writeBuffer(bool sync){//sync has no effect yet + + auto writestreamers = activestreamers_;//not threaded yet + + trainData td; + for(auto& a: *writestreamers){ + auto acp = a->copyToFullArray(); + if(a->dusage_ == simpleArrayStreamer::feature_data) + td.storeFeatureArray(*acp); + else if(a->dusage_ == simpleArrayStreamer::truth_data) + td.storeTruthArray(*acp); + else if(a->dusage_ == simpleArrayStreamer::feature_data) + td.storeWeightArray(*acp); + + //clean up + a->clearData(); + } + + td.addToFile(filename_); + +} + +bool trainDataFileStreamer::bufferFull(){ + size_t totalsizekb=0; + for(auto& a: *activestreamers_) + totalsizekb += a->memSizeKB(); + if(totalsizekb/1024 >= buffermb_) + return true; + return false; +} + + + +}//djc From abafc45a0e4c03663161cc6a5cddda11cc8fa75a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 15 Mar 2021 14:34:30 +0100 Subject: [PATCH 344/437] fixes in example --- compiled/interface/trainDataFileStreamer.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/compiled/interface/trainDataFileStreamer.h b/compiled/interface/trainDataFileStreamer.h index dad94ce..70e7d9c 100644 --- a/compiled/interface/trainDataFileStreamer.h +++ b/compiled/interface/trainDataFileStreamer.h @@ -113,10 +113,10 @@ class simpleArrayStreamer{ * * trainDataFileStreamer fs("outfile.djctd"); * auto features = fs.add("myfeatures", // just a name, can also be left blank - * {3}, + * {3}, // the shape, here just 3 features * simpleArrayBase::float32, // the data type * simpleArrayStreamer::feature_data, // what it's used for - * {"jetpt","jeteta","jetphi"}); // optional feature names + * {"jetpt","jeteta","jetphi"}); // optional feature names * * auto truth = fs.add("isSignal",{1},simpleArrayBase::int32,simpleArrayStreamer::truth_data); * @@ -124,8 +124,8 @@ class simpleArrayStreamer{ * * for(jet: jets){ * features.arr().set(0, jet->pt()); - * features.arr().set(0, jet->eta()); - * features.arr().set(0, jet->phi()); + * features.arr().set(1, jet->eta()); + * features.arr().set(2, jet->phi()); * features.fill() * } * From d24e466fe05db16df70901f2e53730e0bb49fe83 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 16 Mar 2021 10:35:30 +0100 Subject: [PATCH 345/437] some small fixes, ui improvements --- SimpleArray.py | 3 + compiled/interface/simpleArray.h | 36 +++++++ compiled/interface/trainDataFileStreamer.h | 109 ++++++-------------- compiled/src/c_simpleArray.C | 111 ++++++++++++--------- compiled/src/trainDataFileStreamer.cpp | 90 +---------------- 5 files changed, 135 insertions(+), 214 deletions(-) diff --git a/SimpleArray.py b/SimpleArray.py index 87635af..19d0c51 100644 --- a/SimpleArray.py +++ b/SimpleArray.py @@ -30,6 +30,9 @@ def _setDtype(self,dtype): #now pass through all the other member functions transparently + def set(self,*args): + self.sa.set(*args) + def setName(self, namestr: str): self.sa.setName(namestr) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index a22213e..ff1076c 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -30,6 +30,7 @@ namespace djc{ + //has all non-data operations class simpleArrayBase { public: @@ -60,6 +61,8 @@ class simpleArrayBase { void setFeatureNames(const std::vector& names){featnames_=names;} const std::vector& featureNames()const{return featnames_;} + virtual void fillZeros()=0; + virtual void set(const size_t i, float val){throwWrongTypeSet();} virtual void set(const size_t i, const size_t j, float val){throwWrongTypeSet();} virtual void set(const size_t i, const size_t j, const size_t k, float val){throwWrongTypeSet();} @@ -348,6 +351,8 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n); const T & at(size_t i, size_t j, size_t k, size_t l, size_t m, size_t n)const; + void fillZeros(); + void set(const size_t i, T val){at(i)=val;} void set(const size_t i, const size_t j, T val){at(i,j)=val;} void set(const size_t i, const size_t j, const size_t k, T val){at(i,j,k)=val;} @@ -405,6 +410,30 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera T * data_; }; +/* for later +template +class simpleArrayIndex { +public: + simpleArrayIndex(simpleArray& a, const int i):arr_(a){ + + } + simpleArrayIndex(const T&){ + //set value + } + + operator T&() { return val; } + operator T() const { return val; } + + simpleArrayIndex operator[](const int i){ + return simpleArrayIndex(arr_,i); + } + +private: + simpleArray& arr_; + //some indexing +}; +*/ + template simpleArray::simpleArray() : simpleArrayBase(), @@ -1123,6 +1152,13 @@ const T & simpleArray::at(size_t i, size_t j, size_t k, size_t l, size_t m, s } +template +void simpleArray::fillZeros(){ + for(size_t i=0;i /* @@ -28,76 +29,6 @@ */ namespace djc{ -class trainDataFileStreamer; - -class simpleArrayStreamer{ - friend class trainDataFileStreamer; -public: - - enum dataUsage {feature_data, truth_data, weight_data}; - - ~simpleArrayStreamer(){ - clear(); - } - - /** - * the shape does not include the 'event' dimension - */ - simpleArrayStreamer( - const std::string name, - const std::vector& shape, - simpleArrayBase::dtypes dtype, - dataUsage dusage, - const std::vector& featurenames=std::vector()); - - //maybe replace that with direct 'set' access. TBI - inline simpleArrayBase & arr(){if(current_) return *current_; else throw std::logic_error("simpleArrayStreamer::arr: no array initialized.");} - inline const simpleArrayBase & arr()const{if(current_) return *current_; else throw std::logic_error("simpleArrayStreamer::arr: no array initialized.");} - - void fill(){ - arrays_.push_back(current_); - newCurrentArray(); - } - - - simpleArrayBase * copyToFullArray()const; - -private: - - void fillEvent(); - void clear(); - void clearData(); - - simpleArrayStreamer(){} - - template - simpleArrayBase * priv_copyToFullArray()const{ - std::vector newshape = {(int)rowsplits_.size(),-1};//second dimension is the variable one - //add the actual 'per event' shape - newshape.insert(newshape.end(), prototype_->shape().begin(),prototype_->shape().end()); - T * outp = new T(newshape,rowsplits_); - size_t counter=0; - for(const auto& a:arrays_){ - for(size_t i=0;isize();i++){ - outp->data()[counter] = dynamic_cast(a)->data()[i]; - counter++; - } - } - return outp; - } - - //this is not exact but good enough for approx buffering - size_t memSizeKB()const; - - void newCurrentArray(); - - //needs to be pointers because of types - std::vector arrays_; - std::vector rowsplits_; - simpleArrayBase* current_; - simpleArrayBase* prototype_; - dataUsage dusage_; -}; /** @@ -116,9 +47,19 @@ class simpleArrayStreamer{ * {3}, // the shape, here just 3 features * simpleArrayBase::float32, // the data type * simpleArrayStreamer::feature_data, // what it's used for + * true, // data is ragged (variable 1st dimension) * {"jetpt","jeteta","jetphi"}); // optional feature names * - * auto truth = fs.add("isSignal",{1},simpleArrayBase::int32,simpleArrayStreamer::truth_data); + * + * auto zeropadded = fs.add("myzeropadded_lepton_features",// just a name, can also be left blank + * {5,3}, // 3 features each for the first 5 leptons + * simpleArrayBase::float32, // the data type + * simpleArrayStreamer::feature_data, // what it's used for + * false, // data is not ragged + * {"pt","eta","phi"}); // optional feature names + * + * //add a non ragged per-event variable + * auto truth = fs.add("isSignal",{1},simpleArrayBase::int32,simpleArrayStreamer::truth_data, false); * * for(event: events){ * @@ -129,6 +70,17 @@ class simpleArrayStreamer{ * features.fill() * } * + * + * zeropadded.arr().fillZero(); //make sure everything is initialized with zeros + * for(size_t i=0;i3) + * break; + * } + * zeropadded.fill(); + * * truth.arr().set(0, isSUSYevent); * truth.fill() * @@ -154,12 +106,13 @@ class trainDataFileStreamer { } template - simpleArrayStreamer* add(const std::string name, + simpleArrayFiller* add(const std::string name, const std::vector& shape, simpleArrayBase::dtypes type, - simpleArrayStreamer::dataUsage dusage, + simpleArrayFiller::dataUsage dusage, + bool isragged, const std::vector& featurenames=std::vector()){ - simpleArrayStreamer* as = new simpleArrayStreamer(name,shape,type,dusage,featurenames); + simpleArrayFiller* as = new simpleArrayFiller(name,shape,type,dusage,isragged,featurenames); activestreamers_->push_back(as); return as; } @@ -180,10 +133,10 @@ class trainDataFileStreamer { bool bufferFull(); - std::vector arraystreamers_a_; - std::vector arraystreamers_b_; - std::vector * activestreamers_; - std::vector * writingstreamers_; + std::vector arraystreamers_a_; + std::vector arraystreamers_b_; + std::vector * activestreamers_; + std::vector * writingstreamers_; std::string filename_; size_t buffermb_; diff --git a/compiled/src/c_simpleArray.C b/compiled/src/c_simpleArray.C index b38df95..3a0b82e 100644 --- a/compiled/src/c_simpleArray.C +++ b/compiled/src/c_simpleArray.C @@ -20,64 +20,77 @@ namespace np = boost::python::numpy; using namespace djc; -//BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(simpleArray_float32_set_overloads, simpleArray_float32::set, 2, 6); +using namespace p; +BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(simpleArray_float32_set_overloads, simpleArray_float32::set, 2, 6); BOOST_PYTHON_MODULE(c_simpleArray) { Py_Initialize(); np::initialize(); - using namespace p; p::class_("simpleArrayF") - .def("readDtypeFromFile", &simpleArray_float32::readDtypeFromFile) - - .def(self==self) - .def("dtypeI", &simpleArray_float32::dtypeI) - - .def("setName", &simpleArray_float32::setName) - .def("name", &simpleArray_float32::name) - .def("setFeatureNames", &simpleArray_float32::setFeatureNamesPy) - .def("featureNames", &simpleArray_float32::featureNamesPy) - - //.def("set", &simpleArray_float32::set, simpleArray_float32_set_overloads()) - - .def("readFromFile", &simpleArray_float32::readFromFile) - .def("writeToFile", &simpleArray_float32::writeToFile) - .def("assignFromNumpy", &simpleArray_float32::assignFromNumpy) - .def("transferToNumpy", &simpleArray_float32::transferToNumpy) - .def("createFromNumpy", &simpleArray_float32::createFromNumpy) - .def("copyToNumpy", &simpleArray_float32::copyToNumpy) - .def("isRagged", &simpleArray_float32::isRagged) - .def("split", &simpleArray_float32::split) - .def("getSlice", &simpleArray_float32::getSlice) - .def("append", &simpleArray_float32::append) - .def("cout", &simpleArray_float32::cout) - .def("size", &simpleArray_float32::isize); + .def("readDtypeFromFile", &simpleArray_float32::readDtypeFromFile) + + .def(self==self) + .def("dtypeI", &simpleArray_float32::dtypeI) + + .def("setName", &simpleArray_float32::setName) + .def("name", &simpleArray_float32::name) + .def("setFeatureNames", &simpleArray_float32::setFeatureNamesPy) + .def("featureNames", &simpleArray_float32::featureNamesPy) + + //explicit overloads necessary + .def("set", &simpleArray_float32::set) + .def("set", &simpleArray_float32::set) + .def("set", &simpleArray_float32::set) + .def("set", &simpleArray_float32::set) + .def("set", &simpleArray_float32::set) + + + .def("readFromFile", &simpleArray_float32::readFromFile) + .def("writeToFile", &simpleArray_float32::writeToFile) + .def("assignFromNumpy", &simpleArray_float32::assignFromNumpy) + .def("transferToNumpy", &simpleArray_float32::transferToNumpy) + .def("createFromNumpy", &simpleArray_float32::createFromNumpy) + .def("copyToNumpy", &simpleArray_float32::copyToNumpy) + .def("isRagged", &simpleArray_float32::isRagged) + .def("split", &simpleArray_float32::split) + .def("getSlice", &simpleArray_float32::getSlice) + .def("append", &simpleArray_float32::append) + .def("cout", &simpleArray_float32::cout) + .def("size", &simpleArray_float32::isize); ; p::class_("simpleArrayI") - .def("readDtypeFromFile", &simpleArray_int32::readDtypeFromFile) - - .def(self==self) - - .def("dtypeI", &simpleArray_int32::dtypeI) - - .def("setName", &simpleArray_int32::setName) - .def("name", &simpleArray_int32::name) - .def("setFeatureNames", &simpleArray_int32::setFeatureNamesPy) - .def("featureNames", &simpleArray_int32::featureNamesPy) - - .def("readFromFile", &simpleArray_int32::readFromFile) - .def("writeToFile", &simpleArray_int32::writeToFile) - .def("assignFromNumpy", &simpleArray_int32::assignFromNumpy) - .def("transferToNumpy", &simpleArray_int32::transferToNumpy) - .def("createFromNumpy", &simpleArray_int32::createFromNumpy) - .def("copyToNumpy", &simpleArray_int32::copyToNumpy) - .def("isRagged", &simpleArray_int32::isRagged) - .def("split", &simpleArray_int32::split) - .def("getSlice", &simpleArray_int32::getSlice) - .def("append", &simpleArray_int32::append) //just use the explicit one here - .def("cout", &simpleArray_int32::cout) - .def("size", &simpleArray_int32::isize); + .def("readDtypeFromFile", &simpleArray_int32::readDtypeFromFile) + + .def(self==self) + + .def("dtypeI", &simpleArray_int32::dtypeI) + + .def("setName", &simpleArray_int32::setName) + .def("name", &simpleArray_int32::name) + .def("setFeatureNames", &simpleArray_int32::setFeatureNamesPy) + .def("featureNames", &simpleArray_int32::featureNamesPy) + + .def("set", &simpleArray_int32::set) + .def("set", &simpleArray_int32::set) + .def("set", &simpleArray_int32::set) + .def("set", &simpleArray_int32::set) + .def("set", &simpleArray_int32::set) + + + .def("readFromFile", &simpleArray_int32::readFromFile) + .def("writeToFile", &simpleArray_int32::writeToFile) + .def("assignFromNumpy", &simpleArray_int32::assignFromNumpy) + .def("transferToNumpy", &simpleArray_int32::transferToNumpy) + .def("createFromNumpy", &simpleArray_int32::createFromNumpy) + .def("copyToNumpy", &simpleArray_int32::copyToNumpy) + .def("isRagged", &simpleArray_int32::isRagged) + .def("split", &simpleArray_int32::split) + .def("getSlice", &simpleArray_int32::getSlice) + .def("append", &simpleArray_int32::append) //just use the explicit one here + .def("cout", &simpleArray_int32::cout) + .def("size", &simpleArray_int32::isize); ; } diff --git a/compiled/src/trainDataFileStreamer.cpp b/compiled/src/trainDataFileStreamer.cpp index caa703d..db6c4eb 100644 --- a/compiled/src/trainDataFileStreamer.cpp +++ b/compiled/src/trainDataFileStreamer.cpp @@ -4,90 +4,6 @@ namespace djc{ - -simpleArrayStreamer::simpleArrayStreamer( - const std::string name, - const std::vector& shape, - simpleArrayBase::dtypes type, - dataUsage dusage, - const std::vector& featurenames){ - - dusage_=dusage; - - if(type==simpleArrayBase::float32) - prototype_= new simpleArray_float32(shape); - else if(type==simpleArrayBase::int32) - prototype_= new simpleArray_int32(shape); - else - throw std::invalid_argument("simpleArrayStreamer::init: unsupported dtype"); - - prototype_->setFeatureNames(featurenames); - prototype_->setName(name); - - current_=0; - rowsplits_.push_back(0); - newCurrentArray(); - -} - -void simpleArrayStreamer::clear(){ - clearData(); - if(prototype_) - delete prototype_; - prototype_=0; -} - -void simpleArrayStreamer::clearData(){//keep prototype - for(auto& a:arrays_) - delete a; - arrays_.clear(); - rowsplits_.clear(); - if(current_) - delete current_; - current_=0; - newCurrentArray(); -} - - -void simpleArrayStreamer::fillEvent(){ - rowsplits_.push_back(arrays_.size()); -} - - -simpleArrayBase * simpleArrayStreamer::copyToFullArray()const{ - if(prototype_->dtype() == simpleArrayBase::float32){ - return priv_copyToFullArray(); - } - else if(prototype_->dtype() == simpleArrayBase::int32){ - return priv_copyToFullArray(); - } - else - throw std::runtime_error("simpleArrayStreamer::copyToFullArray: unrecognised type"); - return 0; -} - -size_t simpleArrayStreamer::memSizeKB()const{ - size_t vsize = arrays_.size(); - size_t pts = prototype_->size(); - size_t datasize = vsize*pts + pts; - - datasize *= sizeof(float); //int32 and float32 both 4 bytes - - size_t rssize = rowsplits_.size() * sizeof(int64_t); - - return (datasize + rssize)/1024; -} - -void simpleArrayStreamer::newCurrentArray(){ - if(prototype_->dtype() == simpleArrayBase::float32) - current_ = new simpleArray_float32((*(simpleArray_float32*)prototype_)); - else if(prototype_->dtype() == simpleArrayBase::int32) - current_ = new simpleArray_int32((*(simpleArray_int32*)prototype_)); -} - - -////////// ----- trainDataFileStreamer --- ////////// - trainDataFileStreamer::trainDataFileStreamer( const std::string & filename, size_t bufferInMB):filename_(filename),buffermb_(bufferInMB){ @@ -107,11 +23,11 @@ void trainDataFileStreamer::writeBuffer(bool sync){//sync has no effect yet trainData td; for(auto& a: *writestreamers){ auto acp = a->copyToFullArray(); - if(a->dusage_ == simpleArrayStreamer::feature_data) + if(a->dusage_ == simpleArrayFiller::feature_data) td.storeFeatureArray(*acp); - else if(a->dusage_ == simpleArrayStreamer::truth_data) + else if(a->dusage_ == simpleArrayFiller::truth_data) td.storeTruthArray(*acp); - else if(a->dusage_ == simpleArrayStreamer::feature_data) + else if(a->dusage_ == simpleArrayFiller::feature_data) td.storeWeightArray(*acp); //clean up From cf451af0427cacb9af0348a008a46b44f4167be2 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 16 Mar 2021 10:36:23 +0100 Subject: [PATCH 346/437] new files --- compiled/interface/simpleArrayFiller.h | 99 ++++++++++++++++++++++++++ compiled/src/simpleArrayFiller.cpp | 91 +++++++++++++++++++++++ 2 files changed, 190 insertions(+) create mode 100644 compiled/interface/simpleArrayFiller.h create mode 100644 compiled/src/simpleArrayFiller.cpp diff --git a/compiled/interface/simpleArrayFiller.h b/compiled/interface/simpleArrayFiller.h new file mode 100644 index 0000000..93f945e --- /dev/null +++ b/compiled/interface/simpleArrayFiller.h @@ -0,0 +1,99 @@ +/* + * simpleArrayFiller.h + * + * Created on: 16 Mar 2021 + * Author: jkiesele + */ + +#ifndef DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAYFILLER_H_ +#define DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAYFILLER_H_ + +#include "simpleArray.h" +#include + +namespace djc{ + +class trainDataFileStreamer; +class simpleArrayFiller{ + friend class trainDataFileStreamer; +public: + + enum dataUsage {feature_data, truth_data, weight_data}; + + ~simpleArrayFiller(){ + clear(); + } + + /** + * the shape does not include the 'event' dimension + */ + simpleArrayFiller( + const std::string name, + const std::vector& shape, + simpleArrayBase::dtypes dtype, + dataUsage dusage, + bool isragged, + const std::vector& featurenames=std::vector()); + + //maybe replace that with direct 'set' access. TBI + inline simpleArrayBase & arr(){if(current_) return *current_; else throw std::logic_error("simpleArrayStreamer::arr: no array initialized.");} + inline const simpleArrayBase & arr()const{if(current_) return *current_; else throw std::logic_error("simpleArrayStreamer::arr: no array initialized.");} + + void fill(){ + arrays_.push_back(current_); + newCurrentArray(); + } + + + simpleArrayBase * copyToFullArray()const; + + //TBI + // tensor moveToTFTensor(); + +private: + + void fillEvent(); + void clear(); + void clearData(); + + simpleArrayFiller(){} + + template + simpleArrayBase * priv_copyToFullArray()const{ + std::vector newshape; + if(isragged_) + newshape = {(int)rowsplits_.size(),-1}; //second dimension is the variable one + else + newshape = {(int)arrays_.size()}; + //add the actual 'per event' shape + newshape.insert(newshape.end(), prototype_->shape().begin(),prototype_->shape().end()); + T * outp = new T(newshape,rowsplits_); + size_t counter=0; + for(const auto& a:arrays_){ + for(size_t i=0;isize();i++){ + outp->data()[counter] = dynamic_cast(a)->data()[i]; + counter++; + } + } + return outp; + } + + //this is not exact but good enough for approx buffering + size_t memSizeKB()const; + + void newCurrentArray(); + + //needs to be pointers because of types + std::vector arrays_; + std::vector rowsplits_; + simpleArrayBase* current_; + simpleArrayBase* prototype_; + dataUsage dusage_; + bool isragged_; +}; + +}//djc + + + +#endif /* DEEPJETCORE_COMPILED_INTERFACE_SIMPLEARRAYFILLER_H_ */ diff --git a/compiled/src/simpleArrayFiller.cpp b/compiled/src/simpleArrayFiller.cpp new file mode 100644 index 0000000..9ffa7be --- /dev/null +++ b/compiled/src/simpleArrayFiller.cpp @@ -0,0 +1,91 @@ + +#include "../interface/simpleArrayFiller.h" + +namespace djc{ + + +simpleArrayFiller::simpleArrayFiller( + const std::string name, + const std::vector& shape, + simpleArrayBase::dtypes type, + dataUsage dusage, + bool isragged, + const std::vector& featurenames){ + + dusage_=dusage; + isragged_=isragged; + + if(type==simpleArrayBase::float32) + prototype_= new simpleArray_float32(shape); + else if(type==simpleArrayBase::int32) + prototype_= new simpleArray_int32(shape); + else + throw std::invalid_argument("simpleArrayStreamer::init: unsupported dtype"); + + prototype_->setFeatureNames(featurenames); + prototype_->setName(name); + + current_=0; + rowsplits_.push_back(0); + newCurrentArray(); + +} + +void simpleArrayFiller::clear(){ + clearData(); + if(prototype_) + delete prototype_; + prototype_=0; +} + +void simpleArrayFiller::clearData(){//keep prototype + for(auto& a:arrays_) + delete a; + arrays_.clear(); + rowsplits_.clear(); + if(current_) + delete current_; + current_=0; + newCurrentArray(); +} + + +void simpleArrayFiller::fillEvent(){ + rowsplits_.push_back(arrays_.size()); +} + + +simpleArrayBase * simpleArrayFiller::copyToFullArray()const{ + if(prototype_->dtype() == simpleArrayBase::float32){ + return priv_copyToFullArray(); + } + else if(prototype_->dtype() == simpleArrayBase::int32){ + return priv_copyToFullArray(); + } + else + throw std::runtime_error("simpleArrayStreamer::copyToFullArray: unrecognised type"); + return 0; +} + +size_t simpleArrayFiller::memSizeKB()const{ + size_t vsize = arrays_.size(); + size_t pts = prototype_->size(); + size_t datasize = vsize*pts + pts; + + datasize *= sizeof(float); //int32 and float32 both 4 bytes + + size_t rssize = rowsplits_.size() * sizeof(int64_t); + + return (datasize + rssize)/1024; +} + +void simpleArrayFiller::newCurrentArray(){ + if(prototype_->dtype() == simpleArrayBase::float32) + current_ = new simpleArray_float32((*(simpleArray_float32*)prototype_)); + else if(prototype_->dtype() == simpleArrayBase::int32) + current_ = new simpleArray_int32((*(simpleArray_int32*)prototype_)); +} + +}//djc + + From 6985d41cc2ed67d6cadee3f6e3cdc8d80daaf917 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 16 Mar 2021 13:18:11 +0100 Subject: [PATCH 347/437] likely working first version of the trainDataFileStreamer --- compiled/interface/helper.h | 24 ++++ compiled/interface/simpleArray.h | 8 +- compiled/interface/simpleArrayFiller.h | 10 +- compiled/interface/trainDataFileStreamer.h | 23 ++-- compiled/src/c_testFunctions.C | 14 ++ compiled/src/simpleArray.cpp | 5 +- compiled/src/simpleArrayFiller.cpp | 5 +- compiled/src/trainDataFileStreamer.cpp | 143 ++++++++++++++++++++- testing/unit/TestCFunctions.py | 9 ++ testing/unit/test.py | 1 + 10 files changed, 226 insertions(+), 16 deletions(-) create mode 100644 compiled/src/c_testFunctions.C create mode 100644 testing/unit/TestCFunctions.py diff --git a/compiled/interface/helper.h b/compiled/interface/helper.h index 1b6ec4e..f393808 100644 --- a/compiled/interface/helper.h +++ b/compiled/interface/helper.h @@ -82,7 +82,31 @@ boost::python::numpy::ndarray STLToNumpy(const T * data, const std::vector& +#include +#include + +template +std::vector GenerateRandomVector(int NumberCount,T minimum=0, T maximum=1) { + std::random_device rd; + std::mt19937 gen(rd()); // these can be global and/or static, depending on how you use random elsewhere + + std::vector values(NumberCount); + std::uniform_real_distribution dis(minimum, maximum); + std::generate(values.begin(), values.end(), [&](){ return dis(gen); }); + return values; +} +#include +template +std::ostream& operator<<(std::ostream& output, std::vector const& values) +{ + for (auto const& value : values) + { + output << value << ' '; + } + output << std::endl; + return output; +} diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index ff1076c..5c9f397 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -777,7 +777,12 @@ template void simpleArray::append(const simpleArray& a) { if (!data_ && size_ == 0) { + //just save feature names and name + auto namesv = name_; + auto fnamesv = featnames_; *this = a; + name_=namesv; + featnames_ = fnamesv; return; } if (shape_.size() != a.shape_.size()) @@ -947,7 +952,6 @@ void simpleArray::readFromFile(const std::string& f){ template void simpleArray::cout()const{ std::cout << "name: " << name_ << std::endl; - std::cout << "data size "<< size() <::cout()const{ std::cout << s << ", "; } } + std::cout << "data size "<< size() < newshape; if(isragged_) - newshape = {(int)rowsplits_.size(),-1}; //second dimension is the variable one + newshape = {(int)rowsplits_.size()-1,-1}; //second dimension is the variable one else newshape = {(int)arrays_.size()}; //add the actual 'per event' shape newshape.insert(newshape.end(), prototype_->shape().begin(),prototype_->shape().end()); - T * outp = new T(newshape,rowsplits_); + T * outp = 0; + if(isragged_) + outp = new T(newshape,rowsplits_); + else + outp = new T(newshape); + outp->setName(prototype_->name()); + outp->setFeatureNames(prototype_->featureNames()); size_t counter=0; for(const auto& a:arrays_){ for(size_t i=0;isize();i++){ diff --git a/compiled/interface/trainDataFileStreamer.h b/compiled/interface/trainDataFileStreamer.h index 1fc372e..6b235b7 100644 --- a/compiled/interface/trainDataFileStreamer.h +++ b/compiled/interface/trainDataFileStreamer.h @@ -11,7 +11,7 @@ #include "simpleArray.h" #include "simpleArrayFiller.h" #include - +#include /* * general idea: just manage access to simpleArrays. * Once buffer full, create trainData and write out @@ -46,7 +46,7 @@ namespace djc{ * auto features = fs.add("myfeatures", // just a name, can also be left blank * {3}, // the shape, here just 3 features * simpleArrayBase::float32, // the data type - * simpleArrayStreamer::feature_data, // what it's used for + * simpleArrayFiller::feature_data, // what it's used for * true, // data is ragged (variable 1st dimension) * {"jetpt","jeteta","jetphi"}); // optional feature names * @@ -54,12 +54,12 @@ namespace djc{ * auto zeropadded = fs.add("myzeropadded_lepton_features",// just a name, can also be left blank * {5,3}, // 3 features each for the first 5 leptons * simpleArrayBase::float32, // the data type - * simpleArrayStreamer::feature_data, // what it's used for + * simpleArrayFiller::feature_data, // what it's used for * false, // data is not ragged * {"pt","eta","phi"}); // optional feature names * * //add a non ragged per-event variable - * auto truth = fs.add("isSignal",{1},simpleArrayBase::int32,simpleArrayStreamer::truth_data, false); + * auto truth = fs.add("isSignal",{1},simpleArrayBase::int32,simpleArrayFiller::truth_data, false); * * for(event: events){ * @@ -95,7 +95,7 @@ class trainDataFileStreamer { trainDataFileStreamer( const std::string & filename, - size_t bufferInMB=20); + float bufferInMB=20); ~trainDataFileStreamer(){ writeBuffer(true);//write remaining items @@ -105,8 +105,7 @@ class trainDataFileStreamer { delete a; } - template - simpleArrayFiller* add(const std::string name, + simpleArrayFiller* add(const std::string& name, const std::vector& shape, simpleArrayBase::dtypes type, simpleArrayFiller::dataUsage dusage, @@ -118,6 +117,7 @@ class trainDataFileStreamer { } + inline void fillEvent(){ //makes sure it's in sync for(auto& a:*activestreamers_) @@ -138,11 +138,18 @@ class trainDataFileStreamer { std::vector * activestreamers_; std::vector * writingstreamers_; std::string filename_; - size_t buffermb_; + float buffermb_; }; +namespace test{ + +void testTrainDataFileStreamer(); + +} + + /* * * diff --git a/compiled/src/c_testFunctions.C b/compiled/src/c_testFunctions.C new file mode 100644 index 0000000..a9c4c2b --- /dev/null +++ b/compiled/src/c_testFunctions.C @@ -0,0 +1,14 @@ + +#include +#include + +//tests +#include "trainDataFileStreamer.h" + + +using namespace boost::python; + +BOOST_PYTHON_MODULE(c_testFunctions) { + def("testTrainDataFileStreamer", &djc::test::testTrainDataFileStreamer); + +} diff --git a/compiled/src/simpleArray.cpp b/compiled/src/simpleArray.cpp index 2471a7b..de72540 100644 --- a/compiled/src/simpleArray.cpp +++ b/compiled/src/simpleArray.cpp @@ -58,7 +58,7 @@ simpleArrayBase::simpleArrayBase(std::vector shape,const std::vector simpleArrayBase::shapeFromRowsplits()const{ void simpleArrayBase::checkShape(size_t ndims)const{ //rowsplit ready due to definiton of shape if(ndims != shape_.size()){ - throw std::out_of_range("simpleArrayBase::checkShape: shape does not match dimensions accessed"); + throw std::out_of_range("simpleArrayBase::checkShape: shape does not match dimensions accessed ("+ + std::to_string(ndims)+"/"+std::to_string(shape_.size())+") "+name_); } } diff --git a/compiled/src/simpleArrayFiller.cpp b/compiled/src/simpleArrayFiller.cpp index 9ffa7be..9a99efd 100644 --- a/compiled/src/simpleArrayFiller.cpp +++ b/compiled/src/simpleArrayFiller.cpp @@ -26,7 +26,8 @@ simpleArrayFiller::simpleArrayFiller( prototype_->setName(name); current_=0; - rowsplits_.push_back(0); + if(isragged_) + rowsplits_.push_back(0); newCurrentArray(); } @@ -43,6 +44,8 @@ void simpleArrayFiller::clearData(){//keep prototype delete a; arrays_.clear(); rowsplits_.clear(); + if(isragged_) + rowsplits_.push_back(0); if(current_) delete current_; current_=0; diff --git a/compiled/src/trainDataFileStreamer.cpp b/compiled/src/trainDataFileStreamer.cpp index db6c4eb..6c5ed17 100644 --- a/compiled/src/trainDataFileStreamer.cpp +++ b/compiled/src/trainDataFileStreamer.cpp @@ -6,7 +6,7 @@ namespace djc{ trainDataFileStreamer::trainDataFileStreamer( const std::string & filename, - size_t bufferInMB):filename_(filename),buffermb_(bufferInMB){ + float bufferInMB):filename_(filename),buffermb_(bufferInMB){ //create the file FILE *ofile = fopen(filename.data(), "wb"); fclose(ofile); @@ -42,11 +42,150 @@ bool trainDataFileStreamer::bufferFull(){ size_t totalsizekb=0; for(auto& a: *activestreamers_) totalsizekb += a->memSizeKB(); - if(totalsizekb/1024 >= buffermb_) + if(((float)totalsizekb)/1024. >= buffermb_) return true; return false; } +namespace test{ +#include "helper.h" + +std::vector createRandomVector(size_t i){ + return GenerateRandomVector(i); +} + +std::vector > createRandomVector(size_t i,size_t j){ + std::vector > out(i); + for(size_t ii=0;ii(j); + } + return out; +} + + +void testTrainDataFileStreamer(){ + + std::string testfilename = "outfile.djctd"; + + simpleArray_float32 myfeatures_all; + myfeatures_all.setFeatureNames({"jetpt","jeteta","jetphi"}); + myfeatures_all.setName("myfeatures"); + + simpleArray_float32 myzeropadded_lepton_features_all; + myzeropadded_lepton_features_all.setFeatureNames({"pt","eta","phi"}); + myzeropadded_lepton_features_all.setName("myzeropadded_lepton_features"); + simpleArray_int32 isSignal_all; + isSignal_all.setName("isSignal"); + + { //file streamer scope + trainDataFileStreamer fs(testfilename,0.07);//small buffer for testing + + simpleArrayFiller* features = fs.add("myfeatures", // just a name, can also be left blank + {3}, // the shape, here just 3 features + simpleArrayBase::float32, // the data type + simpleArrayFiller::feature_data, // what it's used for + true, // data is ragged (variable 1st dimension) + {"jetpt","jeteta","jetphi"}); // optional feature names + + + simpleArrayFiller* zeropadded = fs.add("myzeropadded_lepton_features",// just a name, can also be left blank + {5,3}, // 3 features each for the first 5 leptons + simpleArrayBase::float32, // the data type + simpleArrayFiller::feature_data, // what it's used for + false, // data is not ragged + {"pt","eta","phi"}); // optional feature names + + //add a non ragged per-event variable + simpleArrayFiller* truth = fs.add("isSignal",{1},simpleArrayBase::int32,simpleArrayFiller::truth_data, false); + + + + for(int i=0;i<3000;i++){ + int nfirst = i+1; + while(nfirst>30){ + nfirst-=30; + } + auto jetprop = createRandomVector(nfirst,3); + + std::vector jetrs={0,nfirst}; + + simpleArray_float32 jetarr({1,-1,3},jetrs); + jetarr.setName("jetarr"); + + for(size_t i=0;iarr().set(0, jetprop[i][0]); + features->arr().set(1, jetprop[i][1]); + features->arr().set(2, jetprop[i][2]); + features->fill(); + + jetarr.set(0,i,0, jetprop[i][0]); + jetarr.set(0,i,1, jetprop[i][1]); + jetarr.set(0,i,2, jetprop[i][2]); + } + + myfeatures_all.append(jetarr); + + auto lepprop = createRandomVector(5,3); + zeropadded->arr().fillZeros(); //make sure everything is initialized with zeros + + simpleArray_float32 leparr({1,5,3}); + leparr.setName("leparr"); + leparr.fillZeros(); + + for(size_t i=0;iarr().set(i,0,lepprop.at(i)[0]); + zeropadded->arr().set(i,1,lepprop.at(i)[1]); + zeropadded->arr().set(i,2,lepprop.at(i)[2]); + + leparr.set(0,i,0,lepprop.at(i)[0]); + leparr.set(0,i,1,lepprop.at(i)[1]); + leparr.set(0,i,2,lepprop.at(i)[2]); + if(i>3) + break; + } + zeropadded->fill(); + + myzeropadded_lepton_features_all.append(leparr); + + int issignal = i%2; + truth->arr().set(0, issignal); + truth->fill(); + + simpleArray_int32 issig({1,1}); + issig.setName("issig"); + issig.set(0,0,issignal); + isSignal_all.append(issig); + + fs.fillEvent(); + + + } + }//file streamer scope, auto save + + //read back and check if same + trainData td; + td.readFromFile(testfilename); + td.nFeatureArrays(); + auto tdfeat0 = dynamic_cast(td.featureArray(0)); + auto tdfeat1 = dynamic_cast(td.featureArray(1)); + auto tdtruth = dynamic_cast(td.truthArray(0)); + + if(tdfeat0 != myfeatures_all){ + // tdfeat0.cout();myfeatures_all.cout(); + throw std::logic_error("testTrainDataFileStreamer: simpleArray_float32 ragged inconsistent"); + } + if(tdfeat1 != myzeropadded_lepton_features_all){ + // tdfeat1.cout(); + throw std::logic_error("testTrainDataFileStreamer: simpleArray_float32 not ragged inconsistent"); + } + if(tdtruth != isSignal_all){ + // tdtruth.cout(); + throw std::logic_error("testTrainDataFileStreamer: simpleArray_float32 ragged inconsistent"); + } + +} + +}//test }//djc diff --git a/testing/unit/TestCFunctions.py b/testing/unit/TestCFunctions.py new file mode 100644 index 0000000..ef24cc8 --- /dev/null +++ b/testing/unit/TestCFunctions.py @@ -0,0 +1,9 @@ +from DeepJetCore.compiled.c_testFunctions import * + +import unittest + + +class TestCFunctions(unittest.TestCase): + def test_trainDataFiller(self): + testTrainDataFileStreamer() + \ No newline at end of file diff --git a/testing/unit/test.py b/testing/unit/test.py index 656b327..ac3f29d 100644 --- a/testing/unit/test.py +++ b/testing/unit/test.py @@ -2,6 +2,7 @@ from TestTrainData import TestTrainData from TestCompatibility import TestCompatibility from TestTrainDataGenerator import TestTrainDataGenerator +from TestCFunctions import TestCFunctions import unittest unittest.main() \ No newline at end of file From 08c510ae5fe81fcc9568bc931071af337d47a15f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 16 Mar 2021 13:27:16 +0100 Subject: [PATCH 348/437] some on the documentation --- compiled/interface/trainDataFileStreamer.h | 26 ++++---- compiled/src/trainDataFileStreamer.cpp | 69 ++++++++++++---------- 2 files changed, 51 insertions(+), 44 deletions(-) diff --git a/compiled/interface/trainDataFileStreamer.h b/compiled/interface/trainDataFileStreamer.h index 6b235b7..f538e6e 100644 --- a/compiled/interface/trainDataFileStreamer.h +++ b/compiled/interface/trainDataFileStreamer.h @@ -40,7 +40,9 @@ namespace djc{ * - finish the event synchronously for all arrays calling fillEvent * * - * Example: + * Example pseudo code: + * + * * * trainDataFileStreamer fs("outfile.djctd"); * auto features = fs.add("myfeatures", // just a name, can also be left blank @@ -64,25 +66,25 @@ namespace djc{ * for(event: events){ * * for(jet: jets){ - * features.arr().set(0, jet->pt()); - * features.arr().set(1, jet->eta()); - * features.arr().set(2, jet->phi()); - * features.fill() + * features->arr().set(0, jet->pt()); + * features->arr().set(1, jet->eta()); + * features->arr().set(2, jet->phi()); + * features->fill() * } * * - * zeropadded.arr().fillZero(); //make sure everything is initialized with zeros + * zeropadded->arr().fillZero(); //make sure everything is initialized with zeros * for(size_t i=0;iarr().set(i,0,leptons.at(i).pt()); + * zeropadded->arr().set(i,1,leptons.at(i).eta()); + * zeropadded->arr().set(i,2,leptons.at(i).phi()); * if(i>3) * break; * } - * zeropadded.fill(); + * zeropadded->fill(); * - * truth.arr().set(0, isSUSYevent); - * truth.fill() + * truth->arr().set(0, isSUSYevent); + * truth->fill() * * fs.fillEvent(); * } diff --git a/compiled/src/trainDataFileStreamer.cpp b/compiled/src/trainDataFileStreamer.cpp index 6c5ed17..c3e6470 100644 --- a/compiled/src/trainDataFileStreamer.cpp +++ b/compiled/src/trainDataFileStreamer.cpp @@ -66,17 +66,17 @@ std::vector > createRandomVector(size_t i,size_t j){ void testTrainDataFileStreamer(){ - std::string testfilename = "outfile.djctd"; + std::string testfilename = "test_testTrainDataFileStreamer_outfile.djctd"; - simpleArray_float32 myfeatures_all; - myfeatures_all.setFeatureNames({"jetpt","jeteta","jetphi"}); - myfeatures_all.setName("myfeatures"); + simpleArray_float32 reference_myfeatures_all; + reference_myfeatures_all.setFeatureNames({"jetpt","jeteta","jetphi"}); + reference_myfeatures_all.setName("myfeatures"); - simpleArray_float32 myzeropadded_lepton_features_all; - myzeropadded_lepton_features_all.setFeatureNames({"pt","eta","phi"}); - myzeropadded_lepton_features_all.setName("myzeropadded_lepton_features"); - simpleArray_int32 isSignal_all; - isSignal_all.setName("isSignal"); + simpleArray_float32 reference_myzeropadded_lepton_features_all; + reference_myzeropadded_lepton_features_all.setFeatureNames({"pt","eta","phi"}); + reference_myzeropadded_lepton_features_all.setName("myzeropadded_lepton_features"); + simpleArray_int32 reference_isSignal_all; + reference_isSignal_all.setName("isSignal"); { //file streamer scope trainDataFileStreamer fs(testfilename,0.07);//small buffer for testing @@ -110,8 +110,8 @@ void testTrainDataFileStreamer(){ std::vector jetrs={0,nfirst}; - simpleArray_float32 jetarr({1,-1,3},jetrs); - jetarr.setName("jetarr"); + simpleArray_float32 reference_jetarr({1,-1,3},jetrs); + reference_jetarr.setName("jetarr"); for(size_t i=0;iarr().set(0, jetprop[i][0]); @@ -119,43 +119,44 @@ void testTrainDataFileStreamer(){ features->arr().set(2, jetprop[i][2]); features->fill(); - jetarr.set(0,i,0, jetprop[i][0]); - jetarr.set(0,i,1, jetprop[i][1]); - jetarr.set(0,i,2, jetprop[i][2]); + reference_jetarr.set(0,i,0, jetprop[i][0]); + reference_jetarr.set(0,i,1, jetprop[i][1]); + reference_jetarr.set(0,i,2, jetprop[i][2]); } - myfeatures_all.append(jetarr); + //this should not be done excessively in a real setting, needs mem copy every call! + reference_myfeatures_all.append(reference_jetarr); auto lepprop = createRandomVector(5,3); zeropadded->arr().fillZeros(); //make sure everything is initialized with zeros - simpleArray_float32 leparr({1,5,3}); - leparr.setName("leparr"); - leparr.fillZeros(); + simpleArray_float32 reference_leparr({1,5,3}); + reference_leparr.setName("leparr"); + reference_leparr.fillZeros(); for(size_t i=0;iarr().set(i,0,lepprop.at(i)[0]); zeropadded->arr().set(i,1,lepprop.at(i)[1]); zeropadded->arr().set(i,2,lepprop.at(i)[2]); - leparr.set(0,i,0,lepprop.at(i)[0]); - leparr.set(0,i,1,lepprop.at(i)[1]); - leparr.set(0,i,2,lepprop.at(i)[2]); + reference_leparr.set(0,i,0,lepprop.at(i)[0]); + reference_leparr.set(0,i,1,lepprop.at(i)[1]); + reference_leparr.set(0,i,2,lepprop.at(i)[2]); if(i>3) break; } zeropadded->fill(); - myzeropadded_lepton_features_all.append(leparr); + reference_myzeropadded_lepton_features_all.append(reference_leparr); int issignal = i%2; truth->arr().set(0, issignal); truth->fill(); - simpleArray_int32 issig({1,1}); - issig.setName("issig"); - issig.set(0,0,issignal); - isSignal_all.append(issig); + simpleArray_int32 reference_issig({1,1}); + reference_issig.setName("issig"); + reference_issig.set(0,0,issignal); + reference_isSignal_all.append(reference_issig); fs.fillEvent(); @@ -167,23 +168,27 @@ void testTrainDataFileStreamer(){ trainData td; td.readFromFile(testfilename); td.nFeatureArrays(); - auto tdfeat0 = dynamic_cast(td.featureArray(0)); - auto tdfeat1 = dynamic_cast(td.featureArray(1)); - auto tdtruth = dynamic_cast(td.truthArray(0)); - if(tdfeat0 != myfeatures_all){ + //a bit quick and dirty casts. We know the type (otherwise would need type check first) + auto reopened_myfeatures = dynamic_cast(td.featureArray(0)); + auto reopened_lepton_features = dynamic_cast(td.featureArray(1)); + auto reopened_issignal = dynamic_cast(td.truthArray(0)); + + if(reopened_myfeatures != reference_myfeatures_all){ // tdfeat0.cout();myfeatures_all.cout(); throw std::logic_error("testTrainDataFileStreamer: simpleArray_float32 ragged inconsistent"); } - if(tdfeat1 != myzeropadded_lepton_features_all){ + if(reopened_lepton_features != reference_myzeropadded_lepton_features_all){ // tdfeat1.cout(); throw std::logic_error("testTrainDataFileStreamer: simpleArray_float32 not ragged inconsistent"); } - if(tdtruth != isSignal_all){ + if(reopened_issignal != reference_isSignal_all){ // tdtruth.cout(); throw std::logic_error("testTrainDataFileStreamer: simpleArray_float32 ragged inconsistent"); } + system(("rm -f "+testfilename).data()); + } }//test From bd7f6d4a281d293e942f2305851c2b0abc66e98c Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 19 Mar 2021 08:12:56 +0100 Subject: [PATCH 349/437] tf 2.4.1 compatible --- training/training_base.py | 1 - 1 file changed, 1 deletion(-) diff --git a/training/training_base.py b/training/training_base.py index a6a1f35..0bf0db5 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -17,7 +17,6 @@ from pdb import set_trace import tensorflow as tf import tensorflow.keras as keras -from keras.utils import multi_gpu_model import copy from .gpuTools import DJCSetGPUs From 573361b03dd78b4937c12629d70c21712c82d606 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 20 Mar 2021 09:26:55 +0100 Subject: [PATCH 350/437] some fixes. important to make ragged work in 3.2. consider patch release --- compiled/interface/simpleArray.h | 5 ++- compiled/src/trainDataFileStreamer.cpp | 4 +- testing/unit/TestTrainDataGenerator.py | 51 +++++++++++++------------- training/training_base.py | 4 +- 4 files changed, 33 insertions(+), 31 deletions(-) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 5c9f397..9d77937 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -908,7 +908,10 @@ void simpleArray::readFromFileP(FILE *& ifile, bool skip_data) { quicklz qlz; if(skip_data){ - rowsplits_.clear(); + if(rowsplits_.size()) + rowsplits_={(int64_t)0}; + else + rowsplits_.clear(); data_=0; size_=0; shape_.at(0)=0; diff --git a/compiled/src/trainDataFileStreamer.cpp b/compiled/src/trainDataFileStreamer.cpp index c3e6470..f13ee02 100644 --- a/compiled/src/trainDataFileStreamer.cpp +++ b/compiled/src/trainDataFileStreamer.cpp @@ -186,8 +186,8 @@ void testTrainDataFileStreamer(){ // tdtruth.cout(); throw std::logic_error("testTrainDataFileStreamer: simpleArray_float32 ragged inconsistent"); } - - system(("rm -f "+testfilename).data()); + //avoid warning + int res = system(("rm -f "+testfilename).data()); } diff --git a/testing/unit/TestTrainDataGenerator.py b/testing/unit/TestTrainDataGenerator.py index 2c6d7f3..c4c801e 100644 --- a/testing/unit/TestTrainDataGenerator.py +++ b/testing/unit/TestTrainDataGenerator.py @@ -4,23 +4,17 @@ import unittest class RaggedTester(object): - def __init__(self, auto_create=0): - self.max_per_rs=534 - self.fill_freq=11 - self.fill_content=11 - self.data=np.zeros((0,1),dtype='float32') - self.rs=np.array([],dtype='int64') - if auto_create > 0: - self.data,self.rs = self.createData(auto_create) + def __init__(self, max_per_rs=543): + self.max_per_rs=max_per_rs - def createEvent(self,length: int): - a = np.arange(length,dtype='float32') + def createEvent(self,length: int,dtype='float32'): + a = np.arange(length,dtype=dtype) a = np.expand_dims(a,axis=1) return a - def checkEvent(self,a): - checkarr = self.createEvent(len(a)) - return np.all(checkarr==a) + def checkEvent(self,a,dtype='float32'): + checkarr = self.createEvent(len(a),dtype) + return np.all(checkarr==a) and checkarr.dtype == a.dtype @@ -34,10 +28,10 @@ def createData(self,ntotal): return np.concatenate(data), np.array(row_splits,dtype='int64') - def checkData(self,data,rs): + def checkData(self,data,rs,dtype='float32'): for i in range(len(rs)-1): ea=data[rs[i]:rs[i+1]] - if not self.checkEvent(ea): + if not self.checkEvent(ea,dtype): return False return True @@ -85,13 +79,15 @@ def convertFromSourceFile(self, filename, weighterobjects, istraining): seed = int(hashlib.sha1(filename.encode('utf-8')).hexdigest(), 16) % (10 ** 8) np.random.seed(seed) - nsamples = np.random.randint(12,5415,size=1) + nsamples = np.random.randint(12,101,size=1) data,rs = raggedtester.createData(nsamples) - farr = SimpleArray() - farr.createFromNumpy(data, rs) + farr = SimpleArray(data, rs) + true_arr = SimpleArray(data, rs) + farrint = SimpleArray(np.array(data,dtype='int32'), rs) + #farr.createFromNumpy() - return [farr],[],[] + return [farr,farrint],[true_arr],[] @@ -120,13 +116,16 @@ def test_fullGenerator(self): for epoch in range(10): gen.prepareNextEpoch() for b in range(gen.getNBatches()): - d,_ = next(gen.feedNumpyData()) - data,rs = d[0],d[1] - rs = np.array(rs[:,0],dtype='int') - rs = rs[:rs[-1]] - #print(data) - #print(rs[-1]) - if not raggedtester.checkData(data, rs): + d,t = next(gen.feedNumpyData()) + data,rs, dint, _ = d[0],d[1],d[2],d[3] + truth = t[0] + rs = rs[:,0]#remove last 1 dim + + datagood = raggedtester.checkData(data, rs) + datagood = datagood and raggedtester.checkData(dint, rs, 'int32') + datagood = datagood and raggedtester.checkData(truth, rs) + + if not datagood: print('epoch',epoch, 'batch',b,'broken') passed=False break diff --git a/training/training_base.py b/training/training_base.py index 0bf0db5..2b62544 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -209,8 +209,8 @@ def __init__( inputdtypes = self.train_data.getKerasFeatureDTypes() inputnames= self.train_data.getKerasFeatureArrayNames() for i in range(len(inputnames)): - if inputnames[i]=="": - inputnames[i]="input_"+str(i) + if inputnames[i]=="" or inputnames[i]=="_rowsplits": + inputnames[i]="input_"+str(i)+inputnames[i] print("shapes", shapes) From 69731519a17fa46f35ea0c81f589402b8f291cb9 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 20 Mar 2021 11:44:03 +0100 Subject: [PATCH 351/437] fixes on traindata skim --- SimpleArray.py | 8 ++++++- compiled/interface/simpleArray.h | 6 +++++ compiled/src/IO.cpp | 2 +- compiled/src/c_simpleArray.C | 6 +++-- compiled/src/c_trainData.C | 1 + compiled/src/simpleArray.cpp | 7 ++++++ compiled/src/trainData.cpp | 18 ++++++-------- testing/unit/TestTrainData.py | 40 +++++++++++++++++++++++++++++++- 8 files changed, 72 insertions(+), 16 deletions(-) diff --git a/SimpleArray.py b/SimpleArray.py index 19d0c51..a4ba39d 100644 --- a/SimpleArray.py +++ b/SimpleArray.py @@ -44,6 +44,9 @@ def name(self): def featureNames(self): return self.sa.featureNames() + + def shape(self): + return self.sa.shape() def readFromFile(self,filename): dt = self.sa.readDtypeFromFile(filename) @@ -83,7 +86,10 @@ def split(self,*args): return spl def getSlice(self,*args): - return self.sa.getSlice(*args) + spl = SimpleArray() + spl._setDtype(self.dtype) + spl.sa = self.sa.getSlice(*args) + return spl def append(self,other): assert self.sa.dtypeI() == other.sa.dtypeI() diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 9d77937..06be7ff 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -82,6 +82,8 @@ class simpleArrayBase { return shape_; } + boost::python::list shapePy()const; + const size_t& size() const { return size_; } @@ -165,6 +167,10 @@ class simpleArrayBase { int isize() const { return (int)size_; } + + + + //does not transfer data ownership! only for quick writing etc. virtual void assignFromNumpy(const boost::python::numpy::ndarray& ndarr, const boost::python::numpy::ndarray& rowsplits=boost::python::numpy::empty( diff --git a/compiled/src/IO.cpp b/compiled/src/IO.cpp index d1601d9..962acb4 100644 --- a/compiled/src/IO.cpp +++ b/compiled/src/IO.cpp @@ -33,7 +33,7 @@ void readFromFile(std::string * p, FILE* ifile, size_t N, size_t Nb Nbytes = N* sizeof(char); size_t ret = fread(c, 1, Nbytes, ifile); *p = std::string(c,N); - delete c; + delete[] c; if(ret != Nbytes){ std::string fname = followFileName(ifile); diff --git a/compiled/src/c_simpleArray.C b/compiled/src/c_simpleArray.C index 3a0b82e..e09853d 100644 --- a/compiled/src/c_simpleArray.C +++ b/compiled/src/c_simpleArray.C @@ -58,7 +58,8 @@ BOOST_PYTHON_MODULE(c_simpleArray) { .def("getSlice", &simpleArray_float32::getSlice) .def("append", &simpleArray_float32::append) .def("cout", &simpleArray_float32::cout) - .def("size", &simpleArray_float32::isize); + .def("size", &simpleArray_float32::isize) + .def("shape", &simpleArray_float32::shapePy); ; p::class_("simpleArrayI") .def("readDtypeFromFile", &simpleArray_int32::readDtypeFromFile) @@ -90,7 +91,8 @@ BOOST_PYTHON_MODULE(c_simpleArray) { .def("getSlice", &simpleArray_int32::getSlice) .def("append", &simpleArray_int32::append) //just use the explicit one here .def("cout", &simpleArray_int32::cout) - .def("size", &simpleArray_int32::isize); + .def("size", &simpleArray_int32::isize) + .def("shape", &simpleArray_int32::shapePy); ; } diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index 96d826e..c056f62 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -56,6 +56,7 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("copy", &trainData::copy) .def("clear", &trainData::clear) .def("skim", &trainData::skim) + .def("getSlice", &trainData::getSlice) .def("getKerasFeatureShapes", &trainData::getKerasFeatureShapes) .def("getKerasFeatureDTypes", &trainData::getKerasFeatureDTypes) diff --git a/compiled/src/simpleArray.cpp b/compiled/src/simpleArray.cpp index de72540..73966f1 100644 --- a/compiled/src/simpleArray.cpp +++ b/compiled/src/simpleArray.cpp @@ -85,6 +85,13 @@ simpleArrayBase::dtypes simpleArrayBase::stringToDtype(const std::string& s){ throw std::runtime_error("simpleArrayBase::dtypes simpleArrayBase::stringToDtype unknown dtype"); } +boost::python::list simpleArrayBase::shapePy()const{ + boost::python::list l; + for(const auto& s: shape_) + l.append(s); + return l; +} + std::string simpleArrayBase::readDtypeFromFileP(FILE *& ifile)const{ return dtypeToString(readDtypeTypeFromFileP(ifile)); } diff --git a/compiled/src/trainData.cpp b/compiled/src/trainData.cpp index 7967767..be084e0 100644 --- a/compiled/src/trainData.cpp +++ b/compiled/src/trainData.cpp @@ -231,6 +231,9 @@ trainData trainData::split(size_t splitindex) { auto split = a.first->at_asint32(i).split(splitindex); a.second->push_back(split); } + else{ + throw std::runtime_error("trainData::split: do not understand dtype"); + } } } @@ -280,6 +283,9 @@ trainData trainData::shuffle(const std::vector& shuffle_idxs)const{ auto split = a.first->at_asint32(i).shuffle(shuffle_idxs); a.second->push_back(split); } + else{ + throw std::runtime_error("trainData::shuffle: do not understnad dtype"); + } } } @@ -506,17 +512,7 @@ void trainData::updateShapes(){ void trainData::skim(size_t batchelement){ if(batchelement > nElements()) throw std::out_of_range("trainData::skim: batch element out of range"); - - std::vector< typeContainer* > vv = {&feature_arrays_, &truth_arrays_, &weight_arrays_}; - for(const auto& a: vv) - for (size_t i=0;isize();i++){ - if(a->dtype(i) == simpleArrayBase::float32){ - a->at_asfloat32(i).split(batchelement); - a->at(i)=a->at_asfloat32(i).split(1); - } - } - - updateShapes(); + *this = getSlice(batchelement,batchelement+1); } diff --git a/testing/unit/TestTrainData.py b/testing/unit/TestTrainData.py index 2b78398..10f03ec 100644 --- a/testing/unit/TestTrainData.py +++ b/testing/unit/TestTrainData.py @@ -6,7 +6,7 @@ class TestTrainData(unittest.TestCase): - def createSimpleArray(self, dtype, length=500): + def createSimpleArray(self, dtype, length=500, shape=None): arr = np.array(np.random.rand(length,3,5,6)*100., dtype=dtype) rs = np.array([0,100,230,length],dtype='int64') return SimpleArray(arr, rs) @@ -85,6 +85,44 @@ def test_AddToFile(self): self.assertEqual(td,td2) + def test_slice(self): + print('TestTrainData: skim') + a = self.createSimpleArray('int32',600) + b = self.createSimpleArray('float32',600) + d = self.createSimpleArray('float32',600) + + a_slice = a.getSlice(2,3) + b_slice = b.getSlice(2,3) + d_slice = d.getSlice(2,3) + + td = TrainData() + td._store([a,b], [d], []) + td_slice = td.getSlice(2,3) + + fl = td_slice.transferFeatureListToNumpy(False) + tl = td_slice.transferTruthListToNumpy(False) + a_tdslice = SimpleArray(fl[0],fl[1]) + b_tdslice = SimpleArray(fl[2],fl[3]) + d_tdslice = SimpleArray(tl[0],tl[1]) + + self.assertEqual(a_slice, a_tdslice) + self.assertEqual(b_slice, b_tdslice) + self.assertEqual(d_slice, d_tdslice) + + #test skim + td.skim(2) + fl = td.transferFeatureListToNumpy(False) + tl = td.transferTruthListToNumpy(False) + a_tdslice = SimpleArray(fl[0],fl[1]) + b_tdslice = SimpleArray(fl[2],fl[3]) + d_tdslice = SimpleArray(tl[0],tl[1]) + + self.assertEqual(a_slice, a_tdslice) + self.assertEqual(b_slice, b_tdslice) + self.assertEqual(d_slice, d_tdslice) + + + def test_split(self): print('TestTrainData: split') a = self.createSimpleArray('int32') From 1b39fa4a97a61e44ef947eaf8ac16c32ffdaab74 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 23 Mar 2021 10:11:54 +0100 Subject: [PATCH 352/437] prepare for more check functionality --- DataCollection.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/DataCollection.py b/DataCollection.py index 1b06848..51de003 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -168,6 +168,9 @@ def validate(self, remove=True, skip_first=0): print('reading '+fullpath, str(i), '/', str(len(self.samples))) try: td.readFromFile(fullpath) + if hasattr(td, "isValid"): + if not td.isValid(): + raise Exception("data validation failed for "+fullpath) if td.nElements() < 1: print("warning, no data in file "+fullpath) del td From 1e087193505cb547635dc4af42b16abcaa76b78a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 8 Apr 2021 09:05:41 +0200 Subject: [PATCH 353/437] added check for nan and inf when creating traindata --- SimpleArray.py | 3 +++ TrainData.py | 17 +++++++++++------ compiled/interface/simpleArray.h | 14 ++++++++++++++ compiled/src/c_simpleArray.C | 4 ++++ 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/SimpleArray.py b/SimpleArray.py index a4ba39d..dc63739 100644 --- a/SimpleArray.py +++ b/SimpleArray.py @@ -47,6 +47,9 @@ def featureNames(self): def shape(self): return self.sa.shape() + + def hasNanOrInf(self): + return self.sa.hasNanOrInf() def readFromFile(self,filename): dt = self.sa.readDtypeFromFile(filename) diff --git a/TrainData.py b/TrainData.py index 8e43ecc..65726a9 100644 --- a/TrainData.py +++ b/TrainData.py @@ -56,25 +56,30 @@ def readIn(self,fileprefix,shapesOnly=False): self.readFromFile(fileprefix,shapesOnly) - def _convertToCppType(self,a): + def _convertToCppType(self,a,helptext): + saout=None if str(type(a)) == "": - return a.sa + saout = a.sa elif str(type(a)) == "" or str(type(a)) == "": rs = np.array([]) a = SimpleArray(a,rs) - return a.sa + saout = a.sa else: raise ValueError("TrainData._convertToCppType MUST produce either a list of numpy arrays or a list of DeepJetCore simpleArrays!") + + if saout.hasNanOrInf(): + raise ValueError("TrainData._convertToCppType: the "+helptext+" array "+saout.name()+" has NaN or inf entries") + return saout def _store(self, x, y, w): for xa in x: - self.storeFeatureArray(self._convertToCppType(xa)) + self.storeFeatureArray(self._convertToCppType(xa, "feature")) x = [] #collect garbage for ya in y: - self.storeTruthArray(self._convertToCppType(ya)) + self.storeTruthArray(self._convertToCppType(ya, "truth")) y = [] for wa in w: - self.storeWeightArray(self._convertToCppType(wa)) + self.storeWeightArray(self._convertToCppType(wa, "weight")) w = [] def readFromSourceFile(self,filename, weighterobjects={}, istraining=False, **kwargs): diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 06be7ff..5258345 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -27,6 +27,7 @@ #include #include #include +#include namespace djc{ @@ -82,6 +83,8 @@ class simpleArrayBase { return shape_; } + virtual bool hasNanOrInf()const=0; + boost::python::list shapePy()const; const size_t& size() const { @@ -253,6 +256,8 @@ class simpleArray: public simpleArrayBase { //inherits and implements data opera void clear(); + bool hasNanOrInf()const; + //reshapes if possible, creates new else void setShape(std::vector shape,const std::vector& rowsplits = {}); @@ -556,6 +561,15 @@ void simpleArray::clear() { featnames_.clear(); } +template +bool simpleArray::hasNanOrInf()const{ + for(size_t i=0;i void simpleArray::setShape(std::vector shape,const std::vector& rowsplits) { if(rowsplits.size()){ diff --git a/compiled/src/c_simpleArray.C b/compiled/src/c_simpleArray.C index e09853d..61f1f36 100644 --- a/compiled/src/c_simpleArray.C +++ b/compiled/src/c_simpleArray.C @@ -39,6 +39,8 @@ BOOST_PYTHON_MODULE(c_simpleArray) { .def("setFeatureNames", &simpleArray_float32::setFeatureNamesPy) .def("featureNames", &simpleArray_float32::featureNamesPy) + .def("hasNanOrInf", &simpleArray_float32::hasNanOrInf) + //explicit overloads necessary .def("set", &simpleArray_float32::set) .def("set", &simpleArray_float32::set) @@ -73,6 +75,8 @@ BOOST_PYTHON_MODULE(c_simpleArray) { .def("setFeatureNames", &simpleArray_int32::setFeatureNamesPy) .def("featureNames", &simpleArray_int32::featureNamesPy) + .def("hasNanOrInf", &simpleArray_int32::hasNanOrInf) + .def("set", &simpleArray_int32::set) .def("set", &simpleArray_int32::set) .def("set", &simpleArray_int32::set) From ea5b82957032bb8c6aba32e1df7d886ac43fc65d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 3 May 2021 16:00:03 +0200 Subject: [PATCH 354/437] removed automatic loss timer --- training/DeepJet_callbacks.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 07e8fc5..84d7043 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -305,7 +305,6 @@ def __init__(self, batch_loss = False): - self.nl_begin=newline_callbacks_begin(outputDir,plotLossEachEpoch) self.nl_end=newline_callbacks_end() @@ -351,10 +350,8 @@ def __init__(self, self.callbacks.append(self.additionalplots) self.history=History() - self.timer = Losstimer() - - self.callbacks.extend([ self.nl_end, self.history,self.timer]) + self.callbacks.extend([ self.nl_end, self.history]) From 37ddfc8fc70130551c4c1c6287ca84d8fe818ebc Mon Sep 17 00:00:00 2001 From: Nadya Chernyavskaya Date: Mon, 17 May 2021 15:29:51 +0200 Subject: [PATCH 355/437] Moving to python3 Dictionary : iteritems -> items to go from py2 to py3 --- bin/createDataCollectionFromTD.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/createDataCollectionFromTD.py b/bin/createDataCollectionFromTD.py index 2e550fe..bdbe3a0 100755 --- a/bin/createDataCollectionFromTD.py +++ b/bin/createDataCollectionFromTD.py @@ -34,7 +34,7 @@ traind = class_options[class_name] else: print('available classes:') - for key, val in class_options.iteritems(): + for key, val in class_options.items(): print(key) raise Exception('wrong class selection') @@ -47,4 +47,4 @@ outfile = args.o if not outfile[-6:] == ".djcdc": outfile+=".djcdc" -dc.writeToFile(indir+outfile) \ No newline at end of file +dc.writeToFile(indir+outfile) From c8a99f3ab97b933ad368f28386546f0c2685ec15 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 1 Jun 2021 16:48:41 +0200 Subject: [PATCH 356/437] fixed subpackage description --- bin/createSubpackage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 613297d..4e48b5a 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -429,7 +429,7 @@ def my_model(Inputs,otheroption): print('convertFromSource.py -i '+subpackage_dir+'/example_data/train_files.txt -o -c TrainData_example') print('\nAn example to run the training can be found in '+subpackage_dir+'/Train/training_example.py') -print('It can be run with: \npython '+subpackage_dir+'/Train/training_example.py /dataCollection.djcdc ') +print('It can be run with: \npython3 '+subpackage_dir+'/Train/training_example.py /dataCollection.djcdc ') From e75fcfe3b89647c1ebed155aec5dda110f8ff7d4 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 12 Jun 2021 15:10:18 +0200 Subject: [PATCH 357/437] new containers --- docker/Dockerfile | 6 ++--- docker/Dockerfile_base | 33 ++++++++++++------------ docker/Dockerfile_exp | 58 ------------------------------------------ 3 files changed, 20 insertions(+), 77 deletions(-) delete mode 100644 docker/Dockerfile_exp diff --git a/docker/Dockerfile b/docker/Dockerfile index 802f459..c9c8a98 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,5 +1,6 @@ -FROM cernml4reco/djcbase:latest +FROM cernml4reco/djcbase:cu11.1 + @@ -7,7 +8,7 @@ FROM cernml4reco/djcbase:latest # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.3.0 tensorflow_probability + pip3 --no-cache-dir install tensorflow-gpu==2.4.0 tensorflow_probability @@ -31,7 +32,6 @@ RUN ldconfig && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ -# git checkout 2.2_tf1.15 &&\ source docker_env.sh && \ cd compiled && \ make -j4 diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index f1e6592..f802c03 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -1,5 +1,7 @@ -FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 +FROM nvidia/cuda:11.1.1-cudnn8-devel-ubuntu18.04 + +#11.2 not yet with torch support SHELL ["/bin/bash", "-c"] @@ -19,21 +21,20 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ htop RUN apt-get update --fix-missing -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y krb5-user && \ - sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf -RUN apt-get update --fix-missing +#doesn't work anyway +#RUN export DEBIAN_FRONTEND=noninteractive && \ +# apt-get install -y krb5-user && \ +# sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf +#RUN apt-get update --fix-missing ############ root part RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev -RUN apt-get install -y cmake +RUN apt-get install -y cmake openssl RUN mkdir /temproot && \ cd /temproot && \ - git clone http://github.com/root-project/root.git && \ - cd root && \ - git checkout -b v6-18-04 v6-18-04 + git clone --branch v6-20-00-patches http://github.com/root-project/root.git RUN cd /temproot && \ mkdir build && \ cd build && \ @@ -63,13 +64,13 @@ RUN pip3 install opencv-python easydict tqdm Cython numba RUN pip3 install gpustat setGPU ## torch/jupyter stuff -RUN pip3 install future gensim jupyter prompt-toolkit -RUN pip3 install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.7.0+cu101.html && \ - pip3 install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.7.0+cu101.html && \ - pip3 install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.7.0+cu101.html && \ - pip3 install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.7.0+cu101.html && \ - pip3 install torch-geometric - +RUN pip3 install future gensim jupyter prompt-toolkit +RUN pip3 install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ + pip3 install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ + pip3 install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ + pip3 install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ + pip3 install torch-geometric + EXPOSE 8888 #for singularity panic diff --git a/docker/Dockerfile_exp b/docker/Dockerfile_exp deleted file mode 100644 index 6d09849..0000000 --- a/docker/Dockerfile_exp +++ /dev/null @@ -1,58 +0,0 @@ - -FROM cernml4reco/djcbase:exp_cu11.1 - - - -################################################################################ -# Tensorflow - -RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.3.0 tensorflow_probability - - -RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ - mkdir gpus && \ - cd gpus && \ - ln -s /usr/local/cuda cuda - - - -################################################################################ -# the actual DeepJetCore. Make sure this gets built every time - -ARG BUILD_DATE -LABEL org.label-schema.build-date=$BUILD_DATE - -ENV DEEPJETCORE /usr/share/DJC/DeepJetCore - -RUN ldconfig && \ - cd /usr/share && \ - mkdir DJC && \ - cd DJC && \ - git clone https://github.com/DL4Jets/DeepJetCore && \ - cd DeepJetCore && \ -# git checkout 2.2_tf1.15 &&\ - source docker_env.sh && \ - cd compiled && \ - make -j4 - - -ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" - -#/usr/local/lib is for root -ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" -ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" - - -# helpers for ragged and cuda compilation - - - -# QKeras - -RUN git clone https://github.com/google/qkeras &&\ - cd qkeras &&\ - python3 setup.py build &&\ - python3 setup.py install - - \ No newline at end of file From 676d3757c1397314a752a3a7b5a48d699b4d12b6 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 12 Jun 2021 15:14:01 +0200 Subject: [PATCH 358/437] more options during prediction --- TrainData.py | 3 ++- bin/predict.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/TrainData.py b/TrainData.py index 65726a9..3056e46 100644 --- a/TrainData.py +++ b/TrainData.py @@ -117,6 +117,7 @@ def convertFromSourceFile(self, filename, weighterobjects, istraining): ## defines how to write out the prediction # must not use any of the stored arrays, only the inputs + # optionally it can return the output file name to be added to a list of output files def writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile): - pass + return None diff --git a/bin/predict.py b/bin/predict.py index f4ff84a..2a12c79 100755 --- a/bin/predict.py +++ b/bin/predict.py @@ -116,8 +116,9 @@ if not type(predicted) == list: #circumvent that keras return only an array if there is just one list item predicted = [predicted] - td.writeOutPrediction(predicted, x, y, w, args.outputDir + "/" + outfilename, use_inputdir+"/"+inputfile) - + overwrite_outname = td.writeOutPrediction(predicted, x, y, w, args.outputDir + "/" + outfilename, use_inputdir+"/"+inputfile) + if overwrite_outname is not None: + outfilename = overwrite_outname outputs.append(outfilename) From 0f65c3690535c5fb22f5936284ea5fb8a1b63d95 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Jun 2021 17:03:50 +0200 Subject: [PATCH 359/437] tf fix --- docker/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index c9c8a98..1f21607 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -17,6 +17,8 @@ RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && cd gpus && \ ln -s /usr/local/cuda cuda +RUN ln -s /usr/local/cuda-11.1/lib64/libcusolver.so.11 /usr/local/cuda-11.1/lib64/libcusolver.so.10 + ################################################################################ # the actual DeepJetCore. Make sure this gets built every time From 4f6a4c7df07f8d5fe70a4fde621102b161d49f48 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Jun 2021 17:35:00 +0200 Subject: [PATCH 360/437] some convenient packages --- docker/Dockerfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 1f21607..b6e68a1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -59,4 +59,10 @@ RUN git clone https://github.com/google/qkeras &&\ python3 setup.py install +#some more useful packages +RUN pip3 install bayesian-optimization mgzip + + + + \ No newline at end of file From a94a411e451ee570d85d18acb30fb13dc38a01c3 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 15 Jun 2021 21:51:38 +0200 Subject: [PATCH 361/437] better warning message --- DataCollection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DataCollection.py b/DataCollection.py index 51de003..4bee9c7 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -218,7 +218,7 @@ def readFromFile(self,filename): self.optionsdict = pickle.load(fd) except Exception as e: print(e) - print("WARNING: wrong dataCollection format. Can still be used for training(!), but it is advised to recreate it: this is possible without converting the original data again using the script createDataCollectionFromTD.py (takes a few seconds)") + print("WARNING: wrong dataCollection format. Can still be used for training, but it is advised to recreate it: this is possible without converting the original data again using the script createDataCollectionFromTD.py (takes a few seconds)\nBookkeeping (e.g. for predict) will be broken unless data collection is updated to new format.") finally: fd.close() From 2c095ae07ba6eace2595e3cdbda18a7130c747a0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 25 Jun 2021 15:57:23 +0200 Subject: [PATCH 362/437] new docker file --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index b6e68a1..81f3708 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -60,7 +60,7 @@ RUN git clone https://github.com/google/qkeras &&\ #some more useful packages -RUN pip3 install bayesian-optimization mgzip +RUN pip3 install bayesian-optimization mgzip mysql-connector-python From 0894ab2fe38f0b1ffb4c9439764a633af7bacbb5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 30 Jun 2021 09:28:27 +0200 Subject: [PATCH 363/437] updated readme, removed references to cernbox --- README.md | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a61e2c9..7a1420f 100644 --- a/README.md +++ b/README.md @@ -28,14 +28,32 @@ The package comes with a docker file in the subdirectory docker, which will set For every release, there is a container on dockerhub, the latest release is tagged. The ``latest`` tag refers to the developing master branch. ``cernml4reco/deepjetcore3:latest`` It can be pulled using docker, or pulled from singularity. For details, please see the corresponding docker or singularity documentation. -To build the container, the files can be found in the ``docker`` subdirectory. It is a two-stage process. First the container ``Dockerfile_base`` needs to be built, containing the basic system packages. This will take a while, because root is being compiled within. The output container name must be ``cernml4reco/djcbase:py3``. In the next step, the actual DeepJetCore container should be built on top. **Please make sure to use a release, not the developing master branch!** +To build the container, the files can be found in the ``docker`` subdirectory. It is a two-stage process. First the container ``Dockerfile_base`` needs to be built, containing the basic system packages. This will take a while, because root is being compiled within. The output container name must be ``cernml4reco/djcbase:cu11.1``. In the next step, the actual DeepJetCore container should be built on top. **Please make sure to use a release, not the developing master branch!** -**Users with access to Cernbox** can just run the container through the prepared script at: -``/eos/home-j/jkiesele/singularity/run_deepjetcore3.sh`` -If you are running on lxplus7, you can instead run: -``/eos/home-j/jkiesele/singularity/run_deepjetcore3_lxplus.sh`` -Every user who has subscribed to the e-group ml-deepjetcore will have read access to the containers. +**Users with access to cvmfs** (e.g. on lxplus or other CERN machines) will find a working singularity container here: +``/cvmfs/unpacked.cern.ch/registry.hub.docker.com/cernml4reco/deepjetcore3:latest`` + +A good way to enter the container interactively, mounting for example the standard directories on lxplus or similar machines would be: +``` +#!/bin/bash + +gpuopt="" +files=$(ls -l /dev/nvidia* 2> /dev/null | egrep -c '\n') +if [[ "$files" != "0" ]] +then +gpuopt="--nv" +fi + +#this is a singularity problem only fixed recently +unset LD_LIBRARY_PATH +unset PYTHONPATH +sing=`which singularity` +unset PATH +cd + +$sing run -B /eos -B /afs $gpuopt /cvmfs/unpacked.cern.ch/registry.hub.docker.com/cernml4reco/deepjetcore3:latest +``` The cache dir can get rather large and is normally located at ~/.singularity/cache. To avoid filling up the home afs, the cache can be set to /tmp or the work afs. Once the container is fully closed, the cache can be safely deleted. Singularity reacts to environment variables, e.g. @@ -43,10 +61,10 @@ The cache dir can get rather large and is normally located at ~/.singularity/cac export SINGULARITY_CACHEDIR="/tmp/$(whoami)/singularity" ``` -Sometimes you need to try two or three times - singularity is a bit weird. But once the contaienr is launched, everything works smoothly. +Sometimes you need to try a few times - singularity is a bit weird. But once the container is launched, everything works smoothly. The message about a missing user group can be safely ignored. -**It is important** that your bashrc does not reset the ``LD_LIBRARY`` or ``PYTHONPATH`` environment variables. Also **remove any anaconda paths from your bashrc**, because they will reset ``LD_LIBRARY`` and ``PYTHONPATH``. THe system needs to be in a clean environment state within the container (as it should be). +**It is important** that your bashrc does not change or reset the ``LD_LIBRARY`` or ``PYTHONPATH`` environment variables. Also **remove any anaconda paths from your bashrc**, because they will reset ``LD_LIBRARY`` and ``PYTHONPATH``. THe system needs to be in a clean environment state within the container (as it should be). **Building with conda** In case of lack of access to singularity or docker, it's possible to build the environment using conda. This _should_ work anywhere since conda From ad92f56164967f031e9c6dd0a7f057d67d4389b5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 30 Jun 2021 09:30:59 +0200 Subject: [PATCH 364/437] restructured readme a bit --- README.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 7a1420f..101325f 100644 --- a/README.md +++ b/README.md @@ -24,14 +24,8 @@ Setup The package comes with a docker file in the subdirectory docker, which will set up a container with the needed environment. -**Building / using the container** -For every release, there is a container on dockerhub, the latest release is tagged. The ``latest`` tag refers to the developing master branch. -``cernml4reco/deepjetcore3:latest`` -It can be pulled using docker, or pulled from singularity. For details, please see the corresponding docker or singularity documentation. -To build the container, the files can be found in the ``docker`` subdirectory. It is a two-stage process. First the container ``Dockerfile_base`` needs to be built, containing the basic system packages. This will take a while, because root is being compiled within. The output container name must be ``cernml4reco/djcbase:cu11.1``. In the next step, the actual DeepJetCore container should be built on top. **Please make sure to use a release, not the developing master branch!** - -**Users with access to cvmfs** (e.g. on lxplus or other CERN machines) will find a working singularity container here: +**Users with access to cvmfs** (e.g. on lxplus or other CERN machines) will find a pre-built singularity container here: ``/cvmfs/unpacked.cern.ch/registry.hub.docker.com/cernml4reco/deepjetcore3:latest`` A good way to enter the container interactively, mounting for example the standard directories on lxplus or similar machines would be: @@ -64,7 +58,15 @@ export SINGULARITY_CACHEDIR="/tmp/$(whoami)/singularity" Sometimes you need to try a few times - singularity is a bit weird. But once the container is launched, everything works smoothly. The message about a missing user group can be safely ignored. -**It is important** that your bashrc does not change or reset the ``LD_LIBRARY`` or ``PYTHONPATH`` environment variables. Also **remove any anaconda paths from your bashrc**, because they will reset ``LD_LIBRARY`` and ``PYTHONPATH``. THe system needs to be in a clean environment state within the container (as it should be). +**It is important** that your bashrc does not change or reset the ``LD_LIBRARY`` or ``PYTHONPATH`` environment variables. Also **remove any anaconda paths from your bashrc**, because they will reset ``LD_LIBRARY`` and ``PYTHONPATH``. The system needs to be in a clean environment state within the container (as it should be). + + +**Building / using the container** +For users without access to cvmfs, the container can be built manually or pulled from dockerhub. For every release, there is a container on dockerhub, the latest release is tagged. The ``latest`` tag refers to the developing master branch. +``cernml4reco/deepjetcore3:latest`` +It can be pulled using docker, or pulled from singularity. For details, please see the corresponding docker or singularity documentation. +To build the container, the files can be found in the ``docker`` subdirectory. It is a two-stage process. First the container ``Dockerfile_base`` needs to be built, containing the basic system packages. This will take a while, because root is being compiled within. The output container name must be ``cernml4reco/djcbase:cu11.1``. In the next step, the actual DeepJetCore container should be built on top. **Please make sure to use a release, not the developing master branch!** + **Building with conda** In case of lack of access to singularity or docker, it's possible to build the environment using conda. This _should_ work anywhere since conda From 24295a81959075db3fd601556e6403df088e73cb Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 6 Jul 2021 11:24:25 +0200 Subject: [PATCH 365/437] fixed inconsistent function naming --- README.md | 2 +- bin/createSubpackage.py | 6 +++--- bin/mergeOrSplitFiles.py | 4 ++-- compiled/interface/trainDataGenerator.h | 2 +- compiled/src/c_trainDataGenerator.C | 2 +- compiled/src/trainDataGenerator.cpp | 2 +- testing/unit/TestTrainDataGenerator.py | 2 +- training/training_base.py | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 101325f..67f255a 100644 --- a/README.md +++ b/README.md @@ -174,7 +174,7 @@ gen = train_data.invokeGenerator() # loop over epochs here ... -gen.shuffleFilelist() +gen.shuffleFileList() gen.prepareNextEpoch() # this number can differ from epoch to epoch for ragged data! diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 4e48b5a..4db3194 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -187,7 +187,7 @@ def my_model(Inputs,otheroption): checkperiod=1, # saves a checkpoint model every N epochs verbose=1) -print('Since the training is done, use the predict.py script to predict the model output on your test sample, e.g.: predict.py /KERAS_model.h5 /trainsamples.djcdc /test.txt ') +print('Since the training is done, use the predict.py script to predict the model output on your test sample, e.g.: predict.py /KERAS_model.h5 /trainsamples.djcdc /example_data/test_data.txt ') ''' datastructures_init = ''' @@ -426,10 +426,10 @@ def my_model(Inputs,otheroption): print('Before using the subpackage, source the "env.sh" file in the subpackage directory (not in DeepJetCore).') print('to convert to example TrainData format use:') -print('convertFromSource.py -i '+subpackage_dir+'/example_data/train_files.txt -o -c TrainData_example') +print('convertFromSource.py -i '+subpackage_dir+'/example_data/train_files.txt -o -c TrainData_example') print('\nAn example to run the training can be found in '+subpackage_dir+'/Train/training_example.py') -print('It can be run with: \npython3 '+subpackage_dir+'/Train/training_example.py /dataCollection.djcdc ') +print('It can be run with: \npython3 '+subpackage_dir+'/Train/training_example.py /dataCollection.djcdc ') diff --git a/bin/mergeOrSplitFiles.py b/bin/mergeOrSplitFiles.py index 152971a..074f0ed 100755 --- a/bin/mergeOrSplitFiles.py +++ b/bin/mergeOrSplitFiles.py @@ -16,7 +16,7 @@ from DeepJetCore.DataCollection import DataCollection -from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator +from DeepJetCore.dataPipeline import TrainDataGenerator infile=args.infile nbatch=int(args.nelementsperfile) @@ -31,7 +31,7 @@ dir='.' insamples = [dir+'/'+s for s in samples] -gen = trainDataGenerator() +gen = TrainDataGenerator() gen.setBatchSize(nbatch) gen.setSkipTooLargeBatches(False) gen.setFileList(insamples) diff --git a/compiled/interface/trainDataGenerator.h b/compiled/interface/trainDataGenerator.h index 828992b..6bbb03c 100644 --- a/compiled/interface/trainDataGenerator.h +++ b/compiled/interface/trainDataGenerator.h @@ -96,7 +96,7 @@ class trainDataGenerator{ void prepareNextEpoch(); - void shuffleFilelist(); + void shuffleFileList(); void end(); /** diff --git a/compiled/src/c_trainDataGenerator.C b/compiled/src/c_trainDataGenerator.C index afd3fda..5e1ec2f 100644 --- a/compiled/src/c_trainDataGenerator.C +++ b/compiled/src/c_trainDataGenerator.C @@ -33,7 +33,7 @@ BOOST_PYTHON_MODULE(c_trainDataGenerator) { .def("setBatchSize", &trainDataGenerator::setBatchSize) .def("setFileList", &trainDataGenerator::setFileListPy) - .def("shuffleFilelist", &trainDataGenerator::shuffleFilelist) + .def("shuffleFileList", &trainDataGenerator::shuffleFileList) .def("setBuffer", &trainDataGenerator::setBuffer) diff --git a/compiled/src/trainDataGenerator.cpp b/compiled/src/trainDataGenerator.cpp index 4bdb335..f591ec3 100644 --- a/compiled/src/trainDataGenerator.cpp +++ b/compiled/src/trainDataGenerator.cpp @@ -21,7 +21,7 @@ void trainDataGenerator::setFileListPy(boost::python::list files){ trainDataGenerator::setFileList(toSTLVector(files)); } -void trainDataGenerator::shuffleFilelist(){ +void trainDataGenerator::shuffleFileList(){ std::random_device rd; std::mt19937 g(rd()); g.seed(randomcount_); diff --git a/testing/unit/TestTrainDataGenerator.py b/testing/unit/TestTrainDataGenerator.py index c4c801e..0924b90 100644 --- a/testing/unit/TestTrainDataGenerator.py +++ b/testing/unit/TestTrainDataGenerator.py @@ -134,7 +134,7 @@ def test_fullGenerator(self): passed = False break - gen.shuffleFilelist() + gen.shuffleFileList() shutil.rmtree(dcoutdir.path) self.assertTrue(passed) diff --git a/training/training_base.py b/training/training_base.py index 2b62544..eb1a28f 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -505,7 +505,7 @@ def trainModel(self, **trainargs ) self.trainedepoches += 1 - traingen.shuffleFilelist() + traingen.shuffleFileList() # self.saveModel("KERAS_model.h5") From f5bd7b4630af3593f41cbf02c0ad87982d89bd04 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 7 Jul 2021 11:45:54 +0200 Subject: [PATCH 366/437] some clean up --- training/training_base.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/training/training_base.py b/training/training_base.py index eb1a28f..038a203 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -107,15 +107,13 @@ def __init__( import tensorflow as tf gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=args.gpufraction) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) - import keras - from keras import backend as K + from tensorflow.keras import backend as K K.set_session(sess) print('using gpu memory fraction: '+str(args.gpufraction)) - import keras self.ngpus=1 self.dist_strat_scope=None @@ -298,7 +296,7 @@ def saveCheckPoint(self,addstring=''): def loadModel(self,filename): - from keras.models import load_model + from tensorflow.keras.models import load_model self.keras_model=load_model(filename, custom_objects=custom_objects_list) self.optimizer=self.keras_model.optimizer self.compiled=True @@ -325,7 +323,7 @@ def compileModel(self, self.startlearningrate=learningrate if not self.custom_optimizer: - from keras.optimizers import Adam + from tensorflow.keras.optimizers import Adam if clipnorm: self.optimizer = Adam(lr=self.startlearningrate,clipnorm=clipnorm) else: @@ -451,8 +449,6 @@ def trainModel(self, print('starting training') if load_in_mem: - if match_truth_and_pred_list: - raise ValueError("match_truth_and_pred_list not available with load_in_mem") print('make features') X_train = self.train_data.getAllFeatures(nfiles=max_files) X_test = self.val_data.getAllFeatures(nfiles=max_files) @@ -516,7 +512,7 @@ def trainModel(self, def change_learning_rate(self, new_lr): - import keras.backend as K + import tensorflow.keras.backend as K if self.GAN_mode: K.set_value(self.discriminator.optimizer.lr, new_lr) K.set_value(self.gan.optimizer.lr, new_lr) From 1ee66472fbf200a945e89eaf394f8a4e23f5f470 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 14 Jul 2021 12:30:28 +0200 Subject: [PATCH 367/437] added dictionary support for data generator and hls4ml to container --- DataCollection.py | 35 ++++++++++++------ TrainData.py | 4 +- compiled/interface/simpleArray.h | 5 +++ compiled/interface/trainData.h | 42 ++++++++++++++++----- compiled/src/c_trainData.C | 12 ++++-- compiled/src/trainData.cpp | 37 ++++++++++--------- dataPipeline.py | 36 ++++++++++++++++-- docker/Dockerfile | 6 ++- testing/unit/TestSimpleArray.py | 4 +- testing/unit/TestTrainData.py | 4 +- testing/unit/TestTrainDataGenerator.py | 51 ++++++++++++++++++++++++-- training/training_base.py | 8 ++-- 12 files changed, 185 insertions(+), 59 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 4bee9c7..b0f091c 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -116,31 +116,44 @@ def removeLast(self): self.sourceList.pop() - def getKerasFeatureShapes(self): + def getNumpyFeatureShapes(self): if len(self.samples)<1: - raise Exception("DataCollection.getKerasFeatureShapes: no files") + raise Exception("DataCollection.getNumpyFeatureShapes: no files") return [] self._readMetaInfoIfNeeded() - return self.dataclass_instance.getKerasFeatureShapes() + return self.dataclass_instance.getNumpyFeatureShapes() - def getKerasFeatureDTypes(self): + def getNumpyFeatureDTypes(self): if len(self.samples)<1: - raise Exception("DataCollection.getKerasFeatureDTypes: no files") + raise Exception("DataCollection.getNumpyFeatureDTypes: no files") return [] self._readMetaInfoIfNeeded() - return self.dataclass_instance.getKerasFeatureDTypes() + return self.dataclass_instance.getNumpyFeatureDTypes() - def getKerasFeatureArrayNames(self): + def getNumpyFeatureArrayNames(self): if len(self.samples)<1: - raise Exception("DataCollection.getKerasFeatureNames: no files") + raise Exception("DataCollection.getNumpyFeatureNames: no files") return [] self._readMetaInfoIfNeeded() - return self.dataclass_instance.getKerasFeatureArrayNames() + return self.dataclass_instance.getNumpyFeatureArrayNames() + + def getKerasFeatureDTypes(self): + print('DataCollection.getKerasFeatureDTypes: deprecation warning, use getNumpyFeatureArrayNames') + return self.getNumpyFeatureDTypes() + + def getKerasFeatureShapes(self): + print('DataCollection.getKerasFeatureShapes: deprecation warning, use getNumpyFeatureArrayNames') + return self.getNumpyFeatureShapes() + + def getKerasFeatureArrayNames(self): + print('DataCollection.getKerasFeatureArrayNames: deprecation warning, use getNumpyFeatureArrayNames') + return self.getNumpyFeatureArrayNames() + def getInputShapes(self): - print('DataCollection:getInputShapes deprecated, use getKerasFeatureShapes ') - return self.getKerasFeatureShapes() + print('DataCollection:getInputShapes deprecated, use getNumpyFeatureShapes ') + return self.getNumpyFeatureShapes() def setBatchSize(self,bsize): diff --git a/TrainData.py b/TrainData.py index 3056e46..3211fdd 100644 --- a/TrainData.py +++ b/TrainData.py @@ -47,8 +47,8 @@ def __init__(self): def getInputShapes(self): - print('TrainData:getInputShapes: Deprecated, use getKerasFeatureShapes instead') - return self.getKerasFeatureShapes() + print('TrainData:getInputShapes: Deprecated, use getNumpyFeatureShapes instead') + return self.getNumpyFeatureShapes() def readIn(self,fileprefix,shapesOnly=False): diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 5258345..5ab965e 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -666,6 +666,8 @@ simpleArray simpleArray::split(size_t splitindex) { /// out.size_ = sizeFromShape(out.shape_); size_ = sizeFromShape(shape_); + out.featnames_ = featnames_; + out.name_ = name_; return out; } @@ -723,6 +725,9 @@ simpleArray simpleArray::getSlice(size_t splitindex_begin, size_t splitind } /// out.size_ = sizeFromShape(out.shape_); + out.name_ = name_; + out.featnames_ = featnames_; + return out; } diff --git a/compiled/interface/trainData.h b/compiled/interface/trainData.h index 0b29c98..a7d3404 100644 --- a/compiled/interface/trainData.h +++ b/compiled/interface/trainData.h @@ -240,17 +240,35 @@ class trainData{ - boost::python::list getKerasFeatureShapes()const; - boost::python::list getKerasFeatureDTypes()const; - - boost::python::list getKerasFeatureArrayNames()const; - - // not needed boost::python::list getKerasTruthShapes()const; - // not needed boost::python::list getKerasWeightShapes()const; + inline boost::python::list getNumpyFeatureShapes()const{ + return transferShapesToPyList(feature_shapes_); + } + inline boost::python::list getNumpyTruthShapes()const{ + return transferShapesToPyList(truth_shapes_); + } + inline boost::python::list getNumpyWeightShapes()const{ + return transferShapesToPyList(weight_shapes_); + } - //data generator interface get back numpy arrays / tf.tensors here for keras feeding! + inline boost::python::list getNumpyFeatureDTypes()const{ + return transferDTypesToPyList(feature_arrays_); + } + inline boost::python::list getNumpyTruthDTypes()const{ + return transferDTypesToPyList(truth_arrays_); + } + inline boost::python::list getNumpyWeightDTypes()const{ + return transferDTypesToPyList(weight_arrays_); + } - boost::python::list getTruthRaggedFlags()const; + inline boost::python::list getNumpyFeatureArrayNames()const{ + return transferNamesToPyList(feature_arrays_); + } + inline boost::python::list getNumpyTruthArrayNames()const{ + return transferNamesToPyList(truth_arrays_); + } + inline boost::python::list getNumpyWeightArrayNames()const{ + return transferNamesToPyList(weight_arrays_); + } //has ragged support boost::python::list transferFeatureListToNumpy(bool padrowsplits=false); @@ -262,6 +280,8 @@ class trainData{ boost::python::list transferWeightListToNumpy(bool padrowsplits=false); + boost::python::list getTruthRaggedFlags()const; + /* * the following ones can be improved w.r.t. performance */ @@ -307,6 +327,10 @@ class trainData{ void updateShapes(); + boost::python::list transferNamesToPyList(const typeContainer&)const; + boost::python::list transferShapesToPyList(const std::vector >&)const; + boost::python::list transferDTypesToPyList(const typeContainer&)const; + typeContainer feature_arrays_; typeContainer truth_arrays_; diff --git a/compiled/src/c_trainData.C b/compiled/src/c_trainData.C index c056f62..80d83fc 100644 --- a/compiled/src/c_trainData.C +++ b/compiled/src/c_trainData.C @@ -58,11 +58,17 @@ BOOST_PYTHON_MODULE(c_trainData) { .def("skim", &trainData::skim) .def("getSlice", &trainData::getSlice) - .def("getKerasFeatureShapes", &trainData::getKerasFeatureShapes) - .def("getKerasFeatureDTypes", &trainData::getKerasFeatureDTypes) - .def("getKerasFeatureArrayNames", &trainData::getKerasFeatureArrayNames) + .def("getNumpyFeatureShapes", &trainData::getNumpyFeatureShapes) + .def("getNumpyTruthShapes", &trainData::getNumpyTruthShapes) + .def("getNumpyWeightShapes", &trainData::getNumpyWeightShapes) + .def("getNumpyFeatureDTypes", &trainData::getNumpyFeatureDTypes) + .def("getNumpyTruthDTypes", &trainData::getNumpyTruthDTypes) + .def("getNumpyWeightDTypes", &trainData::getNumpyWeightDTypes) + .def("getNumpyFeatureArrayNames", &trainData::getNumpyFeatureArrayNames) + .def("getNumpyTruthArrayNames", &trainData::getNumpyTruthArrayNames) + .def("getNumpyWeightArrayNames", &trainData::getNumpyWeightArrayNames) .def("getTruthRaggedFlags", &trainData::getTruthRaggedFlags) .def("transferFeatureListToNumpy", &trainData::transferFeatureListToNumpy) diff --git a/compiled/src/trainData.cpp b/compiled/src/trainData.cpp index be084e0..33bef3b 100644 --- a/compiled/src/trainData.cpp +++ b/compiled/src/trainData.cpp @@ -516,11 +516,23 @@ void trainData::skim(size_t batchelement){ } +boost::python::list trainData::transferNamesToPyList(const typeContainer& tc)const{ + boost::python::list out; + for(size_t i=0;i >& vs)const{ boost::python::list out; - for(const auto& a: feature_shapes_){ + for(const auto& a: vs){ boost::python::list nlist; bool wasragged=false; for(size_t i=1;i 0: tadd = [np.array([0],dtype='float32') for _ in range(self.extend_truth_list_by)] - yout += tadd + if self.dict_output: + keyadd = ["_truth_extended_"+str(i) for i in range(self.extend_truth_list_by)] + yout.update({k:v for k,v in zip(keyadd,tadd)}) + else: + yout += tadd out = (xout,yout) if len(wout)>0: @@ -31,4 +58,5 @@ def feedNumpyData(self): print("TrainDataGenerator: an exception was raised in batch",b," out of ", self.getNBatches(),', expection: ', e) raise e - \ No newline at end of file + def feedTorchTensors(self): + pass \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index 81f3708..249847e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -57,12 +57,16 @@ RUN git clone https://github.com/google/qkeras &&\ cd qkeras &&\ python3 setup.py build &&\ python3 setup.py install - + #some more useful packages RUN pip3 install bayesian-optimization mgzip mysql-connector-python +# HLS4ML +RUN pip3 install git+https://github.com/fastmachinelearning/hls4ml.git#egg=hls4ml[profiling] +RUN pip3 install git+https://github.com/thesps/conifer.git + \ No newline at end of file diff --git a/testing/unit/TestSimpleArray.py b/testing/unit/TestSimpleArray.py index 40c3529..d229227 100644 --- a/testing/unit/TestSimpleArray.py +++ b/testing/unit/TestSimpleArray.py @@ -131,10 +131,10 @@ def test_split(self): print('TestSimpleArray: split') arr,rs = self.createNumpy('float32') - a = SimpleArray(arr,rs) + a = SimpleArray(arr,rs,name="myarray") arrs, rss = arr[:rs[2]], rs[:3] - b = SimpleArray(arrs,rss) + b = SimpleArray(arrs,rss,name="myarray") asplit = a.split(2) self.assertEqual(asplit, b) diff --git a/testing/unit/TestTrainData.py b/testing/unit/TestTrainData.py index 10f03ec..0e7cc0d 100644 --- a/testing/unit/TestTrainData.py +++ b/testing/unit/TestTrainData.py @@ -27,7 +27,7 @@ def sub_test_store(self, readWrite): td.readFromFile("testfile.tdjctd") os.system('rm -f testfile.tdjctd') - shapes = td.getKerasFeatureShapes() + shapes = td.getNumpyFeatureShapes() self.assertEqual([[3, 5, 6], [1], [3, 5, 6], [1]], shapes,"shapes") self.assertEqual(2, td.nFeatureArrays()) @@ -156,5 +156,5 @@ def test_KerasDTypes(self): td._store([a,b], [c,d], []) #data, rs, data, rs - self.assertEqual(td.getKerasFeatureDTypes(), ['int32','int64','float32','int64']) + self.assertEqual(td.getNumpyFeatureDTypes(), ['int32','int64','float32','int64']) \ No newline at end of file diff --git a/testing/unit/TestTrainDataGenerator.py b/testing/unit/TestTrainDataGenerator.py index 0924b90..06777c6 100644 --- a/testing/unit/TestTrainDataGenerator.py +++ b/testing/unit/TestTrainDataGenerator.py @@ -82,9 +82,9 @@ def convertFromSourceFile(self, filename, weighterobjects, istraining): nsamples = np.random.randint(12,101,size=1) data,rs = raggedtester.createData(nsamples) - farr = SimpleArray(data, rs) - true_arr = SimpleArray(data, rs) - farrint = SimpleArray(np.array(data,dtype='int32'), rs) + farr = SimpleArray(data, rs,name="features_ragged") + true_arr = SimpleArray(data, rs,name="truth_ragged") + farrint = SimpleArray(np.array(data,dtype='int32'), rs, name="features_int_ragged") #farr.createFromNumpy() return [farr,farrint],[true_arr],[] @@ -139,4 +139,49 @@ def test_fullGenerator(self): shutil.rmtree(dcoutdir.path) self.assertTrue(passed) + def test_fullGeneratorDict(self): + print("TestTrainDataGenerator full generator with dictionary") + passed = True + + n_files=11 + n_per_batch=2078 + files = TempFileList(n_files) + dcoutdir = TempDirName() + + n_per_batch=n_per_batch + + dc = DataCollection() + dc.dataclass = TrainData_test + dc.sourceList = [f for f in files.filenames] + dc.createDataFromRoot(TrainData_test, outputDir=dcoutdir.path) + + gen = dc.invokeGenerator() + gen.setBatchSize(n_per_batch) + gen.dict_output = True + + for epoch in range(10): + gen.prepareNextEpoch() + for b in range(gen.getNBatches()): + d,t = next(gen.feedNumpyData()) + data,rs, dint = d['features_ragged'],d['features_ragged_rowsplits'],d['features_int_ragged'] + truth = t['truth_ragged'] + rs = rs[:,0]#remove last 1 dim + + datagood = raggedtester.checkData(data, rs) + datagood = datagood and raggedtester.checkData(dint, rs, 'int32') + datagood = datagood and raggedtester.checkData(truth, rs) + + if not datagood: + print('epoch',epoch, 'batch',b,'broken') + passed=False + break + if rs[-1] > n_per_batch: + print('maximum batch size exceeded for batch ',b, 'epoch', epoch) + passed = False + break + + gen.shuffleFileList() + + shutil.rmtree(dcoutdir.path) + self.assertTrue(passed) diff --git a/training/training_base.py b/training/training_base.py index 038a203..3701e8f 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -203,10 +203,10 @@ def __init__( - shapes = self.train_data.getKerasFeatureShapes() - inputdtypes = self.train_data.getKerasFeatureDTypes() - inputnames= self.train_data.getKerasFeatureArrayNames() - for i in range(len(inputnames)): + shapes = self.train_data.getNumpyFeatureShapes() + inputdtypes = self.train_data.getNumpyFeatureDTypes() + inputnames= self.train_data.getNumpyFeatureArrayNames() + for i in range(len(inputnames)): #in case they are not named if inputnames[i]=="" or inputnames[i]=="_rowsplits": inputnames[i]="input_"+str(i)+inputnames[i] From eb2d457b7c0870f00a505ed0dea8acebc096e187 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 28 Jul 2021 12:09:15 +0200 Subject: [PATCH 368/437] some hls4ml stuff and fixed issue with latest cuda container --- docker/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 249847e..00e794f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -8,7 +8,7 @@ FROM cernml4reco/djcbase:cu11.1 # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.4.0 tensorflow_probability + pip3 --no-cache-dir install tensorflow-gpu==2.4.0 tensorflow_probability @@ -18,7 +18,7 @@ RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && ln -s /usr/local/cuda cuda RUN ln -s /usr/local/cuda-11.1/lib64/libcusolver.so.11 /usr/local/cuda-11.1/lib64/libcusolver.so.10 - +ENV LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:${LD_LIBRARY_PATH}" ################################################################################ # the actual DeepJetCore. Make sure this gets built every time @@ -64,7 +64,7 @@ RUN pip3 install bayesian-optimization mgzip mysql-connector-python # HLS4ML -RUN pip3 install git+https://github.com/fastmachinelearning/hls4ml.git#egg=hls4ml[profiling] +RUN pip3 install git+https://github.com/fastmachinelearning/hls4ml.git#egg=hls4ml[profiling] tensorflow_datasets RUN pip3 install git+https://github.com/thesps/conifer.git From b9158d4886108e25cfd4783a95a4b12475b1af71 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 28 Jul 2021 12:10:55 +0200 Subject: [PATCH 369/437] sanity checks for row splits --- compiled/interface/simpleArray.h | 4 ++++ testing/unit/TestCompatibility.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 5ab965e..a959078 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -1247,6 +1247,10 @@ void simpleArray::fromNumpy(const boost::python::numpy::ndarray& ndarr, checkArray(rowsplits, np::dtype::get_builtin()); rowsplits_.resize(len(rowsplits)); memcpy(&(rowsplits_.at(0)),(int64_t*)(void*) rowsplits.get_data(), rowsplits_.size() * sizeof(int64_t)); + //check if row splits make sense + if(shape.at(0) != rowsplits_.at(rowsplits_.size()-1)){ + throw std::out_of_range("simpleArray::fromNumpy: row splits and input array incompatible. rowsplits[-1] != arr.shape[0]."); + } shape.insert(shape.begin(),len(rowsplits)-1); shape_ = shape; shape_ = shapeFromRowsplits(); diff --git a/testing/unit/TestCompatibility.py b/testing/unit/TestCompatibility.py index 46f120d..26f0fb0 100644 --- a/testing/unit/TestCompatibility.py +++ b/testing/unit/TestCompatibility.py @@ -16,6 +16,8 @@ def test_SimpleArrayRead(self): a.readFromFile("simpleArray_previous.djcsa") arr = np.load("np_arr.npy") + #FIXME: this array was actually wrong + arr = arr[:100] rs = np.load("np_rs.npy") b = SimpleArray(arr,rs) @@ -30,6 +32,8 @@ def test_TrainDataRead(self): self.assertEqual(td.nFeatureArrays(), 1) arr = np.load("np_arr.npy") + #FIXME: this array was actually wrong + arr = arr[:100] rs = np.load("np_rs.npy") b = SimpleArray(arr,rs) From ee11361829d331cb0ab8a5dadba384b9b87f9089 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 18 Dec 2021 16:32:49 +0100 Subject: [PATCH 370/437] improved pipeline interface --- DataCollection.py | 4 ++-- dataPipeline.py | 27 +++++++++++++++---------- docker/Dockerfile | 6 ++++++ training/training_base.py | 42 +++++++++++++++++++++++++-------------- 4 files changed, 52 insertions(+), 27 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index b0f091c..96ae650 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -600,8 +600,8 @@ def __stackData(self, dataclass, selector): td.append(td2) return td - def invokeGenerator(self): - generator = TrainDataGenerator() + def invokeGenerator(self, *args, **kwargs): + generator = TrainDataGenerator( *args, **kwargs) generator.setBatchSize(self.__batchsize) generator.setSquaredElementsLimit(self.batch_uses_sum_of_squares) generator.setFileList([self.dataDir+ "/" + s for s in self.samples]) diff --git a/dataPipeline.py b/dataPipeline.py index 7803818..f15ba41 100644 --- a/dataPipeline.py +++ b/dataPipeline.py @@ -6,14 +6,26 @@ class TrainDataGenerator(trainDataGenerator): def __init__(self, pad_rowsplits=False, - extend_truth_list_by=0, + fake_truth=None, dict_output=False): trainDataGenerator.__init__(self) - self.extend_truth_list_by = extend_truth_list_by + #self.extend_truth_list_by = extend_truth_list_by self.pad_rowsplits=pad_rowsplits self.dict_output = dict_output - + self.fake_truth = None + if fake_truth is not None: + if isinstance(fake_truth, int): + self.fake_truth = [np.array([0],dtype='float32') + for _ in range(fake_truth)] + elif isinstance(fake_truth, list): + etl={} + for e in fake_truth: + if isinstance(e,str): + etl[e]=np.array([0],dtype='float32') + else: + raise ValueError("TrainDataGenerator: only accepts an int or list of strings to extend truth list") + self.fake_truth = etl def feedNumpyData(self): @@ -42,13 +54,8 @@ def feedNumpyData(self): yout = {k:v for k,v in zip(tnames,yout)} wout = {k:v for k,v in zip(wnames,wout)} - if self.extend_truth_list_by > 0: - tadd = [np.array([0],dtype='float32') for _ in range(self.extend_truth_list_by)] - if self.dict_output: - keyadd = ["_truth_extended_"+str(i) for i in range(self.extend_truth_list_by)] - yout.update({k:v for k,v in zip(keyadd,tadd)}) - else: - yout += tadd + if self.fake_truth is not None: + yout=self.fake_truth out = (xout,yout) if len(wout)>0: diff --git a/docker/Dockerfile b/docker/Dockerfile index 00e794f..9c03cd4 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -67,6 +67,12 @@ RUN pip3 install bayesian-optimization mgzip mysql-connector-python RUN pip3 install git+https://github.com/fastmachinelearning/hls4ml.git#egg=hls4ml[profiling] tensorflow_datasets RUN pip3 install git+https://github.com/thesps/conifer.git +#add some kerberos for convenience +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y krb5-user && \ + sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf +RUN apt-get update --fix-missing + \ No newline at end of file diff --git a/training/training_base.py b/training/training_base.py index 3701e8f..fda0196 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -222,6 +222,10 @@ def __init__( self.keras_inputs.append(keras.layers.Input(shape=s, dtype=dt, name=n)) self.keras_inputsshapes.append(s) + #bookkeeping + self.train_data.writeToFile(self.outputDir+'trainsamples.djcdc') + self.val_data.writeToFile(self.outputDir+'valsamples.djcdc') + if not isNewTraining: kfile = self.outputDir+'/KERAS_check_model_last.h5' \ if os.path.isfile(self.outputDir+'/KERAS_check_model_last.h5') else \ @@ -277,9 +281,11 @@ def setModel(self,model,**modelargs): self.keras_model.build(None) if len(self.keras_weight_model_path): - from DeepJetCore.modeltools import apply_weights_where_possible, load_model + from DeepJetCore.modeltools import apply_weights_where_possible + tbcopy = self + tbcopy.loadModel(self.keras_weight_model_path) self.keras_model = apply_weights_where_possible(self.keras_model, - load_model(self.keras_weight_model_path)) + tbcopy.keras_model) #try: # self.keras_model=model(self.keras_inputs,**modelargs) #except BaseException as e: @@ -294,11 +300,15 @@ def saveCheckPoint(self,addstring=''): self.checkpointcounter=self.checkpointcounter+1 self.saveModel("KERAS_model_checkpoint_"+str(self.checkpointcounter)+"_"+addstring +".h5") - - def loadModel(self,filename): + + def _loadModel(self,filename): from tensorflow.keras.models import load_model - self.keras_model=load_model(filename, custom_objects=custom_objects_list) - self.optimizer=self.keras_model.optimizer + keras_model=load_model(filename, custom_objects=custom_objects_list) + optimizer=self.keras_model.optimizer + return keras_model, optimizer + + def loadModel(self,filename): + self.keras_model, self.optimizer = self._loadModel(filename) self.compiled=True if self.ngpus>1: self.compiled=False @@ -377,8 +387,6 @@ def _initTraining(self, self.train_data.batch_uses_sum_of_squares=use_sum_of_squares self.val_data.batch_uses_sum_of_squares=use_sum_of_squares - self.train_data.writeToFile(self.outputDir+'trainsamples.djcdc') - self.val_data.writeToFile(self.outputDir+'valsamples.djcdc') #make sure tokens don't expire from .tokenTools import checkTokens, renew_token_process @@ -398,7 +406,7 @@ def trainModel(self, batchsize, run_eagerly=False, batchsize_use_sum_of_squares = False, - extend_truth_list_by=0,#extend the truth list with dummies. Useful when adding more prediction outputs than truth inputs + fake_truth=False,#extend the truth list with dummies. Useful when adding more prediction outputs than truth inputs stop_patience=-1, lr_factor=0.5, lr_patience=-1, @@ -467,12 +475,16 @@ def trainModel(self, #prepare generator print("setting up generator... can take a while") - traingen = self.train_data.invokeGenerator() - valgen = self.val_data.invokeGenerator() - #this is fixed - traingen.extend_truth_list_by = extend_truth_list_by - valgen.extend_truth_list_by = extend_truth_list_by - + use_fake_truth=None + if fake_truth: + if isinstance(self.keras_model.output,dict): + use_fake_truth = [k for k in self.keras_model.output.keys()] + elif isinstance(self.keras_model.output,list): + use_fake_truth = len(self.keras_model.output) + + traingen = self.train_data.invokeGenerator(fake_truth = use_fake_truth) + valgen = self.val_data.invokeGenerator(fake_truth = use_fake_truth) + while(self.trainedepoches < nepochs): From 8acb04cc888a4bdc595ba3ac396d8377c0a20d2e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 18 Dec 2021 18:05:48 +0100 Subject: [PATCH 371/437] test in docker file --- docker/Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 9c03cd4..9d7f672 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,6 +2,7 @@ FROM cernml4reco/djcbase:cu11.1 +RUN apt-get update --fix-missing ################################################################################ @@ -73,6 +74,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf RUN apt-get update --fix-missing +#run tests +RUN testEnvironment.py + +RUN cd /usr/share/DJC/DeepJetCore/testing/unit && \ + python3 test.py + \ No newline at end of file From 9c24e68c84743a2bbdaab868fb98e85c990213dd Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 21 Dec 2021 16:31:32 +0100 Subject: [PATCH 372/437] bugfix --- training/training_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/training/training_base.py b/training/training_base.py index fda0196..357c32f 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -304,7 +304,7 @@ def saveCheckPoint(self,addstring=''): def _loadModel(self,filename): from tensorflow.keras.models import load_model keras_model=load_model(filename, custom_objects=custom_objects_list) - optimizer=self.keras_model.optimizer + optimizer=keras_model.optimizer return keras_model, optimizer def loadModel(self,filename): From fa79f5ecedd93f2cf3c7e63133ffe415c4632b9a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 21 Dec 2021 16:32:13 +0100 Subject: [PATCH 373/437] new metric plotting callback --- training/DeepJet_callbacks.py | 139 +++++++++++++++++++++++++++++++++- 1 file changed, 138 insertions(+), 1 deletion(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 84d7043..b3690e2 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -14,8 +14,9 @@ import matplotlib.pyplot as plt import numpy as np +from multiprocessing import Process -from keras.callbacks import Callback, EarlyStopping,History,ModelCheckpoint #, ReduceLROnPlateau # , TensorBoard +from tensorflow.keras.callbacks import Callback, EarlyStopping,History,ModelCheckpoint #, ReduceLROnPlateau # , TensorBoard # loss per epoch from time import time from pdb import set_trace @@ -25,7 +26,143 @@ import os matplotlib.use('Agg') +class simpleMetricsCallback(Callback): + def __init__(self, + output_file, + select_metrics=None, + call_on_epoch=False, + record_frequency= 10, + plot_frequency = 20, + smoothen=None, + dtype='float16'): + ''' + Requires plotly + + select_metrics: select which metrics to plot. + - a list of explicit names, e.g. ["accuracy","recall"] + - an individual name + - a (list of) names with wildcards, e.g. "accuracy_*" + + call_on_epoch: calls the data recording and plotting at the end of each epoch + + record_frequency: (only if call_on_epoch=False) + records data every N batches (to keep memory consumption low) + plot_frequency: (only if call_on_epoch=False) + make the plot every N RECORDS + (so a plot will be made every record_frequency*plot_frequency batches) + + dtype: data type for data to be stored to keep memory consuption within reason (be careful) + + ''' + + if select_metrics is not None: + assert isinstance(select_metrics,str) or isinstance(select_metrics,list) + if isinstance(select_metrics,str): + select_metrics=[select_metrics] + + assert dtype == 'float16' or dtype == 'float32' or dtype == 'int32' + self.dtype = dtype + + if smoothen is None: + if call_on_epoch: + smoothen = -1 + else: + smoothen = 51 + smoothen=int(smoothen) + if smoothen>0 and not smoothen%2: + smoothen+=1 + + self.smoothen = smoothen + self.output_file=output_file + self.select_metrics=select_metrics + self.record_frequency = record_frequency + self.plot_frequency = plot_frequency + self.record_counter=0 + self.plot_counter=0 + self._thread=None + self.call_on_epoch = call_on_epoch + self.data={} + + def _record_data(self,logs): + #log is dict with simple scalars + + if len(self.data) == 0: #build the dict at first call + + for k in logs.keys(): + if self.select_metrics is None: + self.data[k]=np.array([logs[k]],dtype=self.dtype)#enough, keep memory consumption ok + else: + if k in self.select_metrics: + self.data[k]=np.array([logs[k]],dtype=self.dtype) + else: + import fnmatch + for sm in self.select_metrics: + if fnmatch.fnmatch(k,sm): + self.data[k]=np.array([logs[k]],dtype=self.dtype) + else: + for k in self.data.keys(): #already determined + self.data[k] = np.concatenate([self.data[k],np.array([logs[k]],dtype=self.dtype)],axis=0) + + def _make_plot_worker(self): + datacp = {} + if self.smoothen > 3: + from scipy.signal import savgol_filter + for k in self.data.keys(): + if len(self.data[k]) > self.smoothen+1: + datacp[k] = savgol_filter(self.data[k], + window_length = self.smoothen, + polyorder = 3) + datacp[k] = datacp[k][:-self.smoothen//2]#make sure to remove smoothing effects at the end + else: + datacp[k] = self.data[k] + else: + datacp=self.data + + import pandas as pd + pd.options.plotting.backend = "plotly" + df = pd.DataFrame().from_dict(datacp) + if len(df)<1: + return + fig = df.plot(#x='date', + template = 'plotly_dark', + #xlabel='record number', + y=[str(k) for k in datacp.keys()]) + fig.write_html(self.output_file) + + def _make_plot(self): + #to be multi-processed + if self._thread is not None: + self._thread.join(120)#wait two minutes + + self._thread = Process(target=self._make_plot_worker) + self._thread.start() + + + def on_batch_end(self,batch,logs={}): + if self.call_on_epoch: + return + if self.record_counter < self.record_frequency-1: + self.record_counter+=1 + return + self.record_counter=0 + #record data + self._record_data(logs) + + if self.plot_counter < self.plot_frequency-1: + self.plot_counter+=1 + return + self.plot_counter=0 + #make plot + self._make_plot() + + def on_epoch_end(self,epoch,logs={}): + if not self.call_on_epoch: + return + self._record_data(logs) + self._make_plot() + + class plot_loss_or_metric(Callback): def __init__(self,outputDir,metrics): self.metrics=metrics From dfd24d04f193b8dd4bba4917b651e1128ea48a45 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 22 Dec 2021 16:00:38 +0100 Subject: [PATCH 374/437] more functionality --- training/DeepJet_callbacks.py | 54 +++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 12 deletions(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index b3690e2..be501cd 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -35,6 +35,7 @@ def __init__(self, record_frequency= 10, plot_frequency = 20, smoothen=None, + smooth_more_at=None, dtype='float16'): ''' Requires plotly @@ -72,8 +73,14 @@ def __init__(self, smoothen=int(smoothen) if smoothen>0 and not smoothen%2: smoothen+=1 - - self.smoothen = smoothen + + if smooth_more_at is None: + smooth_more_at = 500 + else: + assert isinstance(smooth_more_at,int) and smooth_more_at >= 0 + + self.smoothen = smoothen + self.smooth_more_at = smooth_more_at self.output_file=output_file self.select_metrics=select_metrics self.record_frequency = record_frequency @@ -83,6 +90,18 @@ def __init__(self, self._thread=None self.call_on_epoch = call_on_epoch self.data={} + self.len=0 + + #check if pre-recorded data exists, in case a training is resumed + recordsfile = self.output_file+'.df.pkl' + if os.path.isfile(recordsfile): + import pandas as pd + df = pd.read_pickle(recordsfile) + self.data=df.to_dict('list') + for k in self.data.keys(): + self.len = len(self.data[k]) + break + def _record_data(self,logs): #log is dict with simple scalars @@ -100,27 +119,38 @@ def _record_data(self,logs): for sm in self.select_metrics: if fnmatch.fnmatch(k,sm): self.data[k]=np.array([logs[k]],dtype=self.dtype) + if len(self.data) == 0: + print('could not find metrics',self.select_metrics,'in',logs.keys()) else: for k in self.data.keys(): #already determined self.data[k] = np.concatenate([self.data[k],np.array([logs[k]],dtype=self.dtype)],axis=0) + self.len = len(self.data[k]) def _make_plot_worker(self): + if self.len < 2: + return + import pandas as pd + pd.options.plotting.backend = "plotly" + #save original data + + dfs = pd.DataFrame().from_dict(self.data) + dfs.to_pickle(self.output_file+'.df.pkl')#save snapshot + datacp = {} - if self.smoothen > 3: + if self.smoothen > 3 and self.len > self.smoothen+1: from scipy.signal import savgol_filter for k in self.data.keys(): - if len(self.data[k]) > self.smoothen+1: - datacp[k] = savgol_filter(self.data[k], - window_length = self.smoothen, - polyorder = 3) - datacp[k] = datacp[k][:-self.smoothen//2]#make sure to remove smoothing effects at the end - else: - datacp[k] = self.data[k] + window = self.smoothen + if self.smooth_more_at and len(self.data[k]) > self.smoothen*self.smooth_more_at:#smoothen more for large data sets + window = len(self.data[k])//self.smooth_more_at + datacp[k] = savgol_filter(self.data[k], + window_length = window, + polyorder = 3) + datacp[k] = datacp[k][:-window//2]#make sure to remove smoothing effects at the end else: datacp=self.data - import pandas as pd - pd.options.plotting.backend = "plotly" + df = pd.DataFrame().from_dict(datacp) if len(df)<1: return From 1167d07487312dbf31442afed04e1f7eace9f196 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 27 Dec 2021 14:06:01 +0100 Subject: [PATCH 375/437] make cern krb5 config default --- docker/Dockerfile | 15 +++++--- docker/krb5.conf | 88 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 5 deletions(-) create mode 100644 docker/krb5.conf diff --git a/docker/Dockerfile b/docker/Dockerfile index 9d7f672..dfc8ab7 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -68,17 +68,22 @@ RUN pip3 install bayesian-optimization mgzip mysql-connector-python RUN pip3 install git+https://github.com/fastmachinelearning/hls4ml.git#egg=hls4ml[profiling] tensorflow_datasets RUN pip3 install git+https://github.com/thesps/conifer.git -#add some kerberos for convenience -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y krb5-user && \ - sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf -RUN apt-get update --fix-missing #run tests RUN testEnvironment.py RUN cd /usr/share/DJC/DeepJetCore/testing/unit && \ python3 test.py + +#add some kerberos for convenience +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y krb5-user + +#use the standard cern config +COPY krb5.conf /etc/krb5.conf + +RUN apt-get update --fix-missing + diff --git a/docker/krb5.conf b/docker/krb5.conf new file mode 100644 index 0000000..5416539 --- /dev/null +++ b/docker/krb5.conf @@ -0,0 +1,88 @@ +; AD : This Kerberos configuration is for CERN's Active Directory realm +; The line above this is magic and is used by cern-config-keytab. Do +; not remove. + +; Installed with puppet from a series of +; template fragments. + +; /etc/krb5.conf + +[libdefaults] + default_realm = CERN.CH + ticket_lifetime = 25h + renew_lifetime = 120h + forwardable = true + proxiable = true + default_tkt_enctypes = arcfour-hmac-md5 aes256-cts aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc + chpw_prompt = true + rdns = true + +[appdefaults] +pam = { + external = true + krb4_convert = false + krb4_convert_524 = false + krb4_use_as_req = false +} + +[domain_realm] +geonosis.cern.ch = CERN.CH +.cern.ch = CERN.CH +.fnal.gov = FNAL.GOV +.hep.man.ac.uk = HEP.MAN.AC.UK +.in2p3.fr = IN2P3.FR + +[realms] +CERN.CH = { + default_domain = cern.ch + kpasswd_server = cerndc.cern.ch + admin_server = cerndc.cern.ch + dns_lookup_kdc = false + master_kdc = cerndc.cern.ch + kdc = cerndc.cern.ch + v4_name_convert = { + host = { + rcmd = host + } + } +} + +FNAL.GOV = { + default_domain = fnal.gov + admin_server = krb-fnal-admin.fnal.gov + kdc = krb-fnal-fcc3.fnal.gov:88 + kdc = krb-fnal-2.fnal.gov:88 + kdc = krb-fnal-3.fnal.gov:88 + kdc = krb-fnal-1.fnal.gov:88 + kdc = krb-fnal-4.fnal.gov:88 + kdc = krb-fnal-enstore.fnal.gov:88 + kdc = krb-fnal-fg2.fnal.gov:88 + kdc = krb-fnal-cms188.fnal.gov:88 + kdc = krb-fnal-cms204.fnal.gov:88 + kdc = krb-fnal-d0online.fnal.gov:88 +} + +HEP.MAN.AC.UK = { + default_domain = hep.man.ac.uk + kpasswd_server = afs4.hep.man.ac.uk + admin_server = afs4.hep.man.ac.uk + kdc = afs1.hep.man.ac.uk + kdc = afs2.hep.man.ac.uk + kdc = afs3.hep.man.ac.uk + kdc = afs4.hep.man.ac.uk +} + +IN2P3.FR = { + default_domain = in2p3.fr + kpasswd_server = kerberos-admin.in2p3.fr + admin_server = kerberos-admin.in2p3.fr + kdc = kerberos-1.in2p3.fr + kdc = kerberos-2.in2p3.fr + kdc = kerberos-3.in2p3.fr +} + +KFKI.HU = { + admin_server = kerberos.kfki.hu + kdc = kerberos.kfki.hu +} + From 00e945d4954dc9335e47bcb57e6bc8926504f904 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 28 Dec 2021 13:06:04 +0100 Subject: [PATCH 376/437] publish option --- training/DeepJet_callbacks.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index be501cd..e6f2e31 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -26,6 +26,15 @@ import os matplotlib.use('Agg') +#helper +def publish(file_to_publish, publish_to_path): + cpstring = 'cp -f ' + if "@" in publish_to_path: + cpstring = 'scp ' + basefilename = os.path.basename(file_to_publish) + os.system(cpstring + file_to_publish + ' ' + publish_to_path +'_'+basefilename+ ' 2>&1 > /dev/null') + + class simpleMetricsCallback(Callback): def __init__(self, @@ -36,6 +45,7 @@ def __init__(self, plot_frequency = 20, smoothen=None, smooth_more_at=None, + publish=None, dtype='float16'): ''' Requires plotly @@ -53,6 +63,10 @@ def __init__(self, make the plot every N RECORDS (so a plot will be made every record_frequency*plot_frequency batches) + publish: uses scp or cp to copy the output file to another location (e.g. from a cluster to a website server). + if the path contains and "@", it will use scp. This only works with configured key pairs or tokens. + The path needs to also contain the output file name + dtype: data type for data to be stored to keep memory consuption within reason (be careful) ''' @@ -89,6 +103,7 @@ def __init__(self, self.plot_counter=0 self._thread=None self.call_on_epoch = call_on_epoch + self.publish = publish self.data={} self.len=0 @@ -159,6 +174,9 @@ def _make_plot_worker(self): #xlabel='record number', y=[str(k) for k in datacp.keys()]) fig.write_html(self.output_file) + + if self.publish is not None: + publish(self.output_file, self.publish) def _make_plot(self): #to be multi-processed From add6d7cbe0efb5c8e895ed7de31f1bc95e4fcb1e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 28 Dec 2021 13:12:50 +0100 Subject: [PATCH 377/437] small build order changes and build script --- docker/Dockerfile | 58 +++++++++++++++++++++++------------------------ docker/build.sh | 3 +++ 2 files changed, 32 insertions(+), 29 deletions(-) create mode 100644 docker/build.sh diff --git a/docker/Dockerfile b/docker/Dockerfile index dfc8ab7..7128d8d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -21,30 +21,7 @@ RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && RUN ln -s /usr/local/cuda-11.1/lib64/libcusolver.so.11 /usr/local/cuda-11.1/lib64/libcusolver.so.10 ENV LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:${LD_LIBRARY_PATH}" -################################################################################ -# the actual DeepJetCore. Make sure this gets built every time - -ARG BUILD_DATE -LABEL org.label-schema.build-date=$BUILD_DATE -ENV DEEPJETCORE /usr/share/DJC/DeepJetCore - -RUN ldconfig && \ - cd /usr/share && \ - mkdir DJC && \ - cd DJC && \ - git clone https://github.com/DL4Jets/DeepJetCore && \ - cd DeepJetCore && \ - source docker_env.sh && \ - cd compiled && \ - make -j4 - - -ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" - -#/usr/local/lib is for root -ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" -ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" # helpers for ragged and cuda compilation @@ -69,12 +46,6 @@ RUN pip3 install git+https://github.com/fastmachinelearning/hls4ml.git#egg=hls4m RUN pip3 install git+https://github.com/thesps/conifer.git -#run tests -RUN testEnvironment.py - -RUN cd /usr/share/DJC/DeepJetCore/testing/unit && \ - python3 test.py - #add some kerberos for convenience RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get install -y krb5-user @@ -84,6 +55,35 @@ COPY krb5.conf /etc/krb5.conf RUN apt-get update --fix-missing +################################################################################ +# the actual DeepJetCore. Make sure this gets built every time + +ARG BUILD_DATE +LABEL org.label-schema.build-date=$BUILD_DATE + +ENV DEEPJETCORE /usr/share/DJC/DeepJetCore + +RUN ldconfig && \ + cd /usr/share && \ + mkdir DJC && \ + cd DJC && \ + git clone https://github.com/DL4Jets/DeepJetCore && \ + cd DeepJetCore && \ + source docker_env.sh && \ + cd compiled && \ + make -j4 + + +ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" +ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" +ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" + +#run tests +RUN testEnvironment.py + +RUN cd /usr/share/DJC/DeepJetCore/testing/unit && \ + python3 test.py + diff --git a/docker/build.sh b/docker/build.sh new file mode 100644 index 0000000..f15e0b5 --- /dev/null +++ b/docker/build.sh @@ -0,0 +1,3 @@ +#!/usr/bin/bash + +docker build -t cernml4reco/deepjetcore3:latest . --build-arg BUILD_DATE="$(date)" \ No newline at end of file From c2ae28534e80bbc7e9d76f0828966753817a2eef Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 3 Jan 2022 11:38:48 +0100 Subject: [PATCH 378/437] added give up counter --- training/DeepJet_callbacks.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index e6f2e31..4387dbc 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -48,7 +48,7 @@ def __init__(self, publish=None, dtype='float16'): ''' - Requires plotly + Requires plotly. If metrics cannot be found, the callback will give up on the 100th try. select_metrics: select which metrics to plot. - a list of explicit names, e.g. ["accuracy","recall"] @@ -106,6 +106,7 @@ def __init__(self, self.publish = publish self.data={} self.len=0 + self.give_up_counter=0 #check if pre-recorded data exists, in case a training is resumed recordsfile = self.output_file+'.df.pkl' @@ -120,6 +121,8 @@ def __init__(self, def _record_data(self,logs): #log is dict with simple scalars + if self.give_up_counter > 100:#just give up + return if len(self.data) == 0: #build the dict at first call @@ -136,6 +139,7 @@ def _record_data(self,logs): self.data[k]=np.array([logs[k]],dtype=self.dtype) if len(self.data) == 0: print('could not find metrics',self.select_metrics,'in',logs.keys()) + self.give_up_counter += 1 else: for k in self.data.keys(): #already determined self.data[k] = np.concatenate([self.data[k],np.array([logs[k]],dtype=self.dtype)],axis=0) @@ -158,6 +162,8 @@ def _make_plot_worker(self): window = self.smoothen if self.smooth_more_at and len(self.data[k]) > self.smoothen*self.smooth_more_at:#smoothen more for large data sets window = len(self.data[k])//self.smooth_more_at + if not window%2: + window +=1 datacp[k] = savgol_filter(self.data[k], window_length = window, polyorder = 3) From 035b44e520215f46f01955b2cf9d076c8b2058d4 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 4 Jan 2022 11:06:59 +0100 Subject: [PATCH 379/437] small update --- DataCollection.py | 7 +++++-- training/DeepJet_callbacks.py | 1 + training/training_base.py | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 96ae650..ca9fb4e 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -206,9 +206,12 @@ def removeEntry(self,relative_path_to_entry): break - def writeToFile(self,filename): + def writeToFile(self,filename,abspath=False): with tempfile.NamedTemporaryFile(mode='wb', delete=False) as fd: - pickle.dump(self.samples, fd,protocol=0 ) + if not abspath: + pickle.dump(self.samples, fd,protocol=0 ) + else: + pickle.dump([self.getSamplePath(s) for s in self.samples], fd,protocol=0 ) pickle.dump(self.sourceList, fd,protocol=0 ) pickle.dump(self.dataclass, fd,protocol=0 ) pickle.dump(self.weighterobjects, fd, protocol=0) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 4387dbc..78e0ba4 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -62,6 +62,7 @@ def __init__(self, plot_frequency: (only if call_on_epoch=False) make the plot every N RECORDS (so a plot will be made every record_frequency*plot_frequency batches) + Also triggers saving a pandas dataframe with the raw data publish: uses scp or cp to copy the output file to another location (e.g. from a cluster to a website server). if the path contains and "@", it will use scp. This only works with configured key pairs or tokens. diff --git a/training/training_base.py b/training/training_base.py index 357c32f..7690c19 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -223,8 +223,8 @@ def __init__( self.keras_inputsshapes.append(s) #bookkeeping - self.train_data.writeToFile(self.outputDir+'trainsamples.djcdc') - self.val_data.writeToFile(self.outputDir+'valsamples.djcdc') + self.train_data.writeToFile(self.outputDir+'trainsamples.djcdc',abspath=True) + self.val_data.writeToFile(self.outputDir+'valsamples.djcdc',abspath=True) if not isNewTraining: kfile = self.outputDir+'/KERAS_check_model_last.h5' \ From 88b5535d0a67b96037d0b34b2d382950aafa160c Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 4 Jan 2022 11:16:14 +0100 Subject: [PATCH 380/437] printout added --- training/DeepJet_callbacks.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 78e0ba4..02d607d 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -122,7 +122,11 @@ def __init__(self, def _record_data(self,logs): #log is dict with simple scalars - if self.give_up_counter > 100:#just give up + if self.give_up_counter == 99:#just give up + print('Giving up trying to find metrics',self.select_metrics) + self.give_up_counter+=1 + return + if self.give_up_counter > 99: return if len(self.data) == 0: #build the dict at first call From 492f55add070957d35940f5000d3482a527c18e7 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 5 Jan 2022 13:37:48 +0100 Subject: [PATCH 381/437] small record first addition --- training/DeepJet_callbacks.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 02d607d..956faaa 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -100,7 +100,7 @@ def __init__(self, self.select_metrics=select_metrics self.record_frequency = record_frequency self.plot_frequency = plot_frequency - self.record_counter=0 + self.record_counter=-1 self.plot_counter=0 self._thread=None self.call_on_epoch = call_on_epoch @@ -199,6 +199,12 @@ def _make_plot(self): def on_batch_end(self,batch,logs={}): + + if self.record_counter<0: #always record first + self.record_counter=0 + self._record_data(logs) + return + if self.call_on_epoch: return if self.record_counter < self.record_frequency-1: From 59f63882b734596b3e9935f6d39b97ef1e2ab0d0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 9 Jan 2022 12:55:51 +0100 Subject: [PATCH 382/437] extended callbacks and started some import clean up --- TrainData.py | 2 - bin/createSubpackage.py | 44 ++++++++++--- bin/testEnvironment.py | 4 +- training/DeepJet_callbacks.py | 121 ++++++++++++++++++++++++++-------- 4 files changed, 128 insertions(+), 43 deletions(-) diff --git a/TrainData.py b/TrainData.py index 3211fdd..6753c40 100644 --- a/TrainData.py +++ b/TrainData.py @@ -6,8 +6,6 @@ New (post equals 2.1) version ''' -from __future__ import print_function - import os import numpy as np import logging diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 4db3194..58a41c3 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -145,10 +145,15 @@ def writeOutPrediction(self, predicted, features, truth, weights, outfilename, i training_template=''' +#base class for tf based training from DeepJetCore.training.training_base import training_base -import keras -from keras.models import Model -from keras.layers import Dense, Conv2D, Flatten, BatchNormalization #etc + +#tf.keras imports +from tensorflow.keras.models import Model +from tensorflow.keras.layers import Dense, Conv2D, Flatten, BatchNormalization #etc + +#callbacks +from DeepJetCore.training.DeepJet_callbacks import simpleMetricsCallback def my_model(Inputs,otheroption): @@ -170,22 +175,41 @@ def my_model(Inputs,otheroption): return Model(inputs=Inputs, outputs=predictions) -train=training_base(testrun=False,resumeSilently=False,renewtokens=False) +train=training_base() if not train.modelSet(): # allows to resume a stopped/killed training. Only sets the model if it cannot be loaded from previous snapshot train.setModel(my_model,otheroption=1) - train.compileModel(learningrate=0.003, + train.compileModel(learningrate=0.0003, loss='categorical_crossentropy') print(train.keras_model.summary()) - -model,history = train.trainModel(nepochs=10, - batchsize=500, - checkperiod=1, # saves a checkpoint model every N epochs - verbose=1) +callbacks = [ + simpleMetricsCallback( + # will be saved as interactive html plot + output_file=train.outputDir+'/metrics.html', + + # record all losses (val and train) + select_metrics='*loss*', + + # only call at the end of the epoch (when also val loss is available) + # can also be called after a certain amount of batches seen, please + # check the documentation of the callback + call_on_epoch=True + ) +] + +train.trainModel(nepochs=50, + batchsize=500, + checkperiod=10, # saves a checkpoint model every 10 epochs + + #register the additional callbacks + additional_callbacks=callbacks, + + #other keyward arguments are passed to tf.keras.Model.fit + verbose=1) print('Since the training is done, use the predict.py script to predict the model output on your test sample, e.g.: predict.py /KERAS_model.h5 /trainsamples.djcdc /example_data/test_data.txt ') ''' diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py index 1409e8c..cc1a634 100755 --- a/bin/testEnvironment.py +++ b/bin/testEnvironment.py @@ -13,9 +13,9 @@ print('importing DJC masked tf.keras as keras...') -import keras +import tensorflow.keras as keras -from keras import Input +from tensorflow.keras import Input print('importing numpy...') diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index 956faaa..f8c5dd8 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -34,6 +34,30 @@ def publish(file_to_publish, publish_to_path): basefilename = os.path.basename(file_to_publish) os.system(cpstring + file_to_publish + ' ' + publish_to_path +'_'+basefilename+ ' 2>&1 > /dev/null') +def hampel(vals_orig, k=7, t0=3): + ''' + Hampel, Frank R. “The Influence Curve and Its Role in Robust Estimation.” + Journal of the American Statistical Association 69, no. 346 (1974): 383–93. + https://doi.org/10.2307/2285666. + + vals: pandas series of values from which to remove outliers + k: size of window (including the sample; 7 is equal to 3 on either side of value) + + Implementation adapted from + https://newbedev.com/filtering-outliers-how-to-make-median-based-hampel-function-faster + ''' + #Make copy so original not edited + vals=vals_orig.copy() + #Hampel Filter + L= 1.4826 + rolling_median=vals.rolling(k).median() + signed_difference = vals-rolling_median + difference=np.abs(signed_difference) + median_abs_deviation=difference.rolling(k).median() + threshold= t0 *L * median_abs_deviation + outlier_idx=difference>threshold + vals[outlier_idx]=vals-signed_difference + return vals class simpleMetricsCallback(Callback): @@ -45,6 +69,7 @@ def __init__(self, plot_frequency = 20, smoothen=None, smooth_more_at=None, + suppress_outliers=True, publish=None, dtype='float16'): ''' @@ -64,12 +89,29 @@ def __init__(self, (so a plot will be made every record_frequency*plot_frequency batches) Also triggers saving a pandas dataframe with the raw data + smoothen: smoothen the plot. Window size for the Savitzky-Golay filter. For batch-wise recording values around + 50 are usually a good choice. + The raw data saved as pandas dataframe will not be affected. + + smooth_more_at: Start to smoothen more when more than points are collected + such that plot remains readable. + The raw data saved as pandas dataframe will not be affected. + + suppress_outliers: suppresses outliers before smoothing using a hampel filter. + The raw data saved as pandas dataframe will not be affected. + publish: uses scp or cp to copy the output file to another location (e.g. from a cluster to a website server). if the path contains and "@", it will use scp. This only works with configured key pairs or tokens. The path needs to also contain the output file name dtype: data type for data to be stored to keep memory consuption within reason (be careful) + + Savitzy-Golay: + (base): Whittaker, E.T; Robinson, G (1924). The Calculus Of Observations + Guest, P.G. (2012) [1961]. "Ch. 7: Estimation of Polynomial Coefficients" + (coefficients): Savitzky, A.; Golay, M.J.E. (1964). "Smoothing and Differentiation of Data by Simplified Least Squares Procedures" + ''' if select_metrics is not None: @@ -82,7 +124,7 @@ def __init__(self, if smoothen is None: if call_on_epoch: - smoothen = -1 + smoothen = 5 else: smoothen = 51 smoothen=int(smoothen) @@ -95,7 +137,8 @@ def __init__(self, assert isinstance(smooth_more_at,int) and smooth_more_at >= 0 self.smoothen = smoothen - self.smooth_more_at = smooth_more_at + self.smooth_more_at = smooth_more_at + self.suppress_outliers = suppress_outliers self.output_file=output_file self.select_metrics=select_metrics self.record_frequency = record_frequency @@ -157,33 +200,53 @@ def _make_plot_worker(self): pd.options.plotting.backend = "plotly" #save original data - dfs = pd.DataFrame().from_dict(self.data) - dfs.to_pickle(self.output_file+'.df.pkl')#save snapshot + df = pd.DataFrame().from_dict(self.data) + df.to_pickle(self.output_file+'.df.pkl')#save snapshot - datacp = {} - if self.smoothen > 3 and self.len > self.smoothen+1: - from scipy.signal import savgol_filter - for k in self.data.keys(): - window = self.smoothen - if self.smooth_more_at and len(self.data[k]) > self.smoothen*self.smooth_more_at:#smoothen more for large data sets - window = len(self.data[k])//self.smooth_more_at - if not window%2: - window +=1 - datacp[k] = savgol_filter(self.data[k], - window_length = window, - polyorder = 3) - datacp[k] = datacp[k][:-window//2]#make sure to remove smoothing effects at the end - else: - datacp=self.data - + print_smoothed = self.smoothen > 3 and self.len > self.smoothen+1 + allkeys = self.data.keys() + + #determine smoothing parameters + window = self.smoothen + if self.smooth_more_at and self.len > self.smooth_more_at:#smoothen more for large data sets + window = self.smoothen+self.len//self.smooth_more_at + if not window%2: + window +=1 + + for c in allkeys: + df[c+'_raw']=df[c].copy() + if print_smoothed: + from scipy.signal import savgol_filter + if self.suppress_outliers: + df[c] = hampel(df[c]) + df[c] = savgol_filter(df[c], window_length = window, polyorder = 3) + + + fig = df.plot(template = 'plotly_dark',y=[k for k in allkeys]) + + if print_smoothed: + fig.update_layout( + updatemenus=[ + dict(type="buttons",direction="right",x=0.5,y=1.2, + showactive=False, + buttons=list( + [ + dict( + label="Smooth", + method="update", + args=[{"y": [df[k] for k in allkeys]}], + ), + dict( + label="Raw", + method="update", + args=[{"y": [df[k+'_raw'] for k in allkeys]}], + ), + ] + ), + ) + ] + ) - df = pd.DataFrame().from_dict(datacp) - if len(df)<1: - return - fig = df.plot(#x='date', - template = 'plotly_dark', - #xlabel='record number', - y=[str(k) for k in datacp.keys()]) fig.write_html(self.output_file) if self.publish is not None: @@ -200,7 +263,7 @@ def _make_plot(self): def on_batch_end(self,batch,logs={}): - if self.record_counter<0: #always record first + if self.record_counter<0 and not self.call_on_epoch: #always record first self.record_counter=0 self._record_data(logs) return @@ -611,7 +674,7 @@ def predict_and_call(self,counter): use_multiprocessing=False, verbose=2) - if not isinstance(predicted, list): + if not (isinstance(predicted, list) or isinstance(predicted, dict)): predicted=[predicted] self.function_to_apply(self.call_counter,self.td.copyFeatureListToNumpy(False), From 2afa7a3468b45007e696a322297a7455328b7d99 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 10 Jan 2022 22:52:33 +0100 Subject: [PATCH 383/437] summary print for eager models where build does not work --- training/DeepJet_callbacks.py | 24 ++++++++++++++++++++++-- training/training_base.py | 1 + 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index f8c5dd8..b87ef13 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -290,7 +290,24 @@ def on_epoch_end(self,epoch,logs={}): self._record_data(logs) self._make_plot() - + + +class PrintSummary(Callback): + def __init__(self): + self.aimed=True + self.model=None + super(PrintSummary, self).__init__() + + def set_model(self,model): + self.model = model + + def on_batch_end(self, batch, logs={}): + if not self.aimed: + return + + self.aimed=False + print(self.model.summary()) + class plot_loss_or_metric(Callback): def __init__(self,outputDir,metrics): self.metrics=metrics @@ -567,7 +584,8 @@ def __init__(self, checkperiodoffset=0, plotLossEachEpoch=True, additional_plots=None, - batch_loss = False): + batch_loss = False, + print_summary_after_first_batch=False): self.nl_begin=newline_callbacks_begin(outputDir,plotLossEachEpoch) @@ -617,6 +635,8 @@ def __init__(self, self.history=History() self.callbacks.extend([ self.nl_end, self.history]) + if print_summary_after_first_batch: + self.callbacks += [PrintSummary()] diff --git a/training/training_base.py b/training/training_base.py index 7690c19..2627398 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -447,6 +447,7 @@ def trainModel(self, checkperiodoffset=self.trainedepoches, additional_plots=additional_plots, batch_loss = plot_batch_loss, + print_summary_after_first_batch=run_eagerly, minTokenLifetime = minTokenLifetime) if additional_callbacks is not None: From 7a714e04172b6c19ce0fb54f099b9bc322833a24 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 13 Jan 2022 07:55:57 +0000 Subject: [PATCH 384/437] direct traindata output with cast supported --- dataPipeline.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dataPipeline.py b/dataPipeline.py index f15ba41..c9969e0 100644 --- a/dataPipeline.py +++ b/dataPipeline.py @@ -7,13 +7,15 @@ class TrainDataGenerator(trainDataGenerator): def __init__(self, pad_rowsplits=False, fake_truth=None, - dict_output=False): + dict_output=False, + cast_to = None): trainDataGenerator.__init__(self) #self.extend_truth_list_by = extend_truth_list_by self.pad_rowsplits=pad_rowsplits self.dict_output = dict_output self.fake_truth = None + self.cast_to = cast_to if fake_truth is not None: if isinstance(fake_truth, int): self.fake_truth = [np.array([0],dtype='float32') @@ -26,6 +28,13 @@ def __init__(self, else: raise ValueError("TrainDataGenerator: only accepts an int or list of strings to extend truth list") self.fake_truth = etl + + def feedTrainData(self): + for _ in range(self.getNBatches()): + td = self.getBatch() + if self.cast_to is not None: + td.__class__ = self.cast_to + yield td def feedNumpyData(self): From 2216db8b47e234fe2dd0e98eefe63d543286d846 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 14 Jan 2022 09:45:08 +0100 Subject: [PATCH 385/437] auto casting in data collection for data generator --- DataCollection.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/DataCollection.py b/DataCollection.py index ca9fb4e..0bea140 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -604,7 +604,9 @@ def __stackData(self, dataclass, selector): return td def invokeGenerator(self, *args, **kwargs): - generator = TrainDataGenerator( *args, **kwargs) + generator = TrainDataGenerator( *args, + cast_to=self.dataclass, + **kwargs) generator.setBatchSize(self.__batchsize) generator.setSquaredElementsLimit(self.batch_uses_sum_of_squares) generator.setFileList([self.dataDir+ "/" + s for s in self.samples]) From 36e979a79b0d6eececfa058c76ebff84070c27cf Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 14 Jan 2022 18:41:23 +0100 Subject: [PATCH 386/437] better support of eager models --- DataCollection.py | 9 +++++ training/training_base.py | 80 ++++++++++++--------------------------- 2 files changed, 33 insertions(+), 56 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 0bea140..88aa4d7 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -612,6 +612,15 @@ def invokeGenerator(self, *args, **kwargs): generator.setFileList([self.dataDir+ "/" + s for s in self.samples]) return generator + def getExampleFeatureBatch(self): + if len(self.samples)<1: + raise RuntimeError("getExampleBatch: only works if there is at least one sample in the data collection.") + td = self.dataclass() + td.readFromFile(self.getSamplePath(self.samples[0])) + td.skim(0) + return td.transferFeatureListToNumpy(False) + + diff --git a/training/training_base.py b/training/training_base.py index 2627398..537960f 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -1,55 +1,22 @@ -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - - ## to call it from cammand lines import sys import os from argparse import ArgumentParser import shutil -from DeepJetCore.DataCollection import DataCollection -from DeepJetCore.DJCLosses import * -from DeepJetCore.DJCLayers import * -from pdb import set_trace -import tensorflow as tf +from DeepJetCore import DataCollection import tensorflow.keras as keras +import tensorflow as tf import copy from .gpuTools import DJCSetGPUs -import imp -try: - imp.find_module('Losses') - from Losses import * -except ImportError: - print('No Losses module found, ignoring at your own risk') - global_loss_list = {} +from ..customObjects import get_custom_objects +custom_objects_list = get_custom_objects() -try: - imp.find_module('Layers') - from Layers import * -except ImportError: - print('No Layers module found, ignoring at your own risk') - global_layers_list = {} - -try: - imp.find_module('Metrics') - from Metrics import * -except ImportError: - print('No metrics module found, ignoring at your own risk') - global_metrics_list = {} -custom_objects_list = {} -custom_objects_list.update(djc_global_loss_list) -custom_objects_list.update(djc_global_layers_list) -custom_objects_list.update(global_loss_list) -custom_objects_list.update(global_layers_list) -custom_objects_list.update(global_metrics_list) ##helper -import tensorflow as tf @@ -68,7 +35,6 @@ def __init__( recreate_silently=False ): - import sys scriptname=sys.argv[0] if parser is None: parser = ArgumentParser('Run the training') @@ -86,7 +52,6 @@ def __init__( args = parser.parse_args() self.args = args - import sys self.argstring = sys.argv #sanity check if args.isbatchrun: @@ -103,25 +68,18 @@ def __init__( DJCSetGPUs(args.gpu) if args.gpufraction>0 and args.gpufraction<1: - import sys - import tensorflow as tf gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=args.gpufraction) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) from tensorflow.keras import backend as K K.set_session(sess) print('using gpu memory fraction: '+str(args.gpufraction)) - - - - self.ngpus=1 self.dist_strat_scope=None if len(args.gpu): self.ngpus=len([i for i in args.gpu.split(',')]) print('running on '+str(self.ngpus)+ ' gpus') if self.ngpus > 1: - import tensorflow as tf self.dist_strat_scope = tf.distribute.MirroredStrategy() self.keras_inputs=[] @@ -217,7 +175,7 @@ def __init__( self.keras_inputs=[] self.keras_inputsshapes=[] - counter=0 + for s,dt,n in zip(shapes,inputdtypes,inputnames): self.keras_inputs.append(keras.layers.Input(shape=s, dtype=dt, name=n)) self.keras_inputsshapes.append(s) @@ -227,11 +185,13 @@ def __init__( self.val_data.writeToFile(self.outputDir+'valsamples.djcdc',abspath=True) if not isNewTraining: - kfile = self.outputDir+'/KERAS_check_model_last.h5' \ - if os.path.isfile(self.outputDir+'/KERAS_check_model_last.h5') else \ - self.outputDir+'/KERAS_model.h5' - if os.path.isfile(kfile): - print(kfile) + kfile = self.outputDir+'/KERAS_check_model_last.h5' + if not os.path.isfile(kfile): + kfile = self.outputDir+'/KERAS_check_model_last' #savedmodel format + if not os.path.isdir(kfile): + kfile='' + if len(kfile): + print('loading model',kfile) if self.dist_strat_scope is not None: with self.dist_strat_scope.scope(): @@ -298,7 +258,7 @@ def setModel(self,model,**modelargs): def saveCheckPoint(self,addstring=''): self.checkpointcounter=self.checkpointcounter+1 - self.saveModel("KERAS_model_checkpoint_"+str(self.checkpointcounter)+"_"+addstring +".h5") + self.saveModel("KERAS_model_checkpoint_"+str(self.checkpointcounter)+"_"+addstring) def _loadModel(self,filename): @@ -320,9 +280,9 @@ def setCustomOptimizer(self,optimizer): def compileModel(self, learningrate, clipnorm=None, - discriminator_loss=['binary_crossentropy'], print_models=False, metrics=None, + is_eager=False, **compileargs): if not self.keras_model and not self.GAN_mode: raise Exception('set model first') @@ -346,6 +306,11 @@ def compileModel(self, self.keras_model.compile(optimizer=self.optimizer,metrics=metrics,**compileargs) else: self.keras_model.compile(optimizer=self.optimizer,metrics=metrics,**compileargs) + + if is_eager: + #call on one batch to fully build it + self.keras_model(self.train_data.getExampleFeatureBatch()) + if print_models: print(self.keras_model.summary()) self.compiled=True @@ -427,7 +392,10 @@ def trainModel(self, # write only after the output classes have been added self._initTraining(nepochs,batchsize, batchsize_use_sum_of_squares) - self.keras_model.save(self.outputDir+'KERAS_untrained_model.h5') + try: #won't work for purely eager models + self.keras_model.save(self.outputDir+'KERAS_untrained_model') + except: + pass print('setting up callbacks') from .DeepJet_callbacks import DeepJet_callbacks minTokenLifetime = 5 @@ -517,7 +485,7 @@ def trainModel(self, traingen.shuffleFileList() # - self.saveModel("KERAS_model.h5") + self.saveModel("KERAS_model") return self.keras_model, self.callbacks.history From da04b6c5b131496167564ee0cea504d02f852a3e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 15 Jan 2022 07:28:12 +0100 Subject: [PATCH 387/437] reduce clutter by making directory --- training/DeepJet_callbacks.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index b87ef13..c691bc8 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -27,12 +27,18 @@ matplotlib.use('Agg') #helper + def publish(file_to_publish, publish_to_path): cpstring = 'cp -f ' if "@" in publish_to_path: cpstring = 'scp ' + spl = publish_to_path.split(':') + path = spl[1] + user = spl[0].split('@')[0] + server = spl[0].split('@')[1] + os.system('ssh -o ConnectTimeout=20 '+user+'@'+server+' "mkdir -p '+path+'"') basefilename = os.path.basename(file_to_publish) - os.system(cpstring + file_to_publish + ' ' + publish_to_path +'_'+basefilename+ ' 2>&1 > /dev/null') + os.system(cpstring + file_to_publish + ' ' + publish_to_path +'/'+basefilename+ ' 2>&1 > /dev/null') def hampel(vals_orig, k=7, t0=3): ''' @@ -102,7 +108,7 @@ def __init__(self, publish: uses scp or cp to copy the output file to another location (e.g. from a cluster to a website server). if the path contains and "@", it will use scp. This only works with configured key pairs or tokens. - The path needs to also contain the output file name + The path does not contain the output file name dtype: data type for data to be stored to keep memory consuption within reason (be careful) @@ -722,5 +728,4 @@ def on_batch_end(self, batch, logs=None): - - + \ No newline at end of file From bcc95cce7571c58631393f2e8aad13ca50bb4a5d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 18 Jan 2022 21:20:04 +0100 Subject: [PATCH 388/437] fix for non serialisable models --- training/training_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/training/training_base.py b/training/training_base.py index 537960f..3046e29 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -485,7 +485,7 @@ def trainModel(self, traingen.shuffleFileList() # - self.saveModel("KERAS_model") + self.saveModel("KERAS_model.h5") return self.keras_model, self.callbacks.history From a112aff15bf978c21fcbec9358824f4455d244ee Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 20 Jan 2022 11:58:46 +0100 Subject: [PATCH 389/437] try for publish --- training/DeepJet_callbacks.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/training/DeepJet_callbacks.py b/training/DeepJet_callbacks.py index c691bc8..679da91 100644 --- a/training/DeepJet_callbacks.py +++ b/training/DeepJet_callbacks.py @@ -29,16 +29,19 @@ #helper def publish(file_to_publish, publish_to_path): - cpstring = 'cp -f ' - if "@" in publish_to_path: - cpstring = 'scp ' - spl = publish_to_path.split(':') - path = spl[1] - user = spl[0].split('@')[0] - server = spl[0].split('@')[1] - os.system('ssh -o ConnectTimeout=20 '+user+'@'+server+' "mkdir -p '+path+'"') - basefilename = os.path.basename(file_to_publish) - os.system(cpstring + file_to_publish + ' ' + publish_to_path +'/'+basefilename+ ' 2>&1 > /dev/null') + try: + cpstring = 'cp -f ' + if "@" in publish_to_path: + cpstring = 'scp -o ConnectTimeout=20 ' + spl = publish_to_path.split(':') + path = spl[1] + user = spl[0].split('@')[0] + server = spl[0].split('@')[1] + os.system('ssh -o ConnectTimeout=20 '+user+'@'+server+' "mkdir -p '+path+'"') + basefilename = os.path.basename(file_to_publish) + os.system(cpstring + file_to_publish + ' ' + publish_to_path +'/'+basefilename+ ' 2>&1 > /dev/null') + except Exception as e: + print('exception in publish', e, 'when trying to publish to',publish_to_path ,'. Training will ignore this exception and move on.') def hampel(vals_orig, k=7, t0=3): ''' From a5df438c6ce9d8ba45e4743a43674cae7aa714ec Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 23 Jan 2022 14:46:10 +0100 Subject: [PATCH 390/437] bugfix on takeweightsfrom option --- training/training_base.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/training/training_base.py b/training/training_base.py index 3046e29..0fc942a 100644 --- a/training/training_base.py +++ b/training/training_base.py @@ -29,7 +29,7 @@ def __init__( useweights=False, testrun=False, testrun_fraction=0.1, resumeSilently=False, - renewtokens=True, + renewtokens=False, collection_class=DataCollection, parser=None, recreate_silently=False @@ -241,11 +241,9 @@ def setModel(self,model,**modelargs): self.keras_model.build(None) if len(self.keras_weight_model_path): - from DeepJetCore.modeltools import apply_weights_where_possible - tbcopy = self - tbcopy.loadModel(self.keras_weight_model_path) + from DeepJetCore.modeltools import apply_weights_where_possible, load_model self.keras_model = apply_weights_where_possible(self.keras_model, - tbcopy.keras_model) + load_model(self.keras_weight_model_path)) #try: # self.keras_model=model(self.keras_inputs,**modelargs) #except BaseException as e: @@ -358,7 +356,7 @@ def _initTraining(self, from _thread import start_new_thread if self.renewtokens: - print('starting afs backgrounder') + print('afs backgrounder has proven to be unreliable, use with care') checkTokens() start_new_thread(renew_token_process,()) From e3628c8a6a9f9b5fca99633788dfe46dc0cff72d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sat, 23 Jul 2022 08:21:13 +0200 Subject: [PATCH 391/437] gpu conversion option and some clean up. ready to integrate djcdata --- DataCollection.py | 17 +++++++++++++++++ bin/convertFromSource.py | 17 ++++++++++++++--- docker/Dockerfile | 1 + 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/DataCollection.py b/DataCollection.py index 88aa4d7..efd5326 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -394,6 +394,23 @@ def __writeData(self, sample, outputDir): def __writeData_async_andCollect(self, startindex, outputDir): + td=self.dataclass() + + if self.nprocs == 1 or (hasattr(td, "no_fork") and td.no_fork):#no need to fork + for sample in self.sourceList: + + sbasename = os.path.basename(sample) + newname = sbasename[:sbasename.rfind('.')]+'.djctd' + newpath=os.path.abspath(outputDir+newname) + + logger.info('convertFromSourceFile'+sample) + td.writeFromSourceFile(sample, self.weighterobjects, istraining = not self.istestdata, outname=newpath) + + td.clear() + + self.writeToFile(outputDir+'/dataCollection.djcdc') + return + from multiprocessing import Process, Queue, cpu_count, Lock wo_queue = Queue() diff --git a/bin/convertFromSource.py b/bin/convertFromSource.py index 082bc96..cfb4fc4 100755 --- a/bin/convertFromSource.py +++ b/bin/convertFromSource.py @@ -16,13 +16,12 @@ logging.basicConfig(format='%(asctime)s:%(levelname)s:%(name)s: %(message)s') logging.getLogger().setLevel(logging.INFO) -from DeepJetCore.DataCollection import DataCollection -from DeepJetCore.conversion.conversion import class_options parser = ArgumentParser('program to convert source files to traindata format') parser.add_argument("-i", help="input file list (required)", metavar="FILE", default='') parser.add_argument("-o", help="set output path (required)", metavar="PATH", default='') -parser.add_argument("-c", choices = class_options.keys(), help="set output class (required, options: %s)" % ', '.join(class_options.keys()), metavar="Class") +parser.add_argument("-c", help="set output class (required)", metavar="Class") +parser.add_argument("--gpu", help="enable GPU usage for conversion", action='store_true', default=False) parser.add_argument("-r", help="set path to snapshot that got interrupted", metavar="FILE", default='') parser.add_argument("--testdata", action='store_true', help='convert as test data') parser.add_argument("-n", default='', help="(optional) number of child processes") @@ -42,6 +41,14 @@ # process options args=parser.parse_args() + +#first GPU +if args.gpu: + import setGPU + +from DeepJetCore.DataCollection import DataCollection +from DeepJetCore.conversion.conversion import class_options + infile=args.i outPath=args.o if (len(infile)<1 or len(outPath)<1) and not len(args.r): @@ -54,6 +61,10 @@ dofilecheck=args.checkFiles testdata = args.testdata +if args.gpu: + if (len(nchilds) and int(nchilds)>1) and (not args.nothreads): + print("WARNING: enabling gpu for conversion and processing multiple files in parallel could be an issue!") + #fileIsValid if args.batch: diff --git a/docker/Dockerfile b/docker/Dockerfile index 7128d8d..3a50ac2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -84,6 +84,7 @@ RUN testEnvironment.py RUN cd /usr/share/DJC/DeepJetCore/testing/unit && \ python3 test.py +RUN pip3 install pyjet From 172e8293d1275aef8fef16f92f75e16913205316 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 11:10:24 +0200 Subject: [PATCH 392/437] setup for auto builds on cern machines --- docker/build_if_needed.sh | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 docker/build_if_needed.sh diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh new file mode 100644 index 0000000..402f2a5 --- /dev/null +++ b/docker/build_if_needed.sh @@ -0,0 +1,9 @@ +#!/bin/zsh + +git fetch +if [ $(git rev-parse HEAD) == $(git rev-parse @{u}) ] +then +echo no pull +else +echo pull +fi From b9e6998acacc4aa67c9223298014e2f3790ca6e0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 11:25:10 +0200 Subject: [PATCH 393/437] test auto builds --- docker/Dockerfile | 70 +++++++++++++++++---------------------- docker/Dockerfile_base | 38 ++++++--------------- docker/build.sh | 5 ++- docker/build_if_needed.sh | 23 ++++++++++--- 4 files changed, 63 insertions(+), 73 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 3a50ac2..72974fc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,59 +1,53 @@ -FROM cernml4reco/djcbase:cu11.1 +FROM cernml4reco/djcbase:$BASE_IMAGE_TAG - -RUN apt-get update --fix-missing +#update if needed +RUN pip3 install --upgrade pip +RUN apt-get update --fix-missing ################################################################################ # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.4.0 tensorflow_probability + pip3 --no-cache-dir install tensorflow-gpu==2.9.1 tensorflow_probability - - -RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ +RUN cd /usr/local/lib/python3.8/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ cd gpus && \ ln -s /usr/local/cuda cuda - -RUN ln -s /usr/local/cuda-11.1/lib64/libcusolver.so.11 /usr/local/cuda-11.1/lib64/libcusolver.so.10 -ENV LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:${LD_LIBRARY_PATH}" - +RUN ls -ltr /usr/local/cuda-11.6 +ENV LD_LIBRARY_PATH="/usr/local/cuda-11.6/lib64:${LD_LIBRARY_PATH}" + +# QKeras +RUN pip3 install git+https://github.com/google/qkeras + +# HLS4ML +RUN pip3 install git+https://github.com/fastmachinelearning/hls4ml.git#egg=hls4ml[profiling] tensorflow_datasets +RUN pip3 install git+https://github.com/thesps/conifer.git -# helpers for ragged and cuda compilation +############# some more useful packages, mostly requested by users -# for kenneth RUN apt-get install -y vim -# QKeras - -RUN git clone https://github.com/google/qkeras &&\ - cd qkeras &&\ - python3 setup.py build &&\ - python3 setup.py install - - -#some more useful packages -RUN pip3 install bayesian-optimization mgzip mysql-connector-python +RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet +########### torch stuff -# HLS4ML -RUN pip3 install git+https://github.com/fastmachinelearning/hls4ml.git#egg=hls4ml[profiling] tensorflow_datasets -RUN pip3 install git+https://github.com/thesps/conifer.git - + +RUN pip3 install +#moved from base +RUN pip3 install future gensim jupyter prompt-toolkit +RUN pip3 install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ + pip3 install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ + pip3 install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ + pip3 install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ + pip3 install torch-geometric -#add some kerberos for convenience -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get install -y krb5-user - -#use the standard cern config -COPY krb5.conf /etc/krb5.conf +EXPOSE 8888 -RUN apt-get update --fix-missing ################################################################################ # the actual DeepJetCore. Make sure this gets built every time @@ -78,14 +72,10 @@ ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" -#run tests +#### run tests RUN testEnvironment.py RUN cd /usr/share/DJC/DeepJetCore/testing/unit && \ python3 test.py + -RUN pip3 install pyjet - - - - \ No newline at end of file diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index f802c03..7fae4df 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -1,17 +1,14 @@ -FROM nvidia/cuda:11.1.1-cudnn8-devel-ubuntu18.04 - -#11.2 not yet with torch support - +FROM nvidia/cuda:11.6.2-cudnn8-devel-ubuntu20.04 SHELL ["/bin/bash", "-c"] -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list && apt-get update --fix-missing +RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list +RUN apt-get update +RUN apt-get install -y python3 python3-pip && \ + pip3 install --upgrade pip -#base -RUN apt-get install -y python3.6-dev python3-pip -RUN pip3 install --upgrade pip RUN ldconfig #basic user tools @@ -19,14 +16,13 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get install -y git wget nano emacs \ evince eog ffmpeg unzip zsh python3-tk locales \ htop -RUN apt-get update --fix-missing - -#doesn't work anyway -#RUN export DEBIAN_FRONTEND=noninteractive && \ -# apt-get install -y krb5-user && \ -# sed -i 's/default_realm = ATHENA.MIT.EDU/default_realm = CERN.CH/g' /etc/krb5.conf -#RUN apt-get update --fix-missing +#add some kerberos for convenience +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get install -y krb5-user + +#use the standard cern config +COPY krb5.conf /etc/krb5.conf ############ root part RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev @@ -63,15 +59,6 @@ RUN pip3 install opencv-python easydict tqdm Cython numba RUN pip3 install gpustat setGPU -## torch/jupyter stuff -RUN pip3 install future gensim jupyter prompt-toolkit -RUN pip3 install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ - pip3 install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ - pip3 install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ - pip3 install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ - pip3 install torch-geometric - -EXPOSE 8888 #for singularity panic RUN adduser --disabled-password --gecos "" dummyuser @@ -88,6 +75,3 @@ RUN pip3 install awkward - - - diff --git a/docker/build.sh b/docker/build.sh index f15e0b5..2467d72 100644 --- a/docker/build.sh +++ b/docker/build.sh @@ -1,3 +1,6 @@ #!/usr/bin/bash -docker build -t cernml4reco/deepjetcore3:latest . --build-arg BUILD_DATE="$(date)" \ No newline at end of file +BASE_IMAGE_TAG=cu11.6 + +docker build -t cernml4reco/deepjetcore3:latest . \ + --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ No newline at end of file diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 402f2a5..910924a 100644 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -1,9 +1,22 @@ -#!/bin/zsh +#!/bin/bash + +BASE_IMAGE_TAG=cu11.6 git fetch -if [ $(git rev-parse HEAD) == $(git rev-parse @{u}) ] +if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ] then -echo no pull -else -echo pull + + OLD_BASE_ID=$(git rev-parse HEAD:docker/Dockerfile_base) + git pull + NEW_BASE_ID=$(git rev-parse HEAD:docker/Dockerfile_base) + + if [ $OLD_BASE_ID != $NEW_BASE_ID ] + then + echo "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" + echo docker build -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . + echo docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG + fi + + echo docker build -t cernml4reco/deepjetcore3:latest . \ + --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG fi From b68954c55ba908a3f9d0cebc6f5f15342cb51f30 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 11:26:56 +0200 Subject: [PATCH 394/437] chmod --- docker/build_if_needed.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 docker/build_if_needed.sh diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh old mode 100644 new mode 100755 From efd5548032c38cd15fa558dab09b0434cab3447b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 11:29:37 +0200 Subject: [PATCH 395/437] arg parsing --- docker/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 72974fc..acea9e9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,5 @@ +ARG BASE_IMAGE_TAG FROM cernml4reco/djcbase:$BASE_IMAGE_TAG #update if needed From 7777195ef27ebbe6ebbe87023ddb37137b6c9724 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 11:38:56 +0200 Subject: [PATCH 396/437] more auto build checks --- docker/Dockerfile | 2 ++ docker/build_if_needed.sh | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index acea9e9..65a43f0 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -55,6 +55,8 @@ EXPOSE 8888 ARG BUILD_DATE LABEL org.label-schema.build-date=$BUILD_DATE +ARG COMMIT +LABEL djc.commit=$COMMIT ENV DEEPJETCORE /usr/share/DJC/DeepJetCore diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 910924a..9466e9b 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -5,6 +5,10 @@ BASE_IMAGE_TAG=cu11.6 git fetch if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ] then + + COMMIT=$(git log -n 1 --pretty=format:"%H") + + echo "building container for commit ${COMMIT}" OLD_BASE_ID=$(git rev-parse HEAD:docker/Dockerfile_base) git pull @@ -13,10 +17,11 @@ then if [ $OLD_BASE_ID != $NEW_BASE_ID ] then echo "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" - echo docker build -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . + echo docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . echo docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG fi - echo docker build -t cernml4reco/deepjetcore3:latest . \ - --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG + echo docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ + --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ + --build-arg COMMIT=$COMMIT fi From 6da427b321dc50f00b255cc2d2b9c398c5e22d05 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 11:45:26 +0200 Subject: [PATCH 397/437] auto build script --- docker/build_if_needed.sh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 9466e9b..ee4b9ef 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -2,8 +2,14 @@ BASE_IMAGE_TAG=cu11.6 + +if [ $1 ] +then +FORCE=true +fi + git fetch -if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ] +if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ] || [ $FORCE ] then COMMIT=$(git log -n 1 --pretty=format:"%H") @@ -14,14 +20,15 @@ then git pull NEW_BASE_ID=$(git rev-parse HEAD:docker/Dockerfile_base) - if [ $OLD_BASE_ID != $NEW_BASE_ID ] + if [ $OLD_BASE_ID != $NEW_BASE_ID ] || [ $FORCE ] then - echo "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" - echo docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . - echo docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG + "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" + docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . + docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG fi - echo docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ + docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ --build-arg COMMIT=$COMMIT + docker push --max-concurrent-uploads 3 cernml4reco/deepjetcore3:latest fi From 7f881d603492235ec7012ca0372499eb0e21da95 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 11:46:29 +0200 Subject: [PATCH 398/437] add logs --- docker/build_if_needed.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index ee4b9ef..a05c742 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -23,12 +23,12 @@ then if [ $OLD_BASE_ID != $NEW_BASE_ID ] || [ $FORCE ] then "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" - docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . - docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG + docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . > base_build.log + docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG > base_push.log fi docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ - --build-arg COMMIT=$COMMIT - docker push --max-concurrent-uploads 3 cernml4reco/deepjetcore3:latest + --build-arg COMMIT=$COMMIT > build.log + docker push --max-concurrent-uploads 3 cernml4reco/deepjetcore3:latest > push.log fi From c54d95bee01ac121c28fbf0e11e8fdd10bee7515 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 11:59:40 +0200 Subject: [PATCH 399/437] emails --- docker/build_if_needed.sh | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index a05c742..08d5e86 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -23,12 +23,24 @@ then if [ $OLD_BASE_ID != $NEW_BASE_ID ] || [ $FORCE ] then "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" - docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . > base_build.log - docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG > base_push.log + echo docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . > base_build.log + echo docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG > base_push.log + + { echo "Subject: base build finished" ; + cat base_build.log ; + echo "\n################# push log ##############\n" ; + cat base_push.log ; } | sendmail jkiesele@cern.ch; + fi - docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ + echo docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ --build-arg COMMIT=$COMMIT > build.log - docker push --max-concurrent-uploads 3 cernml4reco/deepjetcore3:latest > push.log + echo docker push --max-concurrent-uploads 3 cernml4reco/deepjetcore3:latest > push.log + + { echo "Subject: DJC build finished" ; + cat build.log ; + echo "\n################# push log ##############\n" ; + cat push.log ; } | sendmail jkiesele@cern.ch; + fi From d4c8af926fe78fe6bd13d7776b5cc3d6ee60d687 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 12:00:23 +0200 Subject: [PATCH 400/437] removing dry run --- docker/build_if_needed.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 08d5e86..0f378bd 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -22,9 +22,9 @@ then if [ $OLD_BASE_ID != $NEW_BASE_ID ] || [ $FORCE ] then - "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" - echo docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . > base_build.log - echo docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG > base_push.log + echo "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" + docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . > base_build.log + docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG > base_push.log { echo "Subject: base build finished" ; cat base_build.log ; @@ -33,10 +33,10 @@ then fi - echo docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ + docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ --build-arg COMMIT=$COMMIT > build.log - echo docker push --max-concurrent-uploads 3 cernml4reco/deepjetcore3:latest > push.log + docker push --max-concurrent-uploads 3 cernml4reco/deepjetcore3:latest > push.log { echo "Subject: DJC build finished" ; cat build.log ; From 7698716006d8770fb70b0b9b9ba5d0a783d7e6b0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 13:21:27 +0200 Subject: [PATCH 401/437] some more docu update torch geo --- docker/Dockerfile | 8 +++--- docker/build_if_needed.sh | 53 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 52 insertions(+), 9 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 65a43f0..9933b4f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -41,11 +41,9 @@ RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet RUN pip3 install #moved from base RUN pip3 install future gensim jupyter prompt-toolkit -RUN pip3 install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ - pip3 install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ - pip3 install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ - pip3 install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.8.0+cu111.html &&\ - pip3 install torch-geometric +RUN pip3 install install torch-scatter torch-sparse torch-cluster \ + torch-spline-conv torch-geometric \ + -f https://data.pyg.org/whl/torch-1.12.0+cu116.html EXPOSE 8888 diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 0f378bd..7fde25c 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -24,21 +24,66 @@ then then echo "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . > base_build.log - docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG > base_push.log - { echo "Subject: base build finished" ; + if [ $? != 0 ]; + then + BASE_FAIL=true + else + docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG > base_push.log + if [ $? != 0 ]; + then + BASE_PUSH_FAIL=true + fi + fi + + subject="Subject: base build finished" + if [ $BASE_FAIL ] + then + subject="Subject: !! base build FAILED" + fi + if [ $BASE_PUSH_FAIL ] + then + subject="Subject: !! base push FAILED" + fi + + { echo $subject ; cat base_build.log ; echo "\n################# push log ##############\n" ; cat base_push.log ; } | sendmail jkiesele@cern.ch; fi + if [ $BASE_FAIL ] || [ $BASE_PUSH_FAIL ] + then + exit + fi + docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ --build-arg COMMIT=$COMMIT > build.log - docker push --max-concurrent-uploads 3 cernml4reco/deepjetcore3:latest > push.log + if [ $? != 0 ]; + then + FAIL=true + else + #only push if build was successful (e.g. the unit tests checked out) + docker push --max-concurrent-uploads 3 cernml4reco/deepjetcore3:latest > push.log + if [ $? != 0 ]; + then + PUSH_FAIL=true + fi + fi + + subject="Subject: base build finished" + if [ $FAIL ] + then + subject="Subject: !! DJC build FAILED" + fi + if [ $PUSH_FAIL ] + then + subject="Subject: !! DJC push FAILED" + fi - { echo "Subject: DJC build finished" ; + { echo $subject ; cat build.log ; echo "\n################# push log ##############\n" ; cat push.log ; } | sendmail jkiesele@cern.ch; From d07fb214927f14049e0158d8bad89d91cede02ff Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 14:08:43 +0200 Subject: [PATCH 402/437] fix --- docker/Dockerfile | 3 +-- docker/build_if_needed.sh | 16 ++++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 9933b4f..6bb2007 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -37,8 +37,7 @@ RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet ########### torch stuff - -RUN pip3 install + #moved from base RUN pip3 install future gensim jupyter prompt-toolkit RUN pip3 install install torch-scatter torch-sparse torch-cluster \ diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 7fde25c..ee88c13 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -23,13 +23,13 @@ then if [ $OLD_BASE_ID != $NEW_BASE_ID ] || [ $FORCE ] then echo "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" - docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . > base_build.log + docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . > base_build.log 2>&1 if [ $? != 0 ]; then BASE_FAIL=true else - docker push --max-concurrent-uploads 3 cernml4reco/djcbase:$BASE_IMAGE_TAG > base_push.log + docker push cernml4reco/djcbase:$BASE_IMAGE_TAG > base_push.log 2>&1 if [ $? != 0 ]; then BASE_PUSH_FAIL=true @@ -48,7 +48,9 @@ then { echo $subject ; cat base_build.log ; - echo "\n################# push log ##############\n" ; + echo "" ; + echo "################# push log ##############" ; + echo "" ; cat base_push.log ; } | sendmail jkiesele@cern.ch; fi @@ -60,13 +62,13 @@ then docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ - --build-arg COMMIT=$COMMIT > build.log + --build-arg COMMIT=$COMMIT > build.log 2>&1 if [ $? != 0 ]; then FAIL=true else #only push if build was successful (e.g. the unit tests checked out) - docker push --max-concurrent-uploads 3 cernml4reco/deepjetcore3:latest > push.log + docker push cernml4reco/deepjetcore3:latest > push.log 2>&1 if [ $? != 0 ]; then PUSH_FAIL=true @@ -85,7 +87,9 @@ then { echo $subject ; cat build.log ; - echo "\n################# push log ##############\n" ; + echo "" ; + echo "################# push log ##############" ; + echo "" ; cat push.log ; } | sendmail jkiesele@cern.ch; fi From 784f4c8fb64a10ff6c58a2cdb2d475cc6432c45b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 14:32:06 +0200 Subject: [PATCH 403/437] test --- compiled/Makefile | 2 +- docker/build.sh | 8 ++++++-- docker/build_if_needed.sh | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/compiled/Makefile b/compiled/Makefile index 021c197..4769f32 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -1,7 +1,7 @@ # location of the Boost Python include files and library PYTHON_INCLUDE = `python3-config --includes` -PYTHON_LIB=`python3-config --libs` +PYTHON_LIB=`python3-config --ldflags` LINUXADD= #-Wl --export-dynamic diff --git a/docker/build.sh b/docker/build.sh index 2467d72..acc3e04 100644 --- a/docker/build.sh +++ b/docker/build.sh @@ -2,5 +2,9 @@ BASE_IMAGE_TAG=cu11.6 -docker build -t cernml4reco/deepjetcore3:latest . \ - --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ No newline at end of file +COMMIT=manual + + +docker build $FORCE_NO_CACHE -t cernml4reco/deepjetcore3:latest . \ + --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ + --build-arg COMMIT=$COMMIT \ No newline at end of file diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index ee88c13..5482f51 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -52,6 +52,8 @@ then echo "################# push log ##############" ; echo "" ; cat base_push.log ; } | sendmail jkiesele@cern.ch; + + FORCE_NO_CACHE=" --no-cache=true " fi @@ -60,7 +62,8 @@ then exit fi - docker build --no-cache=true -t cernml4reco/deepjetcore3:latest . \ + # only force no cache if base image has been rebuilt + docker build $FORCE_NO_CACHE -t cernml4reco/deepjetcore3:latest . \ --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ --build-arg COMMIT=$COMMIT > build.log 2>&1 if [ $? != 0 ]; From 20ee8c177375645fdfc0401bb91e4cbcf24a8de3 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 14:49:22 +0200 Subject: [PATCH 404/437] fixes --- compiled/Makefile | 6 +++--- docker/Dockerfile | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/compiled/Makefile b/compiled/Makefile index 4769f32..5f05438 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -28,7 +28,7 @@ classdict.so: classdict.cxx %: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx - g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIB) -lboost_python3 -lboost_numpy3 $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ + g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIB) -lpython3.8 -lboost_python3 -lboost_numpy3 $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ mv $@ ../bin/ #helpers @@ -40,10 +40,10 @@ obj/%.o: src/%.cpp #pack helpers in lib libdeepjetcorehelpers.so: $(OBJ_FILES) - g++ -o $@ -shared -fPIC $(LINUXADD) $(CFLAGS) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lboost_python3 -lboost_numpy3 + g++ -o $@ -shared -fPIC $(LINUXADD) $(CFLAGS) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lpython3.8 -lboost_python3 -lboost_numpy3 %.so: %.o libdeepjetcorehelpers.so libquicklz.so - g++ -o $(@) -shared -g -fPIC $(CFLAGS) $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lboost_python3 -lboost_numpy3 -L./ -ldeepjetcorehelpers + g++ -o $(@) -shared -g -fPIC $(CFLAGS) $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lpython3.8 -lboost_python3 -lboost_numpy3 -L./ -ldeepjetcorehelpers %.o: src/%.C g++ $(ROOTCFLAGS) -O2 -g -I./interface $(PYTHON_INCLUDE) -fPIC $(CFLAGS) -c -o $(@) $< diff --git a/docker/Dockerfile b/docker/Dockerfile index 6bb2007..6e61896 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -50,6 +50,12 @@ EXPOSE 8888 ################################################################################ # the actual DeepJetCore. Make sure this gets built every time +# prepare the environment +RUN cd /usr/lib/x86_64-linux-gnu &&\ + ln -s libboost_numpy38.so libboost_numpy3.so && \ + ln -s libboost_python38.so libboost_python3.so + + ARG BUILD_DATE LABEL org.label-schema.build-date=$BUILD_DATE ARG COMMIT From 0db95276c791ec6f7c24f0f5b01835e2a6cb153d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 14:59:07 +0200 Subject: [PATCH 405/437] last part of auto build --- docker/build_if_needed.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 5482f51..a74036d 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -5,7 +5,7 @@ BASE_IMAGE_TAG=cu11.6 if [ $1 ] then -FORCE=true +FORCE=$1 fi git fetch @@ -20,7 +20,7 @@ then git pull NEW_BASE_ID=$(git rev-parse HEAD:docker/Dockerfile_base) - if [ $OLD_BASE_ID != $NEW_BASE_ID ] || [ $FORCE ] + if [ $OLD_BASE_ID != $NEW_BASE_ID ] || [ $FORCE == "force_base" ] then echo "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" docker build --no-cache=true -t cernml4reco/djcbase:$BASE_IMAGE_TAG -f Dockerfile_base . > base_build.log 2>&1 From f00bc02241cd5b4a82403062413296f2a7ed4aba Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 15:08:58 +0200 Subject: [PATCH 406/437] test auto build commit --- docker/build_if_needed.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index a74036d..5161367 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -95,4 +95,5 @@ then echo "" ; cat push.log ; } | sendmail jkiesele@cern.ch; + fi From fe35f626d795ec5604bef0163403fd5d20c96d17 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 15:15:00 +0200 Subject: [PATCH 407/437] more auto build tests --- docker/build_if_needed.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 5161367..18808d9 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -2,14 +2,14 @@ BASE_IMAGE_TAG=cu11.6 - +FORCE="no" if [ $1 ] then FORCE=$1 fi git fetch -if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ] || [ $FORCE ] +if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ] || [ $FORCE != "no" ] then COMMIT=$(git log -n 1 --pretty=format:"%H") From 98ba86fdb6426ebea25fb625b393250d2538cb90 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 15:15:43 +0200 Subject: [PATCH 408/437] force auto build --- docker/build_if_needed.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 18808d9..f559df9 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -12,6 +12,7 @@ git fetch if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ] || [ $FORCE != "no" ] then + COMMIT=$(git log -n 1 --pretty=format:"%H") echo "building container for commit ${COMMIT}" From f26ca8f4946ad9031250455f34a3dc591d8653f8 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 18:10:22 +0200 Subject: [PATCH 409/437] revert to tf2.8 cuda 11.2 --- docker/Dockerfile | 6 +++--- docker/Dockerfile_base | 2 +- docker/build_if_needed.sh | 4 ++-- docker/image_tags.sh | 2 ++ 4 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 docker/image_tags.sh diff --git a/docker/Dockerfile b/docker/Dockerfile index 6e61896..3d68f14 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -11,15 +11,15 @@ RUN apt-get update --fix-missing # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.9.1 tensorflow_probability + pip3 --no-cache-dir install tensorflow-gpu==2.8 tensorflow_probability RUN cd /usr/local/lib/python3.8/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ cd gpus && \ ln -s /usr/local/cuda cuda -RUN ls -ltr /usr/local/cuda-11.6 -ENV LD_LIBRARY_PATH="/usr/local/cuda-11.6/lib64:${LD_LIBRARY_PATH}" +RUN ls -ltr /usr/local/cuda-11.2 +ENV LD_LIBRARY_PATH="/usr/local/cuda-11.2/lib64:${LD_LIBRARY_PATH}" # QKeras RUN pip3 install git+https://github.com/google/qkeras diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 7fae4df..1fda961 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -1,5 +1,5 @@ -FROM nvidia/cuda:11.6.2-cudnn8-devel-ubuntu20.04 +FROM nvidia/cuda:11.2-cudnn8-devel-ubuntu20.04 SHELL ["/bin/bash", "-c"] diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index f559df9..36cb8b5 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -1,7 +1,5 @@ #!/bin/bash -BASE_IMAGE_TAG=cu11.6 - FORCE="no" if [ $1 ] then @@ -21,6 +19,8 @@ then git pull NEW_BASE_ID=$(git rev-parse HEAD:docker/Dockerfile_base) + source image_tags.sh #in case this was updated in the pull + if [ $OLD_BASE_ID != $NEW_BASE_ID ] || [ $FORCE == "force_base" ] then echo "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" diff --git a/docker/image_tags.sh b/docker/image_tags.sh new file mode 100644 index 0000000..bcc2f0d --- /dev/null +++ b/docker/image_tags.sh @@ -0,0 +1,2 @@ + +BASE_IMAGE_TAG=cu11.2 \ No newline at end of file From 9b3422bdd7e5923bf4903e436b09e40e1e49f0c5 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 18:13:18 +0200 Subject: [PATCH 410/437] fixed form --- docker/Dockerfile_base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 1fda961..5db276c 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -1,5 +1,5 @@ -FROM nvidia/cuda:11.2-cudnn8-devel-ubuntu20.04 +FROM nvidia/cuda:11.2.1-cudnn8-devel-ubuntu20.04 SHELL ["/bin/bash", "-c"] From 73e49137e8504d8934358bffcb313bb4ee76160e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 18:15:49 +0200 Subject: [PATCH 411/437] updated torch cuda --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 3d68f14..491cb4a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -42,7 +42,7 @@ RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet RUN pip3 install future gensim jupyter prompt-toolkit RUN pip3 install install torch-scatter torch-sparse torch-cluster \ torch-spline-conv torch-geometric \ - -f https://data.pyg.org/whl/torch-1.12.0+cu116.html + -f https://data.pyg.org/whl/torch-1.12.0+cu112.html EXPOSE 8888 From 695f5c316b3c8285de8546c8dbe1a0eefba39458 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 20:29:28 +0200 Subject: [PATCH 412/437] torch fix --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 491cb4a..deff19c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -37,9 +37,9 @@ RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet ########### torch stuff - #moved from base RUN pip3 install future gensim jupyter prompt-toolkit +RUN pip3 install torch==1.12.0 RUN pip3 install install torch-scatter torch-sparse torch-cluster \ torch-spline-conv torch-geometric \ -f https://data.pyg.org/whl/torch-1.12.0+cu112.html From 136d81156f6df5c0789a875bb212da9bbb574c7d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 21:47:28 +0200 Subject: [PATCH 413/437] revert to TF 2.4 --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index deff19c..eaade18 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get update --fix-missing # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.8 tensorflow_probability + pip3 --no-cache-dir install tensorflow-gpu==2.4.0 tensorflow_probability RUN cd /usr/local/lib/python3.8/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ From abe1a95dac71ac91557ff1c1dc11db823898218b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 21:50:23 +0200 Subject: [PATCH 414/437] torch first to play more easily with TF version --- docker/Dockerfile | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index eaade18..c992740 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -6,6 +6,16 @@ FROM cernml4reco/djcbase:$BASE_IMAGE_TAG RUN pip3 install --upgrade pip RUN apt-get update --fix-missing +########### torch stuff: pretty slow so do that first + +#moved from base +RUN pip3 install future gensim jupyter prompt-toolkit +RUN pip3 install torch==1.12.0 +RUN pip3 install install torch-scatter torch-sparse torch-cluster \ + torch-spline-conv torch-geometric \ + -f https://data.pyg.org/whl/torch-1.12.0+cu112.html + +EXPOSE 8888 ################################################################################ # Tensorflow @@ -35,16 +45,7 @@ RUN apt-get install -y vim RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet -########### torch stuff -#moved from base -RUN pip3 install future gensim jupyter prompt-toolkit -RUN pip3 install torch==1.12.0 -RUN pip3 install install torch-scatter torch-sparse torch-cluster \ - torch-spline-conv torch-geometric \ - -f https://data.pyg.org/whl/torch-1.12.0+cu112.html - -EXPOSE 8888 ################################################################################ From 96c063ee27266611f55ff0dcf5c194f4542e869d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Sun, 24 Jul 2022 23:12:04 +0200 Subject: [PATCH 415/437] fixed back cusolver symlink for tf 2.4 --- docker/Dockerfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index c992740..f4d6a45 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -26,9 +26,10 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN cd /usr/local/lib/python3.8/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ cd gpus && \ - ln -s /usr/local/cuda cuda - -RUN ls -ltr /usr/local/cuda-11.2 + ln -s /usr/local/cuda cuda + +#fix for TF 2.4.0 +RUN ln -s /usr/local/cuda-11.2/lib64/libcusolver.so.11 /usr/local/cuda-11.2/lib64/libcusolver.so.10 ENV LD_LIBRARY_PATH="/usr/local/cuda-11.2/lib64:${LD_LIBRARY_PATH}" # QKeras From e4a6ccce49b13b0fe12cd64fd6045491c3c47773 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 25 Jul 2022 22:15:56 +0200 Subject: [PATCH 416/437] small tfp change --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index f4d6a45..5b93d88 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -21,7 +21,7 @@ EXPOSE 8888 # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.4.0 tensorflow_probability + pip3 --no-cache-dir install tensorflow-gpu==2.4.0 RUN cd /usr/local/lib/python3.8/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ From a3f99015798ab6bc31ab5255d3985c3ed42e9cb9 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Tue, 26 Jul 2022 23:25:02 +0200 Subject: [PATCH 417/437] removing some old obsoloete tests --- bin/createSubpackage.py | 14 +- bin/testEnvironment.py | 72 ----- docker/Dockerfile | 2 - docker/Dockerfile_base | 25 +- docker/build_if_needed.sh | 20 +- evaluation/evaluation.py | 1 + testing/batch_explosion.py | 48 --- testing/datastructures/TrainData_testing.py | 342 -------------------- testing/datastructures/__init__.py | 22 -- testing/max_q_size.py | 32 -- testing/ragged.py | 87 ----- testing/tools.py | 153 --------- 12 files changed, 37 insertions(+), 781 deletions(-) delete mode 100755 bin/testEnvironment.py delete mode 100644 testing/batch_explosion.py delete mode 100644 testing/datastructures/TrainData_testing.py delete mode 100644 testing/datastructures/__init__.py delete mode 100644 testing/max_q_size.py delete mode 100644 testing/ragged.py delete mode 100644 testing/tools.py diff --git a/bin/createSubpackage.py b/bin/createSubpackage.py index 58a41c3..744f5d7 100755 --- a/bin/createSubpackage.py +++ b/bin/createSubpackage.py @@ -132,13 +132,15 @@ def convertFromSourceFile(self, filename, weighterobjects, istraining): ## defines how to write out the prediction def writeOutPrediction(self, predicted, features, truth, weights, outfilename, inputfile): - # predicted will be a list + # predicted will be a list of numpy arrays + # save it as you like, the following way is not recommended as it is slow + # and not disk-space efficient. + # You can also use the fast and compressed TrainData format itself for saving + # or use uproot to write a tree to a TFile - from root_numpy import array2root - out = np.core.records.fromarrays(predicted[0].transpose(), - names='prob_isA, prob_isB, prob_isC') - - array2root(out, outfilename, 'tree') + import pickle + with open(outfilename,'wb') as f: + pickle.dump(predicted,f) ''' diff --git a/bin/testEnvironment.py b/bin/testEnvironment.py deleted file mode 100755 index cc1a634..0000000 --- a/bin/testEnvironment.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env python3 - -print('importing tensorflow...') - -import tensorflow -print(tensorflow.__file__) - -print('importing DeepJetCore base') -import DeepJetCore -print(DeepJetCore.__file__) -import os -djc_base = os.environ.get('DEEPJETCORE') - - -print('importing DJC masked tf.keras as keras...') -import tensorflow.keras as keras - -from tensorflow.keras import Input - -print('importing numpy...') - -import numpy - -print('running random training in keras...') - -def gen(): - while(True): - features = numpy.random.rand(100, 10) - truth = features - yield (features,truth) - - -a = [Input(shape=(10,))] -b = [keras.layers.Dense(10)(a[0])] -model = keras.models.Model(inputs=a, outputs=b) -model.compile(optimizer='adam',loss='mse',metrics=['accuracy']) -model.fit(x=gen(), steps_per_epoch=100, epochs=3) - - -print('loading DeepJetCore compiled library...') - -from DeepJetCore.compiled import c_arrayReads - -print('basic packages seem to be compiled... testing conversion') - - -if True: - script=''' - #!/bin/bash - cd {djc_base}/testing - rm -rf batchDC - export PYTHONPATH=`pwd`:$PYTHONPATH - convertFromSource.py -i files/filelist.txt -o batchDC -c TrainData_testBatch -n 1 - '''.format(djc_base=djc_base) - os.system(script) - - print('testing batch explosion. Please check batch loss plot afterwards for smoothness. Warnings about the callback time can be ignored.') - -script=''' -#!/bin/bash -cd {djc_base}/testing -rm -rf batchExplode -export PYTHONPATH=`pwd`:$PYTHONPATH -python3 batch_explosion.py batchDC/dataCollection.djcdc batchExplode -'''.format(djc_base=djc_base) -os.system(script) - - - - - - diff --git a/docker/Dockerfile b/docker/Dockerfile index 5b93d88..26a9a48 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -80,8 +80,6 @@ ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" ENV LD_LIBRARY_PATH="/usr/share/DJC/DeepJetCore/compiled:${LD_LIBRARY_PATH}" ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" -#### run tests -RUN testEnvironment.py RUN cd /usr/share/DJC/DeepJetCore/testing/unit && \ python3 test.py diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 5db276c..b9b7eb6 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -51,15 +51,6 @@ RUN ldconfig RUN apt-get install -y libboost-all-dev -############ PIP packages - -RUN pip3 install --upgrade setuptools -RUN pip3 install numpy root_numpy scikit-learn scikit-image h5py matplotlib uproot3 Pillow scipy seaborn -RUN pip3 install opencv-python easydict tqdm Cython numba - -RUN pip3 install gpustat setGPU - - #for singularity panic RUN adduser --disabled-password --gecos "" dummyuser RUN apt-get install -y vim @@ -67,11 +58,17 @@ RUN apt-get install -y vim #some tex things RUN apt install -y texlive ghostscript dvipng -#cool plotting -RUN pip3 install plotly dash +############ PIP packages -#new -RUN pip3 install awkward - +RUN pip3 install --upgrade setuptools +RUN pip3 install numpy scikit-learn scikit-image \ + h5py matplotlib uproot3 uproot Pillow \ + scipy seaborn opencv-python easydict tqdm Cython numba \ + gpustat setGPU plotly dash awkward + +# Add root_numpy warning +RUN mkdir -p /usr/local/lib/python3.8/dist-packages/root_numpy && \ + echo "raise ImportError(\"WARNING: root_numpy was removed from the DeepJetCore container as it has not been maintained for a while and is not comaptible with python > 3.7. Please switch to uproot or similar.\")" > /usr/local/lib/python3.8/dist-packages/root_numpy/__init__.py + diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 36cb8b5..810a484 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -16,8 +16,10 @@ then echo "building container for commit ${COMMIT}" OLD_BASE_ID=$(git rev-parse HEAD:docker/Dockerfile_base) + OLD_ID=$(git rev-parse HEAD:docker/Dockerfile) git pull NEW_BASE_ID=$(git rev-parse HEAD:docker/Dockerfile_base) + NEW_ID=$(git rev-parse HEAD:docker/Dockerfile) source image_tags.sh #in case this was updated in the pull @@ -63,16 +65,24 @@ then exit fi + #if the docker file changed, tag it as experimental and ask + TAG=latest + if [ $OLD_ID != $NEW_ID ] + then + TAG=exp + fi + # only force no cache if base image has been rebuilt - docker build $FORCE_NO_CACHE -t cernml4reco/deepjetcore3:latest . \ + docker build $FORCE_NO_CACHE -t cernml4reco/deepjetcore3:$TAG . \ --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ --build-arg COMMIT=$COMMIT > build.log 2>&1 if [ $? != 0 ]; then FAIL=true else - #only push if build was successful (e.g. the unit tests checked out) - docker push cernml4reco/deepjetcore3:latest > push.log 2>&1 + + docker push cernml4reco/deepjetcore3:$TAG > push.log 2>&1 + if [ $? != 0 ]; then PUSH_FAIL=true @@ -87,6 +97,10 @@ then if [ $PUSH_FAIL ] then subject="Subject: !! DJC push FAILED" + if [ $OLD_ID != $NEW_ID ] + then + subject="Subject: DJC experimental push (${TAG})" + fi fi { echo $subject ; diff --git a/evaluation/evaluation.py b/evaluation/evaluation.py index 078bff0..7dbf543 100644 --- a/evaluation/evaluation.py +++ b/evaluation/evaluation.py @@ -261,6 +261,7 @@ def worker(): def make_association(txtfiles, input_branches=None, output_branches=None, limit=None): + raise ImportError("DeepJetCore.evaluation.make_association deprecated.") from root_numpy import root2array from pandas import DataFrame diff --git a/testing/batch_explosion.py b/testing/batch_explosion.py deleted file mode 100644 index 67c0fc0..0000000 --- a/testing/batch_explosion.py +++ /dev/null @@ -1,48 +0,0 @@ -from DeepJetCore.training.training_base import training_base -from DeepJetCore.TrainData import TrainData -from DeepJetCore.TrainData import fileTimeOut as tdfto -import numpy as np -from DeepJetCore.evaluation import plotLoss - - - -from keras.callbacks import Callback -from keras.layers import Dense -from keras.models import Model -from DeepJetCore.DJCLayers import Print - - - -def model_for_test(Inputs): - - x = Inputs[0] - x = Dense(50,activation='relu')(x) - x = Dense(2, activation='softmax')(x) - - predictions = [x] - model = Model(inputs=Inputs, outputs=predictions) - return model - - - -train=training_base(testrun=False) - -from DeepJetCore.DJCLosses import dummy_loss - - -train.setModel(model_for_test) - - -train.compileModel(learningrate=0.001, - loss='categorical_crossentropy') - #metrics=['accuracy']) - - -print(train.keras_model.summary()) -model,history = train.trainModel(nepochs=10, - verbose=2, - batchsize=1000, - load_in_mem = False, - plot_batch_loss = False) - - diff --git a/testing/datastructures/TrainData_testing.py b/testing/datastructures/TrainData_testing.py deleted file mode 100644 index 2ec0e05..0000000 --- a/testing/datastructures/TrainData_testing.py +++ /dev/null @@ -1,342 +0,0 @@ -from DeepJetCore.TrainData import TrainData -from DeepJetCore.TrainData import fileTimeOut -from DeepJetCore import SimpleArray -import numpy - - -class baseTDTesting(TrainData): - def __init__(self): - import numpy - TrainData.__init__(self) - - def readTreeFromRootToTuple(self, filenames, limit=None, branches=None): - ''' - To be used to get the initial tupel for further processing in inherting classes - Makes sure the number of entries is properly set - - can also read a list of files (e.g. to produce weights/removes from larger statistics - (not fully tested, yet) - ''' - - if branches is None or len(branches) == 0: - return numpy.array([],dtype='float32') - - #print(branches) - #remove duplicates - usebranches=list(set(branches)) - tmpbb=[] - for b in usebranches: - if len(b): - tmpbb.append(b) - usebranches=tmpbb - - import ROOT - from root_numpy import tree2array, root2array - if isinstance(filenames, list): - for f in filenames: - fileTimeOut(f,120) - print('add files') - nparray = root2array( - filenames, - treename = self.treename, - stop = limit, - branches = usebranches - ) - print('done add files') - return nparray - print('add files') - else: - fileTimeOut(filenames,120) #give eos a minute to recover - rfile = ROOT.TFile(filenames) - tree = rfile.Get(self.treename) - if not self.nsamples: - self.nsamples=tree.GetEntries() - nparray = tree2array(tree, stop=limit, branches=usebranches) - return nparray - - def addBranches(self, br, cut): - self.branches.append(br) - self.branchcutoffs.append(cut) - -class base_traindata_batchex(baseTDTesting): - - def __init__(self): - import numpy - TrainData.__init__(self) - - #setting DeepJet specific defaults - self.treename="deepntuplizer/tree" - self.truthclasses=['class1','class2'] - - self.treename="deepntuplizer/tree" - self.referenceclass='class1' - - - - - - def reduceTruth(self, tuple_in): - - self.reducedtruthclasses=['isB','isBB','isLeptB','isC','isUDS','isG'] - if tuple_in is not None: - class1 = tuple_in['class1'].view(numpy.ndarray) - - class2 = tuple_in['class2'].view(numpy.ndarray) - - return numpy.ascontiguousarray(numpy.array(numpy.vstack((class1,class2)).transpose(),dtype='float32')) - - - - -class TrainData_testBatch(base_traindata_batchex): - - - def __init__(self): - base_traindata_batchex.__init__(self) - - def convertFromSourceFile(self, filename, weighterobjects, istraining): - - from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles - import numpy - from DeepJetCore.stopwatch import stopwatch - - sw=stopwatch() - swall=stopwatch() - - import ROOT - - fileTimeOut(filename,120) #give eos a minute to recover - rfile = ROOT.TFile(filename) - tree = rfile.Get("deepntuplizer/tree") - self.nsamples=tree.GetEntries() - - print('took ', sw.getAndReset(), ' seconds for getting tree entries') - - - # split for convolutional network - - x_global = MeanNormZeroPad(filename,None, - ['x'], - [1],self.nsamples) - - print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') - - Tuple = self.readTreeFromRootToTuple(filename, branches = ['class1','class2','x']) - - - truthtuple = Tuple[self.truthclasses] - - alltruth=self.reduceTruth(truthtuple) - - #print(x_global.shape,x_global[0:10]) - #print(alltruth.shape,alltruth[0:10]) - #print(alltruth.flags) - - newnsamp=x_global.shape[0] - self.nsamples = newnsamp - - print(x_global.shape, alltruth.shape, self.nsamples) - - truth = SimpleArray(alltruth,name="truth") - feat = SimpleArray(x_global,name="features0") - - return [feat], [truth], [] - - - - - - - -class TrainDataDeepJet_base(baseTDTesting): - ''' - Base class for DeepJet. - TO create own b-tagging trainings, please inherit from this class - ''' - - def __init__(self): - import numpy - TrainData.__init__(self) - - #setting DeepJet specific defaults - self.treename="deepntuplizer/tree" - self.undefTruth=['isUndefined'] - self.referenceclass='isB' - self.truthclasses=['isB','isBB','isGBB','isLeptonicB','isLeptonicB_C','isC','isCC', - 'isGCC','isUD','isS','isG','isUndefined'] - - - - - self.branches=[] - self.reduceTruth(None) - - def reduceTruth(self, tuple_in): - pass - - - - - - -class TrainData_fullTruth_base(TrainDataDeepJet_base): - def __init__(self): - TrainDataDeepJet_base.__init__(self) - self.clear() - - def reduceTruth(self, tuple_in): - - self.reducedtruthclasses=['isB','isBB','isLeptB','isC','isUDS','isG'] - if tuple_in is not None: - b = tuple_in['isB'].view(numpy.ndarray) - - bb = tuple_in['isBB'].view(numpy.ndarray) - gbb = tuple_in['isGBB'].view(numpy.ndarray) - - - bl = tuple_in['isLeptonicB'].view(numpy.ndarray) - blc = tuple_in['isLeptonicB_C'].view(numpy.ndarray) - lepb=bl+blc - - c = tuple_in['isC'].view(numpy.ndarray) - cc = tuple_in['isCC'].view(numpy.ndarray) - gcc = tuple_in['isGCC'].view(numpy.ndarray) - - ud = tuple_in['isUD'].view(numpy.ndarray) - s = tuple_in['isS'].view(numpy.ndarray) - uds=ud+s - - g = tuple_in['isG'].view(numpy.ndarray) - - return numpy.ascontiguousarray(numpy.array(numpy.vstack((b,bb+gbb,lepb,c+cc+gcc,uds,g)).transpose() ,dtype='float32')) - - -class TrainData_testQueue(TrainData_fullTruth_base): - ''' - classdocs - ''' - - def __init__(self): - ''' - Constructor - ''' - TrainData_fullTruth_base.__init__(self) - - - self.addBranches(['jet_pt', 'jet_eta', - 'nCpfcand','nNpfcand', - 'nsv','npv', - 'TagVarCSV_trackSumJetEtRatio', - 'TagVarCSV_trackSumJetDeltaR', - 'TagVarCSV_vertexCategory', - 'TagVarCSV_trackSip2dValAboveCharm', - 'TagVarCSV_trackSip2dSigAboveCharm', - 'TagVarCSV_trackSip3dValAboveCharm', - 'TagVarCSV_trackSip3dSigAboveCharm', - 'TagVarCSV_jetNSelectedTracks', - 'TagVarCSV_jetNTracksEtaRel']) - - self.addBranches(['Cpfcan_BtagPf_trackEtaRel', - 'Cpfcan_BtagPf_trackPtRel', - 'Cpfcan_BtagPf_trackPPar', - 'Cpfcan_BtagPf_trackDeltaR', - 'Cpfcan_BtagPf_trackPParRatio', - 'Cpfcan_BtagPf_trackSip2dVal', - 'Cpfcan_BtagPf_trackSip2dSig', - 'Cpfcan_BtagPf_trackSip3dVal', - 'Cpfcan_BtagPf_trackSip3dSig', - 'Cpfcan_BtagPf_trackJetDistVal', - #'Cpfcan_BtagPf_trackJetDistSig', - - 'Cpfcan_ptrel', - 'Cpfcan_drminsv', - #'Cpfcan_fromPV', - 'Cpfcan_VTX_ass', - 'Cpfcan_puppiw', - 'Cpfcan_chi2', - 'Cpfcan_quality' - ], - 25) - - - self.addBranches(['Npfcan_ptrel', - 'Npfcan_deltaR', - 'Npfcan_isGamma', - 'Npfcan_HadFrac', - 'Npfcan_drminsv', - 'Npfcan_puppiw' - ], - 25) - - - self.addBranches(['sv_pt', - 'sv_deltaR', - 'sv_mass', - 'sv_ntracks', - 'sv_chi2', - 'sv_normchi2', - 'sv_dxy', - 'sv_dxysig', - 'sv_d3d', - 'sv_d3dsig', - 'sv_costhetasvpv', - 'sv_enratio', - ], - 4) - - - - def convertFromSourceFile(self, filename, weighterobjects, istraining): - from DeepJetCore.preprocessing import MeanNormApply, MeanNormZeroPad, MeanNormZeroPadParticles - import numpy - from DeepJetCore.stopwatch import stopwatch - - sw=stopwatch() - swall=stopwatch() - - import ROOT - - fileTimeOut(filename,120) #give eos a minute to recover - rfile = ROOT.TFile(filename) - tree = rfile.Get("deepntuplizer/tree") - self.nsamples=tree.GetEntries() - - print('took ', sw.getAndReset(), ' seconds for getting tree entries') - - - # split for convolutional network - - x_global = MeanNormZeroPad(filename,None, - [self.branches[0]], - [self.branchcutoffs[0]],self.nsamples) - - x_cpf = MeanNormZeroPadParticles(filename,None, - self.branches[1], - self.branchcutoffs[1],self.nsamples) - - x_npf = MeanNormZeroPadParticles(filename,None, - self.branches[2], - self.branchcutoffs[2],self.nsamples) - - x_sv = MeanNormZeroPadParticles(filename,None, - self.branches[3], - self.branchcutoffs[3],self.nsamples) - - - - print('took ', sw.getAndReset(), ' seconds for mean norm and zero padding (C module)') - - Tuple = self.readTreeFromRootToTuple(filename) - - - - truthtuple = Tuple[self.truthclasses] - #print(self.truthclasses) - alltruth=self.reduceTruth(truthtuple) - - - print(x_global.shape,self.nsamples) - - return [x_global,x_cpf,x_npf,x_sv], [alltruth], [] - - diff --git a/testing/datastructures/__init__.py b/testing/datastructures/__init__.py deleted file mode 100644 index ae93a87..0000000 --- a/testing/datastructures/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ - -#Make it look like a package -from glob import glob -from os import environ -from os.path import basename, dirname -from pdb import set_trace - -#gather all the files here -modules = ["datastructures."+basename(i.replace('.py','')) for i in glob('%s/[A-Za-z]*.py' % dirname(__file__))] -__all__ = [] -structure_list=[] -for module_name in modules: - module = __import__(module_name, globals(), locals(), [module_name]) - for model_name in [i for i in dir(module) if 'TrainData' in i]: - - - model = getattr(module, model_name) - globals()[model_name] = model - locals( )[model_name] = model - __all__.append(model_name) - structure_list.append(model_name) - diff --git a/testing/max_q_size.py b/testing/max_q_size.py deleted file mode 100644 index 2e1ce5f..0000000 --- a/testing/max_q_size.py +++ /dev/null @@ -1,32 +0,0 @@ -from DeepJetCore.training.training_base import training_base -from tools import model_deepFlavourReference_test - - - -train=training_base(testrun=False) -newtraining= not train.modelSet() - - -if newtraining: - train.setModel(model_deepFlavourReference_test,nclasses = 6) - - #train.keras_model=fixLayersContaining(train.keras_model, 'regression', invert=False) - - train.compileModel(learningrate=0.001, - loss=['categorical_crossentropy']) - - - train.train_data.maxFilesOpen=5 - print(train.keras_model.summary()) - model,history = train.trainModel(nepochs=3, - batchsize=10000, - stop_patience=300, - lr_factor=0.5, - lr_patience=3, - lr_epsilon=0.0001, - lr_cooldown=6, - lr_minimum=0.0001, - maxqsize=150, - plot_batch_loss = True) - - diff --git a/testing/ragged.py b/testing/ragged.py deleted file mode 100644 index f8b7188..0000000 --- a/testing/ragged.py +++ /dev/null @@ -1,87 +0,0 @@ - -import tensorflow as tf -#tf.enable_eager_execution() - - -#B x V x F -ragged_val_list = [ [[[1., 3.], [2, 4.], [3, 4.]], - [[1, 2.], [2, 3.]], - [[1, 2.], [2, 3.], [3, 4.], [4, 5.]]] ] - - - -flat_list = tf.ragged.constant( 2*[[[[1.]]]] ).to_tensor() - -#ragged_list = tf.ragged.constant(2*ragged_val_list).to_tensor() -truth_ragged_tensor = tf.ragged.constant(2*ragged_val_list).to_tensor() - - - -def generator(): - while(1): - yield (flat_list, [ flat_list,flat_list ]) # just returns the same every time - #yield (ragged_list, truth_ragged_tensor) - - -inputs_ragged = tf.keras.layers.Input(shape=(None, None,1), ragged=False) -outputs_ragged = tf.keras.layers.Dense(1)(inputs_ragged) -outputs_ragged2 = tf.keras.layers.Dense(1)(inputs_ragged) -model_ragged = tf.keras.Model(inputs=inputs_ragged, outputs=[outputs_ragged,outputs_ragged2]) - - -globaltensor=None - -def lossa(truth, pred): - global globaltensor - if globaltensor is not None: - return ( tf.reduce_mean(truth) - tf.reduce_mean(globaltensor) + tf.reduce_mean(pred) )**2 - globaltensor= truth - return 0.*tf.reduce_mean(pred) - - -def lossb(truth, pred): - global globaltensor - if globaltensor is not None: - return ( tf.reduce_mean(truth) - tf.reduce_mean(globaltensor) + tf.reduce_mean(pred) )**2 - globaltensor= truth - return 0.*tf.reduce_mean(pred) - - -model_ragged.compile(optimizer='Adam', loss = [lossa,lossb])#this could be a ragged one, from somewhere.. - - -model_ragged.fit_generator(generator = generator(), steps_per_epoch=50, epochs=2, - validation_data=generator(), validation_steps=2, - max_queue_size=1, - workers=0) - - - - - - -exit() -flatish = tf.constant([ - [1,0.1,0.01], - [2,0.2,0.02], - [3,0.3,0.03], - [4,0.4,0.04], - [5,0.5,0.05] - ]) - -splits = tf.constant([ - 0, 2, 3, 5 - ]) - -rt = tf.RaggedTensor.from_row_splits( - values=flatish, - row_splits=splits) -print(rt) -lrt = rt.to_list() -print(lrt) - -for i in lrt: - print(i) - -## probably will be supported in one of the next TF releases -# https://github.com/tensorflow/tensorflow/issues/27170 \ No newline at end of file diff --git a/testing/tools.py b/testing/tools.py deleted file mode 100644 index 5af8636..0000000 --- a/testing/tools.py +++ /dev/null @@ -1,153 +0,0 @@ - - -from keras.layers import Dense,BatchNormalization,Convolution1D -from keras.layers import Dense, Dropout, Flatten,Concatenate, Convolution2D, LSTM,merge, Convolution1D, Conv2D -from keras.models import Model - - - -def block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): - if active: - x= Dense(200, activation='relu',kernel_initializer='lecun_uniform', name='df_dense0')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm0')(x) - x = Dropout(dropoutRate,name='df_dense_dropout0')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense1')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm1')(x) - x = Dropout(dropoutRate,name='df_dense_dropout1')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense2')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm2')(x) - x = Dropout(dropoutRate,name='df_dense_dropout2')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense3')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm3')(x) - x = Dropout(dropoutRate,name='df_dense_dropout3')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense4')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm4')(x) - x = Dropout(dropoutRate,name='df_dense_dropout4')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense5')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm5')(x) - x = Dropout(dropoutRate,name='df_dense_dropout5')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense6')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm6')(x) - x = Dropout(dropoutRate,name='df_dense_dropout6')(x) - x= Dense(100, activation='relu',kernel_initializer='lecun_uniform', name='df_dense7')(x) - if batchnorm: - x = BatchNormalization(momentum=batchmomentum,name='df_dense_batchnorm7')(x) - x = Dropout(dropoutRate,name='df_dense_dropout7')(x) - else: - x= Dense(1,kernel_initializer='zeros',trainable=False,name='df_dense_off')(x) - - return x - - -def block_deepFlavourConvolutions(charged,neutrals,vertices,dropoutRate,active=True,batchnorm=False,batchmomentum=0.6): - ''' - deep Flavour convolution part. - ''' - cpf=charged - if active: - cpf = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv0')(cpf) - if batchnorm: - cpf = BatchNormalization(momentum=batchmomentum ,name='cpf_batchnorm0')(cpf) - cpf = Dropout(dropoutRate,name='cpf_dropout0')(cpf) - cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv1')(cpf) - if batchnorm: - cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm1')(cpf) - cpf = Dropout(dropoutRate,name='cpf_dropout1')(cpf) - cpf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='cpf_conv2')(cpf) - if batchnorm: - cpf = BatchNormalization(momentum=batchmomentum,name='cpf_batchnorm2')(cpf) - cpf = Dropout(dropoutRate,name='cpf_dropout2')(cpf) - cpf = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu' , name='cpf_conv3')(cpf) - else: - cpf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(cpf) - - npf=neutrals - if active: - npf = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv0')(npf) - if batchnorm: - npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm0')(npf) - npf = Dropout(dropoutRate,name='npf_dropout0')(npf) - npf = Convolution1D(16, 1, kernel_initializer='lecun_uniform', activation='relu', name='npf_conv1')(npf) - if batchnorm: - npf = BatchNormalization(momentum=batchmomentum,name='npf_batchnorm1')(npf) - npf = Dropout(dropoutRate,name='npf_dropout1')(npf) - npf = Convolution1D(4, 1, kernel_initializer='lecun_uniform', activation='relu' , name='npf_conv2')(npf) - else: - npf = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(npf) - - vtx = vertices - if active: - vtx = Convolution1D(64, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv0')(vtx) - if batchnorm: - vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm0')(vtx) - vtx = Dropout(dropoutRate,name='vtx_dropout0')(vtx) - vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv1')(vtx) - if batchnorm: - vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm1')(vtx) - vtx = Dropout(dropoutRate,name='vtx_dropout1')(vtx) - vtx = Convolution1D(32, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv2')(vtx) - if batchnorm: - vtx = BatchNormalization(momentum=batchmomentum,name='vtx_batchnorm2')(vtx) - vtx = Dropout(dropoutRate,name='vtx_dropout2')(vtx) - vtx = Convolution1D(8, 1, kernel_initializer='lecun_uniform', activation='relu', name='vtx_conv3')(vtx) - else: - vtx = Convolution1D(1,1, kernel_initializer='zeros',trainable=False)(vtx) - - return cpf,npf,vtx - -def model_deepFlavourReference_test(Inputs,nclasses,dropoutRate=0.1,momentum=0.6): - """ - reference 1x1 convolutional model for 'deepFlavour' - with recurrent layers and batch normalisation - standard dropout rate it 0.1 - should be trained for flavour prediction first. afterwards, all layers can be fixed - that do not include 'regression' and the training can be repeated focusing on the regression part - (check function fixLayersContaining with invert=True) - """ - globalvars = BatchNormalization(momentum=momentum,name='globals_input_batchnorm') (Inputs[0]) - cpf = BatchNormalization(momentum=momentum,name='cpf_input_batchnorm') (Inputs[1]) - npf = BatchNormalization(momentum=momentum,name='npf_input_batchnorm') (Inputs[2]) - vtx = BatchNormalization(momentum=momentum,name='vtx_input_batchnorm') (Inputs[3]) - - cpf,npf,vtx = block_deepFlavourConvolutions(charged=cpf, - neutrals=npf, - vertices=vtx, - dropoutRate=dropoutRate, - active=True, - batchnorm=True, batchmomentum=momentum) - - - # - cpf = LSTM(150,go_backwards=True,implementation=2, name='cpf_lstm')(cpf) - cpf=BatchNormalization(momentum=momentum,name='cpflstm_batchnorm')(cpf) - cpf = Dropout(dropoutRate)(cpf) - - npf = LSTM(50,go_backwards=True,implementation=2, name='npf_lstm')(npf) - npf=BatchNormalization(momentum=momentum,name='npflstm_batchnorm')(npf) - npf = Dropout(dropoutRate)(npf) - - vtx = LSTM(50,go_backwards=True,implementation=2, name='vtx_lstm')(vtx) - vtx=BatchNormalization(momentum=momentum,name='vtxlstm_batchnorm')(vtx) - vtx = Dropout(dropoutRate)(vtx) - - - x = Concatenate()( [globalvars,cpf,npf,vtx ]) - - x = block_deepFlavourDense(x,dropoutRate,active=True,batchnorm=True,batchmomentum=momentum) - - flavour_pred=Dense(nclasses, activation='softmax',kernel_initializer='lecun_uniform',name='ID_pred')(x) - - predictions = [flavour_pred] - model = Model(inputs=Inputs, outputs=predictions) - return model - - - - From 823efe9588de2b7d49e4873b2905d6dd44cb0e11 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 27 Jul 2022 08:34:06 +0200 Subject: [PATCH 418/437] revert to cuda 11.2.0 --- docker/Dockerfile | 1 - docker/Dockerfile_base | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 26a9a48..7047512 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,3 @@ - ARG BASE_IMAGE_TAG FROM cernml4reco/djcbase:$BASE_IMAGE_TAG diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index b9b7eb6..0b22e21 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -1,5 +1,4 @@ - -FROM nvidia/cuda:11.2.1-cudnn8-devel-ubuntu20.04 +FROM nvidia/cuda:11.2.0-cudnn8-devel-ubuntu20.04 SHELL ["/bin/bash", "-c"] From 91490a4471cdd712a1a1abcedfa6a734fa925d24 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Thu, 28 Jul 2022 16:20:20 +0200 Subject: [PATCH 419/437] TF2.5 --- docker/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 7047512..5d22725 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,7 +20,7 @@ EXPOSE 8888 # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.4.0 + pip3 --no-cache-dir install tensorflow-gpu==2.5.0 RUN cd /usr/local/lib/python3.8/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ @@ -70,6 +70,7 @@ RUN ldconfig && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ + git checkout $COMMIT && \ source docker_env.sh && \ cd compiled && \ make -j4 From 5a0d7e353b0cb579fa9bb7c8681619c3078bd73a Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 10:17:57 +0200 Subject: [PATCH 420/437] another try with TF2.5.3 - there are quite some issues with TF builds against newer gcc... --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 5d22725..b4d21cd 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,7 +20,7 @@ EXPOSE 8888 # Tensorflow RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.5.0 + pip3 --no-cache-dir install tensorflow-gpu==2.5.3 RUN cd /usr/local/lib/python3.8/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ From 7ed7b2e8f2a238e3d1be9bb9771c3ac7f141f6f0 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 10:29:41 +0200 Subject: [PATCH 421/437] gcc switch --- docker/Dockerfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index b4d21cd..86f7bc1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -19,6 +19,12 @@ EXPOSE 8888 ################################################################################ # Tensorflow +# TF needs gcc7 for custom ops +RUN apt-get install gcc-7 && \ + update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7 && \ + update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7 + + RUN export DEBIAN_FRONTEND=noninteractive && \ pip3 --no-cache-dir install tensorflow-gpu==2.5.3 From 659452ba767f0aa74afffea1daa7c0f162c52ed4 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 10:31:38 +0200 Subject: [PATCH 422/437] try --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 86f7bc1..cc91cdf 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,7 +20,7 @@ EXPOSE 8888 # Tensorflow # TF needs gcc7 for custom ops -RUN apt-get install gcc-7 && \ +RUN apt-get install -y gcc-7 && \ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7 && \ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7 From 50df569d1445e488bb7391b65dbb6846f3bbce1d Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 10:33:36 +0200 Subject: [PATCH 423/437] try --- docker/Dockerfile | 4 ++-- docker/build_if_needed.sh | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index cc91cdf..47d57bd 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -21,8 +21,8 @@ EXPOSE 8888 # TF needs gcc7 for custom ops RUN apt-get install -y gcc-7 && \ - update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7 && \ - update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7 + update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7 +RUN g++ --version && gcc --version RUN export DEBIAN_FRONTEND=noninteractive && \ diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 810a484..589f6f7 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -13,7 +13,7 @@ then COMMIT=$(git log -n 1 --pretty=format:"%H") - echo "building container for commit ${COMMIT}" + echo "building container for commit ${COMMIT}" OLD_BASE_ID=$(git rev-parse HEAD:docker/Dockerfile_base) OLD_ID=$(git rev-parse HEAD:docker/Dockerfile) @@ -72,6 +72,8 @@ then TAG=exp fi + echo "Building with tag ${TAG}" + # only force no cache if base image has been rebuilt docker build $FORCE_NO_CACHE -t cernml4reco/deepjetcore3:$TAG . \ --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ From 812e0e37ddbfef88bb1e089a1e228570b817ee71 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 10:34:54 +0200 Subject: [PATCH 424/437] g++7 --- docker/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 47d57bd..822913d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,8 +20,9 @@ EXPOSE 8888 # Tensorflow # TF needs gcc7 for custom ops -RUN apt-get install -y gcc-7 && \ - update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7 +RUN apt-get install -y gcc-7 g++-7 && \ + update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7 && \ + update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7 RUN g++ --version && gcc --version From ee034ade8d1b8e2d7392244162ab1fb17637bfcc Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 12:54:08 +0200 Subject: [PATCH 425/437] makefile back to py3.6 --- compiled/Makefile | 9 ++++--- docker/Dockerfile | 52 ++++++++++++++++++--------------------- docker/Dockerfile_base | 46 +++++++++++++++++----------------- docker/build_if_needed.sh | 15 ++++++----- docker/image_tags.sh | 4 ++- 5 files changed, 64 insertions(+), 62 deletions(-) diff --git a/compiled/Makefile b/compiled/Makefile index 5f05438..cdf4433 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -1,8 +1,9 @@ # location of the Boost Python include files and library PYTHON_INCLUDE = `python3-config --includes` -PYTHON_LIB=`python3-config --ldflags` +PYTHON_LIBS=`python3-config --ldflags` +PYTHONLIB=python3 LINUXADD= #-Wl --export-dynamic ROOTSTUFF=`root-config --libs --glibs --ldflags` @@ -28,7 +29,7 @@ classdict.so: classdict.cxx %: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx - g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIB) -lpython3.8 -lboost_python3 -lboost_numpy3 $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ + g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIBS) -l$(PYTHONLIB) -lboost_python3 -lboost_numpy3 $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ mv $@ ../bin/ #helpers @@ -40,10 +41,10 @@ obj/%.o: src/%.cpp #pack helpers in lib libdeepjetcorehelpers.so: $(OBJ_FILES) - g++ -o $@ -shared -fPIC $(LINUXADD) $(CFLAGS) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIB) -lpython3.8 -lboost_python3 -lboost_numpy3 + g++ -o $@ -shared -fPIC $(LINUXADD) $(CFLAGS) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIBS) -l$(PYTHONLIB) -lboost_python3 -lboost_numpy3 %.so: %.o libdeepjetcorehelpers.so libquicklz.so - g++ -o $(@) -shared -g -fPIC $(CFLAGS) $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIB) -lpython3.8 -lboost_python3 -lboost_numpy3 -L./ -ldeepjetcorehelpers + g++ -o $(@) -shared -g -fPIC $(CFLAGS) $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIBS) -l$(PYTHONLIB) -lboost_python3 -lboost_numpy3 -L./ -ldeepjetcorehelpers %.o: src/%.C g++ $(ROOTCFLAGS) -O2 -g -I./interface $(PYTHON_INCLUDE) -fPIC $(CFLAGS) -c -o $(@) $< diff --git a/docker/Dockerfile b/docker/Dockerfile index 822913d..53578db 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,42 +9,38 @@ RUN apt-get update --fix-missing #moved from base RUN pip3 install future gensim jupyter prompt-toolkit -RUN pip3 install torch==1.12.0 -RUN pip3 install install torch-scatter torch-sparse torch-cluster \ - torch-spline-conv torch-geometric \ - -f https://data.pyg.org/whl/torch-1.12.0+cu112.html - EXPOSE 8888 +# removed torch (geometric) for now, as nobody seems to use it +# RUN pip3 install torch==1.10.2 +# RUN pip3 install install torch-scatter torch-sparse torch-cluster \ +# torch-spline-conv torch-geometric \ +# -f https://data.pyg.org/whl/torch-1.10.2+cu111.html +# + + ################################################################################ # Tensorflow # TF needs gcc7 for custom ops -RUN apt-get install -y gcc-7 g++-7 && \ - update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7 && \ - update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7 +# RUN apt-get install -y gcc-7 g++-7 && \ +# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7 && \ +# update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7 RUN g++ --version && gcc --version RUN export DEBIAN_FRONTEND=noninteractive && \ - pip3 --no-cache-dir install tensorflow-gpu==2.5.3 + pip3 --no-cache-dir install tensorflow-gpu==2.4.4 -RUN cd /usr/local/lib/python3.8/dist-packages/tensorflow/include/third_party && \ +RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ cd gpus && \ - ln -s /usr/local/cuda cuda + ln -s /usr/local/cuda11.1 cuda #fix for TF 2.4.0 -RUN ln -s /usr/local/cuda-11.2/lib64/libcusolver.so.11 /usr/local/cuda-11.2/lib64/libcusolver.so.10 -ENV LD_LIBRARY_PATH="/usr/local/cuda-11.2/lib64:${LD_LIBRARY_PATH}" +RUN ln -s /usr/local/cuda-11.1/lib64/libcusolver.so.11 /usr/local/cuda-11.1/lib64/libcusolver.so.10 +ENV LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:${LD_LIBRARY_PATH}" -# QKeras -RUN pip3 install git+https://github.com/google/qkeras - -# HLS4ML -RUN pip3 install git+https://github.com/fastmachinelearning/hls4ml.git#egg=hls4ml[profiling] tensorflow_datasets -RUN pip3 install git+https://github.com/thesps/conifer.git - ############# some more useful packages, mostly requested by users @@ -53,15 +49,13 @@ RUN apt-get install -y vim RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet - - ################################################################################ # the actual DeepJetCore. Make sure this gets built every time -# prepare the environment -RUN cd /usr/lib/x86_64-linux-gnu &&\ - ln -s libboost_numpy38.so libboost_numpy3.so && \ - ln -s libboost_python38.so libboost_python3.so +# prepare the environment (only starting py >3.6) +# RUN cd /usr/lib/x86_64-linux-gnu &&\ +# ln -s libboost_numpy38.so libboost_numpy3.so && \ +# ln -s libboost_python38.so libboost_python3.so ARG BUILD_DATE @@ -77,10 +71,12 @@ RUN ldconfig && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ cd DeepJetCore && \ - git checkout $COMMIT && \ + #git checkout $COMMIT + +RUN cd $DEEPJETCORE source docker_env.sh && \ cd compiled && \ - make -j4 + make ENV PYTHONPATH="/usr/share/DJC/DeepJetCore/../:${PYTHONPATH}" diff --git a/docker/Dockerfile_base b/docker/Dockerfile_base index 0b22e21..be0a89a 100644 --- a/docker/Dockerfile_base +++ b/docker/Dockerfile_base @@ -1,13 +1,13 @@ -FROM nvidia/cuda:11.2.0-cudnn8-devel-ubuntu20.04 +FROM nvidia/cuda:11.1.1-cudnn8-devel-ubuntu18.04 SHELL ["/bin/bash", "-c"] -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list +RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list RUN apt-get update -RUN apt-get install -y python3 python3-pip && \ - pip3 install --upgrade pip - +RUN apt-get install -y python3.6-dev python3-pip +RUN pip3 install --upgrade pip +RUN pip3 install --upgrade setuptools RUN ldconfig #basic user tools @@ -27,22 +27,26 @@ COPY krb5.conf /etc/krb5.conf RUN apt-get install -y libx11-dev libxpm-dev libxft-dev libxext-dev RUN apt-get install -y cmake openssl +# RUN mkdir /temproot && \ +# cd /temproot && \ +# git clone --branch v6-20-00-patches http://github.com/root-project/root.git +# RUN cd /temproot && \ +# mkdir build && \ +# cd build && \ +# cmake ../root +# RUN cd /temproot/build && \ +# make -j5 && \ +# make install && \ +# rm -rf /temproot + RUN mkdir /temproot && \ cd /temproot && \ - git clone --branch v6-20-00-patches http://github.com/root-project/root.git + wget https://cern.ch/amadio/root/root_6.22.00_ubuntu18_amd64.deb > /dev/null 2>&1 + RUN cd /temproot && \ - mkdir build && \ - cd build && \ - cmake ../root -RUN cd /temproot/build && \ - make -j5 && \ - make install && \ + apt-get install -y ./root_6.22.00_ubuntu18_amd64.deb && \ rm -rf /temproot - - -#ensure import ROOT -ENV PYTHONPATH="/usr/local/lib:${PYTHONPATH}" -RUN ldconfig + ############ END root part @@ -59,15 +63,11 @@ RUN apt install -y texlive ghostscript dvipng ############ PIP packages -RUN pip3 install --upgrade setuptools RUN pip3 install numpy scikit-learn scikit-image \ h5py matplotlib uproot3 uproot Pillow \ scipy seaborn opencv-python easydict tqdm Cython numba \ gpustat setGPU plotly dash awkward # Add root_numpy warning -RUN mkdir -p /usr/local/lib/python3.8/dist-packages/root_numpy && \ - echo "raise ImportError(\"WARNING: root_numpy was removed from the DeepJetCore container as it has not been maintained for a while and is not comaptible with python > 3.7. Please switch to uproot or similar.\")" > /usr/local/lib/python3.8/dist-packages/root_numpy/__init__.py - - - +RUN mkdir -p /usr/local/lib/python3.6/dist-packages/root_numpy && \ + echo "raise ImportError(\"WARNING: root_numpy was removed from the DeepJetCore container as it has not been maintained for a while and is not comaptible with python > 3.7. Please switch to uproot or similar.\")" > /usr/local/lib/python3.6/dist-packages/root_numpy/__init__.py diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 589f6f7..5d1280a 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -23,6 +23,8 @@ then source image_tags.sh #in case this was updated in the pull + BASE_IMAGE_TAG="${BASE_IMAGE_TAG}_latest" # as this is a bleeding edge build + if [ $OLD_BASE_ID != $NEW_BASE_ID ] || [ $FORCE == "force_base" ] then echo "base image changed from ${OLD_BASE_ID} to ${NEW_BASE_ID}, rerunning base build" @@ -39,7 +41,7 @@ then fi fi - subject="Subject: base build finished" + subject="Subject: base build ${BASE_IMAGE_TAG} finished" if [ $BASE_FAIL ] then subject="Subject: !! base build FAILED" @@ -65,19 +67,20 @@ then exit fi - #if the docker file changed, tag it as experimental and ask + # this is an auto build, so by definition, the build is not a release build + # if the docker file changed, tag it as experimental and ask TAG=latest if [ $OLD_ID != $NEW_ID ] then TAG=exp fi - echo "Building with tag ${TAG}" + echo "Building with tag ${TAG}" > build.log # only force no cache if base image has been rebuilt docker build $FORCE_NO_CACHE -t cernml4reco/deepjetcore3:$TAG . \ --build-arg BUILD_DATE="$(date)" --build-arg BASE_IMAGE_TAG=$BASE_IMAGE_TAG \ - --build-arg COMMIT=$COMMIT > build.log 2>&1 + --build-arg COMMIT=$COMMIT >> build.log 2>&1 if [ $? != 0 ]; then FAIL=true @@ -91,7 +94,7 @@ then fi fi - subject="Subject: base build finished" + subject="Subject: build ${TAG} finished" if [ $FAIL ] then subject="Subject: !! DJC build FAILED" @@ -101,7 +104,7 @@ then subject="Subject: !! DJC push FAILED" if [ $OLD_ID != $NEW_ID ] then - subject="Subject: DJC experimental push (${TAG})" + subject="Subject: DJC experimental push failed (${TAG})" fi fi diff --git a/docker/image_tags.sh b/docker/image_tags.sh index bcc2f0d..599c38f 100644 --- a/docker/image_tags.sh +++ b/docker/image_tags.sh @@ -1,2 +1,4 @@ -BASE_IMAGE_TAG=cu11.2 \ No newline at end of file +BASE_IMAGE_TAG=cu11.1_djc3.3.X +TAG=3.3.0 +#TAG=latest \ No newline at end of file From b72942d000bbbbd2395086685ca3b2e60edd1557 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 13:07:57 +0200 Subject: [PATCH 426/437] changes for c++17 --- compiled/Makefile | 15 ++++++++------- docker/Dockerfile | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/compiled/Makefile b/compiled/Makefile index cdf4433..5e457a3 100644 --- a/compiled/Makefile +++ b/compiled/Makefile @@ -3,7 +3,7 @@ PYTHON_INCLUDE = `python3-config --includes` PYTHON_LIBS=`python3-config --ldflags` -PYTHONLIB=python3 +#PYTHONLIB=python3.6m LINUXADD= #-Wl --export-dynamic ROOTSTUFF=`root-config --libs --glibs --ldflags` @@ -17,19 +17,20 @@ MODULES := $(wildcard src/*.C) MODULES_OBJ_FILES := $(addprefix ./,$(notdir $(MODULES:.C=.o))) MODULES_SHARED_LIBS := $(addprefix ./,$(notdir $(MODULES:.C=.so))) -#CFLAGS := -g +# root needs this +CFLAGS := -std=c++1z all: $(MODULES_SHARED_LIBS) $(patsubst to_bin/%.cpp, %, $(wildcard to_bin/*.cpp)) classdict.so classdict.cxx: src/LinkDef.h - rootcling -v4 -f $@ -rmf classdict.rootmap -rml classdict.so $^ + rootcling -v4 -f $@ -rmf classdict.rootmap -rml classdict.so $^ > /dev/null 2>&1 classdict.so: classdict.cxx - g++ $(CFLAGS) $(ROOTCFLAGS) $(ROOTSTUFF) -std=c++11 -fPIC -shared -o classdict.so classdict.cxx + g++ $(CFLAGS) $(ROOTCFLAGS) $(ROOTSTUFF) -fPIC -shared -o classdict.so classdict.cxx %: to_bin/%.cpp libdeepjetcorehelpers.so classdict.cxx - g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIBS) -l$(PYTHONLIB) -lboost_python3 -lboost_numpy3 $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ + g++ $(CFLAGS) -I./interface $(LINUXADD) $(PYTHON_INCLUDE) $< -L. -ldeepjetcorehelpers -lquicklz $(PYTHON_LIBS) -lboost_python3 -lboost_numpy3 $(ROOTCFLAGS) $(ROOTSTUFF) -o $@ mv $@ ../bin/ #helpers @@ -41,10 +42,10 @@ obj/%.o: src/%.cpp #pack helpers in lib libdeepjetcorehelpers.so: $(OBJ_FILES) - g++ -o $@ -shared -fPIC $(LINUXADD) $(CFLAGS) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIBS) -l$(PYTHONLIB) -lboost_python3 -lboost_numpy3 + g++ -o $@ -shared -fPIC $(LINUXADD) $(CFLAGS) -fPIC obj/*.o $(ROOTSTUFF) $(PYTHON_LIBS) -lboost_python3 -lboost_numpy3 %.so: %.o libdeepjetcorehelpers.so libquicklz.so - g++ -o $(@) -shared -g -fPIC $(CFLAGS) $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIBS) -l$(PYTHONLIB) -lboost_python3 -lboost_numpy3 -L./ -ldeepjetcorehelpers + g++ -o $(@) -shared -g -fPIC $(CFLAGS) $(LINUXADD) $< $(ROOTSTUFF) -L./ -lquicklz $(PYTHON_LIBS) -lboost_python3 -lboost_numpy3 -L./ -ldeepjetcorehelpers %.o: src/%.C g++ $(ROOTCFLAGS) -O2 -g -I./interface $(PYTHON_INCLUDE) -fPIC $(CFLAGS) -c -o $(@) $< diff --git a/docker/Dockerfile b/docker/Dockerfile index 53578db..677ab89 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -70,10 +70,10 @@ RUN ldconfig && \ mkdir DJC && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ - cd DeepJetCore && \ + cd DeepJetCore #git checkout $COMMIT -RUN cd $DEEPJETCORE +RUN cd $DEEPJETCORE &&\ source docker_env.sh && \ cd compiled && \ make From 70dac960868ddc7b4a44937d21151bcc5c57ebc1 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 13:11:57 +0200 Subject: [PATCH 427/437] r3.3.0 commit --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 677ab89..0772a1e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -70,8 +70,8 @@ RUN ldconfig && \ mkdir DJC && \ cd DJC && \ git clone https://github.com/DL4Jets/DeepJetCore && \ - cd DeepJetCore - #git checkout $COMMIT + cd DeepJetCore && git checkout $COMMIT + RUN cd $DEEPJETCORE &&\ source docker_env.sh && \ From 71c9c969047e9d46d0bda1c2ed0a77b4253e3e3e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 15:24:00 +0200 Subject: [PATCH 428/437] small fix --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 0772a1e..32bf0f9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -35,8 +35,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN cd /usr/local/lib/python3.6/dist-packages/tensorflow/include/third_party && \ mkdir gpus && \ cd gpus && \ - ln -s /usr/local/cuda11.1 cuda - + ln -s /usr/local/cuda-11.1 cuda + #fix for TF 2.4.0 RUN ln -s /usr/local/cuda-11.1/lib64/libcusolver.so.11 /usr/local/cuda-11.1/lib64/libcusolver.so.10 ENV LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:${LD_LIBRARY_PATH}" From 4e331c5632e664b0de84e61c90aa39b24b38886f Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 17:10:35 +0200 Subject: [PATCH 429/437] yaml --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 32bf0f9..14edd6e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -46,7 +46,7 @@ ENV LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:${LD_LIBRARY_PATH}" RUN apt-get install -y vim -RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet +RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet yaml ################################################################################ From bfd34ded8a80a939fc3036c860cd7d02d611d350 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Fri, 29 Jul 2022 17:13:56 +0200 Subject: [PATCH 430/437] fix --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 14edd6e..761f109 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -46,7 +46,7 @@ ENV LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:${LD_LIBRARY_PATH}" RUN apt-get install -y vim -RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet yaml +RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet pyyaml ################################################################################ From 8aa2152b3e3c0866cbdf3e1ab6c006967ed18f51 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 1 Aug 2022 10:49:24 +0200 Subject: [PATCH 431/437] fix for single process conversion --- DataCollection.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DataCollection.py b/DataCollection.py index efd5326..5d3619d 100644 --- a/DataCollection.py +++ b/DataCollection.py @@ -405,7 +405,8 @@ def __writeData_async_andCollect(self, startindex, outputDir): logger.info('convertFromSourceFile'+sample) td.writeFromSourceFile(sample, self.weighterobjects, istraining = not self.istestdata, outname=newpath) - + self.samples.append(newname) + self.writeToFile(outputDir+'/snapshot.djcdc') td.clear() self.writeToFile(outputDir+'/dataCollection.djcdc') From e7a01e1ed49e0a89a78be61c14e6c1d4117a8cf1 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 1 Aug 2022 10:53:27 +0200 Subject: [PATCH 432/437] just more convenient ordering --- docker/Dockerfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 761f109..2b25a1e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -19,6 +19,10 @@ EXPOSE 8888 # +RUN apt-get install -y vim + +RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet pyyaml + ################################################################################ # Tensorflow @@ -44,9 +48,6 @@ ENV LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:${LD_LIBRARY_PATH}" ############# some more useful packages, mostly requested by users -RUN apt-get install -y vim - -RUN pip3 install bayesian-optimization mgzip mysql-connector-python pyjet pyyaml ################################################################################ From b8a88106e913203ef3d18c8ecb10be4565232bdb Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 1 Aug 2022 10:56:18 +0200 Subject: [PATCH 433/437] auto build fix --- docker/build_if_needed.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/build_if_needed.sh b/docker/build_if_needed.sh index 5d1280a..1e97b4a 100755 --- a/docker/build_if_needed.sh +++ b/docker/build_if_needed.sh @@ -23,7 +23,7 @@ then source image_tags.sh #in case this was updated in the pull - BASE_IMAGE_TAG="${BASE_IMAGE_TAG}_latest" # as this is a bleeding edge build + BASE_IMAGE_TAG="${BASE_IMAGE_TAG}" # as this is a bleeding edge build if [ $OLD_BASE_ID != $NEW_BASE_ID ] || [ $FORCE == "force_base" ] then From 43646ae06b6fd4a90de5cd13bca0fc465573c491 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 15 Aug 2022 11:10:43 +0200 Subject: [PATCH 434/437] added hist --- docker/Dockerfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 2b25a1e..03f8bdf 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -87,5 +87,11 @@ ENV PATH="/usr/share/DJC/DeepJetCore/bin:${PATH}" RUN cd /usr/share/DJC/DeepJetCore/testing/unit && \ python3 test.py + +### ad hoc additions to be moved towards base image in the future +RUN pip3 install hist + + + From 77e535bd55863bdffa169865461a7a862511aacc Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 7 Dec 2022 09:24:07 +0100 Subject: [PATCH 435/437] better error messages for custom object import --- customObjects.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/customObjects.py b/customObjects.py index 126973f..fa1e392 100644 --- a/customObjects.py +++ b/customObjects.py @@ -5,22 +5,25 @@ try: imp.find_module('Losses') from Losses import * -except ImportError: - print ('No Losses module found, ignoring at your own risk') +except ImportError as e: + print ('No Losses module found, ignoring at your own risk. The following error occured:') + print(e) global_loss_list = {} try: imp.find_module('Layers') from Layers import * -except ImportError: - print ('No Layers module found, ignoring at your own risk') +except ImportError as e: + print ('No Layers module found, ignoring at your own risk. The following error occured:') + print(e) global_layers_list = {} try: imp.find_module('Metrics') from Metrics import * -except ImportError: - print ('No metrics module found, ignoring at your own risk') +except ImportError as e: + print ('No metrics module found, ignoring at your own risk. The following error occured:') + print(e) global_metrics_list = {} def get_custom_objects(): From a0054e7851abbbfbfc0e5c7833e7fd91a2e22e5c Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 7 Dec 2022 09:31:08 +0100 Subject: [PATCH 436/437] better printout --- customObjects.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/customObjects.py b/customObjects.py index fa1e392..604d321 100644 --- a/customObjects.py +++ b/customObjects.py @@ -8,6 +8,7 @@ except ImportError as e: print ('No Losses module found, ignoring at your own risk. The following error occured:') print(e) + print('//////////////////') global_loss_list = {} try: @@ -16,6 +17,7 @@ except ImportError as e: print ('No Layers module found, ignoring at your own risk. The following error occured:') print(e) + print('//////////////////') global_layers_list = {} try: @@ -24,6 +26,7 @@ except ImportError as e: print ('No metrics module found, ignoring at your own risk. The following error occured:') print(e) + print('//////////////////') global_metrics_list = {} def get_custom_objects(): From 2cfe450703e916adf5dd6e76b5b5d8334f71249e Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 24 May 2023 10:54:18 +0200 Subject: [PATCH 437/437] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 67f255a..cfe8b59 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ The package comes with a docker file in the subdirectory docker, which will set **Users with access to cvmfs** (e.g. on lxplus or other CERN machines) will find a pre-built singularity container here: ``/cvmfs/unpacked.cern.ch/registry.hub.docker.com/cernml4reco/deepjetcore3:latest`` +In case of doubt, just check if this path exists on the machine you are working on. A good way to enter the container interactively, mounting for example the standard directories on lxplus or similar machines would be: ```

J|BMVy#@pHe@}hwOFcjomV~ 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%0A`|Z|Q?i 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 Xq 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 LWoCfNlYaU?8_K3* literal 0 HcmV?d00001 diff --git a/testing/unit/np_rs.npy b/testing/unit/np_rs.npy new file mode 100644 index 0000000000000000000000000000000000000000..02a43470ecb1cba56305bccc76512e246df8c1b0 GIT binary patch literal 160 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlWC!@qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I#yI+{8PwF(pfE(R#jfYJd_It5At0M1GrJ^%m! literal 0 HcmV?d00001 diff --git a/testing/unit/simpleArray_previous.djcsa b/testing/unit/simpleArray_previous.djcsa new file mode 100644 index 0000000000000000000000000000000000000000..12653bfed8f78e3e7d280addb6f979dff5cb7ab0 GIT binary patch literal 336129 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 T2xUG2wDtE6ECu$%Y#G7-h3c8j literal 0 HcmV?d00001 From 91fa78415c935fbd9326a58b960a2a78515cc8e8 Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 8 Feb 2021 14:09:08 +0100 Subject: [PATCH 332/437] so far tests ok --- __init__.py | 9 +- compiled/interface/quicklzWrapper.h | 2 +- compiled/interface/simpleArray.h | 11 +- compiled/interface/version.h | 10 +- compiled/src/simpleArray.cpp | 17 +- compiled/src/trainData.cpp | 5 +- dataPipeline.py | 9 +- testing/CI/testGenerator_splitting.py | 172 ------------------ testing/CI/testRaggedOperations.py | 56 ------ testing/unit/TestCompatibility.py | 43 +++++ testing/unit/TestSimpleArray.py | 5 +- .../TestTrainDataGenerator.py} | 53 +++--- testing/unit/np_arr.npy | Bin 0 -> 1008128 bytes testing/unit/np_rs.npy | Bin 0 -> 160 bytes testing/unit/simpleArray_previous.djcsa | Bin 0 -> 336129 bytes testing/unit/test.py | 6 +- testing/unit/testfile | Bin 180209 -> 0 bytes testing/unit/trainData_previous.djctd | Bin 0 -> 336205 bytes 18 files changed, 113 insertions(+), 285 deletions(-) delete mode 100644 testing/CI/testGenerator_splitting.py delete mode 100644 testing/CI/testRaggedOperations.py create mode 100644 testing/unit/TestCompatibility.py rename testing/{CI/testRaggedGenerator.py => unit/TestTrainDataGenerator.py} (78%) create mode 100644 testing/unit/np_arr.npy create mode 100644 testing/unit/np_rs.npy create mode 100644 testing/unit/simpleArray_previous.djcsa delete mode 100644 testing/unit/testfile create mode 100644 testing/unit/trainData_previous.djctd diff --git a/__init__.py b/__init__.py index a45b838..f378ad3 100644 --- a/__init__.py +++ b/__init__.py @@ -5,4 +5,11 @@ import tensorflow as tf sys.modules["keras"] = tf.keras -__version__ = '3.0' \ No newline at end of file +__version__ = '3.2' + +#shortcuts +from .TrainData import TrainData +from .SimpleArray import SimpleArray +from .DataCollection import DataCollection +from .Weighter import Weighter + diff --git a/compiled/interface/quicklzWrapper.h b/compiled/interface/quicklzWrapper.h index c3c6046..e4e6bc5 100644 --- a/compiled/interface/quicklzWrapper.h +++ b/compiled/interface/quicklzWrapper.h @@ -95,7 +95,7 @@ void quicklz::readHeader(FILE *& ifile) { totalbytes_ = 0; float version = 0; io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION) + if(!checkVersionCompatible(version)) throw std::runtime_error("quicklz::readHeader: incompatible version"); io::readFromFile(&nchunks_, ifile); chunksizes_ = std::vector(nchunks_, 0); diff --git a/compiled/interface/simpleArray.h b/compiled/interface/simpleArray.h index 5ccdbfd..9a0eed2 100644 --- a/compiled/interface/simpleArray.h +++ b/compiled/interface/simpleArray.h @@ -825,12 +825,11 @@ void simpleArray::readFromFileP(FILE *& ifile) { float version = 0; io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION){ - if(version != 2.0f)//compat - throw std::runtime_error("simpleArray::readFromFile: wrong format version"); + if(!checkVersionCompatible(version)){ + throw std::runtime_error("simpleArray::readFromFile: wrong format version"); } dtypes rdtype=dtype(); - if(version != 2.0f){ + if(checkVersionStrict(version)){ io::readFromFile(&rdtype, ifile); io::readFromFile(&name_, ifile); io::readFromFile(&featnames_, ifile); @@ -881,8 +880,8 @@ void simpleArray::readFromFile(const std::string& f){ throw std::runtime_error("simpleArray::readFromFile: file "+f+" could not be opened."); float version = 0; io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION) - throw std::runtime_error("simpleArray::readFromFile: wrong format version"); + if(!checkVersionCompatible(version)) + throw std::runtime_error("simpleArray::readFromFile: wrong format version: "+std::to_string(version)); readFromFileP(ifile); fclose(ifile); } diff --git a/compiled/interface/version.h b/compiled/interface/version.h index d8b1697..b32e17a 100644 --- a/compiled/interface/version.h +++ b/compiled/interface/version.h @@ -8,8 +8,16 @@ #ifndef DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_VERSION_H_ #define DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_VERSION_H_ -#define DJCDATAVERSION ((float)2.1) +#define DJCDATAVERSION (2.1f) +#define DJCDATAVERSION_COMPAT (2.0f) +inline bool checkVersionCompatible(const float& version){ + return version == DJCDATAVERSION || version == DJCDATAVERSION_COMPAT; +} + +inline bool checkVersionStrict(float version){ + return version == DJCDATAVERSION; +} #endif /* DJCDEV_DEEPJETCORE_COMPILED_INTERFACE_VERSION_H_ */ diff --git a/compiled/src/simpleArray.cpp b/compiled/src/simpleArray.cpp index 7fdfcbe..00bba98 100644 --- a/compiled/src/simpleArray.cpp +++ b/compiled/src/simpleArray.cpp @@ -98,12 +98,11 @@ simpleArrayBase::dtypes simpleArrayBase::readDtypeTypeFromFileP(FILE *& ifile)co float version = 0; io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION){ - if(version != 2.0f)//compat + if(!checkVersionCompatible(version)){//compat throw std::runtime_error("simpleArrayBase::readDtypeTypeFromFileP: wrong format version"); } dtypes dt=float32; - if(version != 2.0f) + if(checkVersionStrict(version)) io::readFromFile(&dt, ifile); fseek(ifile,pos-ftell(ifile),SEEK_CUR);//go back return dt; @@ -115,7 +114,7 @@ simpleArrayBase::dtypes simpleArrayBase::readDtypeTypeFromFile(const std::string throw std::runtime_error("simpleArrayBase::readDtypeTypeFromFile: file "+f+" could not be opened."); float version = 0; io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION && version != 2.0f) + if(!checkVersionCompatible(version)) throw std::runtime_error("simpleArrayBase::readDtypeTypeFromFile: wrong format version"); auto type = readDtypeTypeFromFileP(ifile); fclose(ifile); @@ -130,8 +129,16 @@ std::vector simpleArrayBase::readRowSplitsFromFileP(FILE *& ifile, bool std::vector shape; std::vector rowsplits; io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION) + if(!checkVersionCompatible(version)) throw std::runtime_error("simpleArrayBase::readRowSplitsFromFileP: wrong format version"); + if(checkVersionStrict(version)){ + dtypes rdtype; + std::string namedummy; + std::vector featnamedummy; + io::readFromFile(&rdtype, ifile); + io::readFromFile(&namedummy, ifile); + io::readFromFile(&featnamedummy, ifile); + } io::readFromFile(&size, ifile); diff --git a/compiled/src/trainData.cpp b/compiled/src/trainData.cpp index bc54038..bd9bf9f 100644 --- a/compiled/src/trainData.cpp +++ b/compiled/src/trainData.cpp @@ -391,9 +391,8 @@ void trainData::checkFile(FILE *& ifile, const std::string& filename)const{ throw std::runtime_error("trainData::readFromFile: file "+filename+" could not be opened."); float version = 0; io::readFromFile(&version, ifile); - if(version != DJCDATAVERSION) - if(version !=2.0f) - throw std::runtime_error("trainData::readFromFile: wrong format version"); + if(!checkVersionCompatible(version)) + throw std::runtime_error("trainData::readFromFile: wrong format version"); } diff --git a/dataPipeline.py b/dataPipeline.py index ef303c9..45f2559 100644 --- a/dataPipeline.py +++ b/dataPipeline.py @@ -4,9 +4,10 @@ class TrainDataGenerator(trainDataGenerator): - def __init__(self, extend_truth_list_by=0): + def __init__(self, pad_rowsplits=False, extend_truth_list_by=0): trainDataGenerator.__init__(self) self.extend_truth_list_by = extend_truth_list_by + self.pad_rowsplits=pad_rowsplits def feedNumpyData(self): @@ -14,9 +15,9 @@ def feedNumpyData(self): try: data = self.getBatch() - xout = data.transferFeatureListToNumpy() - wout = data.transferWeightListToNumpy() - yout = data.transferTruthListToNumpy() + xout = data.transferFeatureListToNumpy(self.pad_rowsplits) + wout = data.transferWeightListToNumpy(self.pad_rowsplits) + yout = data.transferTruthListToNumpy(self.pad_rowsplits) if self.extend_truth_list_by > 0: tadd = [np.array([0],dtype='float32') for _ in range(self.extend_truth_list_by)] diff --git a/testing/CI/testGenerator_splitting.py b/testing/CI/testGenerator_splitting.py deleted file mode 100644 index ef9a414..0000000 --- a/testing/CI/testGenerator_splitting.py +++ /dev/null @@ -1,172 +0,0 @@ - -from DeepJetCore.compiled.c_simpleArray import simpleArray -from DeepJetCore.TrainData import TrainData -import numpy as np -import time -import copy -from DeepJetCore.TrainData import TrainData - -data = np.arange(0, 64 , dtype='float32') -data = np.reshape(data, [-1,2]) - -rowsplits = np.array([0, 2, 3, 7, 8, 11, 18, 19, 23, 25, 27, len(data)], dtype='int64') - -truth = np.arange(0, len(rowsplits)-1 , dtype='float32') - -batchsizes = [3, - 5, - 10] - -expected_elmts = [[2,None,1,1,None,1,None,1,1,None], - [2,2,1,None,2,2,1], - [4,2,4,1] - ] - -#print(data) - - -#arr.readFromFile("testfile.djcd") - - -#id, rs = arr.transferToNumpy() - -print(data) -print(rowsplits) - - -#arr.readFromFile("testfile_plain.djcd") -# -#id, rs = arr.transferToNumpy() -# -#print(id) -#print(rs) -# -print("now for the creation, see if it checks out") -arr = simpleArray() - -#check for mem leaks -arr.createFromNumpy(data, rowsplits)#), rowsplits) - -trutharr = simpleArray() -trutharr.createFromNumpy(truth, np.array([])) - -truth_array = simpleArray() -truth_array.createFromNumpy(truth, np.array([])) - - -arr.cout() - -td = TrainData() -td.storeFeatureArray(arr) -td.storeTruthArray(truth_array) - - -print('td.nElements()',td.nElements()) - - -filenames = ["file1.djctd"] -for f in filenames: - td.writeToFile(f) - -print("check generator") -from DeepJetCore.compiled.c_trainDataGenerator import trainDataGenerator - - - - -for b in range(len(batchsizes)): - batchsize=batchsizes[b] - expected_here = expected_elmts[b] - - gen = trainDataGenerator() - gen.debuglevel=100 - #gen.setSquaredElementsLimit(True) - gen.setBatchSize(batchsize) - print('batchsize',batchsize) - print('reading in info') - gen.setFileList(filenames) - print('done reading in') - - - #print("expect: 5, 4, 4, 5, 4, 4 = 6 ") - nbatches = gen.getNBatches() - #print(nbatches) - print("gen.getNTotal()", gen.getNTotal()) # <- bullshit - print("gen.getNBatches()", gen.getNBatches()) - - - #gen.debug=True - i_e = 0 - for i in range(nbatches): - print("batch", i, "is last ", gen.lastBatch()) - d = gen.getBatch() - nelems=d.nElements() - if expected_here[i_e] is None: - i_e += 1 - assert expected_here[i_e] == nelems - i_e += 1 - - -print('testing direct buffering') - - - -for b in range(len(batchsizes)): - batchsize=batchsizes[b] - expected_here = expected_elmts[b] - - gen = trainDataGenerator() - gen.debug=True - #gen.setSquaredElementsLimit(True) - gen.setBatchSize(batchsize) - print('batchsize',batchsize) - print('setting buffer') - gen.setBuffer(td) - print('done setting buffer') - - - #print("expect: 5, 4, 4, 5, 4, 4 = 6 ") - nbatches = gen.getNBatches() - #print(nbatches) - print("gen.getNTotal()", gen.getNTotal()) # <- bullshit - print("gen.getNBatches()", gen.getNBatches()) - - - #gen.debug=True - i_e = 0 - for i in range(nbatches): - print("batch", i, "is last ", gen.lastBatch()) - d = gen.getBatch() - nelems=d.nElements() - if expected_here[i_e] is None: - i_e += 1 - assert expected_here[i_e] == nelems - i_e += 1 - - - - -print('checking 1 example generator') - -td.skim(0) -gen = trainDataGenerator() -gen.setBuffer(td) -d = gen.getBatch() -nelems=d.nElements() - -assert nelems == 1 - - - - - - - - - - - - - - - diff --git a/testing/CI/testRaggedOperations.py b/testing/CI/testRaggedOperations.py deleted file mode 100644 index 6d110c8..0000000 --- a/testing/CI/testRaggedOperations.py +++ /dev/null @@ -1,56 +0,0 @@ - -from DeepJetCore.compiled.c_simpleArray import simpleArray -import numpy as np - -data = np.arange(0, 64 , dtype='float32') -data = np.reshape(data, [-1,2]) -rowsplits = np.array([0, 2, 3, 7, 8, 11, 18, 19, 23, 25, 27, 32], dtype='int64') - -arr = simpleArray() -arr.createFromNumpy(data, rowsplits) - -slice = arr.getSlice(2,6) -nps,rss = slice.copyToNumpy(False) -nps_exp = np.array([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],dtype='float32') -nps_exp = np.reshape(nps_exp, [-1,2]) -rss_exp = np.array([0,4,5,8,15],dtype='int64') - -assert np.all(nps_exp == nps) and np.all(rss_exp == rss) - -arr2 = simpleArray() -arr2.createFromNumpy(data, rowsplits) - -arr.append(arr2) - - -arr3 = arr.split(11) - -np1,rs1 = arr.copyToNumpy(False) -np3,rs3 = arr3.copyToNumpy(False) - -assert np.all(np1 == np3) and np.all(np1 == data) -assert np.all(rs1 == rs3) and np.all(rs1 == rowsplits) - -arr4 = arr.split(1) -np4,rs4 = arr.copyToNumpy(False) -arrexp_np4 = np.arange(4, 64 , dtype='float32') -arrexp_np4 = np.reshape(arrexp_np4, [-1,2]) -rsexp_rs4 = np.array([2, 3, 7, 8, 11, 18, 19, 23, 25, 27, 32], dtype='int64')-2 - - -np5,rs5 = arr4.copyToNumpy(False) -exp_np5 = np.arange(0, 4 , dtype='float32') -exp_np5 = np.reshape(exp_np5, [-1,2]) -exp_rs5 = np.array([0, 2], dtype='int64') - - -assert np.all(np5 == exp_np5) and np.all(rs5 == exp_rs5) - -arr.append(arr4) -np6,rs6 = arr.copyToNumpy(False) -exp_np6 = np.concatenate( [np.arange(4, 64 , dtype='float32'), np.arange(0, 4 , dtype='float32')], axis=-1) -exp_np6 = np.reshape(exp_np6, [-1,2]) -exp_rs6 = np.concatenate([rsexp_rs4, np.array([32], dtype='int64')], axis=-1) - -assert np.all(np6 == exp_np6) and np.all(rs6 == exp_rs6) - diff --git a/testing/unit/TestCompatibility.py b/testing/unit/TestCompatibility.py new file mode 100644 index 0000000..46f120d --- /dev/null +++ b/testing/unit/TestCompatibility.py @@ -0,0 +1,43 @@ +''' +Checks for file compatibility with (only) the previous version. +''' + +from DeepJetCore.TrainData import TrainData +from DeepJetCore.SimpleArray import SimpleArray +import numpy as np +import unittest + + +class TestCompatibility(unittest.TestCase): + + def test_SimpleArrayRead(self): + print('TestCompatibility SimpleArray') + a = SimpleArray() + a.readFromFile("simpleArray_previous.djcsa") + + arr = np.load("np_arr.npy") + rs = np.load("np_rs.npy") + + b = SimpleArray(arr,rs) + + self.assertEqual(a,b) + + def test_TrainDataRead(self): + print('TestCompatibility TrainData') + td = TrainData() + td.readFromFile('trainData_previous.djctd') + + self.assertEqual(td.nFeatureArrays(), 1) + + arr = np.load("np_arr.npy") + rs = np.load("np_rs.npy") + + b = SimpleArray(arr,rs) + + a = td.transferFeatureListToNumpy(False) + a, rs = a[0],a[1] + + a = SimpleArray(a,np.array(rs,dtype='int64')) + + self.assertEqual(a,b) + \ No newline at end of file diff --git a/testing/unit/TestSimpleArray.py b/testing/unit/TestSimpleArray.py index ef55429..98700cc 100644 --- a/testing/unit/TestSimpleArray.py +++ b/testing/unit/TestSimpleArray.py @@ -64,9 +64,10 @@ def test_writeRead(self): a = SimpleArray(arr,rs) a.setName("myname") a.setFeatureNames(["a","b","c","d","e","f"]) - a.writeToFile("testfile") + a.writeToFile("testfile.djcsa") b = SimpleArray() - b.readFromFile("testfile") + b.readFromFile("testfile.djcsa") + os.system('rm -f testfile.djcsa') #os.system("rf -f testfile") ad, ars = a.copyToNumpy() diff --git a/testing/CI/testRaggedGenerator.py b/testing/unit/TestTrainDataGenerator.py similarity index 78% rename from testing/CI/testRaggedGenerator.py rename to testing/unit/TestTrainDataGenerator.py index 41f9164..2c6d7f3 100644 --- a/testing/CI/testRaggedGenerator.py +++ b/testing/unit/TestTrainDataGenerator.py @@ -1,7 +1,7 @@ import numpy as np -from DeepJetCore.TrainData import TrainData -from DeepJetCore.DataCollection import DataCollection +from DeepJetCore import TrainData, DataCollection import shutil +import unittest class RaggedTester(object): def __init__(self, auto_create=0): @@ -81,49 +81,44 @@ class TrainData_test(TrainData): def convertFromSourceFile(self, filename, weighterobjects, istraining): global raggedtester import hashlib - from DeepJetCore.compiled.c_simpleArray import simpleArray + from DeepJetCore import SimpleArray seed = int(hashlib.sha1(filename.encode('utf-8')).hexdigest(), 16) % (10 ** 8) np.random.seed(seed) nsamples = np.random.randint(12,5415,size=1) data,rs = raggedtester.createData(nsamples) - farr = simpleArray() + farr = SimpleArray() farr.createFromNumpy(data, rs) return [farr],[],[] -class RaggedGeneratorTester(object): - def __init__(self, - n_files=5, - n_per_batch=2078, - ): +class TestTrainDataGenerator(unittest.TestCase): - self.files = TempFileList(n_files) - self.dcoutdir = TempDirName() - self.n_per_batch=n_per_batch + def test_fullGenerator(self): + print("TestTrainDataGenerator full generator") - def __del__(self): - shutil.rmtree(self.dcoutdir.path) + passed = True + n_files=11 + n_per_batch=2078 + files = TempFileList(n_files) + dcoutdir = TempDirName() - def test(self): - - passed = True + n_per_batch=n_per_batch dc = DataCollection() dc.dataclass = TrainData_test - dc.sourceList = [f for f in self.files.filenames] - dc.createDataFromRoot(TrainData_test, outputDir=self.dcoutdir.path) + dc.sourceList = [f for f in files.filenames] + dc.createDataFromRoot(TrainData_test, outputDir=dcoutdir.path) gen = dc.invokeGenerator() - gen.setBatchSize(self.n_per_batch) + gen.setBatchSize(n_per_batch) for epoch in range(10): gen.prepareNextEpoch() - print("epoch",epoch,'batches',gen.getNBatches()) for b in range(gen.getNBatches()): d,_ = next(gen.feedNumpyData()) data,rs = d[0],d[1] @@ -135,20 +130,14 @@ def test(self): print('epoch',epoch, 'batch',b,'broken') passed=False break - if rs[-1] > self.n_per_batch: + if rs[-1] > n_per_batch: print('maximum batch size exceeded for batch ',b, 'epoch', epoch) + passed = False + break - print('shuffling') gen.shuffleFilelist() - return passed + shutil.rmtree(dcoutdir.path) + self.assertTrue(passed) -tester = RaggedGeneratorTester() -tester.test() - - - - - - diff --git a/testing/unit/np_arr.npy b/testing/unit/np_arr.npy new file mode 100644 index 0000000000000000000000000000000000000000..b962faba42c6a06b4a4fefdc1796c696d7ad5350 GIT binary patch literal 1008128 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

lpS}0(+kdls{%?7C+d#K3Tg3xuIPC2%BIY@` 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