def Main(): print("Starting") global TIMER TIMER = Timer() oparser = argparse.ArgumentParser( description="intelligent crawling with q-learning") oparser.add_argument( "--config-file", dest="configFile", required=True, help="Path to config file (containing MySQL login etc.") oparser.add_argument( "--save-dir", dest="saveDir", default=".", help= "Directory that model WIP are saved to. If existing model exists then load it" ) oparser.add_argument( "--delete-duplicate-transitions", dest="deleteDuplicateTransitions", default=False, help="If True then only unique transition are used in each batch") oparser.add_argument( "--language-pair", dest="langPair", required=True, help="The 2 language we're interested in, separated by ,") options = oparser.parse_args() np.random.seed() np.set_printoptions(formatter={'float': lambda x: "{0:0.1f}".format(x)}, linewidth=666) sqlconn = MySQL(options.configFile) hostName = "http://vade-retro.fr/" #hostName = "http://www.buchmann.ch/" #hostName = "http://www.visitbritain.com/" #pickleName = hostName + ".pickle" env = Env(sqlconn, hostName) # if os.path.exists(pickleName): # with open(pickleName, 'rb') as f: # print("unpickling") # env = pickle.load(f) # else: # env = Env(sqlconn, hostName) # with open(pickleName, 'wb') as f: # print("pickling") # pickle.dump(env,f) languages = Languages(sqlconn.mycursor) params = LearningParams(languages, options.saveDir, options.deleteDuplicateTransitions, options.langPair) tf.reset_default_graph() qns = Qnets(params, env) init = tf.global_variables_initializer() saver = tf.train.Saver() with tf.Session() as sess: #with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: sess.run(init) qns.q[0].PrintAllQ(params, env, sess) #WalkAll(env, params, sess, qns.q[0]) print() TIMER.Start("Train") totRewards, totDiscountedRewards = Train(params, sess, saver, env, qns) TIMER.Pause("Train") #qn.PrintAllQ(params, env, sess) #env.WalkAll(params, sess, qn) Walk(env, sys.maxsize, params, sess, qns.q[0], True) del TIMER plt.plot(totRewards) plt.plot(totDiscountedRewards) plt.show() plt.plot(qns.q[0].corpus.losses) plt.plot(qns.q[1].corpus.losses) plt.show() plt.plot(qns.q[0].corpus.sumWeights) plt.plot(qns.q[1].corpus.sumWeights) plt.show() print("Finished")