这可能是一个有点愚蠢的问题,但我正在尝试构建一个能够在将过滤后的输出馈送到另一个网络之前过滤掉输入的模型。
例如,我有一张图像,我想与大约100张图片的数据库进行匹配,然后我将应用第一个网络进行一些操作,输出最有可能正确匹配的前10张图片。之后,我会应用第二个网络来重新匹配使用第二个网络的前10张图片。
INPUT --> | NETWORK 1 | --> FILTERED OUTPUT --> | NETWORK 2 | --> FINAL OUTPUT
想知道是否有一种方法可以实现这种过滤行为,将过滤后的输出像这样馈送到第二个模型。
你可以用numpy查看布尔索引数组
>>> import numpy as np
>>> x = np.array(range(20))
>>> x
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
>>> x[x > 10]
array([11, 12, 13, 14, 15, 16, 17, 18, 19])
x比;10返回一个包含20个布尔值的数组,所以你可以尝试这样做:
x = pic_arr[network1(pic_arr)]
network2(x)
其中pic_arr是一个包含图片的数组,network1返回一个包含要选择的图片的布尔值的列表。