iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
0
Software Development

30 天的 SFC 學習日誌系列 第 28

Day 28 - DQN實作 - Acrobot(2)

  • 分享至 

  • xImage
  •  

大家好,我是毛毛。
今天是Day 28
要來看Acrobot的結果啦~ ヽ(✿゚▽゚)ノ


Main

Gym and Load_weights

    env = gym.make("Acrobot-v1")
    dqn_agent = DQN(env.observation_space.shape[0], env.action_space.n, e = 0.01) 
    print("=================================================================")
    print("Old weights: \n", dqn_agent.get_weights())
    print("=================================================================")
   
    filepath = "./dqn.Acrobot_weights.h5"

    if os.path.isfile(filepath):
        print("Exist\n")
        dqn_agent.load_weights("./dqn.Acrobot_weights.h5")
        print("=================================================================")
        print("Revised weights: \n", dqn_agent.get_weights())
        print("=================================================================")
    else:
        print("Not exist\n")

這個部分跟上一個的一樣

    times = 1000
    batch_size = 32
    steps = []
    for time in range(times):
        obs = env.reset()
        action = dqn_agent.choose_action(np.reshape(obs, [1, env.observation_space.shape[0]]))

        step = 0
        while True:
            env.render()
            step = step + 1
            obs_, reward, terminal, _ = env.step(action)
       
            dqn_agent.store_transition(np.reshape(obs, [1, env.observation_space.shape[0]]), action, reward, np.reshape(obs_, [1, env.observation_space.shape[0]]), terminal)
            if len(dqn_agent.memory) > batch_size:
                    dqn_agent.replay_transition(batch_size)

            obs = obs_
            action = dqn_agent.choose_action(np.reshape(obs_, [1, env.observation_space.shape[0]]))

            if terminal:  
                env.render()
                print('Nice!! 。:.゚ヽ(*´∀`)ノ゚.:。')
                print("In {} times: it takes {} steps with {} reward".format(time, step, reward))
                steps.append(step)
                dqn_agent.target_replacement()
                dqn_agent.save_weights()
                break
    env.close()

上面就是main function的部分啦。


執行結果


執行結果

https://ithelp.ithome.com.tw/upload/images/20201003/20129934blJgQPvtOT.png
Console的執行結果~ d(d'∀')


Acrobot就到這啦~ 0(:3 )~ ('、3_ヽ)_
大家明天見/images/emoticon/emoticon29.gif


上一篇
Day 27 - DQN實作 - Acrobot(1)
下一篇
Day 29 - GPU安裝 & GPU/CPU切換
系列文
30 天的 SFC 學習日誌30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言