我是深度学习的新手,有一个项目。我想创建一个简单的CNN,用于(皮肤癌的)恶性和良性肿瘤的二分类。我每个班有两个文件夹。 在机器学习分类中,一个经典问题是具有特征的X_table和带有标签的Y数组。在我的CNN项目中,我没有每个图像的特征和标签,而我只有两个文件夹,它们具有单独的类。 那么我该如何提供我的数据进行训练,显示标签呢? 我用Keras编写代码,仅需要这部分的代码。 这是尝试:
# Part 1 - Building the CNN
# Importing the Keras libraries and packages
from keras.models import Sequential
from keras.layers import Convolution2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
from keras.layers import Dense
from sklearn.model_selection import train_test_split
# Initialising the CNN
classifier = Sequential()
# Step 1 - Convolution
classifier.add(Convolution2D(32, 3, 3, input_shape = (224, 224, 3), activation = 'relu'))
# Step 2 - Pooling
classifier.add(MaxPooling2D(pool_size = (2, 2)))
# Adding a second convolutional layer
classifier.add(Convolution2D(32, 3, 3, activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
# Step 3 - Flattening
classifier.add(Flatten())
# Step 4 - Full connection
classifier.add(Dense(output_dim = 128, activation = 'relu'))
classifier.add(Dense(output_dim = 1, activation = 'sigmoid'))
# Compiling the CNN
classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
# Part 2 - Fitting the CNN to the images
Χ=('C:\Users\User\Desktop\MEDICAL IMAGING\skin-cancer-malignant-vs-benign')
X_train, X_test, = train_test_split(Χ, test_size=0.2)
classifier.fit_generator(training_set,
samples_per_epoch = 8000,
nb_epoch = 25,
validation_data = test_set,
nb_val_samples = 2000)
答案 0 :(得分:0)
基本上,您可以将每个像素视为每个图像的特征。因此,您获得了224、224、3输入,这意味着图像为224 * 224,深度为R,G,B颜色。由于您的输出为二进制,因此输出为1或0。Google只是其中一个很好的示例,其中一个google IO主题演讲(https://youtu.be/VwVg9jCtqaU?list=PLOU2XLYxmsILVTiOlMJdo7RQS55jYhsMi)。卷积层正在生成一些更高级别的特征。但是,如果您具有一些好的特征生成功能,则可以对图像进行一些预处理。