日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 知識(shí)百科

AI實(shí)戰(zhàn),用Python玩?zhèn)€自動(dòng)駕駛!

來(lái)源: 責(zé)編: 時(shí)間:2023-08-07 16:30:09 238觀看
導(dǎo)讀 安裝環(huán)境gym是用于開(kāi)發(fā)和比較強(qiáng)化學(xué)習(xí)算法的工具包,在python中安裝gym庫(kù)和其中子場(chǎng)景都較為簡(jiǎn)便。安裝gym:pip install gym安裝自動(dòng)駕駛模塊,這里使用 Edouard Leurent 發(fā)布在

 安裝環(huán)境mBQ28資訊網(wǎng)——每日最新資訊28at.com

gym是用于開(kāi)發(fā)和比較強(qiáng)化學(xué)習(xí)算法的工具包,在python中安裝gym庫(kù)和其中子場(chǎng)景都較為簡(jiǎn)便。mBQ28資訊網(wǎng)——每日最新資訊28at.com

安裝gym:mBQ28資訊網(wǎng)——每日最新資訊28at.com

pip install gymmBQ28資訊網(wǎng)——每日最新資訊28at.com

安裝自動(dòng)駕駛模塊,這里使用 Edouard Leurent 發(fā)布在 github 上的包 highway-env:mBQ28資訊網(wǎng)——每日最新資訊28at.com

pip install --user git+https://github.com/eleurent/highway-envmBQ28資訊網(wǎng)——每日最新資訊28at.com

其中包含6個(gè)場(chǎng)景:mBQ28資訊網(wǎng)——每日最新資訊28at.com

高速公路——“highway-v0” 匯入——“merge-v0” 環(huán)島——“roundabout-v0” 泊車(chē)——“parking-v0” 十字路口——“intersection-v0” 賽車(chē)道——“racetrack-v0”mBQ28資訊網(wǎng)——每日最新資訊28at.com

詳細(xì)文檔可以參考這里:mBQ28資訊網(wǎng)——每日最新資訊28at.com

https://highway-env.readthedocs.io/en/latest/mBQ28資訊網(wǎng)——每日最新資訊28at.com

配置環(huán)境mBQ28資訊網(wǎng)——每日最新資訊28at.com

安裝好后即可在代碼中進(jìn)行實(shí)驗(yàn)(以高速公路場(chǎng)景為例):mBQ28資訊網(wǎng)——每日最新資訊28at.com

import gymmBQ28資訊網(wǎng)——每日最新資訊28at.com
import highway_envmBQ28資訊網(wǎng)——每日最新資訊28at.com
%matplotlib inlinemBQ28資訊網(wǎng)——每日最新資訊28at.com
env = gym.make('highway-v0')mBQ28資訊網(wǎng)——每日最新資訊28at.com
env.reset()mBQ28資訊網(wǎng)——每日最新資訊28at.com
for _ in range(3):mBQ28資訊網(wǎng)——每日最新資訊28at.com
action = env.action_type.actions_indexes["IDLE"]mBQ28資訊網(wǎng)——每日最新資訊28at.com
obs, reward, done, info = env.step(action)mBQ28資訊網(wǎng)——每日最新資訊28at.com
env.render()mBQ28資訊網(wǎng)——每日最新資訊28at.com

運(yùn)行后會(huì)在模擬器中生成如下場(chǎng)景:mBQ28資訊網(wǎng)——每日最新資訊28at.com

mBQ28資訊網(wǎng)——每日最新資訊28at.com

env類(lèi)有很多參數(shù)可以配置,具體可以參考原文檔。mBQ28資訊網(wǎng)——每日最新資訊28at.com

訓(xùn)練模型 1、數(shù)據(jù)處理mBQ28資訊網(wǎng)——每日最新資訊28at.com

(1)statemBQ28資訊網(wǎng)——每日最新資訊28at.com

