首页 > 解决方案 > 卷积神经网络标签

问题描述

我是深度学习的新手并且有一个项目。我想创建一个简单的 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)

标签: labelconv-neural-network

解决方案


基本上,您可以将每个像素视为每个图像的特征。所以你得到了 224、224、3 输入,这意味着 224*224 图像和 R、G、B 颜色的深度。由于您的输出是二进制的,因此输出为 1 或 0。Google 刚刚在 google IO 主题演讲(https://youtu.be/VwVg9jCtqaU?list=PLOU2XLYxmsILVTiOlMJdo7RQS55jYhsMi)中有一个很好的例子。卷积层正在生成一些更高级别的特征。但是如果你有一些好的特征生成功能,你可以对你的图像进行一些预处理。


推荐阅读