问题标签 [image-classification]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 图像生成器中的错误:要求检索元素 0,但序列的长度为 0
我正在尝试计算二进制类彩色图像分类问题中的真阳性、真阴性、假阳性、假阴性比率。
我有二进制类、面部和背景彩色图像,我必须使用 MLP 对它们进行分类。
我的问题是:我收到错误:
ValueError:要求检索元素 0,但序列的长度为 0
编辑:完整回溯
- 在尝试分别从 2 个类预测每个文件夹时(而不是包含 2 个文件夹的根文件夹,每个类一个用于训练)。
我产生错误的代码是:
image - 图像像素包含什么信息?
对于彩色图像,比如尺寸为 320 x 240,我们在图像中有 76,800 个像素。彩色图像的每个像素代表什么?它只是该像素的RGB值吗?形状和纹理如何以像素表示?如果彩色图像中的每个像素只包含 RGB 值,那么这些信息是否足以存储图像中对象的形状、大小和纹理?
python - 如何获得 Keras 模型的 F-1 准确率和混淆矩阵?
我有一个名为 train 的文件夹,其中有三个单独的文件夹,分别是“Covid”、“Pneumonia”、“Healthy”。我使用迁移学习创建了 VGG19 模型。我需要帮助为我的测试数据创建混淆矩阵。我已将我的火车数据拆分为 75%、25%。我已经尝试了一切来创建混淆矩阵并计算 F-1 分数。如果有人向我提供代码,那就太好了,因为我是新手。
python - 将图片矢量化以传递给分类器
我按照本教程创建了一个简单的图像分类:
https://blog.hyperiondev.com/index.php/2019/02/18/machine-learning/
在训练之前,我们对数据集中的图片进行矢量化,如下所示:
完成训练后,我想上传另一张图片(不在数据集中)并将其传递给分类器以检查它是否被预测(连同它的准确度分数)
但是我怎么能通过图片呢?我试过这个:
并得到一个错误:
那么,由于我没有单独的 x,y 值,因此如何对其进行矢量化。
c++ - 为 TensorFlow Lite C++ 编写 read_jpeg 和 decode_jpeg 函数
TensorFlow Lite 在他们的 repo 中有一个很好的 C++ 图像分类示例,在这里。但是,我正在使用 .jpeg 并且此示例仅限于使用bitmap_helpers.cc解码 .bmp 图像。
我正在尝试创建自己的 jpeg 解码器,但我并不精通图像处理,因此可以使用一些帮助。我正在重用这个 jpeg 解码器作为第三方帮助库。在示例的 bmp 解码中,我不太明白计算row_sizes并在header 之后获取字节数组是怎么回事。谁能阐明这将如何适用于 jpeg 解码器?或者,更好的是,是否已经有一个 C++ decode_jpeg 函数隐藏在我没有找到的某个地方?
最终实现必须在 C++ 中的 TensorFlow Lite 中。
太感谢了!
编辑:
以下是我到目前为止所拥有的。当我对相同的输入图像和 tflite 模型使用图像分类器的 Python 示例时,我没有得到相同的置信度值,因此这清楚地表明存在问题。我基本上从 read_bmp 复制并粘贴了 row_size 计算而不理解它,所以我怀疑这可能是问题所在。row_size 代表什么?
python - Keras 如何对方法 flow_from_directory 中的数据进行洗牌?
我正在 Keras 中使用 CNN 训练、验证和测试图像分类器。我正在使用 flow_from_directory 生成训练、验证和测试数据集。
问题是,在 test_datagen 中,当我将 shuffle 标志设为 True 时,准确性下降,系统似乎没有给出任何好的结果,但我在训练和验证生成器中保持 shuffle = True。生成器如下:
训练和验证数据生成器:
测试数据生成器如下:
对于模型.预测:
- 当
shuffle= False
结果如下:
精度:0.6472019464720195
- 当
shuffle= True
结果如下:
精度:0.30170316301703165
如果有人能解释这种行为,我将不胜感激
deep-learning - 我们在哪里将标签传递给 CNN 图像分类器?
我有一个简单而基本的问题。当我们训练一个图像分类器模型(即使用 CNN)时,我们究竟在哪里告诉模型这是一只猫还是一只狗?在反向传播之前,模型知道它是狗还是猫,因为它正在相应地安排新的权重。我们的数据被标记,但我们没有读取或传递这些信息到网络。我正在使用更复杂的图像字幕。感谢您的澄清,在此先感谢您!
tensorflow - 使用使用 make_image_classifier 创建的模型时在 TensorFlow Lite C API 中调整输入尺寸
抱歉,如果这个问题看起来很熟悉,我之前已经发布了更广泛的问题描述,但我已经删除了它,因为我在调查中取得了一些进展并且可以缩小到更具体的问题。
语境:
- 我正在使用
make_image_classifier
. - 我想使用 C API 来加载生成的模型和标签图像。我在这里遇到数据输入问题。
- 我可以使用label_image.py 示例标记图像,因此模型很好,问题在于我对 C API 的使用。
- 如果我理解
make_image_classifier
正确,它会生成一个需要 4 维输入的模型。我们正在处理超出宽度、高度和通道的图像,我不知道第 4 维是什么。这种缺乏理解可能是我问题的根源。 - 我在代码中包含了一些错误处理,并且在调整大小后尝试从输入缓冲区复制时发生了我遇到的错误。
问题:
Q1:为什么生成的模型make_image_classifier
需要 4 维输入?有高度、宽度和通道,但第四个是什么?
当我使用 C API 执行以下操作以使用我的图像输入运行模型时:
我得到:
所以我最终做了:
据我所知,第一个维度大小用于批量大小,以防我要处理多个图像。它是否正确?
Q2:我应该在调用时使用相同的维度结构来构建我的数据输入TfLiteInterpreterResizeInputTensor
吗?我得到这个图像RGB输入缓冲区的错误:
在构建一个模仿给定的输入维度的输入时,我也会遇到错误TfLiteInterpreterResizeInputTensor
,但这似乎很愚蠢:
最后一个输入结构类似于 Pythonlabel_image.py
在执行此操作时使用的输入结构:
Q3:我的输入缓冲区有什么问题导致TfLiteTensorCopyFromBuffer
返回错误代码?
谢谢!
完整代码:
编辑#1:好的,所以在里面TfLiteTensorCopyFromBuffer
:
我的input_data_size
值为 150,528(3 通道 x 224 像素高 x 224 像素宽),但tensor->bytes
为 602,112(3 通道 x 448 像素高 x 224 像素 448,我假设?)。我不明白这种差异,尤其是因为我调用TfLiteInterpreterResizeInputTensor
了{1, 224, 224, 3}
.
编辑#2:我相信我在这里找到了答案。确认后将解决此帖子。
pytorch - 为什么一些 vanilla RNN 初始化为带有 sequence_length=1 的隐藏状态以用于 mnist 图像分类
我遇到了几个使用 RNN 对 MNIST 数字进行分类的示例,使用 sequence_length=1 初始化隐藏状态的原因是什么?如果您正在对视频帧预测进行 1 步预测,您将如何初始化它?
输入通常表示为
在上面的示例中,图像是按列传递的吗?是否有另一种方法来表示 RNN 中的输入图像?它与如何初始化隐藏状态有什么关系?