highway-env包中沒(méi)有定義傳感器,車(chē)輛所有的state (observations) 都從底層代碼讀取,節(jié)省了許多前期的工作量。根據(jù)文檔介紹,state (ovservations) 有三種輸出方式:Kinematics,Grayscale Image和Occupancy grid。mBQ28資訊網(wǎng)——每日最新資訊28at.com

KinematicsmBQ28資訊網(wǎng)——每日最新資訊28at.com

輸出V*F的矩陣,V代表需要觀測(cè)的車(chē)輛數(shù)量(包括ego vehicle本身),F(xiàn)代表需要統(tǒng)計(jì)的特征數(shù)量。例:mBQ28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)生成時(shí)會(huì)默認(rèn)歸一化,取值范圍:[100, 100, 20, 20],也可以設(shè)置ego vehicle以外的車(chē)輛屬性是地圖的絕對(duì)坐標(biāo)還是對(duì)ego vehicle的相對(duì)坐標(biāo)。mBQ28資訊網(wǎng)——每日最新資訊28at.com

在定義環(huán)境時(shí)需要對(duì)特征的參數(shù)進(jìn)行設(shè)定:mBQ28資訊網(wǎng)——每日最新資訊28at.com

config = mBQ28資訊網(wǎng)——每日最新資訊28at.com
{mBQ28資訊網(wǎng)——每日最新資訊28at.com
"observation": mBQ28資訊網(wǎng)——每日最新資訊28at.com
{mBQ28資訊網(wǎng)——每日最新資訊28at.com
"type": "Kinematics",mBQ28資訊網(wǎng)——每日最新資訊28at.com
#選取5輛車(chē)進(jìn)行觀察(包括ego vehicle)mBQ28資訊網(wǎng)——每日最新資訊28at.com
"vehicles_count": 5, mBQ28資訊網(wǎng)——每日最新資訊28at.com
#共7個(gè)特征mBQ28資訊網(wǎng)——每日最新資訊28at.com
"features": ["presence", "x", "y", "vx", "vy", "cos_h", "sin_h"], mBQ28資訊網(wǎng)——每日最新資訊28at.com
"features_range": mBQ28資訊網(wǎng)——每日最新資訊28at.com
{mBQ28資訊網(wǎng)——每日最新資訊28at.com
"x": [-100, 100],mBQ28資訊網(wǎng)——每日最新資訊28at.com
"y": [-100, 100],mBQ28資訊網(wǎng)——每日最新資訊28at.com
"vx": [-20, 20],mBQ28資訊網(wǎng)——每日最新資訊28at.com
"vy": [-20, 20]mBQ28資訊網(wǎng)——每日最新資訊28at.com
},mBQ28資訊網(wǎng)——每日最新資訊28at.com
"absolute": False,mBQ28資訊網(wǎng)——每日最新資訊28at.com
"order": "sorted"mBQ28資訊網(wǎng)——每日最新資訊28at.com
},mBQ28資訊網(wǎng)——每日最新資訊28at.com
"simulation_frequency": 8, # [Hz]mBQ28資訊網(wǎng)——每日最新資訊28at.com
"policy_frequency": 2, # [Hz]mBQ28資訊網(wǎng)——每日最新資訊28at.com
}mBQ28資訊網(wǎng)——每日最新資訊28at.com

Grayscale ImagemBQ28資訊網(wǎng)——每日最新資訊28at.com

生成一張W*H的灰度圖像,W代表圖像寬度,H代表圖像高度mBQ28資訊網(wǎng)——每日最新資訊28at.com

Occupancy gridmBQ28資訊網(wǎng)——每日最新資訊28at.com

生成一個(gè)WHF的三維矩陣,用W*H的表格表示ego vehicle周?chē)能?chē)輛情況,每個(gè)格子包含F(xiàn)個(gè)特征。mBQ28資訊網(wǎng)——每日最新資訊28at.com

(2) actionmBQ28資訊網(wǎng)——每日最新資訊28at.com

