मुझे एक एनपी विभाजित करने में समस्या है। दो में सरणी और सूची। यहाँ मेरा कोड है:

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):]

यह कोड का एक नमूना है जो तंत्रिका नेटवर्क के लिए डेटा तैयार करता है। बहुत अच्छा काम करता है, लेकिन "मेमोरी एरर से बाहर" उत्पन्न करता है (मेरे पास बोर्ड पर 32GB है):

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

ऐसा लगता है कि यह स्मृति सूची X और np.array y में रखता है और इसे अलग चर train_x, train_y, सत्यापन_x, सत्यापन_y के रूप में डुप्लिकेट करता है। क्या आप जानते हैं कि इससे कैसे निपटा जाए?

एक्स का आकार: (324000, 256, 24)

वाई का आकार: (324000,10)

ट्रेन का आकार_x: (291600, 256, 24)

ट्रेन का आकार_y:(२९१६००,१०)

सत्यापन का आकार_x:(32400, 256, 24)

सत्यापन का आकार_y:(32400,10)

1
ketzul 5 अप्रैल 2019, 08:46

1 उत्तर

जैसा कि स्मृति त्रुटियों का उत्तर में वर्णित है। आप इस प्रश्न को पसंद करें।

आप train_test_split से विभाजित कर सकते हैं, यह अधिक हो सकता है विभाजन करने का प्रभावी तरीका।

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)
0
ElConrado 5 अप्रैल 2019, 06:05