Во время обучения модели получалось сообщение об ошибке «не удалось преобразовать строку в плавающее» - PullRequest
0 голосов
/ 14 апреля 2019

Я пытаюсь обучить модель с помощью изображений, которые хранятся в некоторых каталогах. Я тренирую CNN, который будет классифицировать три типа рака кожи.Я сделал три папки для трех классов и изменил размеры и восстановил изображения в этой папке по классам.Затем я читаю изображения из этой папки и пытаюсь обучить CNN.

Мой код

pathname = os.path.dirname(sys.argv[0])

train_melanoma_dir=r'{}\Melanoma_resize'.format(str(pathname))
train_sebborhic_dir= r'{}\Sebborhic_resize'.format(str(pathname))
train_nevus_dir=r'{}\Nevus_resize'.format(str(pathname))

train_melanoma=[r'C:\Users\renukasi\Documents\College_Research_Work\Skin_Cancer_Classification\Melanoma_resize\{}'.format(i) for i in os.listdir(train_melanoma_dir)]
train_sebborhic=[r'C:\Users\renukasi\Documents\College_Research_Work\Skin_Cancer_Classification\Sebborhic_resize\{}'.format(i) for i in os.listdir(train_sebborhic_dir)]
train_nevus=[r'C:\Users\renukasi\Documents\College_Research_Work\Skin_Cancer_Classification\Nevus_resize\{}'.format(i) for i in os.listdir(train_nevus_dir)]

train_melanoma_label =[]
train_sebborhic_label = []
train_nevus_label =[]
for i in range(0,len(train_melanoma)):
    train_melanoma_label.append(0)

for i in range(0,len(train_sebborhic)):
    train_sebborhic_label.append(1)

for i in range(0,len(train_nevus)):
    train_nevus_label.append(2)

train_images = []
train_images = train_melanoma+train_sebborhic+train_nevus
train_label=train_melanoma_label+train_sebborhic_label+train_nevus_label
X=[]    # list of shuffled train images
Y=[]    # list of shuffled_images labels
index_of_images=list(range(len(train_images)))
shuffle(index_of_images)
for i in index_of_images:
    X.append(train_images[i])
    Y.append(train_label[i])

final_train_images=X    
final_train_images=np.array(final_train_images)
Y=np.array(Y)

# Split the data into train and test set
from sklearn.model_selection import train_test_split

X_train,X_val,Y_train,Y_val=train_test_split(final_train_images,Y ,test_size=0.20)
batch_size=32
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale=1./255)          
val_datagen = ImageDataGenerator(rescale=1./255) # We do not augment 
validation data.We only perform rescale 

train_generator=train_datagen.flow(X_train,Y_train,batch_size=batch_size)
val_generator = val_datagen.flow(X_val,Y_val,batch_size=batch_size)

Когда я запускаю этот код, я получаю следующую ошибку -

Traceback (most recent call last):
File    "C:\Users\renukasi\Documents\College_Research_Work\\myModelwithvggstructure.py", line 100, in <module>
train_generator=train_datagen.flow(X_train,Y_train,batch_size=batch_size)
 File "C:\Program Files\Python36\lib\site-packages\keras_preprocessing\image\image_data_generator.py", line 430, in flow
subset=subset
 File "C:\Program Files\Python36\lib\site- 
 packages\keras_preprocessing\image\numpy_array_iterator.py", line 112, in __init__
self.x = np.asarray(x, dtype=self.dtype)
 File "C:\Program Files\Python36\lib\site-packages\numpy\core\numeric.py", line 538, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: could not convert string to float: 
'C:\\Users\\renukasi\\Documents\\College_Research_Work\\ Skin_Cancer_Classification\\Melanoma_resize\\Image329.jpg'
>>>  

Может кто-нибудь указать мне, в чем ошибка ??

...