我正在执行一项任务,其中我以批处理形式存储帧形式的数据。批次的尺寸类似于(batch_size,400),我想在每个400长度的框架中查找数字1首次出现的索引。
目前,我正在批量处理中使用for循环,但由于数据非常大,因此非常耗时
在tensorflow或numpy中使用矩阵运算的任何其他有效方法都会
答案 0 :(得分:0)
在TensorFlow中:
max_age = 0
在NumPy中:
>>> App\Models\CarPremium::query()->age(18)->get()
=> Illuminate\Database\Eloquent\Collection {#3064
all: [
App\Models\CarPremium {#3063
id: 2,
min_age: 25,
max_age: 100,
status: 1,
created_at: "2018-12-10 05:34:39",
updated_at: "2018-12-10 05:34:39",
},
App\Models\CarPremium {#3064
id: 8,
min_age: 18,
max_age: 30,
status: 1,
created_at: "2018-12-10 05:34:39",
updated_at: "2019-01-15 09:14:53",
},
],
}
测试:
import tensorflow as tf
def index_of_first_tf(batch, value):
eq = tf.equal(batch, value)
has_value = tf.reduce_any(eq, axis=-1)
_, idx = tf.math.top_k(tf.cast(eq, tf.int8))
idx = tf.squeeze(idx, -1)
return tf.where(has_value, idx, -tf.ones_like(idx))