我是深度学习的新手,有一个项目。我想创建一个简单的CNN,用于恶性肿瘤和良性肿瘤(皮肤癌)的二进制分类。我每个班级都有两个文件夹。在机器学习分类中,一个经典的问题有一个特征X_table和一个Y数组。在labels.In我的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)发布于 2019-05-14 00:59:10
基本上,您可以将每个像素视为每个图像的一个特征。所以你得到了224,224,3个输入,这意味着一个224*224的图像和R,G,B颜色的深度。因为您的输出是二进制的,所以输出不是1就是0。谷歌刚刚在谷歌IO keynote(https://youtu.be/VwVg9jCtqaU?list=PLOU2XLYxmsILVTiOlMJdo7RQS55jYhsMi)中提供了一个很好的例子。卷积层正在生成一些更高级别的特征。但是如果你有一些好的特征生成函数,你可以对你的图像进行一些预处理。
https://stackoverflow.com/questions/56113867
复制相似问题