当前位置: 首页>>代码示例>>Python>>正文


Python Simulator.read方法代码示例

本文整理汇总了Python中simulator.Simulator.read方法的典型用法代码示例。如果您正苦于以下问题:Python Simulator.read方法的具体用法?Python Simulator.read怎么用?Python Simulator.read使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在simulator.Simulator的用法示例。


在下文中一共展示了Simulator.read方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: evolve_atari_network

# 需要导入模块: from simulator import Simulator [as 别名]
# 或者: from simulator.Simulator import read [as 别名]
def evolve_atari_network(game, input_size):

    ne = NE.GSP(input_size,18,2,[],True)

    NUM_GENERATIONS = 1000

    best_fitness = -10000000
    best_net = None
    generation = 0

    while generation < NUM_GENERATIONS:
        curr_best_fitness = -10000000

        # test each subpopulation
        for i in range(ne.populationSize):
            sim = Simulator(game)
            currnet = ne.testNet(i)
            fitness = 0

            while sim.running():
                sim.read()
                fitness += sim.reward

                #print "{}, ".format(fitness), 

                currnet.clearCharges()
                currnet.setInputs(sim.objects.reshape(input_size*80,1))
                currnet.activate()
                output = currnet.readOutputs()

                sim.write('{},18\n'.format(np.argmax(output)))

            ne.evaluate(fitness, i)

            if fitness > curr_best_fitness:
                curr_best_fitness = fitness
                #currnet.visualize()

            if fitness > best_fitness:
                best_fitness = fitness
                pickle.dump(currnet, open('nets/{}.net'.format(game),'wb'))
                #best_net = copy.deepcopy(currnet)
                #best_net.visualize()

            print "gen: {}\ti: {}\trew: {}\tbest: {}\t end: {}" \
                   .format(generation, i, fitness,
                           best_fitness, sim.terminated)
            sim.kill()

        with open('nets/{}.curve'.format(game),'a') as curve:
            curve.write(str(curr_best_fitness)+',') 

        print "Gen " + str(generation) + ", Best: " + str(curr_best_fitness) 
        ne.nextGen()
        generation += 1
    print "Generation "+str(generation)+", task complete."
开发者ID:Greuseome,项目名称:reuse,代码行数:58,代码来源:simulator_test.py

示例2: run_game

# 需要导入模块: from simulator import Simulator [as 别名]
# 或者: from simulator.Simulator import read [as 别名]
def run_game(game,
             net,
             result_file, 
             skip_num_frames=0,
             max_num_frames=50000,
             max_secs_without_reward=50000,
             drop_rate=0,
             num_evals=1,
             display_screen=False):

    currnet = cPickle.load(open(net,'r'))
    
    total_fitness = 0
    for e in range(num_evals):
        currnet.clearCharges()
        sim = Simulator(game,
                        currnet.numInput,
                        skip_num_frames,
                        max_num_frames,
                        max_secs_without_reward,
                        display)
        fitness = 0
        i = 0
        action = 0
        while sim.running():
            success = sim.read()
            if not success:
                break
            if sim.reward != 0: print sim.reward
            fitness += sim.reward

            if np.random.random() >= drop_rate: # activate if signal not dropped
                #currnet.clearCharges()
                currnet.setInputs(sim.objects)
                currnet.activate()
                output = currnet.readOutputs()
                if len(output) == 18:
                    action = np.argmax(output)
                else:
                    # compressed repr: output0 is fire; output1-9 are dirs
                    # relies on output functions with range centered around 0.5, e.g., [0,1]
                    action = np.argmax(output[1:]) + 1
                    if action != 1:
                        # add 8 if (fire) and (dir not noop)
                        if output[0] >= 0.5: 
                            action += 8                 
                    else: 
                        # substract 1 if (not fire) and (dir noop)
                        if output[0] < 0.5: action -= 1
            sim.write('{},18\n'.format(action))
            i += 1
        
        total_fitness += fitness
        print "TOTAL FITNESS: "+str(total_fitness)

    avg_fitness = float(total_fitness)/num_evals
    tmp = tempfile.mktemp()
    f = open(tmp, 'w')
    f.write('{}'.format(avg_fitness))
    f.close()

    shutil.move(tmp, result_file)
开发者ID:Greuseome,项目名称:reuse,代码行数:64,代码来源:simulator_job.py


注:本文中的simulator.Simulator.read方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。