第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Keras 模型:RL 代理的輸入形狀尺寸錯誤

Keras 模型:RL 代理的輸入形狀尺寸錯誤

桃花長相依 2022-09-06 16:40:18
我的目標是開發(fā)一個DQN代理,它將根據(jù)特定的策略/策略選擇其操作。我以前使用OpenAi健身房環(huán)境,但現(xiàn)在我想創(chuàng)建自己的RL環(huán)境。在此階段,代理應(yīng)選擇隨機操作或根據(jù)深度神經(jīng)網(wǎng)絡(luò)(在DQN類中定義)給出的預(yù)測選擇其操作。到目前為止,我已經(jīng)設(shè)置了神經(jīng)網(wǎng)絡(luò)模型和我的環(huán)境。NN 應(yīng)接收狀態(tài)作為其輸入。這些狀態(tài)表示 11 個可能的標量值,范圍從 9.5 到 10.5(9.5、9.6、...、10.4、10.5)。由于我們正在處理RL,因此代理在訓(xùn)練過程中生成其數(shù)據(jù)。輸出應(yīng)為 0 和 1,對應(yīng)于建議的操作。現(xiàn)在,我想給我的代理一個標量值:例如,一個樣本狀態(tài)x = 10,讓他決定要執(zhí)行的操作(調(diào)用Agent.select_action()),我遇到了與輸入形狀/輸入維度相關(guān)的問題。代碼如下:1. DQN 類:class DQN():    def __init__(self, state_size, action_size, lr):        self.state_size = state_size        self.action_size = action_size        self.lr = lr        self.model = Sequential()        self.model.add(Dense(128, input_dim=self.state_size, activation='relu'))        self.model.add(Dense(128, activation='relu'))        self.model.add(Dense(self.action_size, activation='linear'))        self.model.compile(optimizer=Adam(lr=self.lr), loss='mse')        self.model.summary()    def model_info(self):        model_description = '\n\n---Model_INFO Summary: The model was passed {} state sizes,\            \n {} action sizes and a learning rate of {} -----'\                            .format(self.state_size, self.action_size, self.lr)        return model_description    def predict(self, state):        return self.model.predict(state)    def train(self, state, q_values):        self.state = state        self.q_values = q_values        return self.model.fit(state, q_values, verbose=0)    def load_weights(self, path):        self.model.load_weights(path)    def save_weights(self, path):        self.model.save_weights(path)2. 代理類:NUM_EPISODES = 100MAX_STEPS_PER_EPISODE = 100EPSILON = 0.5 EPSILON_DECAY_RATE = 0.001EPSILON_MIN = 0.01EPSILON_MAX = 1DISCOUNT_FACTOR = 0.99REPLAY_MEMORY_SIZE = 50000BATCH_SIZE = 50TRAIN_START = 100ACTION_SPACE = [0, 1]STATE_SIZE = 11 LEARNING_RATE = 0.01
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經(jīng)驗 獲得超14個贊

這里有幾個問題。首先,您所說的實際上是一個狀態(tài)空間,即您的代理可以處于的所有可能狀態(tài)的集合。狀態(tài)大小實際上是 1,因為只有一個參數(shù)要作為狀態(tài)傳遞。state_size

在此處定義輸入圖層時:

self.model.add(Dense(128, input_dim=self.state_size, activation='relu'))

您說輸入維度將等于 11,但當(dāng)您調(diào)用預(yù)測時,您將它傳遞給 1 個數(shù)字 (10)。

因此,您要么需要修改以僅接收一個數(shù)字,要么可以定義狀態(tài)向量,例如,每個數(shù)字對應(yīng)于一個可能的狀態(tài)(從9.5到10.5)。因此,當(dāng)狀態(tài)為 9.5 時,您的狀態(tài)向量為 9.5,依此類推。input_dimstate = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])[1, 0, 0, ...0]

第二個問題是,當(dāng)你定義你的狀態(tài)時,你應(yīng)該把方括號

state = np.array([10])

否則數(shù)組的形狀是(),我相信你已經(jīng)發(fā)現(xiàn)了。

希望它有幫助!如果您需要任何澄清,請告訴我。


查看完整回答
反對 回復(fù) 2022-09-06
  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號