highway-env包中的action分為連續(xù)和離散兩種。連續(xù)型action可以直接定義throttle和steering angle的值,離散型包含5個(gè)meta actions:mBQ28資訊網(wǎng)——每日最新資訊28at.com

ACTIONS_ALL = {mBQ28資訊網(wǎng)——每日最新資訊28at.com
0: 'LANE_LEFT',mBQ28資訊網(wǎng)——每日最新資訊28at.com
1: 'IDLE',mBQ28資訊網(wǎng)——每日最新資訊28at.com
2: 'LANE_RIGHT',mBQ28資訊網(wǎng)——每日最新資訊28at.com
3: 'FASTER',mBQ28資訊網(wǎng)——每日最新資訊28at.com
4: 'SLOWER'mBQ28資訊網(wǎng)——每日最新資訊28at.com
}mBQ28資訊網(wǎng)——每日最新資訊28at.com

(3) rewardmBQ28資訊網(wǎng)——每日最新資訊28at.com

highway-env包中除了泊車(chē)場(chǎng)景外都采用同一個(gè)reward function:mBQ28資訊網(wǎng)——每日最新資訊28at.com

mBQ28資訊網(wǎng)——每日最新資訊28at.com

這個(gè)function只能在其源碼中更改,在外層只能調(diào)整權(quán)重。mBQ28資訊網(wǎng)——每日最新資訊28at.com

(泊車(chē)場(chǎng)景的reward function原文檔里有)mBQ28資訊網(wǎng)——每日最新資訊28at.com

2、搭建模型mBQ28資訊網(wǎng)——每日最新資訊28at.com

DQN網(wǎng)絡(luò),我采用第一種state表示方式——Kinematics進(jìn)行示范。由于state數(shù)據(jù)量較小(5輛車(chē)*7個(gè)特征),可以不考慮使用CNN,直接把二維數(shù)據(jù)的size[5,7]轉(zhuǎn)成[1,35]即可,模型的輸入就是35,輸出是離散action數(shù)量,共5個(gè)。mBQ28資訊網(wǎng)——每日最新資訊28at.com

