8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何将 Keras CNN 的输出映射到我能理解的内容?

Jetchisel 2月前

22 0

我最近开始研究神经网络,了解了很多基础知识。最近,我用 Keras 编写了一个 CNN,将猫和狗的图像分为 37 个不同的品种。制作 m...

我最近开始研究神经网络,了解了很多基础知识。最近,我用 Keras 编写了一个 CNN,将猫和狗的图像分为 37 个不同的品种。制作模型和获取数据很容易,现在我已经成功训练模型,根据 Keras 指标获得约 60% 的准确率。但是,我不知道如何在进行预测时打印结果。

这是我的模型代码:

model = k.models.Sequential([k.layers.Conv2D(150, (3, 3), activation='relu', input_shape=(224, 224, 3)),
                             k.layers.Conv2D(80, (3, 3), activation='relu', input_shape=(224, 224, 3)),
                             k.layers.Conv2D(50, (3, 3), activation='relu', input_shape=(224, 224, 3)),
                             k.layers.Conv2D(40, (3, 3), activation='relu', input_shape=(224, 224, 3)),
                             k.layers.Flatten(), k.layers.Dense(37, activation='softmax')])
model.compile(k.optimizers.RMSprop(learning_rate=.00001), loss='categorical_crossentropy', metrics=['accuracy'])

这是我的预测代码:

    i = 1
    k.models.load_model(checkpoint_filepath)
    while i < 15:
        try:
            img = cv2.imread(files[random.randint(1, 150)])
            unfiltered_image = img
            img = np.invert(np.array([img]))
            prediction = model.predict(img)
            print(f"This image is probably a: {np.argmax(prediction)}")
            plt.imshow(unfiltered_image, cmap=plt.cm.binary)
            plt.show()
            
        finally:
            i = (i + 1)

我见过一些在线教程使用 argmax 函数,这就是我在那里使用它的原因。

我尝试使用 if 语句将某些 argmax 输出值映射到某些品种,但由于多种原因,这种方法没有奏效。我尝试将其映射到混淆矩阵上,但也没有奏效。我查看了神经网络,并通过观察值在每一步中如何变化以及当我输入某些输入时某些数字如何变化来确保神经网络正常工作。我真的不确定如何将神经网络产生的这些值转换为可理解的输出。我怎样才能使这些输出合理?

帖子版权声明 1、本帖标题:如何将 Keras CNN 的输出映射到我能理解的内容?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Jetchisel在本站《tensorflow》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 哦,太棒了,这似乎在映射方面有效,但现在它似乎每次运行时主要输出一种随机类型。谢谢你的帮助。

返回
作者最近主题: