首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow Keras中的水印二值分类器

Tensorflow Keras中的水印二值分类器
EN

Stack Overflow用户
提问于 2021-05-12 17:12:22
回答 1查看 111关注 0票数 0

我的目标是创建一个模型,该模型可以根据是否存在一个特定的水印来对图片进行分类。如果我想检查一个不同的水印,理想情况下,它将创建另一个数据集与新的水印,并重新训练模型。据我所知,这是一个二进制分类器。

这样做对吗?

我被困在我的模型,以确定一个图片上是否有水印。我的指标不会从。示例:

代码语言:javascript
复制
loss: 0.6931 - accuracy: 0.5000 - val_loss: 0.6931 - val_accuracy: 0.5000

我已经准备了一个数据文件夹结构,类似于:

培训

  • Watermark
  • No_watermark

验证

  • Watermark
  • No_watermark

我使用了一个数据集,每个类别中有1000幅图像。下面是我的数据集的示例,其中有我自己的水印:

希望你能帮上忙.

如果我改变了图像的大小、年代和dataset?

  • Should,我如何才能将我的模型“识别”为“识别”我的“损失”和“准确性”--即使我改变了图像大小、年代、dataset?

  • Should,我只是用带有增强和无背景的水印图像来训练模型呢?

代码语言:javascript
复制
model = tf.keras.models.Sequential([
        tf.keras.layers.Conv2D(64, (3,3), activation='relu', input_shape=(250, 250, 3)),
        tf.keras.layers.MaxPooling2D(2, 2),
        tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
        tf.keras.layers.MaxPooling2D(2,2),
        tf.keras.layers.Conv2D(128, (3,3), activation='relu'),
        tf.keras.layers.MaxPooling2D(2,2),
        tf.keras.layers.Conv2D(128, (3,3), activation='relu'),
        tf.keras.layers.MaxPooling2D(2,2),
        tf.keras.layers.Flatten(),
        tf.keras.layers.Dropout(0.5),
        tf.keras.layers.Dense(512, activation='relu'),
        tf.keras.layers.Dense(1, activation='sigmoid')
])

model.compile(loss = 'binary_crossentropy',
                      optimizer='rmsprop',
                      metrics=['accuracy'])

history = model.fit(train_generator, 
                  epochs=25,
                  validation_data = validation_generator,
                  verbose = 1,
                  validation_steps=3)

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-12 17:36:23

由于您正在执行二进制分类,您是否将ImageDataGenerator.flow_from_directory方法中的ImageDataGenerator.flow_from_directory参数设置为'binary'?默认的是'categorical',这不是您在这里应该使用的,因为您只有一个输出节点。

这是一个常见的陷阱。我猜一开始的准确性值是0.5,因为您可能有相同数量的水印图像和非水印图像,而且性能从未提高,因为您传递了class_mode的错误值。

TL;DR:在class_mode='binary'中设置flow_from_directory (而不是默认的class_mode='categorical')。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67508174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档