import torchmBQ28資訊網(wǎng)——每日最新資訊28at.com
import torch.nn as nnmBQ28資訊網(wǎng)——每日最新資訊28at.com
from torch.autograd import VariablemBQ28資訊網(wǎng)——每日最新資訊28at.com
import torch.nn.functional as FmBQ28資訊網(wǎng)——每日最新資訊28at.com
import torch.optim as optimmBQ28資訊網(wǎng)——每日最新資訊28at.com
import torchvision.transforms as TmBQ28資訊網(wǎng)——每日最新資訊28at.com
from torch import FloatTensor, LongTensor, ByteTensormBQ28資訊網(wǎng)——每日最新資訊28at.com
from collections import namedtuplemBQ28資訊網(wǎng)——每日最新資訊28at.com
import random mBQ28資訊網(wǎng)——每日最新資訊28at.com
Tensor = FloatTensormBQ28資訊網(wǎng)——每日最新資訊28at.com
EPSILON = 0 # epsilon used for epsilon greedy approachmBQ28資訊網(wǎng)——每日最新資訊28at.com
GAMMA = 0.9mBQ28資訊網(wǎng)——每日最新資訊28at.com
TARGET_NETWORK_REPLACE_FREQ = 40 # How frequently target netowrk updatesmBQ28資訊網(wǎng)——每日最新資訊28at.com
MEMORY_CAPACITY = 100mBQ28資訊網(wǎng)——每日最新資訊28at.com
BATCH_SIZE = 80mBQ28資訊網(wǎng)——每日最新資訊28at.com
LR = 0.01 # learning ratemBQ28資訊網(wǎng)——每日最新資訊28at.com
class DQNNet(nn.Module):mBQ28資訊網(wǎng)——每日最新資訊28at.com
def __init__(self):mBQ28資訊網(wǎng)——每日最新資訊28at.com
super(DQNNet,self).__init__() mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.linear1 = nn.Linear(35,35)mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.linear2 = nn.Linear(35,5) mBQ28資訊網(wǎng)——每日最新資訊28at.com
def forward(self,s):mBQ28資訊網(wǎng)——每日最新資訊28at.com
s=torch.FloatTensor(s) mBQ28資訊網(wǎng)——每日最新資訊28at.com
s = s.view(s.size(0),1,35) mBQ28資訊網(wǎng)——每日最新資訊28at.com
s = self.linear1(s)mBQ28資訊網(wǎng)——每日最新資訊28at.com
s = self.linear2(s)mBQ28資訊網(wǎng)——每日最新資訊28at.com
return s mBQ28資訊網(wǎng)——每日最新資訊28at.com
class DQN(object):mBQ28資訊網(wǎng)——每日最新資訊28at.com
def __init__(self):mBQ28資訊網(wǎng)——每日最新資訊28at.com
self,self.target_net = DQNNet(),DQNNet() mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.learn_step_counter = 0 mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.memory = []mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.position = 0 mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.capacity = MEMORY_CAPACITY mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.optimizer = torch.optim.Adam(self.parameters(), lr=LR)mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.loss_func = nn.MSELoss()mBQ28資訊網(wǎng)——每日最新資訊28at.com
def choose_action(self,s,e):mBQ28資訊網(wǎng)——每日最新資訊28at.com
x=np.expand_dims(s, axis=0)mBQ28資訊網(wǎng)——每日最新資訊28at.com
if np.random.uniform() < 1-e: mBQ28資訊網(wǎng)——每日最新資訊28at.com
actions_value = self.forward(x) mBQ28資訊網(wǎng)——每日最新資訊28at.com
action = torch.max(actions_value,-1)[1].data.numpy()mBQ28資訊網(wǎng)——每日最新資訊28at.com
action = action.max() mBQ28資訊網(wǎng)——每日最新資訊28at.com
else: mBQ28資訊網(wǎng)——每日最新資訊28at.com
action = np.random.randint(0, 5)mBQ28資訊網(wǎng)——每日最新資訊28at.com
return actionmBQ28資訊網(wǎng)——每日最新資訊28at.com
def push_memory(self, s, a, r, s_):mBQ28資訊網(wǎng)——每日最新資訊28at.com
if len(self.memory) < self.capacity:mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.memory.append(None)mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.memory[self.position] = Transition(torch.unsqueeze(torch.FloatTensor(s), 0),torch.unsqueeze(torch.FloatTensor(s_), 0),mBQ28資訊網(wǎng)——每日最新資訊28at.com
torch.from_numpy(np.array([a])),torch.from_numpy(np.array([r],dtype='float32')))#mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.position = (self.position + 1) % self.capacitymBQ28資訊網(wǎng)——每日最新資訊28at.com
def get_sample(self,batch_size):mBQ28資訊網(wǎng)——每日最新資訊28at.com
sample = random.sample(self.memory,batch_size)mBQ28資訊網(wǎng)——每日最新資訊28at.com
return samplemBQ28資訊網(wǎng)——每日最新資訊28at.com
def learn(self):mBQ28資訊網(wǎng)——每日最新資訊28at.com
if self.learn_step_counter % TARGET_NETWORK_REPLACE_FREQ == 0:mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.target_net.load_state_dict(self.state_dict())mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.learn_step_counter += 1mBQ28資訊網(wǎng)——每日最新資訊28at.com
transitions = self.get_sample(BATCH_SIZE)mBQ28資訊網(wǎng)——每日最新資訊28at.com
batch = Transition(*zip(*transitions))mBQ28資訊網(wǎng)——每日最新資訊28at.com
b_s = Variable(torch.cat(batch.state))mBQ28資訊網(wǎng)——每日最新資訊28at.com
b_s_ = Variable(torch.cat(batch.next_state))mBQ28資訊網(wǎng)——每日最新資訊28at.com
b_a = Variable(torch.cat(batch.action))mBQ28資訊網(wǎng)——每日最新資訊28at.com
b_r = Variable(torch.cat(batch.reward)) mBQ28資訊網(wǎng)——每日最新資訊28at.com
q_eval = self.forward(b_s).squeeze(1).gather(1,b_a.unsqueeze(1).to(torch.int64)) mBQ28資訊網(wǎng)——每日最新資訊28at.com
q_next = self.target_net.forward(b_s_).detach() #mBQ28資訊網(wǎng)——每日最新資訊28at.com
q_target = b_r + GAMMA * q_next.squeeze(1).max(1)[0].view(BATCH_SIZE, 1).t() mBQ28資訊網(wǎng)——每日最新資訊28at.com
loss = self.loss_func(q_eval, q_target.t()) mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.optimizer.zero_grad() # reset the gradient to zero mBQ28資訊網(wǎng)——每日最新資訊28at.com
loss.backward()mBQ28資訊網(wǎng)——每日最新資訊28at.com
self.optimizer.step() # execute back propagation for one step mBQ28資訊網(wǎng)——每日最新資訊28at.com
return lossmBQ28資訊網(wǎng)——每日最新資訊28at.com
Transition = namedtuple('Transition',('state', 'next_state','action', 'reward'))mBQ28資訊網(wǎng)——每日最新資訊28at.com
3、運(yùn)行結(jié)果mBQ28資訊網(wǎng)——每日最新資訊28at.com

