def fillList(self): self.listWidget.clear() self.netHandler = netConfig_pb2.Param() self.data = open(root + '/net/netData.prototxt').read() text_format.Merge(self.data, self.netHandler) for elem in self.netHandler.net: self.listWidget.addItem(elem.name)
def fillList(self): self.listWidgetNetList.addItem('Fault while loading') self.data = open(root + '/net/netData.prototxt').read() self.netHandler = netConfig_pb2.Param() self.protoHandler = caffe_pb2.NetParameter() text_format.Merge(self.data, self.netHandler) text_format.Merge( open(self.netHandler.net[self.index].protopath).read(), self.protoHandler) #Loading Net channel_swap = ( 2, 1, 0) if self.netHandler.net[self.index].channel_swap else None self.net = caffe.Classifier( str(self.netHandler.net[self.index].protopath), str(self.netHandler.net[self.index].modelpath), mean=np.load(str(self.netHandler.net[self.index].meanpath)), gpu=False, raw_scale=int(self.netHandler.net[self.index].raw_scale), channel_swap=channel_swap) self.listWidgetNetList.clear() #Loading Net Ends for elem in self.net.blobs.keys(): item = QtGui.QListWidgetItem(elem) item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable) item.setCheckState(QtCore.Qt.Unchecked) self.listWidgetNetList.addItem(item) for fileName in os.listdir(root + '/data'): if fileName.endswith('.hdf5'): self.comboBoxSelectModel.addItem(fileName[0:len(fileName) - 5])
def retranslateUi(self, Form): Form.setWindowTitle(_translate("Form", "Form", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Form", "Train Net", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("Form", "Deploy Net", None)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab_3), _translate("Form", "Solver Configuration(Optional)", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("Form", "Other", None)) self.label.setText( _translate("Form", "Save net configuration as", None)) self.pushButton.setText(_translate("Form", "Save", None)) self.netHandle = netConfig_pb2.Param() net_data_file = root + '/net/netData.prototxt' if not os.path.isfile(net_data_file): # TODO: This should be handled properly, but the file above is used all over the code. f = open(net_data_file, 'w') f.close() text_format.Merge(open(net_data_file).read(), self.netHandle) self.lineEdit.setText("Untitled") self.addTabs() self.onIndexChanged(self.index) self.pushButton.clicked.connect(self.onSubmitClicked) self.page0Widget.toolButton_5.clicked.connect(self.copyFromDeploySlot) self.page1Widget.toolButton_5.clicked.connect(self.copyFromTrainSlot)
def loadFromListSlot(self, index): self.index = index self.netHandler = netConfig_pb2.Param() self.data = open(root + '/net/netData.prototxt').read() text_format.Merge(self.data, self.netHandler) if (self.trainMode == True): if (self.index != None): self.loadpath = self.netHandler.net[index].trainpath self.dim = [ self.netHandler.net[index].tdim0, self.netHandler.net[index].tdim1, self.netHandler.net[index].tdim2, self.netHandler.net[index].tdim3 ] else: self.loadpath = root + '/src/custom/' + 'defaultTrain.prototxt' self.dim = [100, 3, 227, 227] else: if (self.index != None): self.loadpath = self.netHandler.net[index].protopath else: self.loadpath = root + '/src/custom/' + 'defaultDeploy.prototxt' self.protohandler = caffe_pb2.NetParameter() text_format.Merge(open(self.loadpath).read(), self.protohandler) print self.protohandler self.textEdit.clear() self.textEdit.setText(self.protohandler.__str__()) self.loadTreeWidget()
def loadSolverParameters(self): self.data = open(root + '/net/netData.prototxt').read() self.netHandler = netConfig_pb2.Param() text_format.Merge(self.data, self.netHandler) self.protoHandler = caffe_pb2.SolverParameter() if (self.index != None and len(self.netHandler.net) > 0): text_format.Merge( open(self.netHandler.net[self.index].solverpath).read(), self.protoHandler) else: text_format.Merge( open(root + '/src/custom/defaultSolver.prototxt').read(), self.protoHandler) print self.protoHandler
def fillList(self): self.data = open(root + '/net/netData.prototxt').read() self.listWidget.clear() self.netHandler = netConfig_pb2.Param() self.protoHandler = caffe_pb2.NetParameter() text_format.Merge(self.data, self.netHandler) text_format.Merge( open(self.netHandler.net[self.index].protopath).read(), self.protoHandler) for elem in self.protoHandler.layers: item = QtGui.QListWidgetItem(elem.name) item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable) item.setCheckState(QtCore.Qt.Unchecked) self.listWidget.addItem(item)
def appendConfig(self, filename): self.data = open(root + '/net/netData.prototxt').read() self.netHandler = netConfig_pb2.Param() text_format.Merge(self.data, self.netHandler) newnet = self.netHandler.net.add() text_format.Merge( self.netHandler.net[self.listWidget.currentRow()].__str__(), newnet) newnet.protopath = root + '/net/models/deploy/' + filename + '.prototxt' newnet.name = filename.upper() open(root + '/net/netData.prototxt', 'w').write(self.netHandler.__str__()) print self.netHandler self.fillList() print 'append Config', filename
def removeModelPathSlot(self): if (self.netName == None): return self.data = open(root + '/net/netData.prototxt').read() self.netHandler = netConfig_pb2.Param() text_format.Merge(self.data, self.netHandler) currentNet = None netIdx = None for idx, elem in enumerate(self.netHandler.net): if elem.name == self.netName.upper(): currentNet = elem netIdx = idx self.netHandler.net[idx].modelpath = '' open(root + '/net/netData.prototxt', 'w').write(str(self.netHandler)) self.lineEdit_3.clear() return
def setFields(self): print 'IDX: ', self.index if (self.index == None): self.clearFields() else: self.netHandle = netConfig_pb2.Param() text_format.Merge( open(root + '/net/netData.prototxt').read(), self.netHandle) #self.netHandle.has_mean=True cn = self.netHandle.net[self.index] #1. Has Mean Setting if (cn.has_mean == True): self.checkBoxHasMean.setCheckState(QtCore.Qt.Checked) else: self.checkBoxHasMean.setCheckState(QtCore.Qt.Unchecked) #2.Mean Path Setting if (cn.HasField('meanpath')): self.lineEditMeanPath.setText(cn.meanpath) else: self.lineEditMeanPath.setText('') #3. Raw Scale Setting if (cn.HasField('raw_scale')): self.lineEditRawScale.setText(str(cn.raw_scale)) else: self.lineEditRawScale.setText('') #4. Use GPU if (cn.gpu == True): self.checkBoxUseGPU.setCheckState(QtCore.Qt.Checked) self.lineEditGPUIndex.setText(str(cn.gpu_index)) self.lineEditGPUIndex.show() self.labelUseGPUIndex.show() else: self.checkBoxUseGPU.setCheckState(QtCore.Qt.Unchecked) self.lineEditGPUIndex.hide() self.labelUseGPUIndex.hide() #5. Channel Swap if (cn.channel_swap == True): self.checkBoxChannelSwap.setCheckState(QtCore.Qt.Checked) else: self.checkBoxChannelSwap.setCheckState(QtCore.Qt.Unchecked) #6. Model Path if (cn.HasField('modelpath')): self.lineEditModelPath.setText(cn.modelpath) else: self.lineEditModelPath.setText('')
def setPath(self): #Clear previous Properties if (self.netName == None): return self.data = open(root + '/net/netData.prototxt').read() self.netHandler = netConfig_pb2.Param() text_format.Merge(self.data, self.netHandler) currentNet = None for elem in self.netHandler.net: if elem.name == self.netName.upper(): currentNet = elem if (currentNet == None): return if (currentNet.HasField('trainpath') and currentNet.trainpath != ''): self.lineEdit.setText(currentNet.trainpath) if (currentNet.HasField('protopath') and currentNet.protopath != ''): self.lineEdit_2.setText(currentNet.protopath) if (currentNet.HasField('modelpath') and currentNet.modelpath != ''): self.lineEdit_3.setText(currentNet.modelpath) if (currentNet.HasField('meanpath') and currentNet.meanpath != ''): self.lineEdit_4.setText(currentNet.meanpath)
def fillData(self): self.comboBox.clear() self.comboBox_2.clear() #Fill the data in all the comboBoxes #Step 1 : Fill the Deploy List self.netHandler = netConfig_pb2.Param() text_format.Merge( open(root + '/net/netData.prototxt').read(), self.netHandler) for elem in self.netHandler.net: if (elem.HasField('modelpath') and elem.modelpath.endswith('.caffemodel')): print elem.protopath self.comboBox_2.addItem(elem.name) #Filling the Data List Here self.comboBox.addItems([ files[0:-5] for files in os.listdir(root + '/data') if files.endswith('.hdf5') ])
def __init__(self, netName, netList, batchSize, dataName, saveName): self.batchSize = batchSize self.netHandler = netConfig_pb2.Param() text_format.Merge( open(root + '/net/netData.prototxt').read(), self.netHandler) self.currentNet = netConfig_pb2.NetParam() for elem in self.netHandler.net: print elem.name, netName if elem.name == netName: self.currentNet.CopyFrom(elem) self.protoHandler = caffe_pb2.NetParameter() text_format.Merge( open(self.currentNet.protopath).read(), self.protoHandler) self.dataName = dataName self.saveName = saveName self.netList = netList self.netName = netName
def retranslateUi(self, Form): Form.setWindowTitle(_translate("Form", "Form", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Form", "Train Net", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("Form", "Deploy Net", None)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab_3), _translate("Form", "Solver Configuration(Optional)", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("Form", "Other", None)) self.label.setText( _translate("Form", "Save net configuration as", None)) self.pushButton.setText(_translate("Form", "Save", None)) self.netHandle = netConfig_pb2.Param() text_format.Merge( open(root + '/net/netData.prototxt').read(), self.netHandle) self.lineEdit.setText("Untitled") self.addTabs() self.onIndexChanged(self.index) self.pushButton.clicked.connect(self.onSubmitClicked) self.page0Widget.toolButton_5.clicked.connect(self.copyFromDeploySlot) self.page1Widget.toolButton_5.clicked.connect(self.copyFromTrainSlot)
def changeNet(self): self.netHandler=netConfig_pb2.Param() text_format.Merge(open(root+'/net/netData.prototxt').read(),self.netHandler) print self.netHandler if(self.trainMode==True): if self.index!=None and self.netHandler.net[self.index].HasField('trainpath') and os.path.exists(self.netHandler.net[self.index].trainpath): self.subWidget.loadFromListSlot(self.index) self.label.setText(self.netHandler.net[self.index].trainpath) else: #self.subWidget=netWidget.MyForm(root+'/src/custom/defaultTrain.prototxt',parent=self.widget,trainMode=self.trainMode) self.subWidget.loadFromListSlot(self.index) self.label.setText(root+'/src/custom/defaultTrain.prototxt') return if(self.trainMode==False): if self.index!=None and self.netHandler.net[self.index].HasField('protopath') and os.path.exists(self.netHandler.net[self.index].protopath): self.subWidget.loadFromListSlot(self.index) self.label.setText(self.netHandler.net[self.index].protopath) else: #self.subWidget=netWidget.MyForm(root+'/src/custom/defaultDeploy.prototxt',parent=self.widget,trainMode=self.trainMode) self.subWidget.loadFromListSlot(self.index) self.label.setText(root+'/src/custom/defaultDeploy.prototxt') return
import scipy import scipy.misc import matplotlib.pyplot as plt from google.protobuf import text_format print sys.argv #Step 0 : Initialize Parameters expName = sys.argv[1] netName = str(sys.argv[2]) batchSize = int(sys.argv[3]) layerName = sys.argv[4] dataName = sys.argv[5] netIdx = None netHandler = netConfig_pb2.Param() text_format.Merge(open(root + '/net/netData.prototxt').read(), netHandler) for idx, elem in enumerate(netHandler.net): if (netName == elem.name): netIdx = idx currentNet = netHandler.net[netIdx] saveName = root + '/net/temp/temp_' + str( currentNet.name) + '_' + dataName + '_' + expName + '_' + str( batchSize) + '.prototxt' logName = root + '/net/temp/temp_' + str( currentNet.name) + '_' + dataName + '_' + expName + '_' + str( batchSize) + '_log.txt' #Step 1 : Create Deploy unto that layer handle = caffe_pb2.NetParameter() text_format.Merge(open(currentNet.protopath).read(), handle)
def refreshTrigger(self, extra=None): self.netHandle = netConfig_pb2.Param() text_format.Merge( open(root + '/net/netData.prototxt').read(), self.netHandle)
def onSubmitClicked(self): self.netHandle = netConfig_pb2.Param() self.data = open(root + '/net/netData.prototxt').read() text_format.Merge(self.data, self.netHandle) print 'Net is now saving its configuration' ch = None for item in self.netHandle.net: if (item.name == self.lineEdit.text().__str__().upper()): ch = item #ch=self.netHandle.net[index] #Current Handle of the net #Step 1 : Create Folder with all the configurations and save it savefolder = root + '/net/data/' + self.lineEdit.text().__str__( ).lower() if os.path.exists(savefolder): reply = QtGui.QMessageBox.question(self, 'Message',\ "Are you sure to override existing?", QtGui.QMessageBox.Yes | \ QtGui.QMessageBox.No, QtGui.QMessageBox.No) found = False for idx, elem in enumerate(self.netHandle.net): if elem.name == self.lineEdit.text().__str__().upper(): ch = self.netHandle.net[idx] found = True if (found == False): ch = self.netHandle.net.add() ch.name = self.lineEdit.text().__str__().upper() if (reply == QtGui.QMessageBox.No): return else: os.mkdir(savefolder) ch = self.netHandle.net.add() ch.name = self.lineEdit.text().__str__().upper() #Step 1.1 : Saving Train Net extension = self.lineEdit.text().__str__().lower() + '_train.prototxt' if os.path.exists(savefolder + '/' + extension): reply = QtGui.QMessageBox.question(self, 'Message',\ "Are you sure to override existing Train File?", QtGui.QMessageBox.Yes | \ QtGui.QMessageBox.No, QtGui.QMessageBox.No) if (reply == QtGui.QMessageBox.Yes): open(savefolder + '/' + extension, 'w').write(self.page0Widget.subWidget.textEdit. toPlainText().__str__()) ch.trainpath = savefolder + '/' + extension else: open(savefolder + '/' + extension, 'w').write( self.page0Widget.subWidget.textEdit.toPlainText().__str__()) ch.trainpath = savefolder + '/' + extension ch.tdim0 = self.page0Widget.subWidget.dim[0] ch.tdim1 = self.page0Widget.subWidget.dim[1] ch.tdim2 = self.page0Widget.subWidget.dim[2] ch.tdim3 = self.page0Widget.subWidget.dim[3] #Step 1.2 : Saving Deploy Net extension = self.lineEdit.text().__str__().lower() + '_deploy.prototxt' if os.path.exists(savefolder + '/' + extension): reply = QtGui.QMessageBox.question(self, 'Message',\ "Are you sure to override existing Deploy File?", QtGui.QMessageBox.Yes | \ QtGui.QMessageBox.No, QtGui.QMessageBox.No) if (reply == QtGui.QMessageBox.Yes): open(savefolder + '/' + extension, 'w').write(self.page1Widget.subWidget.textEdit. toPlainText().__str__()) ch.protopath = savefolder + '/' + extension else: open(savefolder + '/' + extension, 'w').write( self.page1Widget.subWidget.textEdit.toPlainText().__str__()) ch.protopath = savefolder + '/' + extension #Step 1.3 Saving Model File extension = self.lineEdit.text().__str__().lower( ) + '_model.caffemodel' modelpath = self.page3Widget.lineEditModelPath.text().__str__() if (modelpath != '' and modelpath.endswith('.caffemodel')): #Copy Model Path if os.path.exists(savefolder + '/' + extension): reply = QtGui.QMessageBox.question(self, 'Message',\ "Are you sure to override existing Model File?", QtGui.QMessageBox.Yes | \ QtGui.QMessageBox.No, QtGui.QMessageBox.No) if (reply == QtGui.QMessageBox.Yes and modelpath != savefolder + '/' + extension): shutil.copy(modelpath, savefolder + '/' + extension) ch.modelpath = savefolder + '/' + extension else: if (modelpath != savefolder + '/' + extension): shutil.copy(modelpath, savefolder + '/' + extension) ch.modelpath = savefolder + '/' + extension else: QtGui.QMessageBox.critical(self, 'Warning',\ "Model File is MUST for both training and Deploy.Please include Path") #Other Parameters Assignment and copying #Other 1 ch.has_mean = self.page3Widget.checkBoxHasMean.isChecked( ) and self.page3Widget.lineEditMeanPath.text().__str__() != '' if (self.page3Widget.lineEditMeanPath.text().__str__() != ''): ch.meanpath = self.page3Widget.lineEditMeanPath.text().__str__() if (self.page3Widget.lineEditRawScale.text().__str__() != ''): ch.raw_scale = int( self.page3Widget.lineEditRawScale.text().__str__()) ch.gpu = self.page3Widget.checkBoxUseGPU.isChecked() ch.gpu_index = int(self.page3Widget.lineEditGPUIndex.text().__str__()) ch.channel_swap = self.page3Widget.checkBoxChannelSwap.isChecked() print ch #Solver Parameters for saving . . . extension = self.lineEdit.text().__str__().lower() + '_solver.prototxt' with open(savefolder + '/' + extension, 'w') as f: print self.page2Widget.protoHandler self.page2Widget.updateHandle() self.page2Widget.protoHandler.net = ( savefolder + '/' + self.lineEdit.text().__str__().lower() + '_train.prototxt') self.page2Widget.protoHandler.snapshot_prefix = savefolder self.page2Widget.protoHandler.solver_mode = self.page3Widget.checkBoxUseGPU.isChecked( ) f.write(self.page2Widget.protoHandler.__str__()) ch.solverpath = savefolder + '/' + extension #self.lineEdit.text().__str__().lower()+ #Other Ends open(root + '/net/netData.prototxt', 'w').write(self.netHandle.__str__()) self.signalCompleteTrigger.emit(self.lineEdit.text().__str__().upper()) self.signalRefreshTrigger.emit("Net(" + self.lineEdit.text().__str__().upper() + ") is bieng saved")
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]))