【发布时间】:2018-09-06 10:04:06
【问题描述】:
我正在构建狗与猫分类器,但无法确定分类数据的存在位置。在 kaggle 的泰坦尼克号比赛中,数据存在于 Survived(0 或 1) 列中。
但是,CNN 是如何知道哪个被归类为狗或猫的?我在下面发布了我的代码。
from keras import layers
from keras import models
model=models.Sequential()
model.add(layers.Conv2D(32,(3,3),activation='relu',input_shape=(150,150,3)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
from keras import optimizers
model.compile(loss='binary_crossentropy',
optimizer=optimizers.RMSprop(lr=1e-4),
metrics=['acc'])
from keras.preprocessing.image import ImageDataGenerator
train_datagen=ImageDataGenerator(rescale=1./255)
test_datagen=ImageDataGenerator(rescale=1./255)
train_generator=train_datagen.flow_from_directory(train_dir,
target_size=(150,150),
batch_size=20,
class_mode='binary')
train_generator = train_datagen.flow_from_directory(
train_dir,
target_size=(150, 150),
batch_size=20,
class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
validation_dir,
target_size=(150, 150),
batch_size=20,
class_mode='binary')
history=model.fit_generator(train_generator,
steps_per_epoch=100,epochs=30,
validation_data=validation_generator,
validation_steps=50)
train_dir = os.path.join(base_dir, 'train')
os.mkdir(train_dir)
我知道这个目录正在被创建并且所有的训练文件都被加载到这个目录中(它有一个单独的代码)。此外,在该过程中,它将图像分为 cat 文件夹和 dog 文件夹。这类似于泰坦尼克号幸存者专栏吗?
【问题讨论】:
标签: python tensorflow machine-learning keras deep-learning