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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

創(chuàng)建具有多個(gè)輸入的 TimeseriesGenerator

創(chuàng)建具有多個(gè)輸入的 TimeseriesGenerator

LEATH 2022-10-06 20:02:05
我正在嘗試根據(jù)約 4000 支股票的每日基本面和價(jià)格數(shù)據(jù)訓(xùn)練 LSTM 模型,由于內(nèi)存限制,在轉(zhuǎn)換為模型的序列后,我無法將所有內(nèi)容都保存在內(nèi)存中。這導(dǎo)致我使用生成器來代替 Keras / Tensorflow 的TimeseriesGenerator。問題是,如果我嘗試在所有堆疊的數(shù)據(jù)上使用生成器,它將創(chuàng)建混合股票序列,請(qǐng)參見下面的示例,序列為 5,這里序列 3將包括“股票 1 ”的最后 4 個(gè)觀察值和第一個(gè)觀察“股票2 ”相反,我想要的是類似于這個(gè):稍微類似的問題:Merge or append multiple Keras TimeseriesGenerator objects into one我探索了像這樣組合生成器的選項(xiàng) SO 建議:我如何組合兩個(gè) keras 生成器函數(shù),但是在大約 4000 個(gè)生成器的情況下這不是想法。我希望我的問題是有道理的。
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

所以我最終要做的是手動(dòng)進(jìn)行所有預(yù)處理并為每個(gè)包含預(yù)處理序列的庫(kù)存保存一個(gè) .npy 文件,然后使用手動(dòng)創(chuàng)建的生成器進(jìn)行批量處理:


class seq_generator():


  def __init__(self, list_of_filepaths):

    self.usedDict = dict()

    for path in list_of_filepaths:

      self.usedDict[path] = []


  def generate(self):

    while True: 

      path = np.random.choice(list(self.usedDict.keys()))

      stock_array = np.load(path) 

      random_sequence = np.random.randint(stock_array.shape[0])

      if random_sequence not in self.usedDict[path]:

        self.usedDict[path].append(random_sequence)

        yield stock_array[random_sequence, :, :]


train_generator = seq_generator(list_of_filepaths)


train_dataset = tf.data.Dataset.from_generator(seq_generator.generate(),

                                               output_types=(tf.float32, tf.float32), 

                                               output_shapes=(n_timesteps, n_features)) 


train_dataset = train_dataset.batch(batch_size)

Wherelist_of_filepaths只是預(yù)處理 .npy 數(shù)據(jù)的路徑列表。

這將:

  • 加載隨機(jī)股票的預(yù)處理 .npy 數(shù)據(jù)

  • 隨機(jī)選擇一個(gè)序列

  • 檢查序列的索引是否已經(jīng)被使用usedDict

  • 如果不:

    • 附加該序列的索引usedDict以跟蹤不向模型提供兩次相同的數(shù)據(jù)

    • 產(chǎn)生序列

這意味著生成器將在每次“調(diào)用”時(shí)從隨機(jī)股票中提供單個(gè)唯一序列,使我能夠使用來自 Tensorflows數(shù)據(jù)集類型的.from_generator()和方法。.batch()


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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