Esempio n. 1
0
	def __init__(self, dPrms, cPrms, 
           netDefFn=get_net_def, solverDefFn=get_solver_def,
           isLog=True,  addFiles=None):
		'''
			dPrms:         dict containing key 'expStr' and 'paths'
										 contains dataset specific parameters
			cPrms:         dict contraining 'expStr', 'resumeIter', 'nwPrms'
									 	 contains net and sovler specific parameters
			isLog:         if logging data should be recorded
			addFiles:      if additional files need to be stored - not implemented yet
		'''
		self.isLog_        = isLog
		dataExpName        = dPrms['expStr']
		caffeExpName       = cPrms['expStr']
		expDirPrefix       = dPrms.paths.exp.dr
		snapDirPrefix      = dPrms.paths.exp.snapshot.dr
		#Relevant directories.
		self.dPrms_ = copy.deepcopy(dPrms)
		self.cPrms_ = copy.deepcopy(cPrms) 
		self.dirs_  = {}
		self.dirs_['exp']  = osp.join(expDirPrefix,  dataExpName)
		self.dirs_['snap'] = osp.join(snapDirPrefix, dataExpName)  
		self.resumeIter_  = cPrms.resumeIter
		self.runNum_      = cPrms.nwPrms.runNum 
		self.preTrainNet_ = cPrms.nwPrms.preTrainNet

		solverFile    = caffeExpName + '_solver.prototxt'
		defFile       = caffeExpName + '_netdef.prototxt'
		defDeployFile = caffeExpName + '_netdef_deploy.prototxt'
		defRecFile    = caffeExpName + '_netdef_reconstruct.prototxt'
		logFile       = caffeExpName + '_log.pkl'
		snapPrefix    = caffeExpName + '_caffenet_run%d' % self.runNum_ 

		self.files_   = {}
		self.files_['solver'] = osp.join(self.dirs_['exp'], solverFile) 
		self.files_['netdef'] = osp.join(self.dirs_['exp'], defFile)
		self.files_['netdefDeploy'] = osp.join(self.dirs_['exp'], defDeployFile) 
		self.files_['netdefRec']    = osp.join(self.dirs_['exp'], defRecFile) 
		self.files_['log'] = osp.join(self.dirs_['exp'], logFile)
		#snapshot
		self.files_['snap'] = osp.join(snapDirPrefix, dataExpName,
													snapPrefix + '_iter_%d.caffemodel')  
		self.snapPrefix_    = '"%s"' % osp.join(snapDirPrefix, dataExpName, snapPrefix)		
		self.snapPrefix_    = ou.chunk_filename(self.snapPrefix_, maxLen=242)
		#Chunk all the filnames if needed
		for key in self.files_.keys():
			self.files_[key] = ou.chunk_filename(self.files_[key])

		#Store the solver and the net definition files
		self.expFile_   = edict()
		self.expFile_.solDef_ = solverDefFn(cPrms.lrPrms)
		self.setup_solver()
		self.expFile_.netDef_ = netDefFn(dPrms, cPrms.nwPrms) 
		#Other class parameters
		self.solver_    = None
		self.expMake_   = False
Esempio n. 2
0
    def __init__(self,
                 dPrms,
                 cPrms,
                 netDefFn=get_net_def,
                 solverDefFn=get_solver_def):
        '''
			dPrms:         dict containing key 'expStr' and 'paths'
										 contains dataset specific parameters
			cPrms:         dict contraining 'expStr', 'resumeIter', 'nwPrms'
									 	 contains net and sovler specific parameters
		'''
        dataExpName = dPrms['expStr']
        caffeExpName = cPrms['expStr']
        expDirPrefix = dPrms.paths.exp.dr
        snapDirPrefix = dPrms.paths.exp.snapshot.dr
        #Relevant directories.
        self.dirs_ = {}
        self.dirs_['exp'] = osp.join(expDirPrefix, dataExpName)
        self.dirs_['snap'] = osp.join(snapDirPrefix, dataExpName)
        self.resumeIter_ = cPrms.resumeIter
        self.runNum_ = cPrms.nwPrms.runNum
        self.preTrainNet_ = cPrms.nwPrms.preTrainNet

        solverFile = caffeExpName + '_solver.prototxt'
        defFile = caffeExpName + '_netdef.prototxt'
        defDeployFile = caffeExpName + '_netdef_deploy.prototxt'
        defRecFile = caffeExpName + '_netdef_reconstruct.prototxt'
        logFile = caffeExpName + '_log.pkl'
        snapPrefix = caffeExpName + '_caffenet_run%d' % self.runNum_

        self.files_ = {}
        self.files_['solver'] = osp.join(self.dirs_['exp'], solverFile)
        self.files_['netdef'] = osp.join(self.dirs_['exp'], defFile)
        self.files_['netdefDeploy'] = osp.join(self.dirs_['exp'],
                                               defDeployFile)
        self.files_['netdefRec'] = osp.join(self.dirs_['exp'], defRecFile)
        self.files_['log'] = osp.join(self.dirs_['exp'], logFile)
        #snapshot
        self.files_['snap'] = osp.join(snapDirPrefix, dataExpName,
                                       snapPrefix + '_iter_%d.caffemodel')
        self.snapPrefix_ = '"%s"' % osp.join(snapDirPrefix, dataExpName,
                                             snapPrefix)
        self.snapPrefix_ = ou.chunk_filename(self.snapPrefix_, maxLen=242)
        #Chunk all the filnames if needed
        for key in self.files_.keys():
            self.files_[key] = ou.chunk_filename(self.files_[key])

        #Store the solver and the net definition files
        self.expFile_ = edict()
        self.expFile_.solDef_ = solverDefFn(cPrms.lrPrms)
        self.setup_solver()
        self.expFile_.netDef_ = netDefFn(dPrms, cPrms.nwPrms)
        #Other class parameters
        self.solver_ = None
        self.expMake_ = False
Esempio n. 3
0
	def get_snapshot_name(self, numIter=10000, getSolverFile=False):
		'''
			Find the name with which models are being stored. 
		'''
		assert self.solDef_ is not None, 'Solver has not been formed'
		snapshot   = self.solDef_.get_property('snapshot_prefix')
		#_iter_%d.caffemodel is added by caffe while snapshotting. 
		snapshotName = snapshot[1:-1] + '_iter_%d.caffemodel'
		snapshotName = ou.chunk_filename(snapshotName)
		#solver file
		solverName   = snapshot[1:-1] + '_iter_%d.solverstate'
		solverName   = ou.chunk_filename(snapshotName)	
		if getSolverFile:
			return solverName
		else:	
			return snapshot
Esempio n. 4
0
    def get_snapshot_name(self, numIter=10000, getSolverFile=False):
        '''
			Find the name with which models are being stored. 
		'''
        assert self.expFile_.solDef_ is not None, 'Solver has not been formed'
        snapshot = self.expFile_.solDef_.get_property('snapshot_prefix')
        #_iter_%d.caffemodel is added by caffe while snapshotting.
        snapshotName = snapshot[1:-1] + '_iter_%d.caffemodel' % numIter
        snapshotName = ou.chunk_filename(snapshotName)
        #solver file
        solverName = snapshot[1:-1] + '_iter_%d.solverstate' % numIter
        solverName = ou.chunk_filename(solverName)
        if getSolverFile:
            return solverName
        else:
            return snapshotName