国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

gym包更新升級到0.26.2版本后煉丹爐的測試代碼

這篇具有很好參考價值的文章主要介紹了gym包更新升級到0.26.2版本后煉丹爐的測試代碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

關(guān)于gym包升級到0.26.2版本后煉丹爐測試代碼的修改

前兩天電腦有問題,重裝了系統(tǒng)。就有了關(guān)于安裝了更新后的軟件包跑環(huán)境測試代碼遇到的問題。
本文包版本分別為——gym version:0.26.2,pygame version:2.1.2

注意:
很多同學(xué)說老測試代碼跑不出來的,是因為gym升級了!gym庫0.26.0及之后的版本和之前版本的代碼是不兼容的!建議要么用命令:pip install gym==0.25.2安裝老版本gym(這里的0.25.0版本只是舉個例子,當(dāng)然也可以用其他老版本),要么嘗試一下下文中的代碼。

A.測試代碼1

由于十月份電腦有些問題重裝了一邊系統(tǒng),因此又開始搭環(huán)境跑測試代碼,果不其然,各種問題出來了。把pycharm、anaconda裝好后,rl環(huán)境創(chuàng)建好后,并在rl環(huán)境中成功安裝好gym、pygame、pytorch包以為能成功進入煉丹爐,就拿了之前的測試代碼1跑了一下:

import gym
env = gym.make('MountainCar-v0')
for i_episode in range(20):
    observation = env.reset()
    for t in range(100):
        env.render()
        print(observation)
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
    if done:
        print("Episode finished after {} timesteps".format(t+1))
        break
env.close()

然鵝,出錯了:
gym包更新升級到0.26.2版本后煉丹爐的測試代碼
細看是兩個錯誤提示:

提示1

