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

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

Python:如何在不使用更多 RAM 的情況下將 np 數(shù)組/列表拆分為兩個(gè)數(shù)組/列表

Python:如何在不使用更多 RAM 的情況下將 np 數(shù)組/列表拆分為兩個(gè)數(shù)組/列表

ibeautiful 2021-12-29 19:55:42
我在拆分 np.js 時(shí)遇到問題。數(shù)組和列表一分為二。這是我的代碼:X = []y = []for seq, target in ConvertedData:    X.append(seq)    y.append(target)y = np.vstack(y)train_x = np.array(X)[:int(len(X) * 0.9)]train_y = y[:int(len(X) * 0.9)]validation_x = np.array(X)[int(len(X) * 0.9):]validation_y = y[int(len(X) * 0.9):]這是為神經(jīng)網(wǎng)絡(luò)準(zhǔn)備數(shù)據(jù)的代碼示例。效果很好,但會(huì)產(chǎn)生“內(nèi)存不足錯(cuò)誤”(我有 32GB 的內(nèi)存):Traceback (most recent call last):  File "D:/Projects/....Here is a file location.../FileName.py", line 120, in <module>    validation_x = np.array(X)[int(len(X) * 0.9):]MemoryError它似乎保留在內(nèi)存列表X和 np.array y 中,并將其復(fù)制為單獨(dú)的變量train_x, train_y, validation_x, validation_y。你知道如何處理嗎?X的形狀:(324000, 256, 24)y的形狀:(324000,10)train_x 的形狀:(291600, 256, 24)train_y 的形狀:(291600,10)驗(yàn)證_x的形狀:(32400, 256, 24)驗(yàn)證形狀_y:(32400,10)
查看完整描述

2 回答

?
DIEA

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

X = []

y = []

for seq, target in ConvertedData:

    X.append(seq)

    y.append(target)

X是一個(gè)列表seq。我假設(shè)這些是數(shù)組。X只是有指向那些的指針,


y = np.vstack(y)


train_x = np.array(X)[:int(len(X) * 0.9)]

從 制作一個(gè)數(shù)組X,然后是該數(shù)組的一個(gè)切片。完整的np.array(X)仍然存在于內(nèi)存中


train_y = y[:int(len(X) * 0.9)]

validation_x = np.array(X)[int(len(X) * 0.9):]

從 制作另一個(gè)數(shù)組X。 train_x和validation_x是單獨(dú)數(shù)組的視圖。


validation_y = y[int(len(X) * 0.9):]

正在做


X1 = np.array(X)

train_x = X1[:...]

validation_x = X1[...:]

將消除這種重復(fù)。兩者觀點(diǎn)相同X1。


另一種方法是先對(duì)列表進(jìn)行切片:


train_x = np.array(X[:...])

validation_x = np.array(X[...:])

我的猜測(cè)是內(nèi)存使用,至少與在數(shù)組中會(huì)相似。


del X創(chuàng)建之后X1可能也有幫助,允許X對(duì)其引用的數(shù)組進(jìn)行垃圾收集。


但請(qǐng)注意,一旦您在代碼中的某一點(diǎn)開始遇到內(nèi)存錯(cuò)誤,像這樣的技巧可能會(huì)推遲它。計(jì)算很容易最終制作出大小相當(dāng)?shù)母北净蚺R時(shí)緩沖區(qū)。


您的拆分使用 2 個(gè)切片;這會(huì)產(chǎn)生不會(huì)增加原始內(nèi)存使用量的視圖。但是,如果您進(jìn)行混洗拆分,則訓(xùn)練和驗(yàn)證部分將是副本,并且一起占用與源一樣多的內(nèi)存。


查看完整回答
反對(duì) 回復(fù) 2021-12-29
?
慕尼黑8549860

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

如內(nèi)存錯(cuò)誤的回答中所述。您可以像在這個(gè)問題中一樣將每個(gè)訓(xùn)練數(shù)據(jù)數(shù)組腌制到文件中。


您可以通過train_test_split進(jìn)行拆分,這可能是執(zhí)行拆分的更有效方式。


import numpy as np

from sklearn.model_selection import train_test_split

X, y = np.arange(10).reshape((5, 2)), range(5)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)


查看完整回答
反對(duì) 回復(fù) 2021-12-29
  • 2 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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