【问题标题】:Python bob package API - how to format input dataPython bob 包 API - 如何格式化输入数据
【发布时间】:2018-08-11 09:59:07
【问题描述】:

我正在尝试使用通过 Conda 安装在我的 ubuntu 上的 bob 包;但是,在使用任何测量 API(如 bob.measure.eer_threshold)时,会出现以下错误。我已经准备了一维数组中的数据,但错误仍然存​​在。我也尝试将纯一维数组传递给函数,但它不起作用。错误:

Traceback (most recent call last):   File "Test_bob.py", line 29, in <module>
threshold = bob.measure.eer_threshold(negatives, positives) ValueError: cannot convert `numpy.ndarray' which doesn't behave (memory contiguous, aligned, C-style, minimum 1 and up to 4 dimensions) into a `bob.blitz.array'

这是代码:

import bob
import bob.measure
import bob.blitz
import math
import numpy
from matplotlib import pyplot

fImpostor= open("Impostor.txt", "r")
fGenuine= open("Genuine.txt", "r")

positive_scores = []
negative_scores = []

for line in fImpostor:
    ImpScore = line.split()
    negative_scores.append(ImpScore[0])
fImpostor.close()

for line in fGenuine:
    GenScore = line.split()
    positive_scores.append(GenScore[0])
fGenuine.close()

positives = numpy.array(positive_scores)
negatives = numpy.array(negative_scores)

threshold = bob.measure.eer_threshold(negatives, positives)
FAR, FRR = bob.measure.eer_rocch(negatives, positives)

这是Genuine.txt 文件:

8873
2601
2554
11872
3867
4048
6983
3833
3988
5321
2761
2139
8498
2719
3128
3790
2937
2394

还有Impostor.txt:

2941
3486
4051
3416
2176
2222
1758
1856
2283
3491
3248
3159
4027
1300
2102
1437
1420
1776
4025
3888
2522
3557

请帮助我如何为此类 bob API 方法格式化和准备数据。

【问题讨论】:

    标签: python python-3.x conda biometrics python-bob


    【解决方案1】:

    该函数expects 是一个一维浮点数组,但您实际上是以字符串的形式读取数据。此外,您可以使用numpy.loadtxt 为您执行此操作,而不是自己实现数据加载。

    【讨论】:

    • 非常感谢。你是对的,我已经将加载的数据更改为浮动列表并且有效。
    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 2010-12-30
    相关资源
    最近更新 更多