各個(gè)部分都完成之后就可以組合在一起訓(xùn)練模型了,流程和用CARLA差不多,就不細(xì)說(shuō)了。mBQ28資訊網(wǎng)——每日最新資訊28at.com

初始化環(huán)境(DQN的類(lèi)加進(jìn)去就行了):mBQ28資訊網(wǎng)——每日最新資訊28at.com

import gymmBQ28資訊網(wǎng)——每日最新資訊28at.com
import highway_envmBQ28資訊網(wǎng)——每日最新資訊28at.com
from matplotlib import pyplot as pltmBQ28資訊網(wǎng)——每日最新資訊28at.com
import numpy as npmBQ28資訊網(wǎng)——每日最新資訊28at.com
import timemBQ28資訊網(wǎng)——每日最新資訊28at.com
config = mBQ28資訊網(wǎng)——每日最新資訊28at.com
{mBQ28資訊網(wǎng)——每日最新資訊28at.com
"observation": mBQ28資訊網(wǎng)——每日最新資訊28at.com
{mBQ28資訊網(wǎng)——每日最新資訊28at.com
"type": "Kinematics",mBQ28資訊網(wǎng)——每日最新資訊28at.com
"vehicles_count": 5,mBQ28資訊網(wǎng)——每日最新資訊28at.com
"features": ["presence", "x", "y", "vx", "vy", "cos_h", "sin_h"],mBQ28資訊網(wǎng)——每日最新資訊28at.com
"features_range": mBQ28資訊網(wǎng)——每日最新資訊28at.com
{mBQ28資訊網(wǎng)——每日最新資訊28at.com
"x": [-100, 100],mBQ28資訊網(wǎng)——每日最新資訊28at.com
"y": [-100, 100],mBQ28資訊網(wǎng)——每日最新資訊28at.com
"vx": [-20, 20],mBQ28資訊網(wǎng)——每日最新資訊28at.com
"vy": [-20, 20]mBQ28資訊網(wǎng)——每日最新資訊28at.com
},mBQ28資訊網(wǎng)——每日最新資訊28at.com
"absolute": False,mBQ28資訊網(wǎng)——每日最新資訊28at.com
"order": "sorted"mBQ28資訊網(wǎng)——每日最新資訊28at.com
},mBQ28資訊網(wǎng)——每日最新資訊28at.com
"simulation_frequency": 8, # [Hz]mBQ28資訊網(wǎng)——每日最新資訊28at.com
"policy_frequency": 2, # [Hz]mBQ28資訊網(wǎng)——每日最新資訊28at.com
}mBQ28資訊網(wǎng)——每日最新資訊28at.com
env = gym.make("highway-v0")mBQ28資訊網(wǎng)——每日最新資訊28at.com
env.configure(config)mBQ28資訊網(wǎng)——每日最新資訊28at.com

