反转ML模型

时间:2018-11-19 15:19:20

标签: python tensorflow machine-learning keras

我目前正在通过使用Keras(带有Tensorflow后端)创建一个简单的图像分类器来自学机器学习的基础知识。该模型将(灰度)图像分类为猫还是非猫。

我的模型在这项任务上比较擅长,所以我现在想看看它是否可以生成被归类为猫的图像。

我试图通过创建与图像形状相同的随机数组(每个索引均带有随机数)的简单方式来开始此操作:

    from random import randint

    json_file = open('model.json', 'r')
    loaded_model_json = json_file.read()
    json_file.close()
    model = model_from_json(loaded_model_json)
    model.load_weights("model_weights.h5")

    confidence = 0.0
    thresholdConfidence = 0.6

    while confidence < thresholdConfidence:
        img_array = np.array([[[randint(0, 255) for z in range(1)] for y in range(64)] for x in range(64)])
        img_array = img_array.reshape((1,) + img_array.shape)
        confidence = model.predict(img_array)

该方法显然根本不好,因为它只会创建随机的东西,并且可能永远运行。通过告诉它一个数组是100%cat,并让它预测图像的数组表示形式,该模型可以以某种方式反向运行吗?

感谢您阅读。

[这是我关于StackOverflow的第一篇文章,所以如果做错了事,请告诉我!]

1 个答案:

答案 0 :(得分:0)

如果您希望生成特殊类型的图像,则可以使用生成对手网络。它分为两个部分,需要分别进行培训。这两个部分是

  1. 发电机:创建随机图像中的噪波。
  2. 鉴别器:向生成器提供有关图像的反馈

您可以参考here