def onSubmitClickedSlot(self): #Finally Generating the results and storing it appropreately tickedList = [ self.listWidget.item(i).text().__str__() for i in range(self.listWidget.count()) if self.listWidget.item(i).checkState() != 0 ] print tickedList batchSize = self.lineEdit.text().__str__() dataName = self.comboBox.currentText().__str__() saveName = self.lineEditName.text().__str__() netName = self.comboBox_2.currentText().__str__() triggerList = self.createTriggerList() #Write the Shell Script scriptName = root + '/net/temp/temp_' + netName + '_' + dataName + '_' + saveName + '_' + str( batchSize) + '.sh' logName = root + '/net/temp/temp_' + netName + '_' + dataName + '_' + saveName + '_' + str( batchSize) + '_log.txt' if (os.path.exists(logName)): os.remove(logName) with open(scriptName, 'w') as f: for elem in tickedList: f.write('python ' + root + '/src/exp/extractFeatures.py ' + saveName + ' ' + netName + ' ' + str(batchSize) + ' ' + elem + ' ' + dataName + '\n') #Writing the Shell Script Ends inthread(self.runParallel, scriptName, triggerList)
def onSubmitClickedSlot(self): modelName=self.comboBox.currentText().__str__() dataName=self.comboBoxTesting.currentText().__str__() option=False#False implies Liblinear else LibSVM if('liblinear' not in open(root+'/net/SVM/'+modelName+'/'+modelName+'.sh').read()):option=True triggerList=self.createTriggerList(modelName) inthread(self.runparallel,modelName,dataName,option,triggerList)
def onSubmitClickedSlot(self): #Finally Generating the results and storing it appropreately tickedList=[self.listWidget.item(i).text().__str__() for i in range(self.listWidget.count()) if self.listWidget.item(i).checkState()!=0] print tickedList dataName=self.comboBox_3.currentText().__str__() netName=self.comboBox_2.currentText().__str__() inthread(self.runParallel,netName,tickedList,dataName)
def runParallel(self,scriptName,triggerList): print triggerList p=Process(target=self.callback,args=([scriptName])) inthread(self.sidethread,p,scriptName,triggerList) p.start() p.join() sleep(0.5) self.signalRefreshTrigger.emit("Experiment Created"); triggerList=self.endTrigger(triggerList) #====>End
def runParallel(self, scriptName, triggerList): print triggerList p = Process(target=self.callback, args=([scriptName])) inthread(self.sidethread, p, scriptName, triggerList) p.start() p.join() sleep(0.5) self.signalRefreshTrigger.emit("Experiment Created") triggerList = self.endTrigger(triggerList) #====>End
def pushButtonOkClicked(self): if self.lineEditData.text()=='' or self.lineEditFolderData.text()=='': QtGui.QMessageBox.about(self,'Incomplete Conversion','Data Left Out\nCheck Form again') #For TEXT option if(self.comboBox.currentText().__str__()=='Text' and str(self.lineEditData.text())!='' and self.lineEditFolderData.text()!=''): if(os.path.exists(self.lineEditFolderData.text())==0): QtGui.QMessageBox.about(self,'File Not Found',self.lineEditFolderData.text() +'\n Does not Exist') return triggerList=self.createTriggerList() inthread(self.runParallel,DataHandler.text2HDF5,str(self.lineEditData.text()), self.lineEditFolderData.text(),self.root+'/data',False,self.dimx,self.dimy,self.dimz,triggerList)#Parallel ThreadExecution return #Jaley End if(self.comboBox.currentText().__str__()=='Mat' and str(self.lineEditData.text())!='' and self.lineEditFolderData.text()!=''): if(os.path.exists(self.lineEditFolderData.text())==0): QtGui.QMessageBox.about(self,'File Not Found',self.lineEditFolderData.text()+'\n Does not Exist') return triggerList=self.createTriggerList() inthread(self.runParallel,DataHandler.mat2HDF5,str(self.lineEditData.text()), str(self.lineEditFolderData.text()),self.root+'/data',True,None,None,None,triggerList)#Parallel ThreadExecution #os.kill(p.pid(),SIGTERM) return if(self.comboBox.currentText().__str__()=='LevelDB' and str(self.lineEditData.text())!='' and self.lineEditFolderData.text()!=''): if(os.path.exists(self.lineEditFolderData.text())==0): QtGui.QMessageBox.about(self,'Folder Not Found',self.lineEditFolderData.text()+'/test_leveldb\n Does not Exist') return triggerList=self.createTriggerList() inthread(self.runParallel,DataHandler.leveldb2HDF5,str(self.lineEditData.text()), str(self.lineEditFolderData.text()),self.root+'/data',True,self.dimx,self.dimy,self.dimz,triggerList)#Parallel ThreadExecution if(str(self.comboBox.currentText())=='Folder' and str(self.lineEditData.text())!='' and self.lineEditFolderData.text()!=''): if(os.path.exists(self.lineEditFolderData.text())==0): QtGui.QMessageBox.about(self,'Folder Not Found',self.lineEditFolderData.text()+'\n Does not Exist') return triggerList=self.createTriggerList() inthread(self.runParallel,DataHandler.folder2HDF5,str(self.lineEditData.text()), self.lineEditFolderData.text().__str__(),self.root+'/data',True,self.dimx,self.dimy,self.dimz,triggerList)#Parallel ThreadExecution if(self.comboBox.currentText().__str__()=='HDF5' and str(self.lineEditData.text())!='' and self.lineEditFolderData.text()!=''): if(os.path.exists(self.lineEditFolderData.text())==0): QtGui.QMessageBox.about(self,'File Not Found',self.lineEditFolderData.text() +'\n Does not Exist') return triggerList=self.createTriggerList() inthread(self.runParallel,DataHandler.HDF52HDF5,str(self.lineEditData.text()), self.lineEditFolderData.text(),self.root+'/data',False,None,None,None,triggerList)#Parallel ThreadExecution return return
def onSubmitClickedSlot(self): modelName = self.comboBox.currentText().__str__() dataName = self.comboBoxTesting.currentText().__str__() option = False #False implies Liblinear else LibSVM if ('liblinear' not in open(root + '/net/SVM/' + modelName + '/' + modelName + '.sh').read()): option = True triggerList = self.createTriggerList(modelName) inthread(self.runparallel, modelName, dataName, option, triggerList)
def runParallel(self,target,saveName,importLoc,saveLoc,hasLabel,dimx,dimy,dimz,triggerList): p=Process(target=target,args=(saveName,importLoc,saveLoc,hasLabel,dimx,dimy,dimz)) inthread(self.sidethread,p,triggerList) p.start() p.join() sleep(0.5) self.endTrigger(triggerList) #====>End return
def runParallel(self,name,path,triggerList,maxIterations,netParam): p=Process(target=self.callback,args=(name,path)) inthread(self.sidethread,p,triggerList,maxIterations) p.start() p.join() sleep(0.5) self.signalUpdateTrigger.emit([name,netParam]); self.signalRefreshTrigger.emit(name) self.endTrigger(triggerList) #====>End return
def runParallel(self, name, path, triggerList, maxIterations, netParam): p = Process(target=self.callback, args=(name, path)) inthread(self.sidethread, p, triggerList, maxIterations) p.start() p.join() sleep(0.5) self.signalUpdateTrigger.emit([name, netParam]) self.signalRefreshTrigger.emit(name) self.endTrigger(triggerList) #====>End return
def on_click(self): """Run Measure Ball""" # Change icon so the user knows something happened, since the game can take a # few seconds to start self.icon_mouse_over = self.icon_smiley self.setIcon(self.icon_mouse_over) # Ensure they can't run the game twice at once: self.setEnabled(False) # Wait for the subprocess in a thread so that we know when it quits: qtutils.inthread(self.run_measure_ball)
def runParallel(self, target, saveName, importLoc, saveLoc, hasLabel, dimx, dimy, dimz, triggerList): p = Process(target=target, args=(saveName, importLoc, saveLoc, hasLabel, dimx, dimy, dimz)) inthread(self.sidethread, p, triggerList) p.start() p.join() sleep(0.5) self.endTrigger(triggerList) #====>End return
def onSubmitClickedSlot(self): #Finally Generating the results and storing it appropreately tickedList = [ self.listWidget.item(i).text().__str__() for i in range(self.listWidget.count()) if self.listWidget.item(i).checkState() != 0 ] print tickedList dataName = self.comboBox_3.currentText().__str__() netName = self.comboBox_2.currentText().__str__() inthread(self.runParallel, netName, tickedList, dataName)
def onSubmitClickedSlot(self): #Finally Generating the results and storing it appropreately tickedList=[self.listWidget.item(i).text().__str__() for i in range(self.listWidget.count()) if self.listWidget.item(i).checkState()!=0] print tickedList batchSize=self.lineEdit.text().__str__() dataName=self.comboBox.currentText().__str__() saveName=self.lineEditName.text().__str__() netName=self.comboBox_2.currentText().__str__() triggerList=self.createTriggerList() #Write the Shell Script scriptName=root+'/net/temp/temp_'+netName+'_'+dataName+'_'+saveName+'_'+str(batchSize)+'.sh' logName=root+'/net/temp/temp_'+netName+'_'+dataName+'_'+saveName+'_'+str(batchSize)+'_log.txt' if(os.path.exists(logName)):os.remove(logName) with open(scriptName,'w') as f: for elem in tickedList: f.write('python '+root+'/src/exp/extractFeatures.py '+saveName+' '+netName+' '+str(batchSize)+' '+elem+' '+dataName+'\n') #Writing the Shell Script Ends inthread(self.runParallel,scriptName,triggerList)
def onSubmitClickedSlot(self): choice=self.comboBox.currentIndex() name=str(self.lineEdit_5.text()) dataName=str(self.comboBoxTraining.currentText()); paramstring='' cl=str(self.lineEdit.text())#C for liblinear cs=str(self.lineEdit_2.text()) # C for libSVM g=str(self.lineEdit_4.text()) # G for libSVM if(choice==0): #Append Currently for LibLinear if(cl==''):cl='4' paramstring=paramstring+'-c '+cl pass elif(choice==1): if(cs==''):cs='4' if(g==''):g='0.5' paramstring=paramstring+'-c '+cs paramstring=paramstring+' -g '+g #Append Currently for LibSVM pass triggerList=self.createTriggerList(name) inthread(self.runparallel,name,dataName,choice,paramstring,triggerList)
def onSubmitClickedSlot(self): choice = self.comboBox.currentIndex() name = str(self.lineEdit_5.text()) dataName = str(self.comboBoxTraining.currentText()) paramstring = '' cl = str(self.lineEdit.text()) #C for liblinear cs = str(self.lineEdit_2.text()) # C for libSVM g = str(self.lineEdit_4.text()) # G for libSVM if (choice == 0): #Append Currently for LibLinear if (cl == ''): cl = '4' paramstring = paramstring + '-c ' + cl pass elif (choice == 1): if (cs == ''): cs = '4' if (g == ''): g = '0.5' paramstring = paramstring + '-c ' + cs paramstring = paramstring + ' -g ' + g #Append Currently for LibSVM pass triggerList = self.createTriggerList(name) inthread(self.runparallel, name, dataName, choice, paramstring, triggerList)
target_frame_rate = 20 plot_window = pg.PlotWindow() abs_curve = None pot_curve = None tf_curve = None def run_sims(): psi = initial() k = 2 * pi * 5 / (10e-6) # Give the condensate a kick: psi *= np.exp(1j * k * x) # print a soliton onto the condensate: density = (psi.conj() * density_operator * psi).real x_soliton = 5e-6 rho_bg = density[np.abs(x - x_soliton) == np.abs(x - x_soliton).min()].mean() v_soliton = 0 # hbar*k/m soliton_envelope = dark_soliton(x, x_soliton, rho_bg, v_soliton) psi *= soliton_envelope # psi = imaginary_evolution(psi) psi = evolution(psi) # run_sims() inthread(run_sims) QtGui.QApplication.instance().exec_()
def popMessage(self,text='default'): self.messageAlert.setText(text) inthread(self.iterateMessage,text)
def createConfiguration(self,extra=None): name=self.page3Widget.lineEditConfigName.text().__str__().lower() path=root+'/net/train/'+self.page3Widget.lineEditConfigName.text().__str__().lower() self.path=path print 'PATH!!!',path # 1. Create Folder in train if(os.path.exists(path)==False):os.mkdir(root+'/net/train/'+self.page3Widget.lineEditConfigName.text().__str__().lower()) # 2. Add train_net,solver,etc into it. self.index= self.page1NetEditor.index self.maxIterations=10000 self.netHandler=netConfig_pb2.Param(); self.data=open(root+'/net/netData.prototxt').read() text_format.Merge(self.data,self.netHandler) print self.netHandler.net[self.index] open(path+'/'+name+'_train.prototxt','w').write(open(self.netHandler.net[self.index].trainpath,'r').read()) with open(path+'/'+name+'_solver.prototxt','w') as f: solverHandle=caffe_pb2.SolverParameter() #Loading it instant self.page2Widget.updateHandle() text_format.Merge(self.page2Widget.protoHandler.__str__(),solverHandle) #Loading it instant ends #text_format.Merge(open(self.netHandler.net[self.index].solverpath,'r').read(),solverHandle) solverHandle.snapshot_prefix=(path+'/'+name); solverHandle.net=(path+'/'+name+'_train.prototxt') if(self.netHandler.net[self.index].gpu==True): solverHandle.solver_mode=1 else: solverHandle.solver_mode=0 #Getting solver maximum iterations self.maxIterations=solverHandle.max_iter #Getting solver iterations ends open(self.netHandler.net[self.index].solverpath,'w').write(solverHandle.__str__()) f.write(solverHandle.__str__()) ### FINETUNE STARTS self.isFinetune=False if(self.netHandler.net[self.index].modelpath!=""): reply=QtGui.QMessageBox.question(self, 'Message', "Do you want to finetune using existing weights?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if(reply==QtGui.QMessageBox.Yes):self.isFinetune=True ### FINETUNE ENDS trainDataName=self.page3Widget.widget.comboBoxTraining.currentText() validationDataName=self.page3Widget.widget.comboBoxValidation.currentText() shutil.copy(root+'/data/'+trainDataName+'.hdf5',path+'/'+name+'_train.hdf5') shutil.copy(root+'/data/'+validationDataName+'.hdf5',path+'/'+name+'_val.hdf5') with open(path+'/'+name+'_trainscript.sh','w') as f: f.write("#!/usr/bin/env sh\n") #f.write("cd $CAFFE_ROOT\n") otherarguments=' -weights '+self.netHandler.net[self.index].modelpath if self.isFinetune==True else '' if(self.netHandler.net[self.index].gpu==True):otherarguments=otherarguments+' -gpu '+str(self.netHandler.net[self.index].gpu_index) f.write(os.getenv('CAFFE_ROOT')+'/build/tools/caffe train --solver='+path+'/'+name+'_solver.prototxt'+otherarguments+'\n') f.write('echo \'Train Completed \'') with open(path+'/'+name+'_train.txt','w') as f: f.write(path+'/'+name+'_train.hdf5') with open(path+'/'+name+'_val.txt','w') as f: f.write(path+'/'+name+'_val.hdf5') #Change The train_test prototxt to associate right data handle=caffe_pb2.NetParameter() text_format.Merge(open(path+'/'+name+'_train.prototxt').read(),handle) ######### NEW VERSION ######################### if len(handle.layers)==0: if(True): if(True): #if(handle.layers[0].type in [5,12,29,24]): #del handle.layers[0].data_param layerHandle=caffe_pb2.LayerParameter() text_format.Merge(open(root+'/net/defaultHDF5TrainDataNew.prototxt').read(),layerHandle) #if(self.netHandler.net[self.index].has_mean==True): #layerHandle.transform_param #layerHandle.transform_param.mean_file=self.netHandler.net[self.index].meanpath #else: #layerHandle.ClearField('transform_param') handle.layer[0].CopyFrom(layerHandle) handle.layer[0].name=name.lower() #BatchSize Starts batchSize=self.page3Widget.widget.lineEditBatchSizeTraining.text().__str__() batchSize=100 if batchSize=="" else int(batchSize) handle.layer[0].hdf5_data_param.batch_size=batchSize #BatchSize Ends handle.layer[0].hdf5_data_param.source=path+'/'+name+'_train.txt' print handle.layer[0] if(self.page3Widget.widget.checkBoxValidation.checkState()>0): #if(handle.layers[1].type in [5,12,29,24]):#handle.layers[1].type="HDF5Data" layerHandle=caffe_pb2.LayerParameter() text_format.Merge(open(root+'/net/defaultHDF5TestDataNew.prototxt').read(),layerHandle) handle.layer[1].CopyFrom(layerHandle) handle.layer[1].name=name #BatchSize Starts batchSize=self.page3Widget.widget.lineEditBatchSizeValidation.text().__str__() batchSize=100 if batchSize=="" else int(batchSize) handle.layer[1].hdf5_data_param.batch_size=batchSize #BatchSize Ends handle.layer[1].hdf5_data_param.source=path+'/'+name+'_val.txt' print handle.layer[1] else: del handle.layer[1] for layerIdx,layer in enumerate(handle.layer): for incIdx,inc in enumerate(layer.include): if inc.HasField('phase'): if(inc.phase==0): del handle.layer[layerIdx].include[incIdx] #Check Later what happens if only 'phase' is removed. else: del handle.layer[layerIdx] #if(self.netHandler.net[self.index].has_mean==True): #layerHandle.transform_param #layerHandle.transform_param.mean_file=self.netHandler.net[self.index].meanpath #else: #layerHandle.ClearField('transform_param') ################ OLD VERSION ######################### else: if(True): if(True): #if(handle.layers[0].type in [5,12,29,24]): #del handle.layers[0].data_param layerHandle=caffe_pb2.LayerParameter() text_format.Merge(open(root+'/net/defaultHDF5TrainData.prototxt').read(),layerHandle) handle.layers[0].name=name.lower() if(self.netHandler.net[self.index].has_mean==True): #layerHandle.transform_param layerHandle.transform_param.mean_file=self.netHandler.net[self.index].meanpath else: layerHandle.ClearField('transform_param') handle.layers[0].CopyFrom(layerHandle) #BatchSize Starts batchSize=self.page3Widget.widget.lineEditBatchSizeTraining.text().__str__() batchSize=100 if batchSize=="" else int(batchSize) handle.layer[0].hdf5_data_param.batch_size=batchSize #BatchSize Ends handle.layers[0].hdf5_data_param.source=path+'/'+name+'_train.txt' print handle.layers[0] if(self.page3Widget.widget.checkBoxValidation.checkState()>0): #if(handle.layers[1].type in [5,12,29,24]):#handle.layers[1].type="HDF5Data" layerHandle=caffe_pb2.LayerParameter() text_format.Merge(open(root+'/net/defaultHDF5TestData.prototxt').read(),layerHandle) handle.layers[1].name=name handle.layers[1].CopyFrom(layerHandle) #BatchSize Starts batchSize=self.page3Widget.widget.lineEditBatchSizeValidation.text().__str__() batchSize=100 if batchSize=="" else int(batchSize) handle.layer[1].hdf5_data_param.batch_size=batchSize #BatchSize Ends handle.layers[1].hdf5_data_param.source=path+'/'+name+'_val.txt' print handle.layers[1] if(self.netHandler.net[self.index].has_mean==True): #layerHandle.transform_param layerHandle.transform_param.mean_file=self.netHandler.net[self.index].meanpath else: layerHandle.ClearField('transform_param') else: del handle.layers[1] ####### REMODIFICATION OF FIRST TWO LAYERS START open(path+'/'+name+'_train.prototxt','w').write(handle.__str__()) print 'PATH BEFORE PROGRESS',path triggerList=self.createTriggerList() inthread(self.runParallel,name,path,triggerList,self.maxIterations,str(self.netHandler.net[self.index]))
def onOkClicked(self): #On Ok Clicked value=self.horizontalSlider.value() inthread(self.runParallel,root,self.dataName,value) self.closeSlot()
def popMessage(self, text='default'): self.messageAlert.setText(text) inthread(self.iterateMessage, text)
def pushButtonOkClicked(self): if self.lineEditData.text() == '' or self.lineEditFolderData.text( ) == '': QtGui.QMessageBox.about(self, 'Incomplete Conversion', 'Data Left Out\nCheck Form again') #For TEXT option if (self.comboBox.currentText().__str__() == 'Text' and str(self.lineEditData.text()) != '' and self.lineEditFolderData.text() != ''): if (os.path.exists(self.lineEditFolderData.text()) == 0): QtGui.QMessageBox.about( self, 'File Not Found', self.lineEditFolderData.text() + '\n Does not Exist') return triggerList = self.createTriggerList() inthread(self.runParallel, DataHandler.text2HDF5, str(self.lineEditData.text()), self.lineEditFolderData.text(), self.root + '/data', False, self.dimx, self.dimy, self.dimz, triggerList) #Parallel ThreadExecution return #Jaley End if (self.comboBox.currentText().__str__() == 'Mat' and str(self.lineEditData.text()) != '' and self.lineEditFolderData.text() != ''): if (os.path.exists(self.lineEditFolderData.text()) == 0): QtGui.QMessageBox.about( self, 'File Not Found', self.lineEditFolderData.text() + '\n Does not Exist') return triggerList = self.createTriggerList() inthread(self.runParallel, DataHandler.mat2HDF5, str(self.lineEditData.text()), str(self.lineEditFolderData.text()), self.root + '/data', True, None, None, None, triggerList) #Parallel ThreadExecution #os.kill(p.pid(),SIGTERM) return if (self.comboBox.currentText().__str__() == 'LevelDB' and str(self.lineEditData.text()) != '' and self.lineEditFolderData.text() != ''): if (os.path.exists(self.lineEditFolderData.text()) == 0): QtGui.QMessageBox.about( self, 'Folder Not Found', self.lineEditFolderData.text() + '/test_leveldb\n Does not Exist') return triggerList = self.createTriggerList() inthread(self.runParallel, DataHandler.leveldb2HDF5, str(self.lineEditData.text()), str(self.lineEditFolderData.text()), self.root + '/data', True, self.dimx, self.dimy, self.dimz, triggerList) #Parallel ThreadExecution if (str(self.comboBox.currentText()) == 'Folder' and str(self.lineEditData.text()) != '' and self.lineEditFolderData.text() != ''): if (os.path.exists(self.lineEditFolderData.text()) == 0): QtGui.QMessageBox.about( self, 'Folder Not Found', self.lineEditFolderData.text() + '\n Does not Exist') return triggerList = self.createTriggerList() inthread(self.runParallel, DataHandler.folder2HDF5, str(self.lineEditData.text()), self.lineEditFolderData.text().__str__(), self.root + '/data', True, self.dimx, self.dimy, self.dimz, triggerList) #Parallel ThreadExecution if (self.comboBox.currentText().__str__() == 'HDF5' and str(self.lineEditData.text()) != '' and self.lineEditFolderData.text() != ''): if (os.path.exists(self.lineEditFolderData.text()) == 0): QtGui.QMessageBox.about( self, 'File Not Found', self.lineEditFolderData.text() + '\n Does not Exist') return triggerList = self.createTriggerList() inthread(self.runParallel, DataHandler.HDF52HDF5, str(self.lineEditData.text()), self.lineEditFolderData.text(), self.root + '/data', False, None, None, None, triggerList) #Parallel ThreadExecution return return
def createConfiguration(self, extra=None): name = self.page3Widget.lineEditConfigName.text().__str__().lower() path = root + '/net/train/' + self.page3Widget.lineEditConfigName.text( ).__str__().lower() self.path = path print 'PATH!!!', path # 1. Create Folder in train if (os.path.exists(path) == False): os.mkdir( root + '/net/train/' + self.page3Widget.lineEditConfigName.text().__str__().lower()) # 2. Add train_net,solver,etc into it. self.index = self.page1NetEditor.index self.maxIterations = 10000 self.netHandler = netConfig_pb2.Param() self.data = open(root + '/net/netData.prototxt').read() text_format.Merge(self.data, self.netHandler) print self.netHandler.net[self.index] open(path + '/' + name + '_train.prototxt', 'w').write( open(self.netHandler.net[self.index].trainpath, 'r').read()) with open(path + '/' + name + '_solver.prototxt', 'w') as f: solverHandle = caffe_pb2.SolverParameter() #Loading it instant self.page2Widget.updateHandle() text_format.Merge(self.page2Widget.protoHandler.__str__(), solverHandle) #Loading it instant ends #text_format.Merge(open(self.netHandler.net[self.index].solverpath,'r').read(),solverHandle) solverHandle.snapshot_prefix = (path + '/' + name) solverHandle.net = (path + '/' + name + '_train.prototxt') if (self.netHandler.net[self.index].gpu == True): solverHandle.solver_mode = 1 else: solverHandle.solver_mode = 0 #Getting solver maximum iterations self.maxIterations = solverHandle.max_iter #Getting solver iterations ends open(self.netHandler.net[self.index].solverpath, 'w').write(solverHandle.__str__()) f.write(solverHandle.__str__()) ### FINETUNE STARTS self.isFinetune = False if (self.netHandler.net[self.index].modelpath != ""): reply = QtGui.QMessageBox.question( self, 'Message', "Do you want to finetune using existing weights?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if (reply == QtGui.QMessageBox.Yes): self.isFinetune = True ### FINETUNE ENDS trainDataName = self.page3Widget.widget.comboBoxTraining.currentText() validationDataName = self.page3Widget.widget.comboBoxValidation.currentText( ) shutil.copy(root + '/data/' + trainDataName + '.hdf5', path + '/' + name + '_train.hdf5') shutil.copy(root + '/data/' + validationDataName + '.hdf5', path + '/' + name + '_val.hdf5') with open(path + '/' + name + '_trainscript.sh', 'w') as f: f.write("#!/usr/bin/env sh\n") #f.write("cd $CAFFE_ROOT\n") otherarguments = ' -weights ' + self.netHandler.net[ self.index].modelpath if self.isFinetune == True else '' if (self.netHandler.net[self.index].gpu == True): otherarguments = otherarguments + ' -gpu ' + str( self.netHandler.net[self.index].gpu_index) f.write( os.getenv('CAFFE_ROOT') + '/build/tools/caffe train --solver=' + path + '/' + name + '_solver.prototxt' + otherarguments + '\n') f.write('echo \'Train Completed \'') with open(path + '/' + name + '_train.txt', 'w') as f: f.write(path + '/' + name + '_train.hdf5') with open(path + '/' + name + '_val.txt', 'w') as f: f.write(path + '/' + name + '_val.hdf5') #Change The train_test prototxt to associate right data handle = caffe_pb2.NetParameter() text_format.Merge( open(path + '/' + name + '_train.prototxt').read(), handle) ######### NEW VERSION ######################### if len(handle.layers) == 0: if (True): if (True): #if(handle.layers[0].type in [5,12,29,24]): #del handle.layers[0].data_param layerHandle = caffe_pb2.LayerParameter() text_format.Merge( open(root + '/net/defaultHDF5TrainDataNew.prototxt').read(), layerHandle) #if(self.netHandler.net[self.index].has_mean==True): #layerHandle.transform_param #layerHandle.transform_param.mean_file=self.netHandler.net[self.index].meanpath #else: #layerHandle.ClearField('transform_param') handle.layer[0].CopyFrom(layerHandle) handle.layer[0].name = name.lower() #BatchSize Starts batchSize = self.page3Widget.widget.lineEditBatchSizeTraining.text( ).__str__() batchSize = 100 if batchSize == "" else int(batchSize) handle.layer[0].hdf5_data_param.batch_size = batchSize #BatchSize Ends handle.layer[ 0].hdf5_data_param.source = path + '/' + name + '_train.txt' print handle.layer[0] if (self.page3Widget.widget.checkBoxValidation.checkState() > 0): #if(handle.layers[1].type in [5,12,29,24]):#handle.layers[1].type="HDF5Data" layerHandle = caffe_pb2.LayerParameter() text_format.Merge( open(root + '/net/defaultHDF5TestDataNew.prototxt').read(), layerHandle) handle.layer[1].CopyFrom(layerHandle) handle.layer[1].name = name #BatchSize Starts batchSize = self.page3Widget.widget.lineEditBatchSizeValidation.text( ).__str__() batchSize = 100 if batchSize == "" else int(batchSize) handle.layer[1].hdf5_data_param.batch_size = batchSize #BatchSize Ends handle.layer[ 1].hdf5_data_param.source = path + '/' + name + '_val.txt' print handle.layer[1] else: del handle.layer[1] for layerIdx, layer in enumerate(handle.layer): for incIdx, inc in enumerate(layer.include): if inc.HasField('phase'): if (inc.phase == 0): del handle.layer[layerIdx].include[incIdx] #Check Later what happens if only 'phase' is removed. else: del handle.layer[layerIdx] #if(self.netHandler.net[self.index].has_mean==True): #layerHandle.transform_param #layerHandle.transform_param.mean_file=self.netHandler.net[self.index].meanpath #else: #layerHandle.ClearField('transform_param') ################ OLD VERSION ######################### else: if (True): if (True): #if(handle.layers[0].type in [5,12,29,24]): #del handle.layers[0].data_param layerHandle = caffe_pb2.LayerParameter() text_format.Merge( open(root + '/net/defaultHDF5TrainData.prototxt').read(), layerHandle) handle.layers[0].name = name.lower() if (self.netHandler.net[self.index].has_mean == True): #layerHandle.transform_param layerHandle.transform_param.mean_file = self.netHandler.net[ self.index].meanpath else: layerHandle.ClearField('transform_param') handle.layers[0].CopyFrom(layerHandle) #BatchSize Starts batchSize = self.page3Widget.widget.lineEditBatchSizeTraining.text( ).__str__() batchSize = 100 if batchSize == "" else int(batchSize) handle.layer[0].hdf5_data_param.batch_size = batchSize #BatchSize Ends handle.layers[ 0].hdf5_data_param.source = path + '/' + name + '_train.txt' print handle.layers[0] if (self.page3Widget.widget.checkBoxValidation.checkState() > 0): #if(handle.layers[1].type in [5,12,29,24]):#handle.layers[1].type="HDF5Data" layerHandle = caffe_pb2.LayerParameter() text_format.Merge( open(root + '/net/defaultHDF5TestData.prototxt').read(), layerHandle) handle.layers[1].name = name handle.layers[1].CopyFrom(layerHandle) #BatchSize Starts batchSize = self.page3Widget.widget.lineEditBatchSizeValidation.text( ).__str__() batchSize = 100 if batchSize == "" else int(batchSize) handle.layer[1].hdf5_data_param.batch_size = batchSize #BatchSize Ends handle.layers[ 1].hdf5_data_param.source = path + '/' + name + '_val.txt' print handle.layers[1] if (self.netHandler.net[self.index].has_mean == True): #layerHandle.transform_param layerHandle.transform_param.mean_file = self.netHandler.net[ self.index].meanpath else: layerHandle.ClearField('transform_param') else: del handle.layers[1] ####### REMODIFICATION OF FIRST TWO LAYERS START open(path + '/' + name + '_train.prototxt', 'w').write(handle.__str__()) print 'PATH BEFORE PROGRESS', path triggerList = self.createTriggerList() inthread(self.runParallel, name, path, triggerList, self.maxIterations, str(self.netHandler.net[self.index]))