WARN: You are calling render method without specifying any render mode. You can specify the render_mode at initialization, e.g. gym("MountainCar-v0", render_mode="rgb_array") gym.logger.warn(

大概意思是我們調(diào)用render method的時候沒有明確指定render mode,我們應(yīng)當(dāng)在初始化的時候就指出render_mode,例如gym(“MountainCar-v0”, render_mode=“rgb_array”)。
按照他的提示修改,在原代碼

env = gym.make('MountainCar-v0')

處修改為:

env = gym.make('MountainCar-v0', render_mode = "human")

再次運行發(fā)現(xiàn)小車上山的pygame界面一閃而過。以上關(guān)于render_mode的這個錯誤,我想可能是由于gym庫的版本更新以后,在定義環(huán)境時需要在環(huán)境名后具體指出render_mode=…,注意必須指出具體的render_mode(渲染模式),否則pygame的畫面直接就不顯示了,所以在用原來的測試代碼是跑不出pygame畫面的。

提示2

gym包更新升級到0.26.2版本后煉丹爐的測試代碼

這個錯誤提示的意思是:
值錯誤:接收返回值不符(這個問題參考的這個鏈接)
我理解的意思就是說環(huán)境里給我們的接受值和我們設(shè)置接受變量的數(shù)量之間無法對應(yīng)起來(比如環(huán)境給你5個值,你卻只設(shè)置了4個或更少的變量去接受,這肯定是不對的)。現(xiàn)在我們來查看env.step(action)到底給了我們幾個value。利用下列代碼來查看:

print(len(env.step(action)))

運行后可以看到“運行”里打印出了5,也就是說給了5個值需要用五個容器(變量)來接收。

其實關(guān)于這5個返回值,gym在Gym Documentation的首頁就已經(jīng)給出了(我用鼠標(biāo)選中的那行代碼):
gym包更新升級到0.26.2版本后煉丹爐的測試代碼
即:

observation, reward, terminated, truncated, info = env.step(action)

observation、rewardterminated、truncated、info就是env.step()返回給我們的5個值。

我們在實驗中具體看一下這5個值具體長什么樣子(注意下面我用的是MountainCar-v0環(huán)境):
gym包更新升級到0.26.2版本后煉丹爐的測試代碼
可以看到最后一行的輸出:

(array([-0.57811695, -0.00059736], dtype=float32), -1.0, False, False, {})

其中:

  • (array([-0.57811695, -0.00059736], dtype=float32)是智能體觀測到的環(huán)境狀態(tài)observation
  • -1.0是智能體執(zhí)行動作后獲得的獎勵reward;
  • 第一個Falseterminated表示當(dāng)前狀態(tài)是否為終止?fàn)顟B(tài)(terminal state),即智能體是否已完成任務(wù)或失敗退出;
  • 第二個Falsetruncated表示當(dāng)前交互是否被截斷(truncated),即智能體是否在一個時間步內(nèi)完成了任務(wù),或者達到了最大交互步數(shù)而被中斷;
  • {}是個空字典表示額外信息info。

如果你只需要其中的一部分變量,你可以使用下劃線 _ 來代替不需要的變量名,例如可以把原代碼:

observation, reward, done, info = env.step(action)

改為:

observation, reward, _ , done, info = env.step(action)

運行效果:
gym包更新升級到0.26.2版本后煉丹爐的測試代碼

附上修改后的測試代碼1

import gym
env = gym.make('MountainCar-v0', render_mode = 'human')
for i_episode in range(10):
    observation = env.reset()
    for t in range(100):
        env.render()
        print(observation)
        action = env.action_space.sample()
        observation, reward, done, info, _ = env.step(action)
    if done:
        print("Episode finished after {} timesteps".format(t+1))
        break
env.close()

關(guān)于render_mode,我在core.py文件中看到有如下說明:

gym包更新升級到0.26.2版本后煉丹爐的測試代碼

B.測試代碼2

跑的另一個測試代碼2也是有2個提示。
原測試代碼2如下:

import gym
env = gym.make('CartPole-v0')
for episode in range(10):
  env.reset()
  print("Episode finished after {} timesteps".format(episode))
  for _ in range(100):
    env.render()
    env.step(env.action_space.sample())
env.close()

結(jié)果有print的結(jié)果,沒出現(xiàn)pygame的界面,按照提示作出修改:
gym包更新升級到0.26.2版本后煉丹爐的測試代碼

提示1

他說You are calling render method without specifying any render mode. You can specify the render_mode at initialization, e.g. gym("MountainCar-v0", render_mode="rgb_array")
大概意思是我們調(diào)用render method的時候沒有明確指定render mode,我們應(yīng)當(dāng)在初始化的時候就指出render_mode,例如gym("MountainCar-v0", render_mode="rgb_array")。
按照他的提示修改,在原代碼

env = gym.make('CartPole-v0')

處修改為:

env = gym.make('CartPole-v0', render_mode = "human")

現(xiàn)在運行程序,就可以看到車桿平衡的pygame界面了。

提示2

然而,還有一個問題:
gym包更新升級到0.26.2版本后煉丹爐的測試代碼

大概意思是說,即使terminated = 1了我依然還在調(diào)用step函數(shù),terminated = 1的時候應(yīng)該接著的是reset函數(shù)。我理解的意思是當(dāng)我們完成一個episode(序列/情節(jié)/軌跡)后,環(huán)境會告訴我們訓(xùn)練應(yīng)當(dāng)終止了就會返回給我們terminated = 1這個信號,并且希望我們通過reset函數(shù)重置智能體的狀態(tài),讓他繼續(xù)探尋下一個episode。但是這里有個疑問:這條警告有時出現(xiàn)有時不出現(xiàn),目前原因不明。比如我加了一句代碼:

print("1 step")

就沒有這樣的警告:
gym包更新升級到0.26.2版本后煉丹爐的測試代碼

有的時候去掉也沒有,有時又會出現(xiàn)??傊\行效果如下圖:
gym包更新升級到0.26.2版本后煉丹爐的測試代碼

附上修改后的測試代碼2文章來源地址http://www.zghlxwxcb.cn/news/detail-468226.html

import gym
env = gym.make('CartPole-v1', render_mode = "human")
for episode in range(10):
  env.reset()
  print("Episode finished after {} timesteps".format(episode))
  for _ in range(100):
    env.render()
    env.step(env.action_space.sample())
env.close()

到了這里,關(guān)于gym包更新升級到0.26.2版本后煉丹爐的測試代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 華碩主板升級更新BIOS版本

    華碩主板升級更新BIOS版本

    1、查找主板型號 華碩官網(wǎng)https://www.asus.com.cn/support/Download-Center 2、下載BIOS版本 點擊下載,解壓拷貝到U盤 開機按F2或者Delete按鍵進入BISO界面,查看到當(dāng)前主板型號是PRIME B250M-PLUS,BIOS版本 BIOS Ver.1010 按F7進入高級模式,點擊“工具”,點擊“華碩升級BIOS 應(yīng)用程序3” 這里選擇

    2024年02月06日
    瀏覽(94)
  • uniapp小程序 如何更新版本 在頁面提示升級版本

    在APP.vue頁面內(nèi),在onLaunch生命周期里面調(diào)用 //版本更新提示

    2024年02月16日
    瀏覽(23)
  • 360安全路由怎么關(guān)閉自動更新升級保留出廠版本

    360安全路由默認(rèn)在聯(lián)網(wǎng)情況下,會自動進行固件版本更新升級,如果我們需要保留出廠版本,避免當(dāng)有新版本時,被自動升級的話,該如何操作呢?下面小編詳細介紹一下360安全路由關(guān)閉自動升級更新系統(tǒng)方法。 360安全路由怎么關(guān)閉自動更新升級 一、登陸360安全路由后臺管理

    2024年02月07日
    瀏覽(27)
  • linux系統(tǒng)升級/更新OpenSSL版本操作流程記錄

    linux系統(tǒng)升級/更新OpenSSL版本操作流程記錄

    問題描述:有時 OpenSSL 版本過老升級,或者需要更新 OpenSSL 版本 我的輸入后版本信息為:OpenSSL 1.1.1g FIPS 21 Apr 2020 ,可以看到是一年前更新版本,是有些老。 登錄 https://www.openssl.org/ 官網(wǎng)后,找到需要的版本 我這里選擇 3.1 版本,進入后如下圖: 我的輸入后版本信息為:Op

    2024年02月07日
    瀏覽(50)
  • 強化學(xué)習(xí)環(huán)境升級 - 從gym到Gymnasium

    作為強化學(xué)習(xí)最常用的工具,gym一直在不停地升級和折騰,比如gym[atari]變成需要要安裝接受協(xié)議的包啦,atari環(huán)境不支持Windows環(huán)境啦之類的,另外比較大的變化就是2021年接口從gym庫變成了gymnasium庫。讓大量的講強化學(xué)習(xí)的書中介紹環(huán)境的部分變得需要跟進升級了。 不過,不

    2024年02月08日
    瀏覽(22)
  • 【Android】app應(yīng)用內(nèi)版本更新升級(DownloadManager下載,適配Android6.0以上所有版本)

    【Android】app應(yīng)用內(nèi)版本更新升級(DownloadManager下載,適配Android6.0以上所有版本)

    版本的升級和更新是一個線上App所必備的功能,App的升級安裝包主要通過 應(yīng)用商店 或者 應(yīng)用內(nèi)下載 兩種方式獲得,大部分app這兩種方式都會具備,應(yīng)用商店只需要上傳對應(yīng)平臺審核通過即可,而應(yīng)用內(nèi)更新一般是通過以下幾種方式: 1.集成第三方庫如 appupdateX、bugly 的更新

    2024年02月11日
    瀏覽(32)
  • Wordpress升級版本后插件和主題常見出錯及處理方法整理【持續(xù)更新】

    Wordpress升級版本后插件和主題常見出錯及處理方法整理【持續(xù)更新】

    一般常用的排查方法: 暫時禁用所有插件; 將主題更改為默認(rèn)主題; ?修改wp-config.php文件; 更新固定鏈接設(shè)置,確保設(shè)置正確; 檢查.htaccess文件是否存在且是否可寫; 檢查主題的頁面模板文件是否存在;7、檢查wp-config.php文件的數(shù)據(jù)庫憑據(jù)是否正確; 使用phpMyAdmin等工具檢

    2024年02月14日
    瀏覽(21)
  • OpenLayers9.1.0版本正式發(fā)布,OpenLayers9.1.0值得升級嗎?9.1.0版相比9.0.0版本又更新了哪些內(nèi)容?OpenLayers9相較于OpenLayers8更新了哪些內(nèi)容?

    OpenLayers9.1.0版本正式發(fā)布,OpenLayers9.1.0值得升級嗎?9.1.0版相比9.0.0版本又更新了哪些內(nèi)容?OpenLayers9相較于OpenLayers8更新了哪些內(nèi)容?

    Vue+OpenLayers中文教程推薦,不同于OpenLayers官方文檔使用html+js原生原生教程,博主專欄包含大量vue整合案例和實際開發(fā)案例,非常適合地圖開發(fā)小白快速入門。 OpenLayers6教程 vue整合OpenLayers6入門教程: 《Vue+OpenLayers6入門教程》 vue整合OpenLayers6實戰(zhàn)中文教程,包含大量OpenLayers官

    2024年04月23日
    瀏覽(28)
  • 【W(wǎng)indows 10 更新失敗】Windows10 升級提示錯誤代碼:0x80070020解決方案

    【W(wǎng)indows 10 更新失敗】Windows10 升級提示錯誤代碼:0x80070020解決方案

    下面本人使用的方法不能針對于所有用戶,有的用戶解決了,有的用戶反饋沒有解決。所以只能當(dāng)作一種方法參考。 在更新下面的Windows 補?。?2022-適用于 Windows 10 Version 21H1 的 05 累積更新,適合基于 x64 的系統(tǒng) (KB5013942) 時,出現(xiàn)了 非常嚴(yán)重的錯誤。 , 這個錯誤拖了5個月,

    2024年02月07日
    瀏覽(34)
  • Cesium版本升級webgl問題,glsl代碼報錯,修改辦法

    Cesium版本升級webgl問題,glsl代碼報錯,修改辦法

    ? Cesium 從1.102.0 ?開始,Cesium 默認(rèn)使用? WebGL2 ?上下文。一些webgl特效代碼在webgl1中支持,但是在版本升級后,運行會報各種glsl代碼錯誤?,F(xiàn)在有兩種解決方案。詳細辦法描述如下所示。 ? 地球初始化配置如下: requestWebgl1: true ? 需要修改的為:? varying ? attribute ?

    2024年02月06日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包