-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ValueError #13
Comments
Some tips may be helpful. First, make sure the Conda env list and code are correct. Second, printout the format of variables to make sure they are correct. |
I have another questions. what is the use of ‘best_weights_RES_path_ss4’??? I want to use the framework to other database. How do i train the framework? Should i also use the ‘best_weights_RES_path_ss4’? |
The‘best_weights_RES_path_ss4’ is the PATH to save the best-performed model
during training based on intermedia models' performance on the validation
set. If you want to train on your own datasets, you need to sample data and
preprocess them first. As to the model training, my suggestion is to adopt
the latest version of TF or Pytorch since it's trivial to reimplement the
SSRNs and other models using the new DL frameworks.
…On Sat, 29 Jun 2019 at 03:39, PcHyUU ***@***.***> wrote:
I have another questions. what is the use of
‘best_weights_RES_path_ss4’??? I want to use the framework to other
database. How do i train the framework? Should i also use the
‘best_weights_RES_path_ss4’?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#13?email_source=notifications&email_token=AD2DHTV3NHDWWSE74IKSIRTP44GSDA5CNFSM4HYSPYEKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODY3TXZY#issuecomment-506936295>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AD2DHTWOL7LVHEQAHHF45J3P44GSDANCNFSM4HYSPYEA>
.
|
How do you preprocess the data? Does the data of 77200 belong to the same label? If not, how does the final output be 1124 predict other 48-pixel points? |
Normalization steps involve substrating means and divide by variances. Only
labelled HSI samples are used for training and validation. You can check
the Figure 1 and Section II of the SSRN paper for more details.
…On Thu, 4 Jul 2019 at 02:59, PcHyUU ***@***.***> wrote:
How do you preprocess the data? Does the data of 7*7*200 belong to the
same label? If not, how does the final output be 1*1*24 predict other
48-pixel points?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#13?email_source=notifications&email_token=AD2DHTRSG2HWXAGKZZMDVX3P5WNWDA5CNFSM4HYSPYEKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZGQOGY#issuecomment-508364571>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AD2DHTSBMVLKWGSPF66MHX3P5WNWDANCNFSM4HYSPYEA>
.
|
How to change the input data 77200 to 99200? |
Change this line:
https://github.com/zilongzhong/SSRN/blob/f6ee47e10273630f8a5981df2d757bbea9beb950/SSRN_IN.py#L80
And change other settings accordingly, For example, pad_length should be
set to 9 in the function indexToAssignment(index_, Row, Col, pad_length)
…On Thu, 18 Jul 2019 at 04:38, PcHyUU ***@***.***> wrote:
How to change the input data 7*7*200 to 9*9*200?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#13?email_source=notifications&email_token=AD2DHTWRM2FU5L34W2INC5DQAATWZA5CNFSM4HYSPYEKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2HYIVQ#issuecomment-512722006>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AD2DHTWP5LVOBSBV5NQYHQ3QAATWZANCNFSM4HYSPYEA>
.
|
y[index] = np.array([255, 0, 0]) / 255. |
This line is used to make sure RGB values of all feature map locations are
float numbers belong to [0,1], just for visualization purposes.
…On Mon, 22 Jul 2019 at 22:17, PcHyUU ***@***.***> wrote:
y[index] = np.array([255, 0, 0]) / 255.
What does this line of code mean? Do you want to enumerate 20 classes 20
times? How to choose the parameters?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#13?email_source=notifications&email_token=AD2DHTSGLERYMMZAVITWMXTQAZS3VA5CNFSM4HYSPYEKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2RWS6I#issuecomment-514025849>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AD2DHTXPPXTSCBAIA4HNHDLQAZS3VANCNFSM4HYSPYEA>
.
|
Why do you want to use the average pool layer instead of max pool layer? Average pooling reduces the discrimination , while max pool can keep its discrimination of feature much as possible.Some papers show the max pooling is more useful than average pool layer. |
Max pooling also reduces the discrimination of input feature maps. The
intuition of using AvgPool is that input spatial size 7x7 is relatively
small and therefore each pixel is relatively more important than that of
ImageNet images, which has input spatial size of 224x224.
…On Thu, 1 Aug 2019 at 10:05, PcHyUU ***@***.***> wrote:
Why do you want to use the average pool layer instead of max pool layer?
Average pooling reduces the discrimination , while max pool can keep its
discrimination of feature much as possible.Some papers show the max pooling
is more useful than average pool layer.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#13?email_source=notifications&email_token=AD2DHTVAMTA3PXMQXPAHUOTQCLUSHA5CNFSM4HYSPYEKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3KWSMY#issuecomment-517302579>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AD2DHTTH2BAQU6BD2ATKHWTQCLUSHANCNFSM4HYSPYEA>
.
|
As you said in the paper, the classification results increase with the size of the input cube. Why do you choose 7x7 instead of the larger 9x9 or 11x11? |
Both more training samples and larger spatial sizes can boost HSI classification performance. Therefore, this paper focuses on model design give a fair comparison such that training samples and input spatial sizes are fixed.
Best regards,
Zilong
… On Sep 28, 2019, at 1:19 PM, PcHyUU ***@***.***> wrote:
As you said in the paper, the classification results increase with the size of the input cube. Why do you choose 7x7 instead of the larger 9x9 or 11x11?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Hello, how can I get the RGB values for each category? I applied this framework to a new dataset, and I don't know the category that the color represents. I want to get the RGB values for each category. |
As far as I know, this is a tensor slicing problem, which should be solved
by indicating which part of the tensor you want to show. Some examples are
as follows:
https://machinelearningmastery.com/index-slice-reshape-numpy-arrays-machine-learning-python/
…On Tue, 29 Oct 2019 at 18:30, PcHyUU ***@***.***> wrote:
Hello, how can I get the RGB values for each category? I applied this
framework to a new dataset, and I don't know the category that the color
represents. I want to get the RGB values for each category.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#13?email_source=notifications&email_token=AD2DHTWH6YATSM5C33FZFRDQRAGEDA5CNFSM4HYSPYEKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECP7V3Q#issuecomment-547355374>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AD2DHTQZOL5WUJRGIJIZVA3QRAGEDANCNFSM4HYSPYEA>
.
|
Can you give me a copy of the SVM code mentioned in the article? The SVM program that I reproduced does not achieve your effect, and I can't draw a similar rendering with your classification. |
# -*- coding: utf-8 -*-
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio
from keras.models import Sequential, Model
from keras.layers import Convolution2D, MaxPooling2D, Conv3D, MaxPooling3D,
ZeroPadding3D
from keras.layers import Activation, Dropout, Flatten, Dense,
BatchNormalization, Input
from keras.utils.np_utils import to_categorical
from sklearn.decomposition import PCA
from keras.optimizers import Adam, SGD, Adadelta, RMSprop, Nadam
import keras.callbacks as kcallbacks
from keras.regularizers import l2
import time
import zeroPadding
import normalization
import doPCA
import collections
from sklearn import metrics, preprocessing
import modelStatsRecord
import averageAccuracy
import sampleFixNum
from sklearn.svm import SVC
# def set_zeros(matrix, list):
# small_size_class = len(list)
# for i in list:
# matrix[matrix == i] = 0
# matrix[matrix == 2] = 1
# matrix[matrix == 3] = 2
# matrix[matrix == 5] = 3
# matrix[matrix == 6] = 4
# matrix[matrix == 8] = 5
# matrix[matrix == 10] = 6
# matrix[matrix == 11] = 7
# matrix[matrix == 12] = 8
# matrix[matrix == 14] = 9
# return matrix
def indexToAssignment(index_, Row, Col, pad_length):
new_assign = {}
for counter, value in enumerate(index_):
assign_0 = value // Col + pad_length
assign_1 = value % Col + pad_length
new_assign[counter] = [assign_0, assign_1]
return new_assign
def assignmentToIndex( assign_0, assign_1, Row, Col):
new_index = assign_0 * Col + assign_1
return new_index
def selectNeighboringPatch(matrix, pos_row, pos_col, ex_len):
selected_rows = matrix[range(pos_row-ex_len,pos_row+ex_len+1), :]
selected_patch = selected_rows[:, range(pos_col-ex_len, pos_col+ex_len+1)]
return selected_patch
def sampling(proptionVal, groundTruth): #divide dataset into train and test
datasets
labels_loc = {}
train = {}
test = {}
m = max(groundTruth)
for i in range(m):
indices = [j for j, x in enumerate(groundTruth.ravel().tolist()) if x == i +
1]
np.random.shuffle(indices)
labels_loc[i] = indices
nb_val = int(proptionVal * len(indices))
train[i] = indices[:-nb_val]
test[i] = indices[-nb_val:]
# whole_indices = []
train_indices = []
test_indices = []
for i in range(m):
# whole_indices += labels_loc[i]
train_indices += train[i]
test_indices += test[i]
np.random.shuffle(train_indices)
np.random.shuffle(test_indices)
return train_indices, test_indices
def SVM_model():
svm_model = SVC()
return svm_model
mat_data = sio.loadmat('/home/zilong/DL-on-HSI-Classification/Datasets/Indian
Pines/Indian_pines_corrected.mat')
data_IN = mat_data['indian_pines_corrected']
mat_gt = sio.loadmat('/home/zilong/DL-on-HSI-Classification/Datasets/Indian
Pines/Indian_pines_gt.mat')
gt_IN = mat_gt['indian_pines_gt']
print (data_IN.shape)
#new_gt_IN = set_zeros(gt_IN, [1,4,7,9,13,15,16])
new_gt_IN = gt_IN
batch_size = 16
nb_classes = 16
nb_epoch = 300 #400
img_rows, img_cols = 7, 7 #27, 27
patience = 300
INPUT_DIMENSION_CONV = 200
INPUT_DIMENSION = 200
TOTAL_SIZE = 10249
VAL_SIZE = 1025
TRAIN_SIZE = 2055
TEST_SIZE = TOTAL_SIZE - TRAIN_SIZE
img_channels = 200
VALIDATION_SPLIT = 0.80
PATCH_LENGTH = 3 #Patch_size (13*2+1)*(13*2+1)
data = data_IN.reshape(np.prod(data_IN.shape[:2]),np.prod(data_IN.shape[2
:]))
gt = new_gt_IN.reshape(np.prod(new_gt_IN.shape[:2]),)
data = preprocessing.scale(data)
# scaler = preprocessing.MaxAbsScaler()
# data = scaler.fit_transform(data)
data_ = data.reshape(data_IN.shape[0], data_IN.shape[1],data_IN.shape[2])
whole_pca32 = data_
padded_pca32 = zeroPadding.zeroPadding_3D(whole_pca32, PATCH_LENGTH)
data_trans_SVM = data.transpose()
data_pca1_SVM = doPCA.dimension_PCA(data_trans_SVM, data_, 1)
data_pca1_SVM = data_pca1_SVM.reshape(data_pca1_SVM.shape[0],
data_pca1_SVM.shape[1])
padded_pca1_SVM = zeroPadding.zeroPadding_2D(data_pca1_SVM, PATCH_LENGTH)
ITER = 10
CATEGORY = 16
train_data = np.zeros((TRAIN_SIZE, 2*PATCH_LENGTH + 1, 2*PATCH_LENGTH + 1,
INPUT_DIMENSION_CONV))
test_data = np.zeros((TEST_SIZE, 2*PATCH_LENGTH + 1, 2*PATCH_LENGTH + 1,
INPUT_DIMENSION_CONV))
x_train = train_data.reshape(train_data.shape[0], train_data.shape[1],
train_data.shape[2],INPUT_DIMENSION_CONV)
x_test_all = test_data.reshape(test_data.shape[0], test_data.shape[1],
test_data.shape[2], INPUT_DIMENSION_CONV)
KAPPA_SVM = []
OA_SVM = []
AA_SVM = []
TRAINING_TIME_SVM = []
TESTING_TIME_SVM = []
ELEMENT_ACC_SVM = np.zeros((ITER, CATEGORY))
#seeds = [1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229]
seeds = [1334, 1434, 1534, 1634, 1734, 1834, 1934, 2034, 2134, 2234 ]
for index_iter in xrange(ITER):
print("# %d Iteration" % (index_iter + 1))
#millis = int(round(time.time()) * 1000) % 4294967295
np.random.seed(seeds[index_iter])
train_indices, test_indices = sampling(VALIDATION_SPLIT, gt)
#train_indices, test_indices = sampleFixNum.samplingDiffFixedNum([30, 150,
150, 100, 150, 150, 20, 150, 15, 150, 150, 150, 150, 150, 50, 50], gt) #1765
#train_indices, test_indices = sampleFixNum.samplingDiffFixedNum([30, 270,
65, 50, 100, 100, 20, 150, 15, 150, 150, 150, 100, 150, 50, 50], gt) #1600
#train_indices, test_indices = sampleFixNum.samplingDiffFixedNum([30, 270,
65, 50, 100, 100, 20, 150, 15, 150, 150, 150, 100, 150, 50, 50], gt) #800
#train_indices, test_indices = sampleFixNum.samplingFixedNum(200, gt)
y_train_raw = gt[train_indices] - 1
y_train = to_categorical(np.asarray(y_train_raw))
y_test_raw = gt[test_indices] - 1
y_test = to_categorical(np.asarray(y_test_raw))
#first principal component training data
train_assign = indexToAssignment(train_indices, whole_pca32.shape[0],
whole_pca32.shape[1], PATCH_LENGTH)
#train_data = np.zeros((len(train_assign), 2*PATCH_LENGTH + 1,
2*PATCH_LENGTH + 1, INPUT_DIMENSION_CONV))
for i in range(len(train_assign)):
train_data[i] = selectNeighboringPatch(padded_pca32,train_assign[i][0
],train_assign[i][1],PATCH_LENGTH)
#first principal component testing data
test_assign = indexToAssignment(test_indices, whole_pca32.shape[0],
whole_pca32.shape[1], PATCH_LENGTH)
#test_data = np.zeros((len(test_assign), 2*PATCH_LENGTH + 1, 2*PATCH_LENGTH
+ 1, INPUT_DIMENSION_CONV))
for i in range(len(test_assign)):
test_data[i] = selectNeighboringPatch(padded_pca32,test_assign[i][0
],test_assign[i][1],PATCH_LENGTH)
#x_train = train_data.reshape(train_data.shape[0], train_data.shape[1],
train_data.shape[2], INPUT_DIMENSION_CONV)
#x_test = test_data.reshape(test_data.shape[0], test_data.shape[1],
test_data.shape[2], INPUT_DIMENSION_CONV)
x_val = x_test_all[-VAL_SIZE:]
y_val = y_test[-VAL_SIZE:]
x_test = x_test_all[:-VAL_SIZE]
y_test= y_test[:-VAL_SIZE]
#print ("Validation data:")
#collections.Counter(y_test_raw[-VAL_SIZE:])
#print ("Testing data:")
#collections.Counter(y_test_raw[:-VAL_SIZE])
train_assign_SVM = indexToAssignment(train_indices, data_pca1_SVM.shape[0],
data_pca1_SVM.shape[1], PATCH_LENGTH)
train_data_SVM = np.zeros((len(train_assign_SVM), 2 * PATCH_LENGTH + 1, 2 *
PATCH_LENGTH + 1))
for i in range(len(train_assign_SVM)):
train_data_SVM[i] = selectNeighboringPatch(padded_pca1_SVM,
train_assign_SVM[i][0], train_assign_SVM[i][1],
PATCH_LENGTH)
# first principal component testing data
test_assign_SVM = indexToAssignment(test_indices, data_pca1_SVM.shape[0],
data_pca1_SVM.shape[1], PATCH_LENGTH)
test_data_SVM = np.zeros((len(test_assign_SVM), 2 * PATCH_LENGTH + 1, 2 *
PATCH_LENGTH + 1))
for i in range(len(test_assign_SVM)):
test_data_SVM[i] = selectNeighboringPatch(padded_pca1_SVM,
test_assign_SVM[i][0], test_assign_SVM[i][1],
PATCH_LENGTH)
x_train_SVM_2D = train_data_SVM.reshape(train_data_SVM.shape[0],
np.prod(train_data_SVM.shape[1] * train_data_SVM.shape[2]))
x_train_SVM = np.concatenate((data[train_indices, :], x_train_SVM_2D), axis=
1)
x_test_SVM_2D = test_data_SVM.reshape(test_data_SVM.shape[0],
np.prod(test_data_SVM.shape[1] * test_data_SVM.shape[2])).astype('float32')
x_test_SVM = np.concatenate((data[test_indices, :], x_test_SVM_2D), axis=1)
x_val_SVM = x_test_SVM[-VAL_SIZE:]
x_test_SVM = x_test_SVM[:-VAL_SIZE]
model = SVM_model()
x_train_SVM = x_train_SVM.reshape((x_train_SVM.shape[0],
np.prod(x_train_SVM.shape[1:])))
x_test_SVM = x_test_SVM.reshape((x_test_SVM.shape[0],
np.prod(x_test_SVM.shape[1:])))
tic = time.clock()
history_SVM = model.fit(x_train_SVM, y_train_raw)
toc = time.clock()
tic1 = time.clock()
pred_test_SVM = model.predict(x_test_SVM)
toc1 = time.clock()
print('3D SVM Training Time: ', toc - tic)
print('3D SVM Test time:', toc1 - tic1)
print('3D SVM Test accuracy:', pred_test_SVM)
collections.Counter(pred_test_SVM)
overall_acc_SVM = metrics.accuracy_score(pred_test_SVM, y_test_raw[:-
VAL_SIZE])
confusion_matrix_SVM = metrics.confusion_matrix(pred_test_SVM, y_test_raw[:-
VAL_SIZE])
each_acc_SVM, average_acc_SVM =
averageAccuracy.AA_andEachClassAccuracy(confusion_matrix_SVM)
kappa = metrics.cohen_kappa_score(pred_test_SVM, y_test_raw[:-VAL_SIZE])
KAPPA_SVM.append(kappa)
OA_SVM.append(overall_acc_SVM)
AA_SVM.append(average_acc_SVM)
TRAINING_TIME_SVM.append(toc - tic)
TESTING_TIME_SVM.append(toc1 - tic1)
ELEMENT_ACC_SVM[index_iter, :] = each_acc_SVM
print("Overall Accuracy:", overall_acc_SVM)
print("Confusion matrix:", confusion_matrix_SVM)
print("Average Accuracy:", average_acc_SVM)
print("KAPPA:", kappa)
print("Each Class Accuracies are listed as follows:")
for idx, acc in enumerate(each_acc_SVM):
print("Class %d : %.3e" % (idx + 1, acc))
print ("3D SVM training finished.")
modelStatsRecord.outputStats_SVM(KAPPA_SVM, OA_SVM, AA_SVM, ELEMENT_ACC_SVM,
TRAINING_TIME_SVM,TESTING_TIME_SVM,
CATEGORY,'/home/zilong/Desktop/SSRN_train_IN/record_3D_SVM_5.txt',
'/home/zilong/Desktop/SSRN_train_IN/element_acc_3D_SVM_5.txt')
…On Tue, 29 Oct 2019 at 22:50, PcHyUU ***@***.***> wrote:
Can you give me a copy of the SVM code mentioned in the article? The SVM
program that I reproduced does not achieve your effect, and I can't draw a
similar rendering with your classification.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#13?email_source=notifications&email_token=AD2DHTWSOGZNDRUVDMN7WVDQRBESXA5CNFSM4HYSPYEKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECQY6ZY#issuecomment-547458919>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AD2DHTUWXU73YD3QKLIFPPDQRBESXANCNFSM4HYSPYEA>
.
|
svm.txt |
Or in other words, I got OA, AA, Kappa according to your svm program, but I can't get the final classification map by my own program. Can you provide a program for the SVM to generate a classification map ? Thanks a lot! |
The final output classification map should be reshaped to a matrix with size of height * width * channel. For RGB image, channel equals to 3. Make sure the output can reshape back to have the same height and width of raw input.
Best regards,
Zilong
… On Nov 4, 2019, at 9:31 AM, PcHyUU ***@***.***> wrote:
Please answer my question, thank you very much.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Can you tell me the RGB of each type of KSC data set in your paper?
…---Original---
From: "Zilong Zhong"<[email protected]>
Date: Tue, Nov 5, 2019 00:27 AM
To: "zilongzhong/SSRN"<[email protected]>;
Cc: "Author"<[email protected]>;"PcHyUU"<[email protected]>;
Subject: Re: [zilongzhong/SSRN] ValueError (#13)
The final output classification map should be reshaped to a matrix with size of height * width * channel. For RGB image, channel equals to 3. Make sure the output can reshape back to have the same height and width of raw input.
Best regards,
Zilong
> On Nov 4, 2019, at 9:31 AM, PcHyUU <[email protected]> wrote:
>
>
> Please answer my question, thank you very much.
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub, or unsubscribe.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
It follows the same setting as Indiana Pines except with less number of classes.
Best regards,
Zilong
… On Nov 20, 2019, at 1:25 AM, PcHyUU ***@***.***> wrote:
Can you tell me the RGB of each type of KSC data set in your paper?
---Original---
From: "Zilong ***@***.***>
Date: Tue, Nov 5, 2019 00:27 AM
To: ***@***.***>;
Cc: ***@***.******@***.***>;
Subject: Re: [zilongzhong/SSRN] ValueError (#13)
The final output classification map should be reshaped to a matrix with size of height * width * channel. For RGB image, channel equals to 3. Make sure the output can reshape back to have the same height and width of raw input.
Best regards,
Zilong
> On Nov 4, 2019, at 9:31 AM, PcHyUU ***@***.***> wrote:
>
>
> Please answer my question, thank you very much.
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub, or unsubscribe.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Excuse me, how do I view the output of the intermediate layer during the convolution process? |
A large number of unknown pixels in KSC seem to be used to train the model, because the unknown pixels have been assigned certain labels after classification. Please explain how you preprocess and split the data set. |
Thank you for sharing the code.
I have tested the code with IndianPines dataset. When I run the IN_classification_maps,I met ValueError: could not convert string to float: 'normal'.How to solve this problem?
The text was updated successfully, but these errors were encountered: