我是Tensorflow的新手。我遵循了一些教程,提供了数据集,并想自己尝试一些方法。我决定尝试对“魔术聚会”集进行分类。每个card上都有一个不同颜色的符号:Black,Gold等。
颜色并不重要,只是不同的符号。因此,我创建了一个包含3个不同集合(因此有3个不同符号)的数据集,并获得了约15,000张图像,例如this。有些会旋转一些,有些会有X和Y偏移,只是为了获取一些不同的图像。
然后,我将tensorflow website上的教程进行了图像分类。我想尝试三门课,而不是两门课:
batch_size = 250
epochs = 3
IMG_HEIGHT = 55
IMG_WIDTH = 55
train_image_generator = ImageDataGenerator(rescale=1./255)
validation_image_generator = ImageDataGenerator(rescale=1./255)
train_data_gen = train_image_generator.flow_from_directory(batch_size=batch_size,directory=train_dir,shuffle=True,target_size=(IMG_HEIGHT,IMG_WIDTH),class_mode='binary')
val_data_gen = validation_image_generator.flow_from_directory(batch_size=batch_size,directory=validation_dir,class_mode='binary')
model = Sequential([
Conv2D(16,3,padding='same',activation='relu',input_shape=(IMG_HEIGHT,IMG_WIDTH,3)),MaxPooling2D(),Conv2D(32,activation='relu'),Conv2D(64,flatten(),Dense(512,Dense(1,activation='sigmoid')
])
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
history = model.fit_generator(
train_data_gen,steps_per_epoch=total_train // batch_size,epochs=epochs,validation_data=val_data_gen,validation_steps=total_val // batch_size,callbacks=[cp_callback]
)
但是我的损失是负数,训练后我的准确性不高。我搞砸了什么?本教程中使用的模型对我的用例不利吗?还是代码中有错误,因为我使用了三个而不是两个类?