def main(argv=None): if argv is None: argv = sys.argv parser = OptionParser(add_help_option=False) parser.add_option("-p", dest="pFile") parser.add_option("-i", dest="iFile") parser.add_option("-t", dest="iType") parser.add_option("-o", dest="oFile") parser.add_option("-n", dest="nStates", type="int", default=+5) parser.add_option("-m", dest="doMovie", type="int", default=-1) parser.add_option("-a", dest="svdRand", action="store_true", default=False) parser.add_option("-e", dest="doEstim", action="store_true", default=False) parser.add_option("-s", dest="doSynth", action="store_true", default=False) parser.add_option("-h", dest="shoHelp", action="store_true", default=False) parser.add_option("-v", dest="verbose", action="store_true", default=False) opt, args = parser.parse_args() if opt.shoHelp: usage() dataMat = None dataSiz = None try: if opt.iType == 'vFile': (dataMat, dataSiz) = dsutil.loadDataFromVideoFile(opt.iFile) elif opt.iType == 'aFile': (dataMat, dataSiz) = dsutil.loadDataFromASCIIFile(opt.iFile) elif opt.iType == 'lFile': (dataMat, dataSiz) = dsutil.loadDataFromIListFile(opt.iFile) else: msg.fail("Unsupported file type : %s", opt.iType) return -1 except Exception as e: dsinfo.fail(e) return -1 try: # try loading the DT model if not opt.pFile is None: with open(opt.pFile) as fid: dsinfo.info('trying to load model %s' % opt.pFile) dt = pickle.load(fid) # run estimation if opt.doEstim: if not opt.pFile is None: dsinfo.fail('re-estimation attempt detected!') return -1 dt = LinearDS(opt.nStates, approx=opt.svdRand, verbose=opt.verbose) dt.suboptimalSysID(dataMat) # synthesize output if opt.doSynth: dataSyn, _ = dt.synthesize(tau=50, mode='s') # show a movie of the synthesis result if opt.doMovie > 0: if opt.doSynth: dsutil.showMovie(dataSyn, dataSiz, fps=opt.doMovie) # write DT model to file if not opt.oFile is None: dsinfo.info('writing model to %s' % opt.oFile) with open(opt.oFile, 'w') as fid: pickle.dump(dt, fid) # catch pyds exceptions except ErrorDS as e: dsinfo.fail(e) return -1
def main(argv=None): if argv is None: argv = sys.argv parser = OptionParser(add_help_option=False) parser.add_option("-p", dest="pFile") parser.add_option("-i", dest="iFile") parser.add_option("-t", dest="iType") parser.add_option("-o", dest="oFile") parser.add_option("-n", dest="nStates", type="int", default=+5) parser.add_option("-m", dest="doMovie", type="int", default=-1) parser.add_option("-a", dest="svdRand", action="store_true", default=False) parser.add_option("-e", dest="doEstim", action="store_true", default=False) parser.add_option("-s", dest="doSynth", action="store_true", default=False) parser.add_option("-h", dest="shoHelp", action="store_true", default=False) parser.add_option("-v", dest="verbose", action="store_true", default=False) opt, args = parser.parse_args() if opt.shoHelp: usage() dataMat = None dataSiz = None try: if opt.iType == 'vFile': (dataMat, dataSiz) = dsutil.loadDataFromVideoFile(opt.iFile) elif opt.iType == 'aFile': (dataMat, dataSiz) = dsutil.loadDataFromASCIIFile(opt.iFile) elif opt.iType == 'lFile': (dataMat, dataSiz) = dsutil.loadDataFromIListFile(opt.iFile) elif opt.iType == 'mFile': (dataMat, dataSiz) = dsutil.loadDataFromVolumeFile(opt.iFile) else: msg.fail("Unsupported file type : %s", opt.iType) return -1 except Exception as e: dsinfo.fail(e) return -1 try: # try loading the DT model if not opt.pFile is None: with open(opt.pFile) as fid: dsinfo.info('trying to load model %s' % opt.pFile) dt = pickle.load(fid) # run estimation if opt.doEstim: if not opt.pFile is None: dsinfo.fail('re-estimation attempt detected!') return -1 dt = LinearDS(opt.nStates, approx=opt.svdRand, verbose=opt.verbose) dt.suboptimalSysID(dataMat) # synthesize output if opt.doSynth: dataSyn, _ = dt.synthesize(tau=50, mode='s') # show a movie of the synthesis result if opt.doMovie > 0: if opt.doSynth: dsutil.showMovie(dataSyn, dataSiz, fps=opt.doMovie) # write DT model to file if not opt.oFile is None: dsinfo.info('writing model to %s' % opt.oFile) with open(opt.oFile, 'w') as fid: pickle.dump(dt, fid) # catch pyds exceptions except ErrorDS as e: dsinfo.fail(e) return -1