一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

觀察AI如何找到出口 強(qiáng)化游戲體驗(yàn)

ouxn_HW_Digital ? 來(lái)源:華為開(kāi)發(fā)者社區(qū) ? 作者:華為開(kāi)發(fā)者社區(qū) ? 2021-08-24 09:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作為一名快樂(lè)的肥宅,玩游戲是居家必備,無(wú)論是王者榮耀、吃雞、原神這些大熱游戲,還是跳一跳、合成大西瓜、2048、這些風(fēng)靡一時(shí)得小游戲,咱都有涉及。但是為了成為一個(gè)“頭號(hào)玩家”,我總是瘋狂的去個(gè)各大社區(qū)、網(wǎng)站尋找各種攻略,跟著攻略成長(zhǎng),我時(shí)常在想,什么時(shí)候俺才能成為一代攻略大神啊,讓大家學(xué)習(xí)我的技術(shù),豈不是很刺激!

靈光一閃,畢竟我是個(gè)有點(diǎn)小技術(shù)的肥宅,曾經(jīng)也癡迷過(guò)deepmind,跑過(guò)AlphaGo,這不得訓(xùn)練一個(gè)AI玩一玩。

強(qiáng)化學(xué)習(xí)訓(xùn)練2048游戲,

觀察AI如何找到出口?

既然要練手,那就先從2048這種簡(jiǎn)單,不考驗(yàn)操作,純策略的游戲入手吧。在網(wǎng)上搜羅了一番,果然讓我找到了開(kāi)源的2048游戲環(huán)境,GitHub地址:

https://github.com/rgal/gym-2048。

下一步就是把這個(gè)算法和強(qiáng)化學(xué)習(xí)結(jié)合了。

算法部分很簡(jiǎn)單,目前我才用的是最傳統(tǒng)的DQN,10分鐘就可以達(dá)到一個(gè)還可以的模型效果。如果小伙伴們有想法,可以試試RainBow,PPO,A2C,SAC這類算法,相信會(huì)獲得更佳的效果。

我開(kāi)發(fā)這個(gè)模型,用的是來(lái)自華為云的ModelArts(它是一個(gè)在線、開(kāi)箱即用的AI平臺(tái),還有免費(fèi)的GPU算力,每天不限次數(shù)使用,不要太爽!),所以代碼是在ipynb中跑的。

整體步驟大概可以分為3步:

1.創(chuàng)建游戲環(huán)境

2.創(chuàng)建DQN算法

def learn(self, buffer): # 當(dāng)replaybuffer中存儲(chǔ)的數(shù)據(jù)大于batchsize時(shí),從中隨機(jī)采樣一個(gè)batch的數(shù)據(jù)學(xué)習(xí) if buffer.size 》=self.args.batch_size: # 更新target_model的參數(shù) if self.learn_step_counter %args.target_update_freq == 0: self.target_model.load_state_dict(self.behaviour_model.state_dict()) self.learn_step_counter += 1 # 從replaybuffer中隨機(jī)采樣一個(gè)五元組(當(dāng)前觀測(cè)值,動(dòng)作,下一個(gè)觀測(cè)值,是否一局結(jié)束,獎(jiǎng)勵(lì)值) s1, a, s2, done, r =buffer.get_sample(self.args.batch_size) s1 =torch.FloatTensor(s1).to(device) s2 = torch.FloatTensor(s2).to(device) r = torch.FloatTensor(r).to(device) a = torch.LongTensor(a).to(device) if args.use_nature_dqn: q =self.target_model(s2).detach() else: q = self.behaviour_model(s2) # 每個(gè)動(dòng)作的q值=r+gamma*(1-0或1)*q_max target_q = r +torch.FloatTensor(args.gamma * (1 - done)).to(device) * q.max(1)[0] target_q =target_q.view(args.batch_size, 1) eval_q = self.behaviour_model(s1).gather(1,torch.reshape(a, shape=(a.size()[0], -1))) # 計(jì)算損失函數(shù) loss = self.criterion(eval_q,target_q) self.optimizer.zero_grad() loss.backward() self.optimizer.step() def get_action(self, state, explore=True): # 判斷是否探索,如果探索,則采用貪婪探索策略決定行為 if explore: if np.random.uniform() 》=args.epsilon: action = randint(0,self.action_dim - 1) else: # Choose the best action accordingto the network. q =self.behaviour_model(torch.FloatTensor(state).to(device)) m, index = torch.max(q, 1) action =index.data.cpu().numpy()[0] else: q = self.behaviour_model(torch.FloatTensor(state).to(device)) m, index = torch.max(q, 1) action =index.data.cpu().numpy()[0] return action classReplayBuffer: def __init__(self, buffer_size, obs_space): self.s1 = np.zeros(obs_space, dtype=np.float32) self.s2 = np.zeros(obs_space,dtype=np.float32) self.a = np.zeros(buffer_size,dtype=np.int32) self.r = np.zeros(buffer_size,dtype=np.float32) self.done = np.zeros(buffer_size,dtype=np.float32) # replaybuffer大小 self.buffer_size = buffer_size self.size = 0 self.pos = 0 # 不斷將數(shù)據(jù)存儲(chǔ)入buffer def add_transition(self, s1, action, s2,done, reward): self.s1[self.pos] = s1 self.a[self.pos] = action if not done: self.s2[self.pos] = s2 self.done[self.pos] = done self.r[self.pos] = reward self.pos = (self.pos + 1) %self.buffer_size self.size = min(self.size + 1,self.buffer_size) # 隨機(jī)采樣一個(gè)batchsize def get_sample(self, sample_size): i = sample(range(0, self.size), sample_size) return self.s1[i], self.a[i],self.s2[i], self.done[i], self.r[i]

