Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
    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
Ejemplo n.º 9
0
    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
Ejemplo n.º 10
0
 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
Ejemplo n.º 11
0
 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)
Ejemplo n.º 12
0
    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
Ejemplo n.º 13
0
    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)
Ejemplo n.º 14
0
    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)
Ejemplo n.º 15
0
    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)
Ejemplo n.º 16
0
    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)
Ejemplo n.º 17
0
    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_()
Ejemplo n.º 18
0
    def popMessage(self,text='default'):
	self.messageAlert.setText(text)
	inthread(self.iterateMessage,text)
Ejemplo n.º 19
0
    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]))
Ejemplo n.º 20
0
    def onOkClicked(self):
	#On Ok Clicked
	value=self.horizontalSlider.value()
	inthread(self.runParallel,root,self.dataName,value)
	self.closeSlot()
Ejemplo n.º 21
0
 def popMessage(self, text='default'):
     self.messageAlert.setText(text)
     inthread(self.iterateMessage, text)
Ejemplo n.º 22
0
    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
Ejemplo n.º 23
0
    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]))