91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

ouxn_HW_Digital ? 來(lái)源:華為開發(fā)者社區(qū) ? 作者:華為開發(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)上搜羅了一番,果然讓我找到了開源的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ì)獲得更佳的效果。

我開發(fā)這個(gè)模型,用的是來(lái)自華為云的ModelArts(它是一個(gè)在線、開箱即用的AI平臺(tái),還有免費(fèi)的GPU算力,每天不限次數(shù)使用,不要太爽?。源a是在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

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

print(‘

training.。。’)begin_t= time.time()max_reward= 0fori_episode in range(args.epochs): # 每局開始,重置環(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ō)今年華為云又開始了新一輪【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)容及配圖由入駐作者撰寫或者入駐合作網(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)注

    91

    文章

    40385

    瀏覽量

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

    關(guān)注

    4

    文章

    272

    瀏覽量

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

    關(guān)注

    3

    文章

    2833

    瀏覽量

    19322

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    2026年,如何快速找到適合你企業(yè)的AI+MES切入點(diǎn)?

    2026年,成功的制造企業(yè)不再是那些擁有最多機(jī)器人的企業(yè),而是那些能夠利用AI+MES系統(tǒng),讓數(shù)據(jù)在生產(chǎn)全流程中自動(dòng)流動(dòng)、自動(dòng)決策、自動(dòng)優(yōu)化的企業(yè)。對(duì)于管理者而言,現(xiàn)在的核心任務(wù)不是“要不要做”,而是“如何快速找到適合自身行業(yè)的AI
    的頭像 發(fā)表于 02-27 10:40 ?163次閱讀

    想請(qǐng)教一下,在哪兒可以找到教材,使用Mixly 來(lái)作進(jìn)一步修改AI 小智聊天機(jī)寸的程式在ESP32 開發(fā)板

    我在網(wǎng)上買了用ESP32S3 開發(fā)板自己接線的小智AI 聊天機(jī)械人,想請(qǐng)教一下,在哪兒可以找到教材,使用Mixly 來(lái)作進(jìn)一步修改AI 小智聊天機(jī)寸的程式,例如我可以邊和小智普通聊天邊叫她推著LED 燈或馬達(dá)。
    發(fā)表于 01-28 15:01

    腦海里AI8051U數(shù)據(jù)級(jí)聯(lián)的過(guò)程

    CLR DEV2_CS; 選中設(shè)備2 LJMP 0000H; 跳轉(zhuǎn)到設(shè)備2 0x00 ; ===================== 設(shè)備2:帶音樂(lè)的RPG游戲AI交互簡(jiǎn)化
    發(fā)表于 01-24 06:49

    自動(dòng)駕駛中常提的“強(qiáng)化學(xué)習(xí)”是個(gè)啥?

    下,就是一個(gè)智能體在環(huán)境里行動(dòng),它能觀察到環(huán)境的一些信息,并做出一個(gè)動(dòng)作,然后環(huán)境會(huì)給出一個(gè)反饋(獎(jiǎng)勵(lì)或懲罰),智能體的目標(biāo)是把長(zhǎng)期得到的獎(jiǎng)勵(lì)累積到最大。和監(jiān)督學(xué)習(xí)不同,強(qiáng)化學(xué)習(xí)沒(méi)有一一對(duì)應(yīng)的“正確答案”給它看,而是靠與環(huán)境交互、自我探索來(lái)發(fā)現(xiàn)
    的頭像 發(fā)表于 10-23 09:00 ?756次閱讀
    自動(dòng)駕駛中常提的“<b class='flag-5'>強(qiáng)化</b>學(xué)習(xí)”是個(gè)啥?

    科技云報(bào)到:找到真場(chǎng)景,抓住真需求,這樣的具身智能才是好AI

    科技云報(bào)到:找到真場(chǎng)景,抓住真需求,這樣的具身智能才是好AI
    的頭像 發(fā)表于 10-10 14:49 ?7768次閱讀

    【「AI芯片:科技探索與AGI愿景」閱讀體驗(yàn)】+AI的科學(xué)應(yīng)用

    和量子計(jì)算的兩項(xiàng)新興的技術(shù),將在生產(chǎn)假說(shuō)方面發(fā)揮重要作用,從而改變科學(xué)發(fā)現(xiàn)的范式。 生成式AI: 2、窮舉搜索 3、分析排錯(cuò)與組合優(yōu)化 分析排錯(cuò)是生成假說(shuō)的重要手段。強(qiáng)化學(xué)習(xí)也在優(yōu)化假說(shuō)組合、尋找科學(xué)發(fā)現(xiàn)
    發(fā)表于 09-17 11:45

    【「AI芯片:科技探索與AGI愿景」閱讀體驗(yàn)】+AI的未來(lái):提升算力還是智力

    、浪費(fèi)資源與破壞環(huán)境 二、用小模型代替大模型 1、強(qiáng)化學(xué)習(xí) 2、指令調(diào)整 3、合成數(shù)據(jù) 三、終身學(xué)習(xí)與遷移學(xué)習(xí) 1、終身學(xué)習(xí) 終身學(xué)習(xí)是一種模仿人類行為的AI算法,旨在構(gòu)建一種能不斷適應(yīng)新環(huán)境、在不斷接收
    發(fā)表于 09-14 14:04

    AI Coding + TuyaOpen,1小時(shí)快速打造AI女友和2048游戲

    七夕快到了,涂鴉本次準(zhǔn)備教大家用AI給自己做個(gè)虛擬女友,它能根據(jù)對(duì)話情緒顯示不同表情;在你游戲癮上來(lái)的時(shí)候,還能秒變2048游戲機(jī),讓你一邊玩游戲,一邊和
    的頭像 發(fā)表于 08-21 18:53 ?1774次閱讀
    <b class='flag-5'>AI</b> Coding + TuyaOpen,1小時(shí)快速打造<b class='flag-5'>AI</b>女友和2048<b class='flag-5'>游戲</b>

    AI開啟更逼真的游戲時(shí)代

    本文編譯自semiengineering神經(jīng)網(wǎng)絡(luò)負(fù)責(zé)圖形渲染,AI智能體指導(dǎo)玩法,而‘幻覺’則用于填補(bǔ)缺失的細(xì)節(jié),讓游戲世界更加完整。隨著處理性能和內(nèi)存的大幅提升,以及數(shù)據(jù)傳輸速度的顯著加快
    的頭像 發(fā)表于 08-20 11:22 ?1369次閱讀
    <b class='flag-5'>AI</b>開啟更逼真的<b class='flag-5'>游戲</b>時(shí)代

    【書籍評(píng)測(cè)活動(dòng)NO.64】AI芯片,從過(guò)去走向未來(lái):《AI芯片:科技探索與AGI愿景》

    計(jì)算、神經(jīng)符號(hào)計(jì)算,終身學(xué)習(xí)與遷移學(xué)習(xí)。 此外,書中提出“小模型替代大模型”的思路,通過(guò)強(qiáng)化學(xué)習(xí)、指令調(diào)整、合成數(shù)據(jù)等技術(shù),在降低算力消耗的同時(shí)保持智能水平,為AI算法的可持續(xù)發(fā)展提供了新方向。 工藝
    發(fā)表于 07-28 13:54

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

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

    【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗(yàn)】+初品Agent

    期待中的《零基礎(chǔ)開發(fā)AI Agent——手把手教你用扣子做智能體》終于寄到了,該書由葉濤、 管鍇、張心雨完成,并由電子工業(yè)出版社出版發(fā)行。 全書分為三個(gè)部分,即入門篇、工具篇及實(shí)踐篇。由此可見這是
    發(fā)表于 04-22 11:51

    技嘉正式推出 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 ?1034次閱讀

    京東方助力雷神ZERO 18 Pro系列AI游戲筆記本發(fā)布

    近日,雷神科技在中國(guó)烏鎮(zhèn)舉辦新品發(fā)布會(huì),攜手BOE(京東方)重磅發(fā)布年度旗艦AI游戲筆記本——雷神ZERO 18 Pro系列。
    的頭像 發(fā)表于 04-03 10:59 ?1248次閱讀