3.創(chuàng)建網(wǎng)絡(luò)模型

此處我用的就是一個(gè)非常簡(jiǎn)單的三層卷積網(wǎng)絡(luò)

classNet(nn.Module): #obs是狀態(tài)空間輸入,available_actions_count為動(dòng)作輸出維度 def __init__(self, obs,available_actions_count): super(Net, self).__init__() self.conv1 = nn.Conv2d(obs, 128,kernel_size=2, stride=1) self.conv2 = nn.Conv2d(128, 64,kernel_size=2, stride=1) self.conv3 = nn.Conv2d(64, 16,kernel_size=2, stride=1) self.fc1 = nn.Linear(16,available_actions_count) self.relu = nn.ReLU(inplace=True) def forward(self, x): x = x.permute(0, 3, 1, 2) x = self.relu(self.conv1(x)) x = self.relu(self.conv2(x)) x = self.relu(self.conv3(x)) x = self.fc1(x.view(x.shape[0], -1)) return x

完成以上三步,就可以愉快的開(kāi)始訓(xùn)練啦:

print(‘

training.。?!゜egin_t= time.time()max_reward= 0fori_episode in range(args.epochs): # 每局開(kāi)始,重置環(huán)境 s = env.reset() # 累計(jì)獎(jiǎng)勵(lì)值 ep_r = 0 while True: # 計(jì)算動(dòng)作 a = dqn.get_action(np.expand_dims(s,axis=0)) # 執(zhí)行動(dòng)作 s_, r, done, info = env.step(a) # 存儲(chǔ)信息 memory.add_transition(s, a, s_, done,r) ep_r += r # 學(xué)習(xí)優(yōu)化過(guò)程 dqn.learn(memory) if done: print(‘Ep: ’, i_episode, ‘| Ep_r: ’, round(ep_r, 2)) if ep_r 》 max_reward: max_reward = ep_r print(“current_max_reward{}”.format(max_reward)) # 保存模型 torch.save(dqn.behaviour_model,“2048.pt”) break s = s_print(“finish!time cost is {}s”.format(time.time() - begin_t))

我只訓(xùn)練了10分鐘,在這個(gè)不能錯(cuò)步的嚴(yán)格環(huán)境下,推理時(shí)可以達(dá)到256分,如果采用更先進(jìn)算法,更長(zhǎng)的訓(xùn)練時(shí)間,2048不是夢(mèng)。

詳細(xì)代碼獲取方式:

通過(guò)此鏈接可直接在線運(yùn)行,或者下載

https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=3a11d09b-85f5-4ae4-b4a7-9b19be2b444d

這個(gè)技術(shù)來(lái)源是我在去年華為云AI全棧成長(zhǎng)計(jì)劃中接觸到的,據(jù)說(shuō)今年華為云又開(kāi)始了新一輪【AI實(shí)戰(zhàn)營(yíng)】,6大分類實(shí)戰(zhàn)營(yíng)Python、ModelArts、MindSpore AI框架、深度、強(qiáng)化、機(jī)器學(xué)習(xí),助我們成為“AI王者”!

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    88

    文章

    35164

    瀏覽量

    280039
  • 強(qiáng)化學(xué)習(xí)

    關(guān)注

    4

    文章

    269

    瀏覽量

    11604
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2772

    瀏覽量

    18322

原文標(biāo)題:游戲“外掛”?- AI生成游戲最強(qiáng)攻略

文章出處:【微信號(hào):HW-DigitalHome,微信公眾號(hào):華為數(shù)字家庭】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    大家都在用什么AI軟件?有沒(méi)有好用的免費(fèi)的AI軟件推薦一下?

    大家都在用什么AI軟件?有沒(méi)有好用的免費(fèi)的AI軟件推薦一下?直接發(fā)個(gè)安裝包,謝謝。比如deepseek、Chatgpt、豆包、阿里AI、百度AI、騰訊
    發(fā)表于 07-09 18:30

    技嘉正式推出 RTX? 5060 Ti 和 5060 顯卡,先進(jìn)散熱方案提升游戲AI 體驗(yàn)

    ? 5060 系列顯卡,并將于 4 月 16 日起陸續(xù)上市。此系列產(chǎn)品專為主流游戲玩家、創(chuàng)作者與 AI 入門使用者設(shè)計(jì),通過(guò)升級(jí)版 WINDFORCE 散熱系統(tǒng),在性能與散熱效率間達(dá)到絕衡,帶來(lái)更流暢
    的頭像 發(fā)表于 04-16 10:07 ?395次閱讀

    韓國(guó)半導(dǎo)體對(duì)華出口暴跌 信息通信產(chǎn)業(yè)出口額減少31.8%

    據(jù)外媒《朝鮮日?qǐng)?bào)》報(bào)道稱,在2025年2月份韓國(guó)信息通信產(chǎn)業(yè)出口額創(chuàng)下了歷年同月第二高的好成績(jī);出口額達(dá)到167.1億美元,同比增長(zhǎng)了1.2%。但是對(duì)我國(guó)的出口減少31.8%。 而韓國(guó)對(duì)越南
    的頭像 發(fā)表于 03-18 15:26 ?598次閱讀

    AI Agent 應(yīng)用與項(xiàng)目實(shí)戰(zhàn)》----- 學(xué)習(xí)如何開(kāi)發(fā)視頻應(yīng)用

    上傳與視頻生成相關(guān)的知識(shí)庫(kù)文檔,以便AI助手能夠基于這些知識(shí)進(jìn)行回答和生成視頻。 在AI助手的配置中,找到與視頻生成相關(guān)的功能模塊。 根據(jù)需要選擇或上傳視頻生成模型,這些模型可以是語(yǔ)聚AI
    發(fā)表于 03-05 19:52

    拜登擬在卸任前加強(qiáng)AI芯片出口管制

    拜登政府計(jì)劃在離任之際宣布對(duì)中國(guó)實(shí)施最廣泛的人工智能(AI)芯片出口管制,引發(fā)美國(guó)科技行業(yè)的廣泛批評(píng)。代表美國(guó)科技行業(yè)的貿(mào)易協(xié)會(huì)——美國(guó)信息技術(shù)產(chǎn)業(yè)理事會(huì)(ITI)7日敦促拜登政府不要在卸任前最后
    的頭像 發(fā)表于 01-09 17:27 ?434次閱讀

    韓國(guó)半導(dǎo)體出口動(dòng)態(tài):2024年對(duì)華出口下滑,對(duì)臺(tái)越出口增長(zhǎng)

    近日,最新發(fā)布的產(chǎn)業(yè)數(shù)據(jù)揭示了韓國(guó)半導(dǎo)體出口在2024年的新趨勢(shì)。據(jù)韓國(guó)產(chǎn)業(yè)通商資源部于1月5日公布的官方數(shù)據(jù)顯示,盡管整體半導(dǎo)體出口額實(shí)現(xiàn)了顯著增長(zhǎng),但出口市場(chǎng)的分布卻發(fā)生了顯著變化。 數(shù)據(jù)顯示
    的頭像 發(fā)表于 01-07 14:32 ?814次閱讀

    巨人網(wǎng)絡(luò)發(fā)布“千影”大模型,加速“游戲+AI”布局

    近日,巨人網(wǎng)絡(luò)在2024年度中國(guó)游戲產(chǎn)業(yè)年會(huì)上,正式推出了名為“千影?QianYing”的有聲游戲生成大模型。這一創(chuàng)新舉措標(biāo)志著巨人網(wǎng)絡(luò)在“游戲+AI”賽道上的又一重要布局。 “千影
    的頭像 發(fā)表于 12-16 09:45 ?1545次閱讀

    如何使用 PyTorch 進(jìn)行強(qiáng)化學(xué)習(xí)

    的計(jì)算圖和自動(dòng)微分功能,非常適合實(shí)現(xiàn)復(fù)雜的強(qiáng)化學(xué)習(xí)算法。 1. 環(huán)境(Environment) 在強(qiáng)化學(xué)習(xí)中,環(huán)境是一個(gè)抽象的概念,它定義了智能體(agent)可以執(zhí)行的動(dòng)作(actions)、觀察
    的頭像 發(fā)表于 11-05 17:34 ?1043次閱讀

    谷歌發(fā)布革命性AI游戲引擎GameNGen

    谷歌近期震撼推出全球首款完全由人工智能驅(qū)動(dòng)的游戲引擎——GameNGen,這一創(chuàng)新技術(shù)標(biāo)志著游戲開(kāi)發(fā)領(lǐng)域的新紀(jì)元。GameNGen憑借其強(qiáng)大的計(jì)算能力,能夠在單個(gè)TPU上實(shí)現(xiàn)每秒20幀的實(shí)時(shí)游戲生成,每一幀畫(huà)面均源自精密的擴(kuò)散模
    的頭像 發(fā)表于 08-29 18:07 ?1137次閱讀

    谷歌研究人員推出革命性首個(gè)AI驅(qū)動(dòng)游戲引擎

    在科技日新月異的今天,人工智能(AI)正以前所未有的速度滲透到我們生活的每一個(gè)角落,從自動(dòng)駕駛汽車到智能家居,無(wú)一不彰顯著其巨大的潛力和無(wú)限可能。而最近,谷歌研究團(tuán)隊(duì)的一項(xiàng)突破性成果更是將AI的邊界
    的頭像 發(fā)表于 08-29 17:21 ?840次閱讀

    英偉達(dá)首推AI NPC,革新游戲體驗(yàn)

    英偉達(dá)在游戲界再次引領(lǐng)創(chuàng)新潮流,宣布其首個(gè)基于AI技術(shù)的NPC(非玩家角色)正式入駐游戲。在一段令人矚目的demo中,玩家通過(guò)語(yǔ)音對(duì)話與NPC無(wú)縫交流,不僅獲取了詳盡的關(guān)卡指引,還能根據(jù)建議優(yōu)化裝備配置,甚至實(shí)時(shí)調(diào)整武器外觀,隨
    的頭像 發(fā)表于 08-23 15:57 ?639次閱讀

    技嘉 AORUS 前進(jìn) Gamescom 2024帶來(lái) AI 游戲新體驗(yàn)

    發(fā)行的游戲大作,并在游戲挑戰(zhàn)中競(jìng)逐好禮。 AORUS 于現(xiàn)場(chǎng)展示新款的 AI PC,包括搭載 Intel? Core? 第14代 HX 系列筆記本電腦處理器和 NVIDI
    的頭像 發(fā)表于 08-09 16:08 ?525次閱讀

    AMD 2024 ChinaJoy圓滿收官 AI+游戲 為熱愛(ài)全力以赴

    2024年7月26日~29日,AMD在上海成功舉辦了主題為 「 AI+ 游戲,為熱愛(ài)全力以赴!」 的AMD 2024 ChinaJoy。AMD攜手眾多合作伙伴為粉絲、硬件和游戲愛(ài)好者們帶來(lái)了最新的銳
    的頭像 發(fā)表于 08-05 15:21 ?901次閱讀

    微軟攜手Lumen Technologies擴(kuò)容并強(qiáng)化AI網(wǎng)絡(luò)能力合作

    微軟在7月25日宣布了一項(xiàng)重大舉措,旨在通過(guò)深化其Copilot等生成式AI服務(wù)在企業(yè)、組織、教育及普通消費(fèi)者領(lǐng)域的布局,來(lái)滿足日益增長(zhǎng)的對(duì)AI算力及網(wǎng)絡(luò)能力的需求。為實(shí)現(xiàn)這一目標(biāo),微軟攜手網(wǎng)絡(luò)系統(tǒng)領(lǐng)域的領(lǐng)先企業(yè)Lumen Technologies,共同開(kāi)啟了一段旨在擴(kuò)容
    的頭像 發(fā)表于 07-25 14:39 ?989次閱讀