訓(xùn)練模型:mBQ28資訊網(wǎng)——每日最新資訊28at.com

dqn=DQN()mBQ28資訊網(wǎng)——每日最新資訊28at.com
count=0mBQ28資訊網(wǎng)——每日最新資訊28at.com
reward=[]mBQ28資訊網(wǎng)——每日最新資訊28at.com
avg_reward=0mBQ28資訊網(wǎng)——每日最新資訊28at.com
all_reward=[]mBQ28資訊網(wǎng)——每日最新資訊28at.com
time_=[]mBQ28資訊網(wǎng)——每日最新資訊28at.com
all_time=[]mBQ28資訊網(wǎng)——每日最新資訊28at.com
collision_his=[]mBQ28資訊網(wǎng)——每日最新資訊28at.com
all_collision=[]mBQ28資訊網(wǎng)——每日最新資訊28at.com
while True:mBQ28資訊網(wǎng)——每日最新資訊28at.com
done = False mBQ28資訊網(wǎng)——每日最新資訊28at.com
start_time=time.time()mBQ28資訊網(wǎng)——每日最新資訊28at.com
s = env.reset()mBQ28資訊網(wǎng)——每日最新資訊28at.com
while not done:mBQ28資訊網(wǎng)——每日最新資訊28at.com
e = np.exp(-count/300) #隨機(jī)選擇action的概率,隨著訓(xùn)練次數(shù)增多逐漸降低mBQ28資訊網(wǎng)——每日最新資訊28at.com
a = dqn.choose_action(s,e)mBQ28資訊網(wǎng)——每日最新資訊28at.com
s_, r, done, info = env.step(a)mBQ28資訊網(wǎng)——每日最新資訊28at.com
env.render()mBQ28資訊網(wǎng)——每日最新資訊28at.com
dqn.push_memory(s, a, r, s_)mBQ28資訊網(wǎng)——每日最新資訊28at.com
if ((dqn.position !=0)&(dqn.position % 99==0)):mBQ28資訊網(wǎng)——每日最新資訊28at.com
loss_=dqn.learn()mBQ28資訊網(wǎng)——每日最新資訊28at.com
count+=1mBQ28資訊網(wǎng)——每日最新資訊28at.com
print('trained times:',count)mBQ28資訊網(wǎng)——每日最新資訊28at.com
if (count%40==0):mBQ28資訊網(wǎng)——每日最新資訊28at.com
avg_reward=np.mean(reward)mBQ28資訊網(wǎng)——每日最新資訊28at.com
avg_time=np.mean(time_)mBQ28資訊網(wǎng)——每日最新資訊28at.com
collision_rate=np.mean(collision_his)mBQ28資訊網(wǎng)——每日最新資訊28at.com
all_reward.append(avg_reward)mBQ28資訊網(wǎng)——每日最新資訊28at.com
all_time.append(avg_time)mBQ28資訊網(wǎng)——每日最新資訊28at.com
all_collision.append(collision_rate)mBQ28資訊網(wǎng)——每日最新資訊28at.com
plt.plot(all_reward)mBQ28資訊網(wǎng)——每日最新資訊28at.com
plt.show()mBQ28資訊網(wǎng)——每日最新資訊28at.com
plt.plot(all_time)mBQ28資訊網(wǎng)——每日最新資訊28at.com
plt.show()mBQ28資訊網(wǎng)——每日最新資訊28at.com
plt.plot(all_collision)mBQ28資訊網(wǎng)——每日最新資訊28at.com
plt.show()mBQ28資訊網(wǎng)——每日最新資訊28at.com
reward=[]mBQ28資訊網(wǎng)——每日最新資訊28at.com
time_=[]mBQ28資訊網(wǎng)——每日最新資訊28at.com
collision_his=[]mBQ28資訊網(wǎng)——每日最新資訊28at.com
s = s_mBQ28資訊網(wǎng)——每日最新資訊28at.com
reward.append(r) mBQ28資訊網(wǎng)——每日最新資訊28at.com
end_time=time.time()mBQ28資訊網(wǎng)——每日最新資訊28at.com
episode_time=end_time-start_timemBQ28資訊網(wǎng)——每日最新資訊28at.com
time_.append(episode_time)mBQ28資訊網(wǎng)——每日最新資訊28at.com
is_collision=1 if info['crashed']==True else 0mBQ28資訊網(wǎng)——每日最新資訊28at.com
collision_his.append(is_collision)mBQ28資訊網(wǎng)——每日最新資訊28at.com

