मेरे पास खस्ता प्रारूप में चित्र हैं, मैंने इंटरनेट से डेटा डाउनलोड किया है (https://github.com/ichatnun/spatiospectral-densenet-rice-classification/blob/master/x.npy)। डेटा का उदाहरण (1, 34, 23, 100), यहां 1 छवि संख्या है, 34x23 पिक्सेल मान है, 100 चैनल है।

मैं मशीन लर्निंग मॉडल के प्रशिक्षण के लिए डेटा लोड करना चाहता था, मैंने अन्य स्रोतों को देखा, उनका डेटा केवल 34x23 प्रारूप में है

#my code till now
dataset1 = np.load('x.npy', encoding='bytes')
print("shape of dataset1")
print(dataset1.shape, dataset1.dtype)
#data shape
shape of dataset1
(3, 50, 170, 110) float64

#my code
data1 = dataset1[:, :, :, -1]
data1.shape

अगर मैं एसवीएम का उपयोग करता हूं,

from sklearn.svm import SVC
clf = SVC(gamma='auto')
clf.fit(datasset1, y) 

मुझे त्रुटि मिली

ValueError: Found array with dim 4. Estimator expected <= 2

मैं डेटा को डेटाफ़्रेम या ट्रेन और विभाजन के लिए किसी अन्य प्रारूप के रूप में लोड करना चाहता था, लेकिन मैं पहले मान को निकालने में सक्षम नहीं हूं।

नमूना डेटा

print(dataset1)

[[[[0.17807601 0.15946769 0.20311266 ... 0.48133529 0.48742528
0.47095974]
[0.18518101 0.18394045 0.19093267 ... 0.45889252 0.44987031
0.46464419]
[0.19600767 0.18845156 0.18506823 ... 0.47558362 0.47738807
0.45821586]
... 

मेरा अपेक्षित आउटपुट यह है कि वर्गीकरण के लिए डेटा को svm में कैसे पास किया जाए

2
SUSHMA KUMARI 3 अगस्त 2019, 12:52
readme.md पर एक नज़र डालें। इसका मतलब है कि फ़ाइल 3-आयामी 50x170x110 टेंसर द्वारा रचित है उदा। आकार वाला डेटा: 3x50x170x110.
 – 
Alexandre B.
3 अगस्त 2019, 13:06

2 जवाब

अपने डेटा स्रोत पर ध्यान दें, आपके x.npy में इमेज नहीं हैं

x.npy में संसाधित चावल डेटासेट के उदाहरण डेटाक्यूब होते हैं जिनका उपयोग प्रशिक्षण/परीक्षण के लिए किया जा सकता है। प्रत्येक डेटाक्यूब एक त्रि-आयामी 50x170x110 टेंसर है: दो स्थानिक आयाम और एक वर्णक्रमीय आयाम।

0
kederrac 3 अगस्त 2019, 13:22
मुझे यहां 3 क्यों मिल रहे हैं? डेटासेट 1 का आकार (3, 50, 170, 110), दुभाषिया 3 अलग-अलग डेटा कैसे लेगा
 – 
SUSHMA KUMARI
3 अगस्त 2019, 13:31
अगर आप यहां देखें: github.com/ichatnun/spatiospectral -डेंसनेट-चावल-वर्गीकरण/… आप पाएंगे: num_training = x_training.shape[0] N_spatial = x_training.shape[1:3] N_bands = x_training.shape[3]
 – 
kederrac
3 अगस्त 2019, 13:34
धन्यवाद, तो यहाँ N_spatial में, हमें छवि की पंक्तियाँ और स्तंभ मिल रहे हैं, क्या मैं सही हूँ?
 – 
SUSHMA KUMARI
3 अगस्त 2019, 13:40
आपके पास इमेज नहीं हैं... आपके पास टेंसर हैं, "प्रोसेस्ड राइस डेटासेट"
 – 
kederrac
3 अगस्त 2019, 14:54
ठीक है, लेकिन मुझे त्रुटि मिल रही है, इसे svm को पास करते समय, मैंने अपना प्रश्न अपडेट कर लिया है, कृपया सुझाव दें
 – 
SUSHMA KUMARI
3 अगस्त 2019, 15:16

मुद्दा यह है कि एसवीएम केवल 2 डी सरणी स्वीकार करता है, आपका डेटा प्रारूप में है (नमूना, पंक्तियों, कॉलम, चैनल की संख्या)

यह कोशिश करो, यह मेरे लिए काम करता है

dataset1 = np.load('x.npy', encoding='bytes')
dataset2 = np.load('labels.npy', encoding='bytes')

nsamples, nx, ny, nz = dataset1.shape
X = dataset1.reshape((nsamples,nx*ny*nz))

y = numpy.argmax(dataset2, axis=1)

from sklearn import svm
clf = svm.SVC(kernel='linear', C = 1.0)
clf.fit(X, y) 

#repalce X with your test data
print(clf.predict(X))
0
Gautam Shahi 3 अगस्त 2019, 22:37