我在代碼中添加了一些畫(huà)圖的函數(shù),在運(yùn)行過(guò)程中就可以掌握一些關(guān)鍵的指標(biāo),每訓(xùn)練40次統(tǒng)計(jì)一次平均值。mBQ28資訊網(wǎng)——每日最新資訊28at.com

平均碰撞發(fā)生率:mBQ28資訊網(wǎng)——每日最新資訊28at.com

mBQ28資訊網(wǎng)——每日最新資訊28at.com

epoch平均時(shí)長(zhǎng)(s):mBQ28資訊網(wǎng)——每日最新資訊28at.com

mBQ28資訊網(wǎng)——每日最新資訊28at.com

平均reward:mBQ28資訊網(wǎng)——每日最新資訊28at.com

mBQ28資訊網(wǎng)——每日最新資訊28at.com

可以看出平均碰撞發(fā)生率會(huì)隨訓(xùn)練次數(shù)增多逐漸降低,每個(gè)epoch持續(xù)的時(shí)間會(huì)逐漸延長(zhǎng)(如果發(fā)生碰撞epoch會(huì)立刻結(jié)束)mBQ28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)mBQ28資訊網(wǎng)——每日最新資訊28at.com

相比于模擬器CARLA,highway-env環(huán)境包明顯更加抽象化,用類(lèi)似游戲的表示方式,使得算法可以在一個(gè)理想的虛擬環(huán)境中得到訓(xùn)練,而不用考慮數(shù)據(jù)獲取方式、傳感器精度、運(yùn)算時(shí)長(zhǎng)等現(xiàn)實(shí)問(wèn)題。對(duì)于端到端的算法設(shè)計(jì)和測(cè)試非常友好,但從自動(dòng)控制的角度來(lái)看,可以入手的方面較少,研究起來(lái)不太靈活。mBQ28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-119-2267-0.htmlAI實(shí)戰(zhàn),用Python玩?zhèn)€自動(dòng)駕駛!

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 無(wú)人出租車(chē)被警察截停后逃逸!AI:我當(dāng)時(shí)害怕極了

下一篇: 京東云發(fā)布云原生自研中間件JCQ 性能容量接近無(wú)限擴(kuò)展

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 一加Ace2 Pro真機(jī)揭曉 鈦空灰配色質(zhì)感拉滿(mǎn)

    終于,在經(jīng)過(guò)了幾波預(yù)熱之后,一加Ace2 Pro的外觀真機(jī)圖在網(wǎng)上出現(xiàn)了。還是博主數(shù)碼閑聊站曝光的,這次的外觀設(shè)計(jì)還是延續(xù)了一加11的方案,只是細(xì)節(jié)上有了調(diào)整,例如新加入了鈦空灰
  • Redmi Buds 4開(kāi)箱簡(jiǎn)評(píng):才199還有降噪 可以無(wú)腦入

    在上個(gè)月舉辦的Redmi Note11T Pro系列新機(jī)發(fā)布會(huì)上,除了兩款手機(jī)新品之外,Redmi還帶來(lái)了兩款TWS真無(wú)線藍(lán)牙耳機(jī)產(chǎn)品,Redmi Buds 4和Redmi Buds 4 Pro,此前我們?cè)赗edmi Note11T
  • 6月iOS設(shè)備好評(píng)榜:第一蟬聯(lián)榜首近一年

    作為安兔兔各種榜單里變化最小的那個(gè),2023年6月的iOS好評(píng)榜和上個(gè)月相比沒(méi)有任何排名上的變化,僅僅是部分設(shè)備好評(píng)率的下降,長(zhǎng)年累月的用戶(hù)評(píng)價(jià)和逐漸退出市場(chǎng)的老款機(jī)器讓這
  • CSS單標(biāo)簽實(shí)現(xiàn)轉(zhuǎn)轉(zhuǎn)logo

    轉(zhuǎn)轉(zhuǎn)品牌升級(jí)后更新了全新的Logo,今天我們用純CSS來(lái)實(shí)現(xiàn)轉(zhuǎn)轉(zhuǎn)的新Logo,為了有一定的挑戰(zhàn)性,這里我們只使用一個(gè)標(biāo)簽實(shí)現(xiàn),將最大化的使用CSS能力完成Logo的繪制與動(dòng)畫(huà)效果。新logo
  • K8S | Service服務(wù)發(fā)現(xiàn)

    一、背景在微服務(wù)架構(gòu)中,這里以開(kāi)發(fā)環(huán)境「Dev」為基礎(chǔ)來(lái)描述,在K8S集群中通常會(huì)開(kāi)放:路由網(wǎng)關(guān)、注冊(cè)中心、配置中心等相關(guān)服務(wù),可以被集群外部訪問(wèn);圖片對(duì)于測(cè)試「Tes」環(huán)境或者
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對(duì)帶有指定屬性的 HTML 元素設(shè)置樣式。可以為擁有指定屬性的 HTML 元素設(shè)置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡(jiǎn)單而
  • 國(guó)行版三星Galaxy Z Fold5/Z Flip5發(fā)布 售價(jià)7499元起

    2023年8月3日,三星電子舉行Galaxy新品中國(guó)發(fā)布會(huì),正式在國(guó)內(nèi)推出了新一代折疊屏智能手機(jī)三星Galaxy Z Fold5與Galaxy Z Flip5,以及三星Galaxy Tab S9
  • 三星推出Galaxy Tab S9系列平板電腦以及Galaxy Watch6系列智能手表

    2023年7月26日,三星電子正式發(fā)布了Galaxy Z Flip5與Galaxy Z Fold5。除此之外,Galaxy Tab S9系列平板電腦以及三星Galaxy Watch6系列智能手表也同期
  • 回歸OPPO兩年,一加贏了銷(xiāo)量,輸了品牌

    成為OPPO旗下主打性能的先鋒品牌后,一加屢創(chuàng)佳績(jī)。今年618期間,一加手機(jī)全渠道銷(xiāo)量同比增長(zhǎng)362%,憑借一加 11、一加 Ace 2、一加 Ace 2V三款爆品,一加
Top 主站蜘蛛池模板: 木里| 丰都县| 民乐县| 宜黄县| 修文县| 聂拉木县| 乌拉特前旗| 如东县| 寿宁县| 荣昌县| 霸州市| 西宁市| 襄樊市| 北辰区| 六安市| 阜阳市| 乐昌市| 赤城县| 辽阳县| 遂川县| 中江县| 多伦县| 怀宁县| 获嘉县| 永川市| 唐山市| 石棉县| 乐业县| 墨江| 革吉县| 辰溪县| 驻马店市| 沾益县| 广宁县| 石柱| 浪卡子县| 武义县| 民乐县| 娄烦县| 康定县| 崇明县|